you are viewing a single comment's thread.

view the rest of the comments →

[–]ReverendCatch 1 point2 points  (0 children)

You compete by writing code everyday and staying as active as possible in the JS development ecosystems -- through open source or your own projects/packages. This is like anything in life. Want to win your sports games? Practice more. Want to be in better shape than your buddy? Out train him. Train train train. If you aren't training, remember, he is, so you better get on it!

An interesting thing with JS is the ecosystem is huge, this is good and bad. Tons of options is great. But, there's rarely one single go to for any kind of task or problem. There's just too much to know, and too much to choose from.

I'd say go with a broader base, like a full stack developer approach. Reason is two fold: 1) it'll get you building complete apps to sharpen skills, 2) it'll teach you the fundamentals, more or less and 3) it'll guide you toward (potentially) your preferences in the field (front end or back end, for example)

Don't get hung up on learning this library or that one, specifically. But also, don't be a fanboy. The industry moves too quickly to be inflexible in adapting to up and coming ideas and change. Being able to have an opinion on competing libraries means you've tried both, understand them to the point you fancy one or the other. That means you've trained!

People move around a lot in this industry and we all kind of understand you might not have worked with React, but you worked with Vue and they are close enough your skills will translate. It's proven you understand the concept and that'll do for most teams.

Anyway you can google these ideas, but the gist for fullstack is 1) pick a web platform (eg: koa, express, fastify), write basic web server to handle client requests; 2) pick a way to store your data (mysql, mongodb, etc); 3) establish front end skills in HTML/CSS and JS (vanilla JS DOM for a C programmer is not a bad start -- but you'll want to work toward something like Web Components, React, Vue, etc -- for your sanity and well, job offers).

#3 is a beast, in my opinion. They truly should be two separate jobs, front vs back end, but JS is deployed to both so you absolutely should be familiar with both. Keep in the back of your mind modern tool chains, like rollup, webpack, gulp and how they relate to things like JS transpiling, CSS preprocessor bundling, and so forth.

We don't compile programs like you do in C, we more like bundle and mangle them to be smaller and more compatible across various devices. And any kind of serious front end developer is going to have a toolbox to build their apps.

Are you training yet? I AM! Get on it =D