What programmers can learn from economists: fundamentals and models
blog.darknedgy.net
blog.darknedgy.net
Furthermore, it's very easy to dispel the author's idea that 'learning to code' is not a worthwhile goal or even that there's serious risk if the public confuses learning to code with computer science. To give a correlary, if you teach someone to weld no one will confuse them with a master metallurgist and machinist. I think the world will understand the difference between a novice programmer and a master programmer. The risk here is low. And thus the rant is not terribly valuable.
People can spend a decade or more in the industry as working "programmers" and fail at writing FizzBuzz, let alone understanding basic relational theory or how a their chosen stack works. And then we try to patch it over with more tooling or new languages that are supposed to be less error-prone or somehow magically allow us to build out programming teams out of coders rather than teach them solid CS fundamentals and sound development practices.
The problem is that to someone not trained in a craft, even a beginner would appear to be able to perform that craft; only someone with deep(er) understanding of metallurgy would be able to recognize that said welder has no idea of what they're doing and is just following a set scripted actions; what's more harmful is that said beginner is lulled into believing they are actually an expert whereas they're really an Expert Beginner[2].
[1] http://blog.codinghorror.com/why-cant-programmers-program/
[2] http://www.daedtech.com/how-developers-stop-learning-rise-of...
I think a lot of these views come from the undergrad classes where, yeah, econ math requirements are pretty unimpressive. But, of course, the recommendation for students who plan to get a PhD amounts to "be a math major," which again isn't my understanding of cs...
Please elaborate. Macroeconomics and econometrics are very much a part of economics.
What I'm particularly arguing against is the idea that the average economist is some kind of marketplace weather forecaster and that consequently, owing to accuracy little better than chance, there's nothing worthwhile in the discipline.
To put it in familiar terms, there is a difference between the climate and the weather, and we are able to influence the economic environment for good or bad in the same way that we could affect the climate by changing the atmosphere or changing the distance to the sun.
There’s a lot of really interesting economics research out there (at least the stuff that the Freakonomics podcast is surfacing to my notice is interesting), but it’s on edges that are, by and large, rejecting homo economicus and is trying to reflect what people really do. (There’s a lot of behavioural economics research that has been reported on for the last several episodes, which is fascinating.)
This is, IMO/IME, much more common from economists that believe in unfettered, minimally-regulated capitalism. The same folks who think that healthcare would be better if it were actually treated as a market, or there is such a thing as perfect information about markets. I have far fewer problems with behavioural economists, in the same way that when it comes to language I side with descriptivists far more than I do with prescriptivists.
Essentially, I think that there is very little one can learn from economists—especially the famous (macroeconomists) called out in the article. Except, perhaps, what not to do.
It disturbs me that there are books about cryptographic algorithms,
there are books about early days of hacking, but I talk to people
younger than myself who are in their teens and twenties, and from
the people I've talked to there is an astounding lack of awareness
of say, the first crypto war.
That's bad enough, but Quinn's reply is a simple, easy to understand, damning indictment of the sorry state of the modern software culture: Can everybody in the room who has some sort of computer science degree
or related degree put up your hand? Keep your hands up. Now, everyone
who read Claude Shannon in school put your hands down.
So all of you are people with CS degrees who didn't read Claude Shannon,
one of the most fundamental voices in everything you do.
Unfortunately, learning from history takes effort, so it's a lot easier to simply cargo-cult programming "knowledge" instead of actually learning about these complex systems.> economists
They have their own problems with over-reliance on models. Mark Blyth's description of the problem from the perspective from inside the field has quite a few similarities to the problems in programming.
> models
On the subject of over-reliance on models - especially overly-complicated, buzzword-compliant models that cover up a total lack of actual research, innovation, or really anything worthwhile at all - I want to suggest listening[4] to the wonderful Tom Lehrer talk about Sociology.
[1] https://www.youtube.com/watch?v=DWg2qEEa9CE#t=2367
[2] http://opentranscripts.org/transcript/no-neutral-ground-burn...
And before you ask, I've read Shannon, and Hamming. Didn't read CS Turing papers (did read some others), and I guess there's no further information there that I don't know already. I've also read about the first crypto wars, and quite a lot about economics - enough to know this article is complete bullshit; the author complains that developers don't practice the most damaging practices of economists. Besides, get me a keynesianist that has read Keynes.
If you came complaining that people mostly lack basic mathematical knowledge about crypto, and don't know the best practices about software architecture, I'd completely agree. I'll also agree that history is a great tool for making the mathematical and anedonctal knowledge easier to digest. But no, it's not very valuable by itself.
When work truly is foundational, it actually becomes the foundation of curriculums, and it's not necessary to read the original to learn its material. It is perhaps interesting, or even enlightening, but not necessary.
If you do read his original description, you'll get bogged down in details like running the test in an ESP-proof room. At the end, you'll either be more confused or, at best, not come away with a better understanding of the concepts themselves. Having read the article myself, I don't recommend except out of historical curiosity. It's not the best option to expand your understanding of CS or the philosophy of CS.
The same goes for a bunch of other foundational writing. We could take a topic I'm deeply familiar with: functional programming. It's fair to say that much of it goes back to Backus, to his Turing-award speech with the catchy title "Can Programming be Liberated from the von Neumann Style?". The title is worth it, the content isn't. It was brilliant, of course, but it was just the beginning—one limited in arbitrary ways. You're better off learning functional programming as it is now than getting into Backus's FP (what he named his language) because that's a less clear and, crucially, less complete presentation of the important ideas. The language didn't even have named variables back then, it was like always writing in point-free style!
Again: it's fine to read this from a historical perspective, but it's not the best way to learn functional programming and you could be a perfectly capable, insightful functional programmer without having read it. Honestly, it feels like the call to read specific works like this is just signalling that you have the "right" background and education to work in a field, which is not where we want to be.
This is pretty consistent. Coming up with brilliant theories and insights is a different skill from polishing and completing them which is a different skill from presenting them well. And there's nothing wrong with benefiting from the last part of this pipeline and skipping over earlier, "historically relevant" works especially in fields like CS and math.
This isn't to say that you shouldn't learn the concepts, which you probably should. But there's a big difference between "having read Shannon" and "understanding information theory", and only one of those matters.
That is the only perspective I'm addressing. The comment is in the context of the observation tht we have a generation fo people who don't know there was a "Crypto War" in the 90s. This observation was prescient, with the FBI et al renewing the crypto wars. The historical view is incredibly important in interpreting our current situation.
> call to read specific works
If you think my reference to Shannon is a call to read any specific work, you're missing the point. The point of the original article and the talk I linked to is the importance of actually taking the time to learn from the people that faced these problems in the past nd learning from them.
> Coming up with brilliant theories and insights is a different skill
Absolutely, which is why it's important to not waste that skill re-inventing stuff where that time and effort has already been spent by other skilled people. I suggesting that it's a bad idea to spend six months in the laboratory to save you from having to spend six days in the library. A lot of problem have already been solved.
subtle reference to https://www.jwz.org/doc/worse-is-better.html
I personally think economics may not be a science at all, since it is mainly based on models with very little physical evidence to back them up. Which I would hesitate to make a statement like that, or a rant with many of them, because obviously it is unfair and offensive to economists.
> Economics is divided into many schools, in turn leaning neoclassical, heterodox or other
are a pretty big tipoff because
1: non "heterodox" economists do not care enough about heterodox economics to mention it as a "school."
2: "heterodox" economists almost certainly don't think that "more formal math, like mainstream economics" is a good recommendation for any field.
(I am an economist, don't agree with the article.)
It is true I am not an economist.
I don't even know what fundamentals besides basic ideas of programming might look like.
> Government jobs are very stable.
> Apply math to all problems, regardless of the appropriateness. When two theories are in conflict, the one with more math wins, unless it conflicts with the interests of the people who are paying you.
> Normal distributions. Everywhere.
But thanks, I didn't know that, and it's super interesting!
HCI is a less grounded than the maths portions which are as much a science as any part of maths is. But still have a grounding. The engineering side is probably a lot more wishy-washy and concerned with anecdotes than empirical evidence.
That's my opinion as a generalisation.
Economics is just a very specialized science.