December 21, 2018
2019: The Year I Teach Myself CS
I was recently interviewed for a front-end engineering position. I passed the first two technical screens (phone call and codility challenge), but ultimately failed the final technical interview with the head of engineering. Thankfully, he responded with feedback when I asked for it.
Here is what he wrote:
I thought that you showed a lot of promise, but right now we’re looking for engineers who are a bit more senior. I might spend some time brushing up on some CS theory (runtime complexity, for example) but I definitely encourage you to reach back out in 6 months.
I wrote my first line of html in 2015. I was working for Medicaid as a Medical Program Specialist (I rubber stamped special Medicaid spending), when I stumbled upon freeCodeCamp. Eighteen months later, I started working fulltime as a front-end web developer.
Since 2015, I have been acquiring a tremendous amount of new skills and knowledge. I’ve gone through curricula at freeCodeCamp, treehouse, codeacademy, pluralsight, egghead, tylermcginnis.com, and wesbos.com. I’ve built three side-projects using the latest stack to try to keep pushing myself. Yet there are still large gaps in my knowledge—especially when it comes to computer science fundamentals.
Filling the Gaps
2019 is going to be the year of Computer Science Fundamentals. Here is my plan for filling the gaps.
Alglorithms and Data Structures
Math for CS
Languages and Compilers
- Watch Alex Aiken’s Course on Lagunita
- Read Compilers: Principles, Techniques and Tools
- Read Language Implementation Patterns
- Read Distributed Systems
Learning in Public
As I go through this plan, which was borrowed from teachyourselfcs.com, I will be “learning in public.” A concept I recently heard on the egghead.io podcast. This means I will be writing articles throughout my learning process in an attempt to explain the concepts I’m learning and also to make a stronger connection between them and the skills of a web developer.