
Ask HN: Best way to get started with Web Development? - bryk
Howdy HN,<p>I&#x27;m a non-programmer, and would like to learn programming and build websites. What&#x27;s the best online way to get started?<p>Thanks!
======
aaavl2821
im also a non-programmer who has been learning programming and building
websites. ive spent just over a year learning programming part time, and even
with uber basic knowledge you can build useful stuff

i did CS50 on edx (harvard's intro CS program) which starts with programming
basics (in C language) then jumps into web dev with python and javascript. you
build 2 or 3 basic web apps as part of the class. after the class you have the
tools to really go off and running and make some "real", though basic, web
apps. it is a lot of work but a really well taught course with useful and
challenging problem sets. i really enjoyed the lectures and problem sets and
spent time on them that i otherwise could have spent having fun, just bc i
liked them

in parallel i also did a codeacademy tutorial on html / css and built some
basic static websites for friends. html / css isnt really programming but you
can make and deploy basic static websites that are actually useful, and it
gives you some experience hosting / deploying stuff on the web

just based on these 2 resources im working on building a moderately complex
(for a beginner) web app that hopefully will be open for testing this month,
am adding a vue front end to my blog as my first experiment with a modern JS
framework.

the next steps for me are 1) learning about deploying and maintaining small
web apps (ive just deployed static sites / JS to date) on heroku or aws or
something, really dont know whats best, 2) basics of security (sql injection,
xss, xsrf etc) and then ill be comfortable getting users on my app

learning about programming has been a lot of fun and led to some interesting
side projects

------
mtmail
[https://www.udemy.com/how-to-become-a-web-developer-from-
scr...](https://www.udemy.com/how-to-become-a-web-developer-from-scratch/)
$15, 25h of video. I admin that was one of the first websearch results for
"how to become a web developer" but the best way IMHO is to take such a
course/book/tutorial and jump in.

------
thepapanoob
just start... it doesnt matter with what you start...

(please be sure to learn Programming and not a framework (like jquery, angular
etc) most people learned a framework and are really bad programmers)

~~~
ogennadi
Seconding this.

If you read this introduction to programming in Racket [1] and it clicks with
you, then you'll probably have a good time learning programming and
subsequently, Web programming. Otherwise, you should probably just sign up for
a coding bootcamp for one-on-one mentoring.

[1]
[http://www.ccs.neu.edu/home/matthias/HtDP2e/part_preface.htm...](http://www.ccs.neu.edu/home/matthias/HtDP2e/part_preface.html)

------
xstartup
Please include the kind of websites you want to build.

------
oblib
The basics of web programming for websites would be HTML, CSS. Then you need
Javascript to do most of the fun stuff.

[https://www.w3schools.com](https://www.w3schools.com) is also a pretty good
place to begin with for all of those and a great resource to refer to for
quick answers for common questions. And I agree with "mtmail" that udemy.com
is a great way to learn as well.

Once you understand the basics of how html/css work you'll want add some
interactivity with Javascript. For example, create a couple buttons that call
a "function" to "hide/show" an element on a web page. Typically your first
attempt might be an alert box with a border and the message "Hello World!".

From there you're really "off to the races" and my advice is to start making
something (start simple) and learn on a "want/need to know" basis.

Google searches, [https://stackoverflow.com](https://stackoverflow.com), and
w3schools.com are all great resources for finding answers about how to do
stuff so don't spend a lot of time banging your head on little syntax issues
or "how to do something", do a search and find the answer, implement it, learn
from it, and move on.

And I also agree that, especially to begin with, you should stay away from
"Frameworks" like "Angular" and "React". But you can learn a lot by looking
into them and a great place to do that is
[https://ToDoMVC.com](https://ToDoMVC.com).

But I do believe it's worth while looking into what you can do with jQuery.
jQuery is not really a "framework", it's more a "library" of functions that
make it easy to do common things you'll want to do. Lots of them can be done
with plain old javascript but jQuery is still widely used and offers a lot.
And it's easy to find answers to almost any question you might have about how
do to stuff at Stackoverflow.

The same can be said for "Bootstrap"
([http://getbootstrap.com](http://getbootstrap.com)). With this you can easily
make a "Reactive" website that looks great on desktop PCs, tablets, and
phones, and it has a ton of built-in features that you're going to want to use
and top notch documentation.

After you get familiar with those you'll want to look into server side
programming to handle things like forms and connecting to databases. FWIW, I
never used PHP and MySQL. I just didn't like the way they worked. Nowadays you
have some great alternatives like CouchDB/PouchDB for database chores and
javascript templates engines like "Mustache.js"
([https://github.com/janl/mustache.js/](https://github.com/janl/mustache.js/))
to format and display data.

I made a fairly simple "Todo" app using this approach that you can take a look
at and hack on.

You can play with it at:

[https://cherrypc.com/todo/](https://cherrypc.com/todo/)

There's a brief overview at:

[https://cherrypc.com/todo/readme.txt](https://cherrypc.com/todo/readme.txt)

And you can grab the code at:

[https://cherrypc.com/todo.zip](https://cherrypc.com/todo.zip).

You don't need a web server to use it, just open the index.html file in your
web browser.

You can also play with a free suite of business apps I've made using those
tools at [https://cherrypc.com/app/](https://cherrypc.com/app/)

Finally, learn by making stuff you want to make and have fun with it!

~~~
OtterCoder
Please don't use w3schools. Its information is unreliable at best. The closest
thing out there to a user's manual for the modern web is
[https://developer.mozilla.org](https://developer.mozilla.org)

It's possibly the only reference you need for browser compatible JavaScript.

~~~
oblib
Yeah, I probably should've mentioned mozilla, I go there a lot too.

I don't think w3schools is "unreliable" per se. I don't use for learning as
much as a reference though and move on fast if I don't like what I find there.

