I recently made a project to list the languages a GitHub user has in all of their repositories. You can find it at https://www.joshuasnider.com/GitHubBOC. This is just the thoughts I wrote down while making it organized in a moderately presentable way.
I’ve never been more intimidated in my life than when I try to learn something and don’t know where to start. I’ve felt this feeling when learning a programming language completely different than one I already know, when trying to study quantitative finance, and whenever I try to learn web or mobile development.
I had a couple motivations for learning web development which can be separated cleanly into an actual desire to make this code and inspiration I’ve received from the wider community. First among my intrinsic motivations, is an actual desire to have a tool to show the language breakdown among all of my GitHub repos, so I can use it myself. I tried asking Stack Exchange, if they knew someone who already did it a couple months ago, but none of the similar work out there met my needs so I did it myself. Second, I feel I’ve reached the point in my career as a computer scientist where my skills need to be broad enough that I am able to do web development when called upon and this project was of a good scope for learning AngularJS. My third intrinsic motivation came from my interest in comparative programming languages, the event-based models common to web programming are substantially different from the functional, imperative, and object-oriented paradigms I’ve experienced in other languages.
Extrinsic motivation for this project came from a few sources. I’ve recently started showing off my work on Hacker News and think if I had some more visually appealing work it would be well received. I was also inspired by this passage from a blog about always doing whatever you least like to do which also inspired the title. Lastly, I was inspired by this blog post. The idea of “doing cool things and telling people” isn’t specific to web development or even computer science, but it was a good kick to get me to actually do it.
From my previous experience as a teaching assistant, I don’t have a very good opinion of people who want to look at working code while writing their own similar code. For most of my life, I’ve thought these people are at worst plagiarists and at best cargo cultists. Neither option being associated with competence, but at least in this project I saw the value of having a few working examples from Codecademy which I could reference when I didn’t know why something wasn’t working, but couldn’t make that confusion isn’t a question worthy of Stack Overflow. I also spent a couple hours on Skillport which is a tutorial service provided by my employer, but it was nowhere near as helpful as Codecademy and Google. I think the value of looking at working code depends on the subject matter, in areas like computer vision and AI coming up with the idea behind the code takes 95% of the thought and reading someone else’s code is less useful than picking up a textbook. In something extremely visual like web programming the actual implementation of a beautiful website is of much more importance than the ability to sketch one out on paper.
I’d be surprised if there’s anyone actually reading this, but I have a message for them: If you learn anything from this blog post, you should learn to find whatever challenge you find most intimidating, even, especially in fact, if it’s not programming and just tackle it now, immediately, and head on. Especially, if it’s commenting on this post.