Live data from Hacker News

How can I learn to program?

news.ycombinator.com

61–70 of 77 posts

Re: How can I learn to program?

#61
> One of our business coaches, a successful entrepreneur himself, suggested that the programming can be done with little problems

He's sort of a maroon. You can figure it out and be 'functionally illiterate' fairly quickly with some ingenuity and hard work. You'll produce some hardcore drek that will need to be cleaned up by a professional at some point though (maybe you after a few years of programming :)).

Python is the current fad language for introductory programming. I am not a huge fan, but there's lots of gentle reference material, which is probably more important.

Re: How can I learn to program?

#62
Learning the basics would be a smart move. Just don't get a big head once you've learned a little, because the gap between "knows enough to be dangerous" and "truly competent" is vast.

The strategy is simple. Stay focused on practical problems at all times. Pick some real thing you would like to achieve, and bang away at it, learning as you go. When you get stuck, look for help on places like Stack Overflow.

Expect to suck at it, and expect to spend countless hours baffled by things you can't figure out. There's no skipping this process. Most people find it too painful, which is why most people never learn to program.

It doesn't really matter what projects you pick, so long as they're relevant to you. If they turn out to be "too difficult" you'll learn just as much, and be able to pick a smarter project next time.

Re: How can I learn to program?

#63
post #48

Don't start programming at all. I am going to be brutally honest, programming is not for everyone. The fact you stated you want to start programming and you're entrepreneur is a flag for 'someone who wants to learn to program in order to become some millionaire'. These sorts of people are not successful in the field. Worse, we have bad enough people in CS already don't poison the pool with even more people who bring…

Reason for my downvote: that was nothing but obnoxious and uncalled for and fraught with untenable assumptions about the OP. you could have said "you may find you dont like programming after you give it an honest effort, in which case you might want to try something else".

Re: How can I learn to program?

#64
I've found that I've learned the most about "programming" from working on projects. Imagine something you want to build, design it, and then code it. You'll learn tons, I promise. Plus, you'll have something to show for your trouble at the end of it (which is a great motivator to get you going on your next project). Rinse and repeat.

Re: How can I learn to program?

#65
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 the generalities of the response but disagree with some of the particulars. Learning programming should be language agnostic. The "best" language is the one that works for you. Everyone is different and every language is different, some work for some but not others. I'm primarily a Perl person, not that Python is bad, but it's not my language of choice. I advise experimenting with different languages and…

> I advise experimenting with different languages and finding the one that best suits your mindset and needs.

The problem is, someone who is just starting doesn't even know what to look for. They don't know their mindset or needs, yet.

The OP advice should be taken as "these are good defaults, when you grow older you'll be able to tell what to change and, more importantly, why to change".

Re: How can I learn to program?

#66

Earlier quoted context omitted.

I agree with the generalities of the response but disagree with some of the particulars. Learning programming should be language agnostic. The "best" language is the one that works for you. Everyone is different and every language is different, some work for some but not others. I'm primarily a Perl person, not that Python is bad, but it's not my language of choice. I advise experimenting with different languages and…

> I advise experimenting with different languages and finding the one that best suits your mindset and needs. The problem is, someone who is just starting doesn't even know what to look for. They don't know their mindset or needs, yet . The OP advice should be taken as "these are good defaults, when you grow older you'll be able to tell what to change and, more importantly, why to change".

But at the same token, just saying "use this language" presents the same problem. What if Python doesn't work for the OP but picks it because he/she was "told" too. Maybe the OP is a math-centric person and would excel at a functional language, but didn't know anything about them because they were never informed. I think the better answer would be to recommend a few languages and let the OP decide what works for them. There's plenty of good information about all the major languages on the web, including tutorials. After you go through a few tutorials you'll know if that language works for you or not.

Re: How can I learn to program?

#67
Start Learning JavaScript! In one shot you will learn 3 things 1. Client Side Programming (Browsers) 2. Server Side Programming (NodeJS) 3. Database programming (Using JSON eg. MongoDB and CouchDB) How to start? 1. Install NodeJS 2. Install Chrome Browser Start palying.....

Re: How can I learn to program?

#68
post #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).

I agree with you in that emacs isn't ideal for starting out (though I've been using it in the past few months and I'm not going back).

But may I recommend geany instead? Its a pretty good GUI text editor. Alternatively Kate...it is quite awesome too.

Re: How can I learn to program?

#69
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 totally disagree with espeed's comment.

Setting up Linux teaches system administration skills. Useful, but nothing to do with programming. Learning Emacs is fantastic (I'm a huge fan), but again — nothing to do with programming. For that matter, writing a blog engine should not be someone's first exposure to programming. Frameworks and web development should be simply banned for people who haven't yet written a Fibonacci sequence generator. Please don't waste your time learning how to integrate other people's services and APIs. You aren't ready for this yet.

Don't think about tools, think about concepts. Learn about how programs flow. Learn about data structures, the basics of algorithms, and recursion. Understand how and why programs are structured the way they are. This stuff isn't hard, and won't take more than a few weeks to learn. Then you should look around at tools and at the kinds of problems you want to solve. In the meanwhile, you'll only slow yourself down if you try to run (e.g., figure out why web frameworks work the way they work) before you can walk (e.g., understand functions).

Post reply on HN