Ask HN: For someone starting to learn webdev in 2018, where should they start?

6 points by tiuPapa ↗ HN
For a newbie programmer, without a degree, webdev seems to be the easiest field to break into. So with that in mind, what would you recommend said newbie to learn? Is starting with python-django or ruby-ror combo still good enough or are they considered outdated? What about JS with koa-express? Is Go preferred over JS? On the frontend, react or vue or just html/css is good enough?

5 comments

[ 5.5 ms ] story [ 18.4 ms ] thread
Go I have never seen in the industry. Go seems to be enticing idea at some (perhaps backend developers) who want clean architecture and security is one of their top priorities. Not saying it should not be in frontend dev. I would take Javascript as the basic recipe - especially so called vanilla JS, as Javascript is almost always in the core of any frameworks. For absolute beginning, knowing html and css is imperative still - since this is also like the vanilla JS issue: no matter what you put on top of the web, it turns out as html and css (and Javascript :)
There are many different paths to success. But considering the first sentence, just go with JS.

PyRu is/are still good enough, and Go is too, but considering the first sentence, just go with JS.

Python backend is easy to learn. JS for front end is critical. For JavaScript, make your life easier- start at ES6.

For Python for backend start super simple for small projects. Bottle.py or CherryPy.

Templating is a thing of the past, use Angular or ReactJS for front end development and use async calls for all data loads.

That's what I'd suggest. Python is easy to learn, start with simple things like bottle.py to to make a simple restful service. JavaScript can be a mess if done wrong, but ES6 is a game changer. I like both Angular and React, I find Angular 1.x super easy to use and learn but never use it in produciton.

If you're starting out, that's a quick dev cycle and easy to learn.

HTML, CSS, JavaScript still are the foundation of web development. So, I'd start with that. Which framework you choose after that pretty much depends on personal preference and on what's used in projects you work on. You can't really go wrong with either Angular, React or Vue.js.

For most applications you will need some sort of data-driven back-end. SQL databases are the most widely used data storage option. Learning SQL therefore will be extremely beneficial.

As for back-end / server technologies and languages again this depends on your background and your environment. Java / Spring / Spring Boot is a very solid option, as are Ruby / Rails or Python / Django.

For the web, HTML + CSS + Javascript is the basic language. Any other language and framework relies on them. There's no avoiding HTML and CSS for creating web artifacts. A person can avoid Javascript for a while, but reasonably easy tasks will turn out to be harder.

These days, my recommendation for starting with HTML + CSS + Javascript would be https://freecodecamp.org It is not perfect and is not for everyone. But it is a reasonable starting point and exposes people to the inherent complexity of web development in a measured and structured way.

Good luck.