Enjoy Learning
Recently I introduced a friend to freecodecamp.com. Check it out if you haven’t, it’s a wonderful introduction to web development that I’m currently working through. My friend has a good job, and he makes a difference to the people he works with. However, eventually some of us get to a point in our careers where we begin to question what we’re doing and if we want to keep doing it for the rest of our lives. A similar line of questioning is what led me to pursue a CS degree, so when I see those close to me asking the same questions I always mention CS as a possible option.
The introduction to freeCodeCamp was quick and straightforward. I showed him around the different certifications (front end, back end, and data visualization) and what the challenges looked like. I also showed him some completed projects that I’ve put on my portfolio site. After the introduction, and a few quick questions, something happened that I didn’t expect. My friend started listing off a bunch of ideas he had for websites. Some of these ideas were plays off of my completed projects, others were brand new and surprisingly creative. This might not seem too surprising but I was taken aback by it. I’m not a very creative person and I have a lot of trouble coming up with project ideas. I’ve spent hours trying to come up with something unique just to give up and pursue a project I’ve found on the internet. Now, here is my friend with 3 to 4 great ideas in under 2 minutes! In that moment I was pretty hard on myself for my lack of creativity, but over the next day or so I gained more insight into why I may find it hard to come up with new ideas.
One of the traits of programming, and web development in particular, is how quickly the technology evolves. In 2016 I completed a project course with a team. We created an android app using Ionic and Angular 2. Today, after some googling, I found information on Ionic 3 and Angular 4. Technology evolves and it evolves quickly. As programmers we are expected to evolve with the technology. The more experience we have with the lastest popular framework the better our portfolios and resumes will look and the more likely we are to get an exciting and challenging job. Multiple frameworks and languages also do the same tasks so we have to choose a few to learn as it seems almost impossible to know them all. This quick evolution and variety is intimidating to me as someone who is starting out in a new career. I feel the pressure to learn a new framework when I read about it, or when I hear that one framework is better than another for a specific task. I question myself after spending an hour on jQuery and wonder if I should have spent that time learning React. This pursuit plays a role in stifling creativity. It’s necessary for technology to evolve and for us to constantly be learning, but it is also valuable to take some time with our current set of tools before moving on. If we are constantly pushing ourselves to learn that new framework or language we take time away from using our current tools to build things that are meaningful to us.
The balance between learning new technologies and spending time with the ones we already know is delicate. We have to push ourselves to learn and go with the trends of the industry. As someone who is finally breaking into the job market and looking for my first job in the industry this push is strong. I’ve been trying to learn as much as I can over the last year in preparation for work. Thinking about this experience with my friend I started to ask myself, “What’s more important on a resume? Stating you know or have experience with so many different technologies or having some unique and creative projects with only a few?”
I’ve known a lot of musicians who play in bands of various different genres. Those who played in metal bands (I’m not sure why) seem to love buying new gear. A lot of them are always looking for a new amp, compressor, guitar, pedals or whatever. I’ve seen a few of my friends spend more time on the internet looking at new gear and planning their setup than they do actually practicing and playing. This isn’t to say that these musicians failed or made terrible music, but you have to wonder if it impacted their progress. I’ve also known musicians who could care less about gear. They play on an old beat up acoustic and produce some amazingly creating stuff. As programmers we have to be able to asses how much chasing that new piece of gear will cost. We should ask if we can still express ourselves and our ideas with our current set of tools.
There is no answer in this article, because I don’t have one, and because I don’t think one really exists. If you’re a programmer you shouldn’t stop learning about new technology. You should also learn to use your tools effectively. My main take away from this experience is that I simply need to enjoy the journey of learning to code more than I have been. My friend is still going through freeCodeCamp and he’s come up with some more great ideas that he wants to build with just HTML, CSS and a sprinkle of JS. That’s all you need to build something great if you have the patience and dedication to see what you can accomplish.