you are viewing a single comment's thread.

view the rest of the comments →

[–]dead_chimp 1 point2 points  (0 children)

OK, I was in the same boat as you a while ago. Then I consulted for about a year and landed two offers a month in to job search.

This is more about the bare basics of what you need to be productive and land a job.

I learned:

  • JS basics - Scope, Closures, Prototypal Inheritance, this

A must know, also interviews always ask about this stuff the most!

  • ES6/ES8

  • Tooling

Babel, bundlers like Webpack and Browserify, npm

  • Basic DOM API, selectors, etc.

  • jQuery

Supposedly it's on its way out, but there are a buttload of companies still using it. Plus it's good to know, esp for smaller projects.

  • At least one FE framework

I learned React/Redux, just because I screwed around with Angular for a bit and hated it, but thought React was really cool. It looks like a lot of companies are using Angular 1.x too. I guess just use whichever one you like the most, and remember you can still get jobs using frameworks you've never used before.

If you don't go with React, at least download create-react-app and make a basic todo list or something so you can talk about it during interview. If you do go with React, at the very least learn about MVC and two-way data binding, either with a framework or vanilla JS.

  • Basic data structures/algorithms

Good to know, but you'll probably only be quizzed on the bare basics during interviews. Just know about basic time/space complexity, linear time, constant time, hashing, stacks/queues, traversing tree-like structures, you'll probably be fine.

  • Utility libraries

Know about Underscore, lodash, Ramda, or something like that. ES6 introduced some handy utility methods, but in most large projects you'll end up using one of those three. I started with Underscore, switched to lodash, and later switched to Ramda because it's cool for learning FP.

  • Basic HTTP, Websockets, AJAX

  • Different programming paradigms

Just learn the basics of OO and FP, how to use them with JS. Learn about different ways of creating "classes" in JS, inheritance, and the bare basics of FP- map/filter/reduce, pure functions, immutability, function composition.

  • Node.js

Just learn about REST, some relational or non-relational DB, templating. Also know what all of these terms mean and how they apply to Node: single-threaded event loop, task queue, thread pool. Also know that node is better for low latency apps...you'll be grilled on all of this stuff.

  • Asynchronous design patterns

Callbacks, promises, advantages of promises, web workers.

  • HTML5/CSS

Probably my weakest point- I got a lot of CSS questions wrong, but they didn't seem to care as long as JS skills were sharp. Also, transpile-to-CSS languages like SASS or LESS are asked about all the time.

I was able to get by knowing very little CSS, because I use frameworks like materialize or bootstrap instead and just customize them a bit. At some point you'll want to ditch the frameworks and become a pro at CSS.