5 ms·
HTML, CSS, and JS. That said, it depends on what kind of web developer you want to be. Simple sites require simple skills. Complex sites demand complex skills.
by davelnewton 10y ago
HTML, CSS, and JS.
That said, it depends on what kind of web developer you want to be. Simple sites require simple skills. Complex sites demand complex skills.
Sites for some companies require skills that fit into that company's ecosystem.
If you're freelancing you'll also need to be able to do design and UX work, and communicate that design work to the client. This is harder than you may be aware of.
If you want a maintainable, highly-interactive site, you'll likely want to focus on a particular framework. Which one is largely arbitrary--they all have good and bad points. Despite current trends you can go a long way with a relatively small skillset, but again: it depends entirely on what the site requirements are.
It's also worth pointing out there's ES5 vs ES6. Most modern sites are using ES6 and transpiling to ES5 via Babel. This introduces a lot of complexity (e.g., Babel, Webpack, or equivalents). If you're doing a lot of JS dev you'll probably also want to look at npm or yarn and node so you can re-use JS libraries others have created.
Much of what you mention are back-end skills, e.g., if you want to save data off the browser. Sometimes that's unnecessary and you can keep all the data locally. There are many ways to do this.
If you want any sort of collaboration, access control, etc. you'll likely want something on the server side. That's when databases (RDBMS, NoSQL, etc) come in to play. You don't strictly need to know SQL, but you'll want to know at least the basics. E.g., Rails has a layer that abstracts simple SQL away, but when things go wrong, or you need something non-trivial, you'll be sad if you don't have a handle on it. The NoSQL story is similar: you can abstract it away, but you still need to understand how things work.
Back-end languages abound. If you want to keep the language-itself learning curve down you could stick with JS via NodeJS. But there's stuff to learn there as well, primarily its asynchronous nature (you'll have the same issues on the client side, but not necessarily as deep, depending on what you're doing). I'd argue that when starting out, NodeJS on the back end isn't the greatest choice, but that's preference. Rails has great tutorials and it's easy to stand something up--but comes with its own set of tradeoffs.
I could go on, but won't bother. This is an incredibly broad question. There are reasons why there are hundreds of books covering the answers.
- behnamoh 10y agoI must thank you for your thorough answer. It really helped. I guess there needs to be a book about WebDev roadmap. Most books I see on the Internet cover specific sets of skills, only few give a better big picture and a general understanding of state-of-the-art technologies used in modern websites.
- davelnewton 10y agoThe books that cover JS-heavy dev cover most of what you need on the client side. Back- and front-end dev is quite different; a book that covered them all is probably a bit heavy.