4 ms·
Because the industry isn’t dominated by well thought out solutions. Most programmers I talk to love the idea of spending time and using the perfect tools to des
by reikonomusha 8y ago
Because the industry isn’t dominated by well thought out solutions. Most programmers I talk to love the idea of spending time and using the perfect tools to design outstanding solutions to problems. They discuss how much they supposedly like to learn.
But when push comes to shove, your 9–5 career growth is probably going to be best optimized by cobbling a bunch of Python together and shipping it. Especially if you wrap around it a bunch of buzzword frameworks and deployment technologies. Unless your boss or your boss’s boss are technical and opinionated about good software engineering, nothing is going to be optimized for such. And a $100k+/year paycheck is a hell of an amount of inertia.
A two month boot camp is sufficient to pump out an individual who can be opinionated about their technology choice, and even produce an individual who can duct tape some services together to produce some semblance of value. Likewise a stock 4-year compsci degree. Be it a boot camp, a university, an online coding school, or an Ivy League: They’re not going to teach you Haskell (or Lisp or ...), they’ll teach Python, because it’s easy, even if it rarely produces simple solutions. And once somebody has put in the energy to learn one thing that has become profitable for them, they’ll need an enormous amount of rationalization to learn and invest in something else.
- opnitro 8y agoInterestingly, the comp-sci program at University of Maryland does start with a list-esque system. They start with a very basic language and slowly add new features throughout the first course.
- reikonomusha 8y agoMy writing is of course a bit hyperbolic. Some universities do teach non-imperative and non-Modula-style-OO as a part of their computer science course. But my experience shows that, unsurprisingly, fresh grads have the most comfort with a sprinkling of the most popular languages. To me, this is an indicator that industry-popular has tremendous influence on education-popular. For computer science, I disagree that industry should have such steep bearing on the construction of a good computer science education. For something like a vocational program, trade school, or whatever else that is close to SW engineering, letting the industry strongly influence the program is agreeable.
- kabdib 8y agoMy experience at the U of MD (probably dated, but man your summary sounds familiar...): http://www.dadhacker.com/blog/?p=755 http://www.dadhacker.com/blog/?p=755
- opnitro 8y agoThanks for this!
- dfacastro 8y agoThe master's computer engineering program at the Faculty of Engineering of the University of Porto, Portugal, starts off with Scheme in the first semester. The fourth year includes logic programming with Prolog.
- hultner 8y agoAt my university (Chalmers University of Technology) Haskell is one of the first courses comp.sci students take to get introduced to programming. Haskell is immensely popular there with a lot of software engineering & comp.sci students
- lkurusa 8y agoThis is the same at Imperial College London (my university) and while some students complain (mostly those who are already familiar with programming before coming to college), some are very interested; in fact, every year we have about 2-3 (each of 3-4 people) groups attempting (and succeeding) to write a compiler for an in-house language in the next academic year.
- majewsky 8y agoSame at my uni (Dresden University of Technology). The first two semesters have "Algorithms and Data Structures" where the first semester is taught in C (probably because students should have an unobstructed view to how data structures are laid out in memory and how algorithms traverse the pointers that make them up), but the second semester switches to Haskell.
- Swizec 8y ago> Unless your boss or your boss’s boss are technical and opinionated about good software engineering And if they don't care about ever making money off of your work. But most of us aren't doing [academic] research. Technically correct is the worst kind of correct when your company runs out of money/revenue.
- reikonomusha 8y agoIt’s possible to be non-academic and productive without pumping out mediocre, greedy-constructed code that doesn’t take advantage of the fruits of academic research, don’t you think? I think this is a characteristic of a pretty good software engineer.
- wtetzner 8y agoSince when does "good software engineering" mean that you won't make any money?
- Swizec 8y agoSince the bar in that comment was set at "the perfect tools to design outstanding solutions to problems" Ain't a lot of people got time and money for perfect and outstanding.
- zzzcpan 8y agoI don't think any CS education teaches language ecosystems. Students learn them on their own for whatever language they want. The choice they make is probably much more influenced by the popularity of the language or a job market, but not in which language they have to do all those tiny mostly algorithmic assignments.
- AnimalMuppet 8y agoOff topic, but: I think that CS departments are teaching CS, not software engineering, and I think that 95% of their grads are going to work as software engineers. There's a bit of a mismatch there. One of the places it shows is precisely in not teaching ecosystems.
- chewxy 8y ago> Because the industry isn’t dominated by well thought out solutions. Most programmers I talk to love the idea of spending time and using the perfect tools to design outstanding solutions to problems. They discuss how much they supposedly like to learn. I find that it's because "Well-thought-out" means different things to different developers. To developers who are familiar with Haskell, well thought out means sound categorical mapping from program almost in a Hask-is-a-category way. To enterprise developers, well-thought-out means UML diagrams. To a grey beard, well thought out means fitting everything nicely into 256 bytes. I'm exaggerating in every way of course, and yes, the more mathematically minded will see that they're quite essentially the same (UML, categories, and even some sort of goedelization). More importantly I think it's because there are different ways of expressing "well-thought-out"ness that developers tend towards the things they are familiar with - unit tests are easy to understand. Hindley Milner not so much - I find from teaching, it requires that conceptual leap to making formal inductions.
- swebs 8y agoBut it doesn't seem too popular in the open source world either. The only large project I can think of that uses it is Xmonad.
- nafizh 8y agoIronically, here is a Haskell course taught at UPenn, an Ivy league school. http://www.seas.upenn.edu/~cis194/fall16/index.html http://www.seas.upenn.edu/~cis194/fall16/index.html
- droidist2 8y agoOh yeah, this course is famous! People seem to recommend the Spring 2013 version usually, I'm not completely sure why though.