Ask HN: Review my "learning programming" checklist
silvertreksystems.com
silvertreksystems.com
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.
1. Think of something useful you want to make and create it.
Also link to Mozilla Docs instead of W3Schools.
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.
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.'
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.
You should go "holy crap, I can make such neat stuff now" and go do that.
[1] http://w3fools.com/ [2] http://htmldog.com [3] https://developer.mozilla.org/en-US/
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.
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".
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?