This is a thread for people who want to learn programming, whether they are non-programmers, beginners, or advanced programmers who want to learn more. If you would like to discuss programming with other people from the LW community, this is the right place.
While programming is not a central topic of this website, it is related to many ideas discussed here. About a third of LW users described their profession as "Computers" in the recent survey. Some users have expressed desire to learn programming. Some users have recommended learning programming to others. There are many other websites (or books, etc.) for learning programming, but talking with the people you already know, following our traditions of rational discourse, could be an advantage.
So this is the experiment. Unlike Open Thread, it has a specific topic, and the beginners are encouraged to ask their programming questions, even if they are completely unrelated to the usual LW topics. Especially the open-ended questions like "how...?" and "why...?". (Maybe we are already strong enough to survive even the mindkilling questions like "which programming language is the best?".)
Here are some older LW articles about programming:
- Why learning programming is a great idea even if you'd never want to code for a living
- I want to learn programming
- Are Functional languages the future of programming?
- Colonization models: a programming tutorial;a tutorial on computational Bayesian inference
- Khan Academy: Introduction to programming and computer science
- Free Tutoring in Math/Programming
- More intuitive programming languages
- Learn to code
- What is the best programming language?
- Computer Science and Programming: Links and Resources
- Advice On Getting A Software Job
- Checking for the Programming Gear
Here are some other resources:
- Computer Science @ Khan Academy
- Project Euler - problems to test your programming skills
- Stack Overflow - for specific questions
...and there are also many links within the articles.
And here is the place for your questions:
In ascending order of resolution:
There are a lot of quicker ways to set up a website -a lot of hosting solutions come with one sort of web designer, or another; you can be up&running with a general blogger account in 2 minutes. If you have a specific end-goal (eg. moving inventory) in mind, this'll give you disproportionally quicker bang for your time.
Depending on what your goals are, the primary challenges of websites might not be the technical details, but rather clear communication & value presentation. If you have a goal, articulate it in writing first.
With that said...
Knowing HTML allows you to create static websites; CSS gives you fine-grained control over presentation; Javascript (and specifically, JQuery) allows you to create client-side (in-browser) interactions. You can get through these without the understanding of CS basics (for JS specifically, there are a lot of online collections for scripts, etc)
Web-specific domain languages (php, python, ruby) gives you server-side capabilities (storing & querying data, generating dynamic pages, business logic). More assembly required, and this needs some CS fundamentals.
In short: it depends on whether you see this website&programming as an instrumental goal towards something larger, or as a terminal goal towards "being a better website creator". Hope this makes sense.
Learning programming takes years.
A simple website could be done in an afternoon by someone who already knows the right tools if the website only needs the most standard functionality (what exactly that is depends on the tool), and a free design is acceptable.
Even for someone who wants a website and wants to learn programming, the optimal way is to pay someone else to do the website, then ignore the whole website-making stuff, and focus on programming in general for a few months or years.