Live data from Hacker News

Computer science as a lost art (2015)

rubyhacker.com

131–140 of 146 posts

Re: Computer science as a lost art (2015)

#131

Earlier quoted context omitted.

Computer science graduates also need a lot of training. If not more, a boot camp graduate has already been exposed enough to modern tech stacks to at least come in as a junior. Too many CS grads have little practical experience to hit the ground running on even the simplest real world projects. Yes I have a CS degree.

It should be a requirement to have each student complete a modern full stack. Some schools have pitiful results for what they say is a degree.

[deleted]

Re: Computer science as a lost art (2015)

#132

Earlier quoted context omitted.

> What else are you going to do? Look at the stuff "deep" people are generally into, it mostly revolves around POSIX some way or another. And databases, but nobody wants to talk about that. Self-driving cars (controls, perception, planning, safety, sensor design, localization, mapping, integration, security, etc.), human-competitive NLP/image classification, advanced robotics (repeat list from cars here but for thing…

> Self-driving cars Self-driving cars are new. You've missed my point. The OP is from an older age. There wasn't a lot back then, so for choosing what to focus in, weren't a lot of choices. Funny, you mention graphics, what do graphics usually involve? C, C++. Back to POSIX. Operating systems? Same. Robotics? C. Basically, if you picked C, you're good. On the other hand, how often do you hear about a Java expert? Som…

> Self-driving cars are new. You've missed my point. The OP is from an older age. There wasn't a lot back then, so for choosing what to focus in, weren't a lot of choices.

RALPH, a 1990 Pontiac Sport minivan, drove across the US 98% autonomously. In 1995.

Much of the control theory, robotics, and AI work that enabled the current self-driving gold rush was invented decades ago.

The Dartmouth workshop was in 1956. Dearth of choices? Please! Those days provided an enormous surplus of choices, almost all of which were good ones! People from that older age invented reinforcement learning, image classification, natural language processing, OOP, hell, even the notion of a pointer! And the list goes on.

Today there are far fewer choices than there were back then because so much has already been done.

That is, of course, assuming you're in the business of "doing things no one else has done before" as opposed to the business of "following a well-trodden path".

So, I guess if your view of the world is confined to "using things other people already invented and explained to me", you might consider the 1950s and 1960s a bleak period when no one knew how to do anything. As opposed to the cusp of a century-long period of continuous innovation...

Again, as the article says, I guess it boils down to what you want to get out of a lifetime of work.

> Funny, you mention graphics, what do graphics usually involve?

shapes, views, raytracing, texture mapping, lighting, color, filtering, scaling, reconstructing, visual surfaces, grids and voxels, octrees, kd-trees, partition trees, polygonal rendering, ...

And that's just the undergrad stuff, not the cutting edge.

Oh yeah, knowing C/CUDA/OpenCL is nice. But when compared to deep expertise, it's a rather trivial time investment and is completely orthogonal: an implementation detail, not the fundamental content.

> Operating systems?

Kernels, scheduling, device drivers, caching, distributed systems, energy models, timing attacks, and the list goes on.

Of course, knowing C is essential, but that's the easy stuff when compared to wrapping your head around a modern OS, or even a tiny piece of a modern OS

> Robotics?

SLAM, sensor fusion, filters, actuation for various types of novel actuators, PDEs and ODEs, optimal control, stability and robustness, system identification, model-predictive control, motors, servos, simulation, etc. And that's just the software side.

Oh yeah, knowing C is nice. But when compared to deep expertise in robotics, it's a rather trivial time investment and is completely orthogonal: an implementation detail, not the fundamental content. Many of the fundamental ideas at techniques in robotics pre-date C by decades.

> On the other hand, how often do you hear about a Java expert? Someone who knows the intricacies of the GC? All about the JVM? Not that often. They exist. But it's not hip. They chose "poorly".

I know a few true, honest-to-god Java experts. They all make insane amounts of money (even by SFBA SE standards) and love their work. Turns out Google has quite a bit of Java code and a metric shitload of money.

You think graphics, robotics, and OSes are just "C and POSIX". That's not true. C and POSIX aren't even table stakes. They're the thing you pick up in a few weeks or maybe a semester so that you can spend several years obtaining the table stakes -- see the list above. Then you need to build true expertise on top of that.

The path from "I know C" to "robotics expert" or "graphics expert" is at the very least a multi-year path. And that's assuming you're bright and have your full work day (and then some) to dedicate to following advances and building your own.

Re: Computer science as a lost art (2015)

#133

I mostly disagree. Software, like electronic engineering, is about abstraction, but it differs in a critical way: It's self-modifiable. Kids can think they're making computer games using little apps, but what they're doing is more akin to making a map for Starcraft than it is to actually making a game. If anything I'd argue that getting a CS degree or similar (math, engineering, philosophy) will arm your mind with th…

You could write almost the exact same post about a philosophy degree

Re: Computer science as a lost art (2015)

#134
post #78

> He's a freshman at Kennesaw State right now, but he really struggles with the idea of taking two years of classes that he has very little interest in. If it is just the idea of having to take a load of liberal arts classes that perturbs your son and not the low level courses like chip design, logic, algorithms and data structures, calc and stats, one alternative to consider is to study internationally. English univ…

English (and NZ and Aussie) universities have 3 year courses because high school kids pass minimum national requirements exams before they enter, US high school graduation is not uniform across the country, or even across states - in essence those minimum requirements ensure that students entering Uni have already met what in the US would be the General Education requirement

That's not whey they have 3 year vs 4 year courses. The 3 year vs 4 year debate is a legacy of philosophical differences about what qualifies a liberal education that are far older than standardized national secondary curricula.

Universities in the US have entrance requirements for classes completed in high school. They do the same thing English universities do when admiring American students--they require specific general education classes were completed in high school.

Because of this even though the US doesn't have national standards, virtually ever university bound student will have already completed the same general education classes that students from countries with 3 year universities would have. Universities her don't force students to take English, math, and history classes because some substantial population of college bound high school students haven't taken them.

Re: Computer science as a lost art (2015)

#135

> He's a freshman at Kennesaw State right now, but he really struggles with the idea of taking two years of classes that he has very little interest in. If it is just the idea of having to take a load of liberal arts classes that perturbs your son and not the low level courses like chip design, logic, algorithms and data structures, calc and stats, one alternative to consider is to study internationally. English univ…

CLEP tests may be the answer. At many schools, you can get out of many liberal arts classes if you can pass a two-hour test on the topic. You get college credit as if from the class, too. And the tests are far cheaper than the classes.

Re: Computer science as a lost art (2015)

#136

Earlier quoted context omitted.

> This just seems to be heavily misguided elitism. Not really. There is a bit too much meet you at the bottom communism in the modern ethos of computer science. When you can have measured difficulty and time to skill in a field isn't it a little odd that we don't have a lot more measured elitism in computer science? The reality is the hardest most complex stuff is literally solved and produced by an elite few. All of…

> The reality is the hardest most complex stuff is literally solved and produced by an elite few. All of which could be taught or learnt but no one gives a shit. The elite few don't really want anyone joining them, so nobody does. Look at the state of academia and look at lack of training in jobs. Nobody wants anyone to be elite, so people don't bother, there's no benefit in it. Your problem is that you think you're…

I, for one, am really looking forward to seeing the projektirSolver in next year's SAT competition and the projektirNET in next year's ILSVRC!

Re: Computer science as a lost art (2015)

#137
post #87

What I miss in those kinds of discussions are the intangible benefits of having studied a subject in depth to acquire a degree. The person that entered university is different from the one that came out of it. The way to tackle problems, to think scientifically, the ability to see the broader picture are some of the advantages of good education that are easy to dismiss since they are not immediately visible. There ha…

> There has been a similar thread on HN where someone with a bunch of degrees said: "I haven't used anything from my studies in my work". But this person might be blind to the fact how the education shaped her mind. I tried to read thought my uni notes on metric spaces a couple of years ago. I don't even understand them anymore. Littered with idiot comments like "obviously -> " despite it being nothing of the sort. U…

I'm guessing you don't use metric spaces in your day to day work. Take a look at notes from a subject you are actively using, and I think much of it would be obvious.

Re: Computer science as a lost art (2015)

#138

Earlier quoted context omitted.

Why not have a curriculum that focuses on the full stack? The full stack consisting of assembly, compiler design, C, networking, operating systems, embedded development, data structures and algorithms, databases development and design (including an understanding of the algorithms/optimizations used). At least one class in functional programming and at least one in and OOP language. And for all that is holy please tea…

You are essentially describing the computer engineering curriculum that we have at Virginia Tech and I imagine a number of other schools have as well. Modern Computer Engineering curricula are more or less old school CS programs in that they focus on everything from user space and below.

At least from looking at Georgia Tech, there is a difference between the Computer Science curriculum and the Computer Engineering curriculum. The Computer Engineering curriculum seems more practical.

Re: Computer science as a lost art (2015)

#139

I was involved in the hiring and filling of > 50 developer positions at a company, while being a tech lead. We tried hiring a few people with just bootcamps. Only a few (so hardly a representative sample), but none of them worked out. As soon as they had to try something even the slightest bit different than what they'd done in the bootcamp they were lost. There were people with degrees in unrelated fields who then d…

I also think bootcamps are not very selective once you get in. In my experience it's very hard to fail out of them and there's a huge amount of hand-holding. Compare this to a CS101 course based on SICP and it's easy to see how CS degrees select for people who are able to thrive when thrown into the deep end.

Re: Computer science as a lost art (2015)

#140
post #3

As soon as higher-level programming languages such as COBOL, Algol, and FORTRAN came out; many clerks in the mid 1960's onward learned programming without knowing about the hardware guts or theory. Thus, the layering of specialties had already begun.

I'm not that sold on this. Programming in ASM isn't really "harder" than programming in Haskell, it's just slower - it requires discipline, but not the ability to grasp abstraction that some more modern languages need. I think that issues like knowing "how do compilers actually work" or "this thing is actually the halting problem, let's stop" are more relevant than how removed from latches and memory controllers one…

I don't necessarily disagree, but typically an organization wouldn't let a non-degreed employee use or touch ASM (fair or not). It looks dodgy from a P/R perspective.

I also forgot to mention that many engineers and scientists used FORTRAN and BASIC back then without knowing much about the guts of computers. It's largely why such languages were made.

Post reply on HN