News for hackers. Stuff that matters.
Re:Ask HN: Review my "learning programming" checklist by KirinDave on Friday April 29, 2011 @01:39PM (#2498229)
It's pretty interesting when someone who doesn't really know a subject tries to teach it. You can always see what people perceive vs. what actually is.
Re:Ask HN: Review my "learning programming" checklist by wccrawford on Friday April 29, 2011 @12:13PM (#2497865)
Too many languages. Cut it down to 2 at most: 1 for learning the logic and basics, 1 for actually making a project.
Re:Ask HN: Review my "learning programming" checklist by michaelleland on Friday April 29, 2011 @12:48PM (#2497995)
I thought of this as well. My thought here on the different languages was to make the programmer's skill based on more than expertise in any one language.
Re:Ask HN: Review my "learning programming" checklist by T-R on Friday April 29, 2011 @03:40PM (#2498701)
If that's your goal, the languages need to be from different paradigms (maybe C + Assembly, Ruby/Python, and Haskell/Clojure, and then maybe Prolog and Factor).

If your goal is just to get someone to minimum competence so they can build something, it's better to stick with one language (or, at worst, just a web stack), at the very least so they don't get bogged down installing a bunch of tools for relatively little benefit. PHP and Ruby are both Algol derivatives, so having a person solve Project Euler problems in both and compare them won't likely reveal much more than trivial differences.

Also, unless they have a decent math background, 100 Project Euler problems is just going to frustrate and scare off people - some of those problems are pretty much intractable without Dynamic Programming; anyone who hasn't taken an algorithms course would probably take a long time to figure that out.

Re:Ask HN: Review my "learning programming" checklist by jshen on Friday April 29, 2011 @01:10PM (#2498090)
Here's my checklist.

1. Think of something useful you want to make and create it.

Re:Ask HN: Review my "learning programming" checklist by chopsueyar on Friday April 29, 2011 @01:21PM (#2498145)
Your font styling is more pleasant, too.
Re:Ask HN: Review my "learning programming" checklist by freyrs3 on Friday April 29, 2011 @12:17PM (#2497878)
No mention of any compiled languages? Scripting languages are good for beginners, but to be a mature programmer you should have at least touched a compiler at some point.

Also link to Mozilla Docs instead of W3Schools.

Re:Ask HN: Review my "learning programming" checklist by gte910h on Friday April 29, 2011 @12:30PM (#2497924)
Robot C (which is a compiled algol family language used to control lego mindstorms), is quite definitely a compiled language.

This is mentioned before ruby. Additionally, using the term scripting language pejoratively lump ruby or python in with lua, tcl, perl and awk scripts is a little rich these days.

Re:Ask HN: Review my "learning programming" checklist by vladoh on Friday April 29, 2011 @12:34PM (#2497948)
Saying that Robot C is a good example for a compiled language is like saying that watching porn is a good example for a healthy sexual life...
Re:Ask HN: Review my "learning programming" checklist by gte910h on Friday April 29, 2011 @04:32PM (#2498875)
And if I said that, your joke would even have a point. Instead, I pointed out the parent was incorrect, there as a compiled language on the list, of which I offered no opinion as to it's quality. It's definitely algol related, so is a reasonable transition to C/Java et al.
Re:Ask HN: Review my "learning programming" checklist by vladoh on Saturday April 30, 2011 @06:13AM (#2500349)
This was exactly the point of my post ;) Your original post is very similar to mine - they both don't make a valid point and they both don't contribute to the discussion (I also never said, that you said that). It is like the old programmer and manager joke...

A man is flying in a hot air balloon and realizes he is lost. He reduces height and spots a man down below. He lowers the balloon further and shouts, 'Excuse me, can you help me? I promised my friend I Would meet him half an hour ago, but I don't know where I am.' The man below says, 'Yes. You are in a hot air balloon, Hovering approximately 30 feet above this field. You are between 40 and 42 degrees North latitude, and between 58 and 60 degrees West Longitude.' 'You must be a programmer,' says the balloonist. 'I am,' replies the man. 'How did you know?' 'Well,' says the balloonist, 'everything you have told me is Technically correct, but I have no idea what to make of your Information and the fact is I am still lost.' The man below says, "You must be a project manager." 'Yes, I am,' replies the balloonist, 'but how did you know?' 'Well,' says the man, 'you don't know where you are, or where You are going. You have made a promise which you have no idea how to Keep, and you expect me to solve your problem.'

Re:Ask HN: Review my "learning programming" checklist by thekevan on Friday April 29, 2011 @12:37PM (#2497960)
I would say HTMLDog instead of W3C, and additionally Mozilla Docs.
Re:Ask HN: Review my "learning programming" checklist by michaelleland on Friday April 29, 2011 @12:51PM (#2498019)
good call.
Re:Ask HN: Review my "learning programming" checklist by ohyes on Friday April 29, 2011 @02:28PM (#2498422)
Is 'learning programming' in quotes because it is sarcastic?

You don't program anything until the final exam, and the final exam is two relatively trivial tasks.

Just start with the final exam, and then build it out until you have something relatively substantial. Do all of the other reading and stuff as you learn.

Re:Ask HN: Review my "learning programming" checklist by gte910h on Friday April 29, 2011 @12:31PM (#2497932)
I'd do railsforzombies.org after tryruby.org (to perhaps interest the person in an application for ruby).
Re:Ask HN: Review my "learning programming" checklist by michaelleland on Friday April 29, 2011 @12:54PM (#2498031)
I added ROR at the end of the list, with an "assignment" of making a web app to organize contacts. Do you feel that by that time the programmer will have become bored?
Re:Ask HN: Review my "learning programming" checklist by gte910h on Friday April 29, 2011 @04:30PM (#2498870)
If you've learned programming and are bored, you're doing the wrong thing.

You should go "holy crap, I can make such neat stuff now" and go do that.

Re:Ask HN: Review my "learning programming" checklist by postfuturist on Friday April 29, 2011 @12:16PM (#2497877)
Don't send people to w3schools.
Re:Ask HN: Review my "learning programming" checklist by PetrolMan on Friday April 29, 2011 @01:52PM (#2498285)
That's not really fair. W3Schools definitely has it's uses. It's certainly not exhaustive but it gives a good overview of a lot of different topics.
Re:Ask HN: Review my "learning programming" checklist by T-R on Friday April 29, 2011 @02:33PM (#2498439)
It has its uses, but W3Schools has been criticized for being inaccurate[1], and there's better documentation out there now (HTMLDog and Mozilla Developer Center have been mentioned[2][3]).

[1] http://w3fools.com/ [2] http://htmldog.com [3] https://developer.mozilla.org/en-US/

Re:Ask HN: Review my "learning programming" checklist by jamiltron on Friday April 29, 2011 @02:26PM (#2498418)
If by "good overview" you mean "often incorrect and sometimes extremely harmful" you are correct:

http://w3fools.com/

Re:Ask HN: Review my "learning programming" checklist by vladoh on Friday April 29, 2011 @12:31PM (#2497930)
I'm sorry, but after doing all the things in the list, you will not know anything about stack, dynamic memory, pointers and so on. You can never say you can program knowing those.
Re:Ask HN: Review my "learning programming" checklist by michaelleland on Friday April 29, 2011 @12:50PM (#2498017)
True. But my goal here is to get somebody to learn programming to the point where they could reasonably apply for a job. The question is, would you hire somebody who didn't know "stack, dynamic memory, pointers and so on" if they were willing to learn as needed?
Re:Ask HN: Review my "learning programming" checklist by Hominem on Friday April 29, 2011 @02:38PM (#2498467)
This is pretty interesting to me. "stack, dynamic memory, pointers and so on" for the most part is not something I've had to think about while programming in the last couple years. For the most part I can ignore them, and I doubt any new developers that learn on the job would pay any special attention to these issues, but there is always a case that pops where this knowledge suddenly becomes very important, and having the background knowledge is important.

Let me give you an example. I got called in to diagnose a problem with a c# web service. They were getting constant OutOfMemory exceptions. The team's solution was to increase memory and then throw up their hands when it that didn't fix the issue. After looking at the code I saw that they were creating a 500mb string. They figured this was a-ok because they had 4gb of memory. They did not know what a string really is, even in a language like C# the memory has to be contiguous. If they had ever worked with C they would have known this and we could have saved time and money.

Re:Ask HN: Review my "learning programming" checklist by T-R on Friday April 29, 2011 @03:08PM (#2498589)
"Willing to learn as needed" needs to be reserved for things like specific frameworks, which can be picked up quickly if you understand the concepts they're built on and have done something similar. Pointers are a core concept, and in particular, they're one of the weed-out points of CS curricula.

Sure, you can get some things done without them, but they're critical for understanding bugs or performance issues that arise due to the underlying implementation, and likely to take more time to understand than things that usually fall into the category of "learning as needed on the job".

Re:Ask HN: Review my "learning programming" checklist by jordanmessina on Friday April 29, 2011 @02:01PM (#2498321)
Everyone claims in a job interview they're willing to learn as needed. You hire programmers because they know how to program and will be valuable from the start. Not some novice who did some rails tutorial.
Re:Ask HN: Review my "learning programming" checklist by chopsueyar on Friday April 29, 2011 @01:22PM (#2498148)
No.
Re:Ask HN: Review my "learning programming" checklist by BasDirks on Friday April 29, 2011 @01:41PM (#2498236)

  body {
      font-family: "Verdana", sans-serif;
      font-size: 13px;
      line-height: 1.7em;
  }
To comment on your actual list: I'm not sure I agree with learning PHP. There are more fun alternatives.

Also, where's HTML5?