Live data from Hacker News

Computer science as a lost art (2015)

rubyhacker.com

121–130 of 146 posts

Re: Computer science as a lost art (2015)

#122
post #100

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…

> 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. I think it's pretty common for CS degrees to have all/most of this in scope already? At l…

Yeah... maybe I'm out of touch (started undergrad in 2002) but... that sounds like a CS degree to me! Mine didn't cover embedded at all, but if you took the Advanced OS course, you ended up writing an x86 bootloader in asm at the start, which could eventually jump to main() for your scratch-built OS.

Re: Computer science as a lost art (2015)

#123

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…

There’s something to be said when you spend years building complex things from the ground up

My fav set of classes that changed the way I think account things in CS. It was at UNSW in Australia.

Fundamentals - we started with C. I hated C segfaults but realized the power of pointers, structs and how memory kind of worked. We built a little 8bit machine code and a little VM.

Datastructures and Algos - hashes, b-trees, graphs etc. it was eye opening to hear how this had been invented before I was born and the latest and greatest databases still use their variants. We built a crawler and search engine with our own hand written database. That’s where I learnt about mmap. A lot of fun.

Compilers - The whole, lexer, parser, checker, emitter pipeline. Write your own subset of C to jvm compiler. We did a simple lisp interpreter too.

Advanced graphics - we built our own little 3D game engine using only OpenGL calls.

Microcontrollers - literally programmed in assembly to operate a simple lift. Learnt about electrons and gates and how they make machine code work. Connecting compiler knowledge with microprocessor internals was a holy mind opener moment.

There’s something to be said about “we’re gonna build mystery thing X from the ground up and connect theory to practical”.

Sucks that Australia has very poor VC funding and startup ecosystem. UNSW produces some phenomenal graduates that are quickly stolen by US tech giants.

Re: Computer science as a lost art (2015)

#124
post #90

It means that a person can get the little things done while knowing very little. But it also means that this person probably will never learn enough to get the big things done. To be honest, I get secretly frustrated with the lower-level people who now exist in giant hordes. (I rarely tell anyone that.) To me, they are like people who have decided to learn 5% of their field in order to get a few things done, have som…

What this is missing is that programming is not one job, it is multiple different jobs with different required skillsets and aptitudes. Making tools and libraries is not necessary that complicated. It is oftentimes simpler then making large business app, because requirements tend to be clearer, more stable and because you can copy design of one of existing editors. It does require knowledge of algorithms that large b…

The point of CS is not to make you highly skilled in operating systems or languages or even web apps. It is to give you overall idea about those areas to make you able to choose what to focus on

My point is that those overall ideas are lacking in substance and understanding. People should have just enough background knowledge to keep themselves out of trouble and off of toes. So many CS grads seem to lack even that.

Re: Computer science as a lost art (2015)

#125
post #62

I dropped out of a Computer Science program at KSU. It’s been great.

What have you been doing since then ? Are you pursuing self-study ? I'm curious .

I am always working on side projects that usually become businesses or lead to a consulting/full time opportunity. I’m currently working at Apple as a tech lead.

I worked my entire way through school doing IT (6 months) then software engineering (2.5 years) before I was offered my first full time by some coworkers that went to a startup. The full time offer also lined up with my term as president of my fraternity ending, so it was time to get out.

Re: Computer science as a lost art (2015)

#126

It means that a person can get the little things done while knowing very little. But it also means that this person probably will never learn enough to get the big things done. To be honest, I get secretly frustrated with the lower-level people who now exist in giant hordes. (I rarely tell anyone that.) To me, they are like people who have decided to learn 5% of their field in order to get a few things done, have som…

I think the mistake a lot of people make is the split between you need a degree and degrees are worthless. Degrees are largely what you make out of them. I have been going through a bachelors of computer engineering and the curriculum/professors make every effort to provide as much value as possible yet most students do just enough work to get the grade they want in the class. In this same vein, students so often tak…

Degrees are largely what you make out of them.

Agreed. I think a lot of people take CS to get a GPA, network, get a good list of impressive sounding internships, and work with buzzword-compliant libraries.

Re: Computer science as a lost art (2015)

#127

Earlier quoted context omitted.

It’s often argued here that the purpose of a CS degree is “not to get you a job” but to “become a better citizen of the world” and if you just wanted to learn something to get a job “you should go to a trade school”.

> It’s often argued here that the purpose of a CS degree is “not to get you a job” but to “become a better citizen of the world”. I can't recall ever hearing that argument advanced for CS degrees on HN (and I read a _lot_ of HN postings). Perhaps you're thinking of liberal arts degrees? The usual rationale for CS degrees is that one learns the underlying theory behind the systems and tech stacks that they use, making…

Here is one discussion that I was involved in.

https://news.ycombinator.com/item?id=17432191

Re: Computer science as a lost art (2015)

#128

Earlier quoted context omitted.

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.

It’s often argued here that the purpose of a CS degree is “not to get you a job” but to “become a better citizen of the world” and if you just wanted to learn something to get a job “you should go to a trade school”.

What's the point of a chemical engineering degree? It's to learn to be a chemical engineer, but it's not a trade school degree. Far from it.

And there's degrees in chemistry, for those whose goal is to study the way atoms interact with each other. That's different from chemical engineering, where the goal is to efficiently produce the desired molecules at scale, without blowing up the factory. Two different degrees, with two different focuses, in the same general area.

In the same way, I think that computer science needs to be a separate, different degree from software engineering. At the moment, CS is trying to be just one area, but I suspect that it's often inadequately preparing those who are going to go on to be software engineers - who are in fact the large majority of CS grads. (They may also be inadequately preparing those who intend to stay in theoretical computer science, but I have even less information about that.)

Re: Computer science as a lost art (2015)

#129
post #17

I've worked for years as a self-taught developer before going back to get my CS degree, I've taught at a bootcamp, and I've hired bootcamp graduates. Bootcamps can be valuable, but they are in no way comparable to a 4 year degree from a decent CS program. The top performing bootcamps are either functioning as an extended job interview that you have to pay for, or they are very good at selecting experienced students w…

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.

>a boot camp graduate has already been exposed enough to modern tech stacks to at least come in as a junior.

From my experience that is not true. Bootcamp graduates (obviously barring additional experience) tend to be qualified to start at the intern level.

>Too many CS grads have little practical experience

Compared to veterans yes, but compared to new bootcamp graduates I disagree.

What CS grads can lack vs bootcamp graduates is the kind of thing they can pick up in a few weeks (as evidenced by bootcamps only lasting 6-12 weeks)--the reverse usually isn't true.

Practically, I've almost never seen this. Just like I've never interviewed a CS graduate who couldn't use a for loop despite all the horror stories that people like bring up. Even the most theoretical CS programs tend to require several sizeable projects.

Bootcamp grads can be a good find if you're willing to train, but in general that's because they are cheaper than CS grads, and for some level of work they tend to be goo enough, not because they are better programmers.

There are obviously many exceptions to this, and I'm only comparing CS grads to new bootcamp grads assuming similar backgrounds ages etc... One advantage bootcamp grads do have is that they tend to be a little older/more mature, but that's really nothing to do with bootcamp vs university.

Re: Computer science as a lost art (2015)

#130
post #17

I've worked for years as a self-taught developer before going back to get my CS degree, I've taught at a bootcamp, and I've hired bootcamp graduates. Bootcamps can be valuable, but they are in no way comparable to a 4 year degree from a decent CS program. The top performing bootcamps are either functioning as an extended job interview that you have to pay for, or they are very good at selecting experienced students w…

I'm a self-taught web dev, and I want to further my CS education but can't go back to school for various reasons. I've seen various syllabi eg teachyourselfcs.com and though they seem legit (and I've dabbled is some courses) I don't quite see the application/direct benefit professionally. Let me phrase in another way; when I got started it was easy to see why I needed to learn front-end and back-end to make a web app…

>I think it would be helpful to see what jobs I could get by furthering my CS fundamentals, and not just "Senior Software Engineer".

This is going to difficult, because getting a job other than Software Engineer (or something related in management or sales) often requires credentials.

However if you'd like to get a higher paying software engineering job at a company like Google, CS fundamentals can definitely help you get through the interviews.

>Should I really slog through ye olde CS curriculum in hopes that one day I'll be able to apply some of it? Can you recommend another approach?

Yes to the first, no to the second. CS fundamentals build on each other. It's difficult to understand algorithmic analysis if you don't understand calculus (at a basic level), and it's difficult to understand automata if you aren't familiar with set notation from discrete math etc...

Learning on your own, it's tempting to avoid the boring stuff and focus on what's fun or seems useful to you right now. The problem is you don't really know what's going to be useful later on.

You already know how to code, so If you are really interested in the learning the fundamentals, first I'd make sure you have a basic grasp of high school math through calc I. Then I'd go through a good discrete math textbook (I'd recommend one that's CS focused). After that I'd work through a data structures and algorithms textbook, then a programming language concepts textbook, a computer architecture/organization textbook, and finally a theory of computation/automata book.

You'd have a decent grasp of the fundamentals by then. After that if you want to go further, I'd go through books on networks, operating systems, compilers, and functional programming.

Post reply on HN