Ask HN: How does a beginner get started with web development in 2016?
I'm a student looking to create a reasonably simple web app for a side project, and quite frankly, I have no idea where the hell to start. I've developed an iOS app, and created a static personal web site, but when it comes to web app development, the whole ecosystem seems like an absolute mess. As a beginner, I'm wondering how one is meant to figure out what stack/languages to go with when a new one seems to pop up every other week? Should a beginner start with something out of fashion but established, like Ruby on Rails or PHP/HTML/CSS/JS, or should they try to hop into the soup of trendy frameworks and languages that is the MEAN stack, Go, Flask, LAMP, Meteor, Django, Ember, Backbone, React, etc. etc., and how does one choose between them?
13 comments
[ 3.1 ms ] story [ 52.8 ms ] threadAnother factor is what languages will get you a job (if you want a job). You can look at job ads, and the monthly whose hiring for an idea of that.
Also it depends where you live. Where I live C# and Java are more employable skills then Ruby and PHP. But if you want to do a lean startup kind of thing, using Ruby and PHP has it's advantages.
I think to start off with ignore npm, bower, webpack and all that jazz and just code up stuff up in HTML and JS. Add JQuery when you are ready. And then try a web framework - React would be a good bet when you are ready. Then once you are used to all that, adding other tools in to the equation will seem less daunting.
[1]: https://laravel.com/docs/5.3/homestead
If you want to make single page apps, then learn React. But you still need all the server-side stuff eventually, like a data store, web server, API service, and probably a web app stack too.
You should pick a language you feel comfortable with, then the stack. I would just use Rails, Django or ASP.NET Core 1.0, Sqlite as my DB, an ORM that comes with the stack, and start making traditional MVC pages with forms. use Bootstrap for the CSS.
https://youtube.com/watch?v=sBzRwzY7G-k
tl;dr:
- Learn Node, Django, or Ruby if you want to do the backend(personally, I HIGHLY recommend Django. It's extremely awesome and is the perfect way to start in my opinion).
- Learn HTML/CSS/JS on the front end, then Sass and jQuery, then, if you want to be an advanced frontend developer - Webpack, React, and Redux.
I think this is the optimal way to go right now.
If you just want to get a web-app up go for Meteor, it's probably the simplest fully integrated solution.
And a beginner is by definition not in a position to carry out informed research or make an expert decision. So just start.
Good luck.
For the frontend, yes, it's kind of a shit-show. That said, I don't think you can go wrong with React/Redux/ES6. (Use create-react-app to get started).
Above all, don't worry about not knowing where to start. Pick something established and still popular, and stick with it. Don't look back. Learn it, inside and out. Once you've got the concepts under your belt, migrating to something else is a million times easier.
I started by looking up how MVC frameworks function. Then made my own little framework in PHP. It was crappy, full of architecture/security/design/performance issues. But I learned a lot.
Then I picked up Symfony and Laravel (both PHP) with those you can make decent code, because they force you to.
After that I picked Node and Sails.js looked a lot like Laravel.