a thoughtful web.
Good ideas and conversation. No ads, no tracking.   Login or Take a Tour!
comment
BT  ·  4354 days ago  ·  link  ·    ·  parent  ·  post: First question: Which language should I learn first?

For a website you'll need to have a good grasp of the frontend languages - HTML, javascript, and css - in addition to the chosen backend language. Modern and responsive sites are moving towards more and more client-side code; you might find yourself writing more javascript than backend code even. I would recommend, once you get to writing the frontend, that you try to start out using existing frameworks such as backbone.js, ember.js, or another which catches your fancy because they'll somewhat encourage good structrue/style.

I also don't recommend jumping into that mess to begin with because there's so many different pieces that you have to at least have a decent grasp on. Learning programming before beginning will make it a lot more manageable.

For the backend you'll find the "easiest" options are php, nodejs, python (with flask/django), or ruby (on rails). Nodejs will have the benefit that you can write javascript frontend and backend.

I'd recommend learning one of the above languages (ignoring the framework in parenthesis if applicable until after you have a grasp on the core language) first. Pick up a book for it. I won't recommend one for php because it's going out of style and, though still widely used, is probably the worst choice of those listed above. Nodejs is still relatively new and I don't have any particular recommendations because I haven't read any of sparse selection of books for it. For ruby, the Pragmatic Programmer's Guide is fairly good. Learn python the hard way is quite good, especially considering that it's free.

If you'd like to be in programming for the long term or have a better understanding of how things really work (which will, if not in obvious ways, translate to better code in subtle ways) then I'd recommend learning C before anything else with K&R. Even though C's an old language, spending time with it gives you a grasp of how things, including other languages, actually work. It introduces the basic syntax and core concepts of all the other languages I mentioned as well (excluding css/html which barely count as languages).

Sorry, that was rather long winded. The tl;dr is "Learn the backend language first, or C if you want to be a 'real programmer'. Learn the frontend stuff later on and, ideally, sort of as you go". All my own opinion etc etc of course.