5 ms·
I have kind of a tangential question. I have done back-end development, mostly with Python and Django. I know some basic HTML, CSS, and JavaScript but not much.
by smnrchrds 9y ago
I have kind of a tangential question. I have done back-end development, mostly with Python and Django. I know some basic HTML, CSS, and JavaScript but not much. A couple of years ago, when I started dabbling in web development, those were much smaller and less complex. You could go through a couple of resources (JavaScript: The Good Parts, jQuery documentations, etc.) and learn everything there was that you needed to know. Now, they have grown exponentially in complexity and scope, and there are so many choices and paradigms that I don't even know how to start.
For someone who has done back-end development, but is now trying to steer his career into front-end development, what resources would you suggest? What do I need to know, and which books and documentations do I need to read, before I can claim I am a front-end developer?
(I will be basically starting from zero. I cannot use the resources that build up on previous knowledge and assume you know everything that came before)
- tutfbhuf 9y agoTry to write a react app. Watch youtube tutorials and fork a react webpack starter kit on github, at least thats what i did.
- ChrisSD 9y agoI'm not in a position to be able to recommend beginner tutorials as I've been following along for many years. However, the advice I'd give is to learn the following: Firstly, make sure you're familiar with modern HTML and CSS. This is actually quite important even if you're concentrating on the JS side of things as they are closely related. Secondly, React would be the big framework to learn. It's not too complex if you follow some examples. I wouldn't worry too much about modern JS features to start with but if you do want to brush up then try: https://github.com/getify/You-Dont-Know-JS https://github.com/getify/You-Dont-Know-JS
- abritinthebay 9y agoWhen you say "front end development", what exactly do you mean? Because that will strongly influence what you need to learn. If you mean "JavaScript Programmer" then it'll be mostly JS focused, some tooling, some html and css but minor on those. If you mean a true frontend dev then you'll need a LOT more on CSS (Flexbox, Grids, box model, etc) and a bunch of UI/UX/HCI type reading in addition to learning in depth modern HTML and CSS and Javascript. If you mean "I want to learn HTML and CSS" then you'll just want the first half of the previous one. So I'm curious as to what you're looking for. I'd be happy to recommend reading lists, tooling, etc. I've been doing frontend work for 20 years (and now also do a lot of JS on the server) so I've got a grounding in this! Just let me know what you're looking to do and I'll help any way I can.
- smnrchrds 9y agoI had the "true frontend" case in mind: knowing sufficient HTML/CSS/JS that I can write complex client-side web applications by myself.
- armandososa 9y agoI'd say, to refresh your memory, try and rewrite some of your old code with ES6 syntax. I don't think you even need a transpiler since new versions of node and chrome have very good support for new additions to the syntax. And if you used jQuery before, try to use native APIs too. You'll end up with code that is almost unrecognizable but easier to read and …prettier? If you don't come to like the language then, you'll find the ecosystem of transpilers and bundlers and tooling unbearable.
- clay_to_n 9y agoI would agree that it looks very complex today. But it's not too challenging to learn. I would advise learning React (they have both create-react-app and Expo now to make the experience simpler) from the docs. When learning React, some things were alien at first, but after getting the basics down I realized writing JS applications with React felt much simpler than what I used to be doing. It resulted in shorter file lengths and cleaner code, and the concepts shouldn't feel too foreign if you have backend experience (it's probably harder if you learned JS through jQuery and webpage interactivity logic).