6 ms·
Ask HN: How do I get up to date as a frontend developer in 2017?
I've been dealing with life and haven'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?
- dvcc 10y agoI 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 10y agoAbsolutely 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/june.html http://www.ryan-williams.net/hacker-news-hiring-trends/2016/... http://stackoverflow.com/research/developer-survey-2016 http://stackoverflow.com/research/developer-survey-2016 Personally I'd invest in mastering React, but YMMV.
- collyw 10y agoWebpack/React/Angular? It's Vue.js these days.
- PascLeRasc 10y agoI'm also looking to brush up on front-end; can anyone comment on if Bootstrap is still important?
- rplittle 10y agoIn my opinion, the best reason to use it would be if you don't have experience or knowledge with any other CSS frameworks. I think getting the experience in understanding how a framework or library works is more valuable than the syntax or semantics of the framework itself. This way, you are prepared to switch to another framework if warranted (or create your own).
- ksenzee 10y agoFor 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.
- kerryritter 10y agoAll the teams I've been a part of use Bootstrap, including a lot of experienced front-end devs. Using SASS customization with Bootstrap really lets you hammer out a unique toolkit of common UI elements. However, my context is in web apps, not web sites. I could see strong reasoning for not bothering with Bootstrap for sites.
- BjoernKW 10y agoBootstrap 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.
- joeyspn 10y agoStill used, but I'd rather go with pure flexbox + lightweight UI libs (for buttons, etc). Once you learn it, you can also use it to layout native mobile apps with react-native, or hybrid with ionic... https://facebook.github.io/react-native/docs/flexbox.html https://facebook.github.io/react-native/docs/flexbox.html
- camus2 10y ago> 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 10y agoIndeed, 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 10y agoIn your opinion, what are a few "new problems" that require the new solutions like microservices and container orchestration?
- binarynate 10y agoMy interest was piqued when I first misread the question as How do I get a date as a frontend developer in 2017?
- planteen 10y agoBest advice on that is probably not to talk about fronted development when you first meet someone you are interested in dating!
- alashley 10y agoCounterpoint: http://javascriptissexy.com http://javascriptissexy.com
- robertlagrant 10y agoI remember Meteor!
- Todd 10y agoI 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 10y agoAwesome 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/
- sergiotapia 10y agoWhatever 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 10y agoWhat about css and cool animations? Parallax is not cool anymore?
- sergiotapia 10y agoNope
- contingencies 10y agoNot 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 10y agoHmm... 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 10y agoIt 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.
- imauld 10y agohttps://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f https://hackernoon.com/how-it-feels-to-learn-javascript-in-2...
- rootme 10y agoJust do nested tables.
- Philomath 10y agoI 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 10y agoI've found this useful recently: https://blog.petrovic.gr/2016/12/frontend-development-a-learning-guide/ https://blog.petrovic.gr/2016/12/frontend-development-a-lear...