In the tech scene, tools come and go quickly. The different currents in the ocean of programming languages have various rates of flow and times for staying afloat.
If you’re just learning how to program, or are looking to start your career in software soon, do not get phased by the fads.
Knowing the newest, trendiest MVC framework will not help you because that skill will soon fade and you will have wasted your time learning it.
Remember, it’s not a race to who-knows-what the fastest.
With all these new “framework” tools that are being built over languages, the most important points you need to take from this post are: Get to know *all* the basics of a language. Tools change, but languages don’t … as much. Master the essentials over the trends. Get Involved. And learn to love learning.
Back in mid-2014 when I got my BS in Computer Science, I got a job as a C# and Android developer. Working in both Java and C# tied me down to Android-only and Microsoft-stack jobs for my career. I knew that if I wanted to be more employable, I’d have to pick up skills that are less commercialized and more open. Maybe not as hardcore open and free as GNU/Linux but somewhere in between would’ve been nice.
The First of Many Mistakes (1st month of learning)
More Mistakes (~3 month’s time)
After various side projects, I moved on to learning Express and Node with the help of NodeSchool.io (great learning resource for Node btw). I was able to make server-side Express apps and learned how to manage my Node packages with the npm tool. I learned about Yeoman, the scaffolding tool, to set up some boilerplate code for my personal Angular projects. Yeoman’s pre-built Angular apps were way too dense for a beginner like me on my side-projects, so I began picking up build tools like Gulp.js.
My First and Last Correction
FreeCodeCamp (~8 months and counting)
My girlfriend introduced me to one learning site that set itself apart from the rest, and that’s Free Code Camp (FCC).
(Feel free to follow Quincy Larson, a well-known teacher over at FCC, who also curates tech articles that help inform FCC’s community.)
The features of FreeCodeCamp that I found most appealing and kept me a happy camper were:
- Completely free to learn
- Shows you the entire curriculum path from the beginning
- Tracks your progress
- Has you practicing on real-world-like digestible projects
- Gives you actual real-world projects, by contributing to non-profit organizations
- Hundreds of hours-worth of practice exercises
- Has a supportive community of other learners (with chat channels, Facebook groups, and a Reddit).
- Many people have found jobs before they even finished the course!
You Don’t Know JS book series
People to Follow
After saving some money, I quit my job in January 2016, to invest more time into myself, my learning, my CodePen portfolio, and also to not have to ask for another day off work to interview at another company. I was unemployed for 5 months. I thought I would be without a job for less time, but I underestimated how ridiculous the tech industry’s hiring practices can be. Don’t let it get to you! For me, those 5 months were stressful with the high student loan payments looming over me, living expenses, and feeling like a burden, living with my parents on no income.
Thanks to my supportive and reassuring girlfriend, who stuck with me through these 5 months while she continued her college education, I was able to handle the ups and downs of many companies’ interviewing processes. Each rejection at a company made me feel like I wasn’t good enough. What if I never find a job? Maybe I accidentally shot myself in the foot by quitting my last job.
My New Job
Lasting Tips For the Reader
- Study the things that change the least: programming languages, rather than language frameworks. But don’t knock frameworks completely.
- Stay curious: Being in tech as an engineer, you’re making a career commitment to make sacrifices in terms of time by learning new things and staying updated.
- Turn your mistakes into learning experiences: there’s no use in being upset or frustrated about being rejected for a job or failing a certain code exercise, so take these as learning opportunities. Either break down the problems or go slowly.
- Meditate: get to know yourself, about how you react to new change, and how to catch yourself when you are holding on to negative things. This can help you a lot in learning and the way you present yourself at interviews.
Many thanks to Dalia for helping me edit this piece.