Links
Posted by Jonathan Ng | Filed under Technical
It’s been like weeks since the last time I posted some links for y’all.. but here you go, though most you my friends hav already seen these:
- Pesonality traits of the best developers - title says it all, pretty good read.
- Structure and Interpretation of Computer Programs - an online full-text of the 6.001 course at MIT. It’s a pre-requisite for Computer Science courses at MIT.
- Perils of JavaSchool - by Joel Spolsky. It’s a long artilce and many miss the gist of it.
Perils of JavaSchool
Here, Joel Spolsky whine about the current state of Computer Science graduates, who are only trained in Java and nothing else.. the point he’s trying to make is seen in the following excerpt:
You may be wondering if teaching object oriented programming (OOP) is a good weed-out substitute for pointers and recursion. The quick answer: no. Without debating OOP on the merits, it is just not hard enough to weed out mediocre programmers. OOP in school consists mostly of memorizing a bunch of vocabulary terms like “encapsulation” and “inheritance” and taking multiple-choice quizzicles on the difference between polymorphism and overloading. Not much harder than memorizing famous dates and names in a history class, OOP poses inadequate mental challenges to scare away first-year students. When you struggle with an OOP problem, your program still works, it’s just sort of hard to maintain. Allegedly. But when you struggle with pointers, your program produces the line Segmentation Fault and you have no idea what’s going on, until you stop and take a deep breath and really try to force your mind to work at two different levels of abstraction simultaneously.
In other words, students who learn to program with low-level languages tend to be better programmers. If they manage to slug it out through such subjects, learning OO will be much easier, and they’d be much better at it too..
Damn, should have paid more attention in Computer Systems Engineering last, last sem.
Tags: general programming, links
4 Responses to “Links”
-
Jinny Says:
August 27th, 2006 at 5:02 pmOh boy. Pointers. I started out with C in Monash, then went into Java, flex, bison, yacc, Prolog, they forced us to write a Linux shell (aka bash) in C, did some low level OS stuff in C, pointers galore.. oh, analysing algorithms in Calculus too.. and just when I thought things couldn;t get any worse, they dumped functional programming course in our final semester here.. one last grilling before they pass or flunk us out :D
It’s good, but it’s frustrating. Especially functional programming.
-
Jonathan Ng Says:
August 27th, 2006 at 9:29 pmOoh… seems interesting.. any recommended texts? hehe.. might try to look into it myself..
sigh.. makes my college look so f***ed up..
-
Jinny Says:
August 27th, 2006 at 9:37 pmOne very very good book I referred to when studying analysis of algorithms, is Michalewicz & Fogel’s How To Solve It: Modern Heuristics (very pricey though, RM240)
The subject I’m currently doing, (and the one described in joelonsoftware):
Functional Programming:
Elements of ML Programming, Jeffrey D UllmanProgramming Languages:
Programming Languages Concepts & Paradigms; David A Watt
Compilers: Principles, Techniques and Tools; Aho, Sethi & Ullman -
Jinny Says:
August 27th, 2006 at 9:38 pmGotta warn you though. It’s not for the faint hearted, those stuff I mentioned.. all the best :)