UPDATE: I wrote a medium post with updated resources and a bit more detail Can be found HERE
TL;DR got my dream job, resources at the bottom if you donāt want to read my lovely story
Iāve been learning web development on and off for nearly 2 years. I was 21 and looking for a career path, all my friends were in college/uni, and I needed another way to spend my time than playing video games in my undies (now Iām attending meetings and programming in my undies). I applied for uni and got accepted as a Psychology major. Hated it. Now let me preface by saying Iāve always had a knack for computers, I mean I did grow up with them after all. A few major changes later, and I found myself in Computer Science.
A lot of students Iāve spoke to about CS said they knew how to program before coming into the program. So, it was only logical I spend some time learning as well before I began the advanced courses. I started with hacking away on unity to try and create games. Kinda neat, but I had no idea what was going on with the scripting languages (C# at the time). I actually have no idea what inspired me to try web development, Iām sitting here trying to remember, but I really donāt. When I started learning, Ruby on Rails was at the peak of its hype. Twitter was using it, bootcamps were all adopting it as their main language, and nearly every āweb development tutorialā google search returned some RoR course. I was convinced, I had to start learning it ASAP. I luckily found something called The Odin Project before it became massively popular. I followed it to the tee and learned quite a bit, but I wasnāt really grasping a lot of what I learned. I figured I should start writing notes-- it worked for school so why not right? The only time I ever used the notes was to go back and laugh at what I was writing down. Sidetip: Donāt bother with notes, but write a small programming journal that you can come back to and laugh at, and to see how far youāve come. It will help a lot when you run into the inevitable imposter syndrome.
On to FreeCodeCamp! Around this time FCC started up and I discovered it off of reddit or Quincyās twitch stream (I donāt remember which). I joined solely for the chatroom, which I believe was slack back then. I started the challenges around March 2015, but was a member in chat before that. I discovered python and django around this time, and fell in love with it (Iām kind of a hopeless romantic). FCC chat was great, they helped me with all sorts of brick walls that Iād run into along the way. Node was picking up a lot of steam during this time, actually javascript was taking off in general. It was interesting being a part of FCC and watching their main language take off.
I hopped on the hype train once more and jumped RIGHT into node without knowing anything valuable about javascript (big mistake). Iāve always been interested in the backend, which is strange because technically Iām a front-end developer right now. I learned quite a bit and started making pretty neat applications with express. To be honest, I hated it at first coming from the ābatteries includedā django framework. I felt like I had to install a module for everything, whereas django came with it all bundled in. I built some large apps that rendered content to a view engine, some apiās, and some dog poop. All in all, I learned a lot and was in love with node. I still lacked that basic javascript knowledge (still do), and thats why some of the resources Iām going to recommend are NOT the ones that I used along the way. If I could go back and learn it all from scratch, I would have an entirely different game plan.
Before I do that though, lets talk about how I got the job. I am now a remote web developer in a medium sized company making a little above average pay for developers in my area. This is my FIRST job ever, and Iām technically not considered a junior (although I consider myself one). I applied for a position that required node/express, git, sass/less, and react being a benefit. Besides a little bit of freelance work on my resume and my unfinished degree (2/4 years), they liked my projects on github and my drive to learn. On to the interview I went. It was a technical interview and candidates had to sit down on one of their machines, pull down a git repo, make a few changes, and push it back up. Before the 20 minute technical part, we have 40 minutes to talk, and talk I did. I told my entire story, told them what I like to build and what problems I ran into along the way. I spoke with them for over 45 minutes (which only gave me 15 minutes to do the technical stuff). After that, it was time for the technical. I was nervous. Iāve never programmed on someone elseās machine before, let alone in front of 2 senior developers. I failed big time, completely choked. Ran out of time trying to remember how to utilize query parameters in express. One of the seniors came over and guided me through it. Was awesome having him over my shoulder and lead me through the process that I was struggling with. I said my goodbyes and went home devastated that something I once did without batting an eye, completely slipped my mind. As soon as I walked in the door, I sat down and created a new project. One goal in my mind, use every tool they used during the interview (express, jade/pug) and recreate what I saw so I never have to be in that situation again.
2 weeks later I got a call, they wanted to hire me. They said they loved my drive to learn and improve, and that they want to offer me a position to work with React. I just started learning react a few weeks before this interview for a side project and showed them some of it during the interview. I was terrible at it, literally knew nothing about front-end development besides basic jQuery, HTML, and CSS/SASS. But of course I accepted. I came this far and Iām not going to decline a position because I didnāt feel competent enough. I had a week to prepare and spent 50-60 hours learning React. I still suck at it, but Iām getting through it. Thatās a piece of my story. Missing a lot of minor details like html, css, some tip toeing around with Java, and some burnout.
Now on to the resources! Iām only going to link resources that are relevant to my job and what I used to get here.
For the love of god donāt make the same mistake I did. Forget frameworks and all that bologna, master javascript. You will pick up things like react, node, angular, vue, etc. so much faster if you actually understand whatās going on.
JAVASCRIPT
-
Anything from Kyle Simpson is great. I highly recommend YDKJS as a primary resource for advanced JS topics. You can find it on github for free.
-
He also has plenty of talks on FrontEndMasters that I heard are great. If youāre willing to pay, head on over there!
-
I didnāt really enjoy eloquent javascript, but if youāre into reading and just beginning with JS, thats a good place to start.
-
I also enjoyed TeamTreeHouseās full-stack JavaScript stack, wonāt link to that one because its a paid subscription based program, but check it out. If you arenāt pleased with TTH a lot of advanced developers at my work use CodeSchoolās javascript track.
-
Egghead is really good for modern javascript, but its very fast paced and some people donāt like that. Once you get some JS under your belt, you can tackle ES6 with egghead if youāre willing to pay. One of the many subscriptions Iād say is worth it once you become a bit advanced. Google egghead es6 course.
-
The one course that I can contribute most of my knowledge of JS to is JavaScript: Understanding The Weird Parts by Anthony Alicea. Another paid resource, but I know a lot of it is free on youtube if you do some googling. Can find the paid one on Udemy.
NODE/EXPRESS
-
Going to recommend another course by Anthony that is similar to the other one just with Node as the target. Learn and Understand Node on Udemy.
-
Colt Steele has an extensive and in depth node course that tackles a lot of different technologies. I believe it has HTML, CSS, git, Node, and more. I really enjoyed the node portion. On Udemy.
-
Im also going to recommend TeamTreeHouseās node course that is included in their full-stack JS track. I also recommend learning testing. There will be some juicy resources at the bottom for this type of stuff :).
REACT
-
Stephen Grider has two pretty exhaustive React courses on Udemy. The advanced one is a sequel to the first.
-
Egghead is great for React all around, but here is a phenomenal course for starting out if you need something fast paced. Google Egghead React Fundamentals.
-
The official react docs and tutorial are great, so check them out as well.
-
React Training is partnering with this react program that some redditors consider one of the best react tutorials:
EXTRA GOODIES:
-
This is an advanced javascript resource, but check it out it has a lot of valuable content/tutorials. Google Superherojs
-
An extensive guide to learning JavaScript that I have bookmarked:
-
PluralSightās course on building applications with React and Redux by Cory House is worth checking out.
-
FrontEndMasters has one amazing tutorial on React and Redux by Brian Holt (netflix dev), definitely give that a look if you want to pay the subscription. I highly recommend both FEM and egghead for bringing your javascript game a few steps higher, but they are not very beginner friendly.
I got a few PMās on gitter about what text editor/IDE I use for React and javascript in general. I used Atom for a while with some necessary extensions, now I am working with webstorm and vim primarily for any javascript work.
END
Iām not really proof reading, and im writing this while on lunch, so if there are any mistakes, dead links, etc. just let me know. Also If you have any questions post them here or you can find me in gitter! Have a good day fellas.
EDIT: Turns out I can only post 2 links as a new user. So I added some info on where to find the courses. If you have trouble finding something I mentioned, please let me know so I can link it to you!
EDIT 2: I will add some more resources when Iām done work for you guys!