shminux comments on Physics grad student: how to build employability in programming & finance - Less Wrong
You are viewing a comment permalink. View the original post to see all comments and the full post content.
You are viewing a comment permalink. View the original post to see all comments and the full post content.
Comments (50)
The book is good for theoretical comp sci, awful for business programming. It's like telling a business freshman to learn calculus from Rudin or Spivak instead of Stewart.
He did say "computer science", not "programming".
Yes, but the OP is concerned with
which has little to do with comp sci.
That rather depends. You certainly don't need comp sci background to write ten pages of spaghetti in VB for Excel. But if the OP wants to actually be a good programmer, a foundation of comp sci will help.
Strongly disagree w/ this. $$$ creates vast distortions and crappy norms.
One needs to understand what one is doing.
But $$$ are the very reason the OP is considering programming in the first place, otherwise they'd presumably stick to physics.
What IlyaShpitser is saying, I think, is counter-intuitive, seemingly irrational, but generally true: if you make every decision based on $$$ concerns, you lose perspective, a willingness to take risks, the desire to perform creative exploration, and incentive to learn the fundamentals which enable the above. This will make you a mediocre programmer with only moderate $$$ potential, whereas if you focused instead on really becoming a master of your art, $$$ can follow in large quantities.
There is only one kind of programming :).
"Theoretical comp. sci." is Sipser, etc. I suppose this is "conceptual comp. sci." That is far from a bad thing, though.
SICP is comparable to Early Transcendentals because it is used for freshman comp. sci. courses (but is in fact far deeper than this might imply).
Not sure what you mean by this.
Right, "conceptual" is a far better term. Theoretical comp sci is a different beast entirely.
I agree that SICP is accessible to a freshman programmer, but I doubt that it's the best book for them. Something like Code Complete would be far more useful.
I think we will have to agree to disagree on what the best first book ought to be for a programmer.
It was a joke with a grain of a joke. That is, I believe all programming activity, regardless of application area, has a unifying conceptual core. Because of this, statistical programmers, and business programmers, and web developers, and operating system programmers are participating in the same activity, much like algebraists, topologists, logicians, and analysts.
If you want to get into math you first study what it is mathematicians do, what a formal argument is, styles of proof, subject areas, abstraction, etc. If you want to get into programming you first study what it is programmers do, processes, styles of programming, abstraction, etc.
I guess my position is that when going into a new field, study domain-independent concepts first. That is, study the part of the field that does not decay with time.
OK, thanks for clarifying. As for the "best first book", it's probably highly individual. In my field (physics), students are taught easy basics first (F=ma etc.), long before they learn Lagrangian mechanics and relativity. Whether this is due to insufficient math or because the bottom-up approach is more suitable on average, I am not sure.
Yes, but the first chapter of the first book a student uses to learn physics contains a detailed description of what physics is: that it is the study of the nature, properties, and evolution of matter and energy, that it involves collection of experimental evidence and building mathematical, predictive theories from that evidence, etc.
SICP is that "first chapter" for computer science & programming. In terms of theoretical analysis it is actually rather poor - I wouldn't compare it to Lagrangian mechanics or relativity at all. What it does is set the stage and provide a framework for thinking about computer programming in general, in such a way that keeps you from making common and avoidable mistakes in the future.
(There's a reason SICP is/was the first class for incoming comp sci freshman at MIT for so many years.)
Berkeley also.
The youth is wasted on the young, and CS61A is wasted on freshmen. Only years later did I truly appreciate what CS61A was trying to teach me.