Live data from Hacker News

How can I learn to program?

news.ycombinator.com

31–40 of 77 posts

Re: How can I learn to program?

#31
First off, keep things simple. Don't dive into Linux, Emacs/VIM, etc. right away if you don't already know them. Your goal is to learn programming.

Next, you probably have an idea about where you want to be with your business. Is it mobile? Is it web? I'll assume the latter, because even if it's the former, you're going to need both eventually.

Even though it's not programming, you need to know HTML/CSS. Start there, even though it's not programming. You can get your feet wet editing and you can add programming shortly.

Start with a simple but capable editor. If you're on Windows, start with Komodo Edit or Notepad++. On Mac, something like TextMate. You can always 'upgrade' to Emacs/VIM later.

Once you're comfortable with basic HTML, you'll probably want to make it do things. You can start with JavaScript. This makes programming exercises simple and quick. Just refresh the page.

Once you decide you need a bigger challenge, then a larger world of choices becomes available: what server side language (Python and C# are two options), what server (Linux is pretty standard), what web server (Apache or Nginx are good), what database (Postgres, MySQL, MongoDB, etc...) are some of the many choices to be made.

I would first survey the above and decide what you think you might need, then pick the language based on that. Let's say you pick Python. Start playing with it from the command line or with your editor like you did with HTML. Once you understand the basics, then pick a web framework (like Django) and start making it produce the HTML that you now understand.

It's a stepwise process. The goal is to pick off small, achievable pieces, and then use them to build something more substantial. The core of it all, though, is programming. Programming is how you make the gears turn the way you want them to. Eventually, everything will start making sense and you'll just add to your repertoire as the needs arise.

Re: How can I learn to program?

#33
1. Google.

2. Search for: "start programming"|"learn to program" site:stackoverflow.com

3. Read:

- http://stackoverflow.com/questions/4769/what-is-the-easiest-...

- http://stackoverflow.com/questions/1858064/so-my-girlfriend-...

- http://stackoverflow.com/questions/335063/whats-the-easiest-...

Re: How can I learn to program?

#34
Solve a specific real-world problem you have by writing a program to do it. Start with Python or Ruby. Start on one platform (Windows, Mac, Linux). Start small and get bigger by solving bigger problems as you progress.

Then, write a program that works on all major platforms with little or no modifications. Learn C++ or C. Learn how to use a debugger, how to distribute code to end-users, etc. While doing this, learn data structures, big O notation and why they are important when you need to scale. Learn how to handle threaded data safely and Unicode input too.

Just start coding ASAP to solve "real-world" problems (not book exercises), the rest will come as you progress.

Edit: Spelling

Re: How can I learn to program?

#35
post #10

Set up a Linux computer (Ubuntu Linux is the easiest to set up), and spend the summer learning to program in Python. Here are some of the best online Python tutorials, including a link to videos and course material for MIT's introductory computer science course, which uses Python: http://www.quora.com/How-can-I-learn-to-program-in-Python/an... Build something that you want to use so it will be meaningful to you. Do y…

I agree with most of your points, except...

Use gedit as your text editor. It's the default GUI text editor in the Ubuntu operating system, and works well enough for programming, and is significantly easier than Emacs for someone just starting out programming.

I'd also suggest MySQL instead of PostgreSQL, for the same reasons (works well enough, significantly easier for beginners).

Re: How can I learn to program?

#36
As someone who started out last summer I can tell you what I did.

I am quite a lot older than you and I have a child, a company and a girlfriend to manage, so you can probably pick it up much faster than me. Basically I have been forced to take an hour here and an hour there, sometimes more.

I have worked on it a while now but http://www.blueskycouncil.com is my idea of a idea generation website. still lot's of little mistakes but again it was actually having a goal in mind that helped me know how far in the process I was.

So here is what I have done.

1. Sign up for Lynda.com

2. Watch php/mysql for beginners twice, just to get an understanding of the scope that I am about to venture into.

3. Start programming with an idea in mind.

4. Use IRC, StackOverflow and friends

That should take you plenty of the way.

I can also recommend reading books like Code Complete to get a sense of some of the programming issues and paradigms to think of.

Re: How can I learn to program?

#37
The best way to learn programming conceptually is to read Structure and Interpretation of Computer Programs, by Abelson and Sussman. The book is available free on-line, along with video lectures.

- http://mitpress.mit.edu/sicp/ - http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...

Once you have mastered this material, learning the specialization of web development shouldn't take more than a week or two of intense study.

Plus, as a bizdev person, you will earn incredible street cred with programmers. MBAs with backgrounds in Lisp hacking don't come along every day.

Re: How can I learn to program?

#38
The best advice I can give you (by which I will also be echoing others), try to apply your knowledge as soon as you can.

Don't just learn to learn, because you will forget more than you remember.

Re: How can I learn to program?

#39

A friend of mine is in the same boat. I forwarded him all the usual suspects, from "Why's Poignant Guide to Ruby", to "Learn Python the Hard Way", to "The Schemer's Guide". But none quite worked for him. He finally found and settled on Harvard's intro CS course, CS50: https://www.cs50.net/

This is the route that I went... it starts at the beginning a teaches a lot of simple principles of programming. David Malan is engaging & fun to learn from, you can even follow along in real time (during fall & spring & interact with other people taking the classes remotely). I followed up with www.cs75.tv to learn some additional PHP, SQL, XML, CSS. I've been a marketing/product/seo/pr guy for 8 years and taking these courses have provided me with a much deeper understanding and appreciation of what the limitations and capabilities are. This has been invaluable when working with talented programmers who at least appreciate that I'm interested enough in what they're doing to learn the basics myself... sort of a mutual respect thing.

Re: How can I learn to program?

#40
post #10

Set up a Linux computer (Ubuntu Linux is the easiest to set up), and spend the summer learning to program in Python. Here are some of the best online Python tutorials, including a link to videos and course material for MIT's introductory computer science course, which uses Python: http://www.quora.com/How-can-I-learn-to-program-in-Python/an... Build something that you want to use so it will be meaningful to you. Do y…

I agree 100% about Ubuntu, Python and PostgreSQL. They're an excellent tool set. You'll want to learn how to configure PostgreSQL. Go to the project website. The manuals are quite good.
Post reply on HN