Teach Yourself Programming in 10 Years.
11–20 of 33 posts
Re: Teach Yourself Programming in 10 Years.
#12or you can take a algorithm class and become one within 2 years, as somebody once stated ;)
Yes, algorithms are great. They are not everything, however.
Taking an algorithms class will only elevate you above some very basic mistakes. It will not make you an expert. Also not all algorithms professors are Knuth. I've seen the code of the ones who think that study of algorithms is sufficient to know programming and it's not pretty.
Re: Teach Yourself Programming in 10 Years.
#13Earlier quoted context omitted.
This is offtopic, but: why / how do you find so many duplicate articles? When I saw that this was posted, I was immediately pretty sure you'd leave a comment linking to past posts. Are you doing this manually, or do you have a script (that, e.g., checks the 'new' page and searches for the title and URL on searchyc?)
Why and how are different. "Why" is because I prefer to see discussions linked together rather than spread. In this case there is some previous discussion (although not a lot) and anyone coming across this and finding it interesting might find the previous discussion worth reading also. They could search for it themselves, but it's easy for me to do, and one person's work (mine) saving lots of people work seems a goo…
Re: Teach Yourself Programming in 10 Years.
#14or you can take a algorithm class and become one within 2 years, as somebody once stated ;)
When I got my first programming job, straight out of high school, I finished tasks in 2 days that took the other programmers there 4 months. I figured that if I was that much faster than them, I ought to be able to become a world-class programmer in just a couple years (or more accurately, I thought I could become a world-class physicist in my 4 years of college and then a world-class programmer in the 2 years afterwards).
So I resolved to take all the shortcuts I could. I'd read all the classic books in the field and learn from those with more experience than me. I'd take internships with experienced, accomplished programmers and pick their brains for everything I could. I'd take on volunteer coding tasks so I could get some experience building things on my own. I'd cherry-pick all the tough courses at college so I got the best part of a CS degree without having to sit through stuff I already knew.
I did all that. I've read all the classic CS books - GoF patterns, Mythical Man Month, Extreme Programming stuff, Pragmatic Programmer, Knuth, SICP, TAPL, Dragon Book, On Lisp, etc. I've worked with programmers that wrote large chunks of curses, Rogue, vi, Jini, JavaSpaces, HotSpot, Gallery, Stratus, Equalogic, DEC compilers, Python, Google, and a bunch of other projects they don't brag about. I wrote Amherst's course-evaluation system, and rewrote the software for a 100k-user site, and wrote one of the front-page hits for [haskell tutorial]. I have that CS degree, and aced the algorithms class of which you speak, and took compiler design and OS and computer graphics too.
It's been 9.5 years since that first programming job, and it still feels like I have a really long way to go before I'm actually a world-class programmer.
The part I didn't realize, in my youthful arrogance, was that I was comparing myself to the wrong people. When Norvig tells you how to become a programmer in 10 years, he's assuming you're already taking all the shortcuts you can. It still takes 10 years. Most of the people you'll meet straight out of high school, or in most colleges, or in random companies, will never become programmers in the sense that Norvig's talking about. Eventually they'll give up trying, and start grumbling on Reddit about how the software industry is mostly boring cubicle farms where they push around Enterprise JavaBeans and never use the algorithms that they learned in college.
Re: Teach Yourself Programming in 10 Years.
#15or you can take a algorithm class and become one within 2 years, as somebody once stated ;)
* Become more aware of the shortcomings of your knowledge of algorithms (both directly -- algorithms which you don't yet know/understand and indirectly -- algorithms which don't yet exist). That's a huge benefit.
* Learn a bit the analysis of algorithms and how to prove an algorithm correct
* Learn a bit about algorithm design
* Most importantly, you will learn about classes of problems, classes of algorithms and several implementations of these classes of algorithms. You will be able to reason from "real world problem" to "falls under these classes of problems" to "solvable by these algorithms" and then apply an instance of an algorithm to the problem.
You will not become an algorist (that would take its own ten years), nor will you become a programmer. It will certainly help you become a programmer, but there's more to programming than algorithms.
That being said, there's a path to be crossed. At one stage one thinks that writing graphical demos in assembly or (depending on the decade) web apps backed by databases is the "golden nugget" of programming. Then there's the road through learning algorithms, data structures and non-imperative programming languages, which is culminates in writing your own compiler (or any other project which requires a great deal of coding and puts together data structures, algorithms, hardware/OS knowledge, theoretical CS knowledge e.g. automata and language theory). There's a lot more that follows until one becomes a great programmer, but I can't tell you what those "milestones" are, as I am not there yet.
Re: Teach Yourself Programming in 10 Years.
#16or you can take a algorithm class and become one within 2 years, as somebody once stated ;)
I don't think it works quite like that. When I got my first programming job, straight out of high school, I finished tasks in 2 days that took the other programmers there 4 months. I figured that if I was that much faster than them, I ought to be able to become a world-class programmer in just a couple years (or more accurately, I thought I could become a world-class physicist in my 4 years of college and then a worl…
It's interesting how as we get more experience, we become a more aware of the shortcomings of our knowledge and skill. It's been ~9.5 years for me as well (took an systems/ops job that involved a great deal of programming in Nov 2000 as a junior in HS, was "writing code" before that) and I'm only now learning how much more there is for me to learn.
Re: Teach Yourself Programming in 10 Years.
#17or you can take a algorithm class and become one within 2 years, as somebody once stated ;)
If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won't be enough. "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" says Eric Raymond, author of The New Hacker's Dictionary. One of the best programmers I ever hired had only a High School degree; he's produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub.
Re: Teach Yourself Programming in 10 Years.
#18Earlier quoted context omitted.
To allay your concerns, I almost always upvote links to previous submissions on HN. I make them, and find such links valuable, so I upvote them when someone else makes them. P.S. I find the best way to find previous HN threads that I remember is a site-restricted Google search with a few keywords, e.g., http://www.google.com/search?q=site%3Anews.ycombinator.com+p...
"... I find the best way to find previous HN threads that I remember is a site-restricted Google search ..." Way better ~ http://searchyc.com/previously+submitted?sort=by_date
Re: Teach Yourself Programming in 10 Years.
#19Because everybody has different goals. Although many programmers seek to become masters of their craft, I suspect many more look at programming as a tool to be used in furthering some other pursuit. Those who see it as a tool are understandably better-served by "Learn C Before Dinner!" books than they are by a 10-year program.
This reality may be frustrating to experienced coders. It results in legions of sloppy programmers producing piss-poor code. It is, however, reality. And I'm not sure it's such a bad thing. Most of the people I interact with don't know a thing about computers -- I'm pleasantly surprised when I talk to someone who's had a run-in with some programming, no matter how brief.
Re: Teach Yourself Programming in 10 Years.
#20or you can take a algorithm class and become one within 2 years, as somebody once stated ;)