
Ask HN: How does a beginner get started with web development in 2016? - clfougner
I&#x27;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&#x27;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&#x27;m wondering how one is meant to figure out what stack&#x2F;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&#x2F;HTML&#x2F;CSS&#x2F;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?
======
tylercubell
As a beginner don't go for the bleeding edge. Look for something stable with
thorough documentation and an active community. You might want to check out
Laravel Homestead [1]. All the batteries are included so you can jump right in
and start developing your web app.

[1]:
[https://laravel.com/docs/5.3/homestead](https://laravel.com/docs/5.3/homestead)

------
rayalez
Watch this brilliant video, I think the author nailed it:

[https://youtube.com/watch?v=sBzRwzY7G-k](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.

~~~
clfougner
Thanks for the great video! Between the three you recommended I ended up going
with Django, largely because I've been meaning to get a grasp on Python for a
while (I do a fair amount of bioinformatics work in R, and Python should be a
useful complement for statistics tasks). Also, the Django project website has
great tutorials for beginners to follow!

------
peller
Amongst the backend options, in terms of the concepts they employ, they're all
more-or-less very similar. For that reason, especially as a beginner, I'd
stick with a (micro)framework that's written in a language you're familiar
with. If you're not familiar with any backend languages yet, then choose
something that runs on Node (JavaScript). The point is, you want to reduce the
number of technologies you're learning at once. Secondly, choose the
leading/biggest (micro)framework of your desired language. The community will
be the strongest (help is easier to find), the documentation is typically the
best, there's more supporting libraries, etc. It just makes your life easier.

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.

------
Raed667
(Personal story, by no means a reference)

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.

------
euroclydon
If you want to learn the ins and outs of creating a full web application with
a database, users and forms, then choose RoR or Django. I would go with RoR
since I think it has more mind-share, but Django is fine. Of course, RoR,
might just confuse you, among the Ruby syntax, Coffee script, all the magic,
it might be difficult to learn. But, if you want the full-stack skills, then
jump in, and you'll be part of the largest full-stack ecosystem. Whether it's
"fashionable" or not seems kind of silly. I guess all kinds of isomorphic JS
stacks are fashionable now...

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.

------
bbcbasic
There are a couple ways to choose. One is to choose something that feels right
to you. If you try PHP, Ruby, C#, Java etc. which do you find the most
intuitive?

Another 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.

------
brudgers
It depends on the app. If it can be started using HTML and JavaScript then
there's no reason to learn a framework first and by 'first' I mean second
because learning the framework comes after choosing the framework and by
'second' I mean third because choosing a framework comes after researching
frameworks and getting a handle on the confusion.

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.

------
richerlariviere
Hi, I am a student but with a bit more experience with Web development. What I
did to improve my skills was to progressively build my own "project
structure". And as I learn new concepts, I refactor my code to include better
concepts/libraries. It was in PHP.

------
kamillarott
What is it that you want to achieve? if possible, find a mentor. There is so
much more to the game than just writing the code.
[http://mycustomessaywriters.org/](http://mycustomessaywriters.org/)

------
Calist0
Start by learning HTML and CSS. Then if you want to learn JS, learn plain JS
and learn it well. Forget about frameworks and libraries for now or you'll
confuse yourself.

------
k__
Depends on what you want to do.

If you just want to get a web-app up go for Meteor, it's probably the simplest
fully integrated solution.

