Hacker News new | comments | show | ask | jobs | submit login

I don't understand this mindset. You only have 4 years to learn whatever they teach in college, compared with 40+ years if you go into industry. To me, the value of my CS degree was the exposure to a breadth of important ideas across the entire field of computing—thing that I would never have the luxury of exploring while under a deadline. None of the particular tools and workflows I used in college were of any meaningful value after 6 months in industry where the workflows are invariably more sophisticated to cope with the messy nature of long-lived real-world projects.

My CS program was taught in Scheme (the version that's now Racket), and I think I kind of understand it. Shortly after graduation I felt like I had this gap in my resume due to spending all this time learning a language that nobody uses in industry instead of something marketable like Java.

Nowadays, though, I feel like my time spent getting used to functional programming in school has given me a secret weapon. It's something much more subtle than the ability to bandy about obscure words that probably start with M. I really do think I'm just fundamentally better at dealing with abstraction, both using it and creating it, than my peers who haven't had such an experience. And that's not small beans considering that, to an approximation, working with abstractions is what I do all day every day.

I've done the exact opposite having learned industry standard languages my entire career and only after many years finally gaining a much deeper understanding of computer science (and especially functional programming).

I can say without a doubt that having functional programming knowledge first would have been a phenomenal advantage.

I think the grass is always greener on the other side. I started with SICP in Scheme (Racket) in high school (our teacher had taught at Berkeley over the summer, I think). I don't feel any special reverence for Scheme, and don't particularly feel either way about functional programming. It's just another tool in the toolbox and I don't feel like my smart peers who started with Python are at any disadvantage whatsoever.

I do think that another major advantage for Python is the fact that you can do cooler things with it, faster. CS has a serious funnel problem and the quicker we can get students to do cool things with CS (GUI stuff, web stuff), the better CS education will be.

> do cool things with CS (GUI stuff, web stuff), the better CS education will be

The issue is these skills don't solve serious or interesting problems. GUI and web programming have become easier than ever and requires less programmers on staff to perform. My company can't find enough qualified engineers with a good depth of knowledge in CS.

I've found functional concepts have been incredibly important in shipping maintainable code on the JVM using both Java 8 and Scala.

We're discussing what freshmen in CS should be learning, not what sophomores/juniors/seniors should be learning. Getting people hooked on cool, albeit superficial, things they can build is the right way to get a broader range of people interested in CS (as opposed to just people who started programming before coming to college).

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact