Ask HN: Best way to get started with Web Development?
I'm a non-programmer, and would like to learn programming and build websites. What's the best online way to get started?
Thanks!
I'm a non-programmer, and would like to learn programming and build websites. What's the best online way to get started?
Thanks!
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
(please be sure to learn Programming and not a framework (like jquery, angular etc) most people learned a framework and are really bad programmers)
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...
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, 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.
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). 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/) 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:
There's a brief overview at:
https://cherrypc.com/todo/readme.txt
And you can grab the code at:
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/
Finally, learn by making stuff you want to make and have fun with it!
It's possibly the only reference you need for browser compatible JavaScript.
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.