Quickly after starting with freeCodeCamp. I got a feeling that digging deeper would benefit me in the long run. It’s been a long road but I definitely feel that it’s paid off.
I’ve detailed what resources I found most useful in this Medium Article.
For the self-taught devs I’d like to ask how they balance between:
gaining in-demand skills (e.g. learning the latest frameworks, libraries etc.)
building a strong foundation in CS topics (e.g. an in-depth study of Algorithms and Data Structures)
Lastly, I’d like to leave this quote from Eloquent JavaScript that stuck with me:
When you are struggling to follow the book, do not jump to any conclusions about your own capabilities. You are fine—you just need to keep at it. Take a break, reread some material, and make sure you read and understand the example programs and exercises. Learning is hard work, but everything you learn is yours and will make subsequent learning easier.
Last week I went to an Angular conference in Denver (in other words, a conference specifically about the latest frameworks, libraries, etc). At the Q&A panel, someone asked “What advice would you give new developers at the start of their careers?” and an answer that got a lot of agreement among the panelists was (paraphrased) “Whether you’re looking at Angular, or React, or Vue… whatever type of app you’re building… It all runs in the browser. That’s the common factor in all of this: the browser. That means HTML, CSS, and JavaScript. If you’re starting out, that’s what you need to focus on. Don’t waste your time trying to figure out the next most popular framework. Those will continue to change and what you will always need to know is HTML, CSS, and JavaScript.”
Basically 100% actual Web technologies (HTML, CSS, JS, React, testing frameworks, backed tech: Node, MongoDB etc)
While I spent time doing practical algorithms on freeCodeCamp and Codewars, and also read half of The Imposters Handbook, which covers CS basics for lay people, I haven’t really made a huge effort to truly learn CS concepts or classical algorithms well. I can crank out a mean FizzBuzz, but I can’t reverse a binary tree (don’t even know what one is!)
I just had a look at your portfolio and it seems nice.
I would recommend getting your projects off Codepen. Spend sometime getting to know git on the command line - force yourself to use it for a while project from the beginning, and connect it to GitHub. Once you know that comfortably, you’ll be able to host every project on Github Pages.
You can get hired if you don’t know CS, but your chance of getting hired if you don’t know git is much lower.