Skip to content

Comment on Bad programmer seeks advice

Comments

The best introduction to real computer science that I know is the book "Structure and Interpretation of Computer Programs". It teaches programming in terms of Lisp, but don't be put off - it's just because Lisp is a good vehicle for exploring different approaches. The lessons therein have stuck with me no matter what language I'm using.

Beyond that sort of thing, you need to specialise in the kind of areas you want to work in - if you want to program to earn money, then learning SQL, HTML, and web app development in your favourite platform is a good idea. If you go for the Unix route, I'd recommend you learn Python before Perl/PHP, but then learn the latter two because there's money in it. If you go the Microsoft route, I'm sure there's plenty of good books on C# and ASP.net. Java's pretty useful, too.

It's a good idea to learn C, not so much to learn the language itself as to learn about the processor's memory model, which C somewhat ruthlessly exposes you to; if you master C, you'll indirectly learn how software performance works, in ways that'll indirectly help you write faster code in higher-level languages. And, of course, C is useful in its own right if you want to get into embedded, systems, or games programming.

Personally, I think C++ isn't a good language to get involved in; if you want to anyway, either because you disagree with me or because you're after a job doing C++, make sure you've read Structure and Interpretation of Computer Programs, played with C, and tried at least one object-oriented language first; C++ is complex, and having a strong background in the basics behind it will help you a lot; trying to dive straight in might lead to a rather painful learning experience.

Perhaps most importantly, find a programming project you are excited about, and do it. When you're done, you'll have realised you'll have made lots of mistakes - but you'll never make those mistakes again, and the next project you do (perhaps one you'll be paid for) will be a lot better. Practice makes perfect! And have fun!

ngomOP

Thankyou for taking the time to respond. In a way I've done that in reverse order - spent a bit of time ith the web (HTML/CSS/Javascript/Actionscript) and some time with typical web app back end languages (Python, PHP, Java, etc). Your suggestion of reading through the "Structure and Interpretation of Computer Programs", and looking into C seem like splendid suggestions. LISP might be fun, too. Then I'll try and write something in both languages! Thanks again.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.