Live data from Hacker News

Ask HN: Okay okay, I'll learn to program...now what?

news.ycombinator.com

21–30 of 56 posts

Re: Ask HN: Okay okay, I'll learn to program...now what?

#21
If you're doing web work you need to do two things:

1. Buy a Linux or Mac computer, because all the standard parts work quickly and simply on those platforms and are difficult to run on Windows. That, or have a remote computer where you do your dev work.

2. Learn Ruby or Python. It doesn't matter which. People on HN seem to love Python, but there's no substantial difference if you're using them to build web applications.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#22

If you're doing web work you need to do two things: 1. Buy a Linux or Mac computer, because all the standard parts work quickly and simply on those platforms and are difficult to run on Windows. That, or have a remote computer where you do your dev work. 2. Learn Ruby or Python. It doesn't matter which. People on HN seem to love Python, but there's no substantial difference if you're using them to build web applicati…

Why buy a new machine? http://www.microsoft.com/web/webmatrix/ http://virtualbox.org

Re: Ask HN: Okay okay, I'll learn to program...now what?

#23

If you're doing web work you need to do two things: 1. Buy a Linux or Mac computer, because all the standard parts work quickly and simply on those platforms and are difficult to run on Windows. That, or have a remote computer where you do your dev work. 2. Learn Ruby or Python. It doesn't matter which. People on HN seem to love Python, but there's no substantial difference if you're using them to build web applicati…

#1 is really good advice, and not just because of the pretty hardware. It's really easy (from my experience anyway, as a relatively new developer) to get derailed by having setup issues, so opt for something that removes as much friction as possible

Re: Ask HN: Okay okay, I'll learn to program...now what?

#24

Python. Do not do the official guide. Do not read the documentation. Do something that forces you to program examples of increasing difficulty. In short, do this course: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index... All the labs and assignments are online. You get to make maze solvers, generate fractals, implement Conway's Game of Life, lots of genuinely fun stuff. Just work through it and tell your…

When talking about python I found http://diveintopython.org/ to be an excellent book for beginners.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#26
The amazing and terrible thing about programming is that you can learn enough about it without physical contact with another human being. I suspect that content about programming on the web shows a huge bias towards being technology based -- if you considered all the possible topics and ideas in the world and their popularity, the ratio of popularity-on-the-internet to popularity-IRL is probably highest with technology and programming. Well, you'd have to exclude porn and other taboo topics for which the anonymity aspect of the internet, rather than information sharing aspect, causes their ratio to explode.

That was a bit of a tangent. My original thought was that there are several thousand lifetimes worth of programming knowledge online, and it's getting more and more organized by the minute. Google and StackOverflow will be your best friends. It may take you some time to learn how to ask the question, but beyond that you should be able to find solutions to any problem that you run up against.

With this in mind, it's important that you actively apply that knowledge. Learning is one thing, doing is quite another. I've often times postulated to myself that there's probably some optimal ratio of studying vs. doing, in all things. Then, I realize there's more to it than that -- there's the context switching. If you spend 5 years learning, then 5 years doing, you'll never learn as much as if you spend 1 day learning and 1 day doing for 10 years straight. Learning and doing feed off of each other.

So, learn and do. Find something you really want to work on, and try to build it. When you run up against a wall, which you most definitely will, it's time to learn. Once you're ready to give it a shot, do it. When things start getting too complicated, you're probably doing it wrong. Start over, make things "cleaner" (this becomes a 6th sense after awhile), and you'll find yourself naturally creating patterns that you become comfortable with. Like any other skill, it's really a pleasure to see your abilities progress.

Have fun.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#27
Each language tends to have particular problems it's most used to solve. They may not even be what the language is most suited for. Figure out what sort of programs you want to write, then search on that to see what others use. There'll be overlap, so look at the resources, figure out which seem to make the most sense to you, then pick the language that matches.

At first, your choice of language isn't all that critical so long as you start out with some resources you've turned up that'll let you get some of those first projects completed. Then you'll be good enough at formulating ideas then implementing them to make a more informed choice. Either you'll be comfortable enough with your chosen language's idiom to solve problems even if they don't necessarily align with the language's strengths, or you'll have a better basis to pick a new language that addresses your problems with the first language. After some initial discomfort, if you've picked well the new language will start to feel handy and expressive in a short while.

Any of the major languages can be taken on by the new programmer, I usually recommend one of Ruby, Python, JavaScript, Java, or Groovy. The resources for beginners are good, the user communities are supportive, and they're all expressive enough to create powerful programs.

There are lots of other good languages--no knocks on them--these are just my favorites presently. I teach programming to non-programmers, BTW.

Once you pick a language, come back and ask for resources for that language. ;)

Re: Ask HN: Okay okay, I'll learn to program...now what?

#28
post #14

Pick a project first, something that you would love to FINISH. Then research the best language to use to reach that goal. That being said, when I started, I made due with what I had. QBasic. Then a borland C compiler. Then Java. And then I just started experimenting. It didn't matter to me, I just loved to create things. Bottom line... you have to love building a complicated puzzle and you have to be able to drive yo…

Yes, yes, yes! This is exactly it. Reading through programming books and tutorials gets really dull. You need a reason, a cause, a mission. Come up with a project that excites you and learn around that. This makes the tough slog worth it and drives you toward interesting challenges you might not otherwise pick up.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#29
I'd advise java as a first language, this language really forces you to grasp the concept of object-oriented programming. python and ruby make it to easy to ignore objects, while objects are a concept that once grasped is going to make programming in any language a lot easier.

The thing about programming is that it's a creative process where you apply ideas in order to create a solution, the more clearly you understand these ideas the better you will be at programming(which is just writing down a solution so that a compiler can understand it).

Re: Ask HN: Okay okay, I'll learn to program...now what?

#30
Thanks for so many replies! I'm going to spend the next few hours dissecting all of this information and then dive into research.

The take away message I got from seemingly everyone was to first decide WHAT I want to build, then find the best language. Teach myself using fun, interesting examples, and keep plugging away no matter the difficulty. Also, I should take full advantage of the wealth of information that can be found online. Lastly, since I'm already in the web-design field (for the one person that asked I own my own small web/graphic design firm), I might wanna stick with PHP or Java (or Python / Ruby).

Again, thank you.

Post reply on HN