
Ask HN: How do I get up to date as a frontend developer in 2017? - aphextron
I&#x27;ve been dealing with life and haven&#x27;t had a job or written a line of code in over a year, but am now ready to get back into the job market. What are some need to know things in terms of frameworks and workflow that I should be aware of?
======
binarynate
My interest was piqued when I first misread the question as _How do I get a
date as a frontend developer in 2017?_

~~~
planteen
Best advice on that is probably not to talk about fronted development when you
first meet someone you are interested in dating!

~~~
alashley
Counterpoint: [http://javascriptissexy.com](http://javascriptissexy.com)

~~~
robertlagrant
I remember Meteor!

------
Todd
I would pick a set of technologies that you want to learn. This will require a
bit of research, of course. It's a bit of a personal decision, based on your
predilections and your past experience.

There is a ton of activity in the space, of course. I would first glance at
the ECMAScript efforts of late (ES6 and ES7 in particular). You'll probably
need to use Node.js, since it tends to be the center point of JS development,
regardless of the tools and frameworks you choose.

The first piece is your build tool. Grunt and Gulp are the two top build
tools. Gulp is more recent and seems to have more uptake. If you haven't
written a build script (e.g., gulpfile.js) I recommend building one up from
scratch rather than using someone else's. You could use others' for examples
of what to do, but build your own from scratch according to your needs, as you
go. You'll learn more and understand the whole thing that way.

The next choice is whether to use a transpiler or not. The two biggies are
Babel (ES6 transpilation to ES5 or ES3) and TypeScript. You can skip this step
at first, but it will be a foundational aspect to your build, so don't wait
too long. If you do skip it, loop back once you've made your other choices.

The final big choice is framework. The big ones right now are React and
Angular 2. There are many others, of course (Vue, Inferno, ...). You might try
a few efforts here to learn about them if you don't have a clear initial
default choice.

There are secondary choices depending on which main framework you choose. For
example, if you use React, you will likely need a client-side store. Flux used
to be the default. Now it's likely to be Redux or, more recently, MobX.

There hasn't been a better time to be a JS dev. There's still a lot of churn,
but there's also more stability than there has been in the past few years. You
can stick with technology choices for a year or two without major disruption
if you make course corrections. Good luck!

~~~
wildrhythms
Awesome suggestions, and +1 for TypeScript! I've been using TS in some of my
small projects, and combined with VS Code[1] it's a great experience for me.

I just wanted to add that I think a good JS IDE is worth having. I mentioned
VS Code before which I think is great, but I'll also suggest JetBrains'
WebStorm[2] which has excellent JS support (and TS support), but in my opinion
VS Code is getting to be just as good.

[1] [https://code.visualstudio.com/](https://code.visualstudio.com/)

[2] [https://www.jetbrains.com/webstorm/](https://www.jetbrains.com/webstorm/)

~~~
finaliteration
Another +1 for TypeScript. I've been doing almost all of my development in it
using VS Code for over six months now and it's been the most enjoyable JS-
related experience I've had to date.

------
contingencies
Not that much has changed that is super significant.

IMHO to be a good frontend developer you need decent comprehension of
JS/CSS/HTML. Some framework experience. Some backend / upload knowledge. Know
_git_. Not an asshole to work with.

To be a better frontend developer you need human skills, strong raw JS, the
ability to move between frameworks without whinging, and solid knowledge of
cross-platform desktop/phone/tablet/TV development. Can happily code a
frontend direct from either an API spec or a vague informal concept. Have
written and used automated tests with _git_.

To be an awesome frontend developer you need all of the above but are
comfortable doing web as well as multi-platform native development, can run
docker or another toolchain for rapid iteration and integration with backend
developers and QA teams, have great people skills, have executed multiple
projects where security/reliability/offline mode/multilingual design were
front and center, and have learned basic lessons about cutting corners by
maintaining at least one or two nontrivial projects long term.

~~~
xiaoma
Hmm... I think you're over-emphasizing the people skills. Possibly the best
front-end dev I've ever met was clearly on the aspergers spectrum. He wasn't
good with people at all, but he was obscenely productive and probably the only
true lynchpin at the company other than the CEO.

~~~
disillusion
It depends on the situation, I think.

As a frontend developer who's in concurrent agile, multidisciplinary projects,
the people skills and the ability to connect development with design are an
absolute requirement. Being able to float in between the disciplines, catching
potential problems and iterating together to make the end result more then the
sum of its parts is invaluable. A strictly development scrum with a heavy
development lead demands less people skills of its developers.

In my opinion, a good frontend developer writes high quality code and works
well with other developers. A great frontend developer also works well with
other disciplines and enables them to put more ambition in a project, while
minimizing the extra amount of work this generates.

------
dvcc
I think everyone will need a bit more context around what you do know prior to
answering the question. Front-end development has _somewhat_ quieted down from
the crazy pace of the past few years -- or maybe I just settled into a stack
and have given up, who knows!

But a lot of the major players (e.g, Webpack/React/Angular[!2]/TypeScript/etc)
have all been around for more than a year, so context is important.

~~~
GFischer
Absolutely agree with the parent comment.

That said, you can look at stuff like the HN who's hiring trends, or
StackOverflow trends:

[http://www.ryan-williams.net/hacker-news-hiring-
trends/2016/...](http://www.ryan-williams.net/hacker-news-hiring-
trends/2016/june.html)

[http://stackoverflow.com/research/developer-
survey-2016](http://stackoverflow.com/research/developer-survey-2016)

Personally I'd invest in mastering React, but YMMV.

------
camus2
> What are some need to know things in terms of frameworks and workflow that I
> should be aware of?

Strange times, isn't it? 10 years ago, a front end job would require a
comprehensive understanding of CSS, the DOM and JS. Now it's all about
framework X and Z, build tool A or B, Typescript and what not, like these
tools are so complex one has to be a specialist in these tools because they
can't be learn in a few days.

Meanwhile, micro-services are all at rage on the server and back-end
developers deemed big frameworks like Rails,Spring,Symfony and co an anti-
pattern because complexity is bad (Go)? But stupidly complex tools and
frameworks on the client are OK?

~~~
Stoids
Indeed, it's almost as if web application expectations and requirements have
gotten significantly more complex in 10 years time.

Microservices don't reduce technical complexity. If anything they add to it.
10 years ago I didn't have to worry about container orchestration and all that
comes with that. New problems present new solutions.

I definitely recognize that the transpilation era of JavaScript feels
incredibly bloated. It is exacerbated by the overlap with a lot of the
tooling. It's exponentially worse when you try to understand solutions to
problems you don't have yet.

~~~
gt2
In your opinion, what are a few "new problems" that require the new solutions
like microservices and container orchestration?

------
sergiotapia
Whatever you do learn ES6. It's the Javascript used today by most startups.
Try to learn how to manipulate the DOM without jQuery. Learn React. Learn how
to setup a project using Webpack.

~~~
nnd
What about css and cool animations? Parallax is not cool anymore?

~~~
sergiotapia
Nope

------
PascLeRasc
I'm also looking to brush up on front-end; can anyone comment on if Bootstrap
is still important?

~~~
ksenzee
For non-front-end developers, it's an important and useful tool, because it
lets us build things without having to know CSS. But none of the experienced
front-end developers I've ever worked with will use it, and most of them wince
slightly when its name is mentioned.

~~~
BjoernKW
Bootstrap is a GUI framework for the web. It's like WPF or JavaFX but for
HTML5 and JavaScript.

I wouldn't want to build a marketing website with Bootstrap but it provides
web applications with a consistent look and feel.

------
Philomath
I think [https://egghead.io](https://egghead.io) is a great place to learn the
latest of frontend development.

There's some free stuff out there like Dan Abramov's videos on react Redux (he
is the creator of Redux) that will really help you understand the concept of
stores, actions and reducers, but you'll also find videos on Angular etc.

Also I would suggest you learn stuff by doing small projects. Reading only has
never worked for me as well as getting hands dirty.

------
jdphil
I've found this useful recently: [https://blog.petrovic.gr/2016/12/frontend-
development-a-lear...](https://blog.petrovic.gr/2016/12/frontend-development-
a-learning-guide/)

------
imauld
[https://hackernoon.com/how-it-feels-to-learn-javascript-
in-2...](https://hackernoon.com/how-it-feels-to-learn-javascript-
in-2016-d3a717dd577f)

------
rootme
Just do nested tables.

