Live data from Hacker News

Code != computer science

ultrasaurus.com

61–70 of 148 posts

Re: Code != computer science

#61
post #54
post #20

I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. There can also be a bit of an attitude, like the person is thinking "of course this is good, I we…

> I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. I would have ignored your comment were it not for you mentioning that you write javascript. I s…

What I find when I work with "pointy" data structures is that it really, really helps to draw diagrams to clarify your thinking. I can write a doubly-linked list extraction with my eyes closed (and it'd probably help to do it with closed eyes, since I can more easily picture what's going on) but it very likely won't look anything like yours... what's dec for? And all the extraneous underscores in the variable names, I don't see why you need them. What's wrong with p and p?

Re: Code != computer science

#62

Fundamentally,computer science = data structures + algorithms. in a data structure class,you learn the basic structures like PODs,structs,vectors and linked lists. in algorithm class,you learn various basic sorting algorithms plus the big O notation and thats pretty much it. Then you will take a few physics classes,then chemistry classes,then maybe calculus one and two,then probably discrete mathematics class,one or…

People are incredulous when I tell them I use 90% of the stuff learned while getting my CS degree.

Stuff I've done in the real world:

AI: I've lost count of the number of times I've had to implement A*

Graphics: wrote a ray tracer; matrix transformations

Data structures and algorithms: wrote an approximation algorithm for the travelling salesman problem (christofides); fancier data structures like bloom-filters, lru caches; and just every day coding

Databases: query optimization

OS: Made me aware of systems (context switching, caching performance,...). Scheduling algorithms and how they affect the embedded software I write. Concurrent programming.

Networking: Super helpful for everyday stuff when you understand the underlying principles. I've had to implement an RFC from scratch (DNS).

Linear algebra: Used extensively in a path planner I wrote---with it I was able to reduce the state space by orders of magnitude compared to the standard grid approach.

Statistics: wrote an online algorithm for adaptive windowed linear regression

Even computability theory has been helpful, as it has strengthened my proving and reasoning skills---helping me find holes in requirements, or proving algorithms/invariants. Same with all the theoretical math courses I took (Analysis, Set Theory, First Order Logic ...)

The list goes on...

Above all, my CS degree taught me how to learn CS and beyond.

Sometimes I worry about the potential solutions I am overlooking, because I never fully branched into the continuous domain (control theory, etc).

Re: Code != computer science

#63
post #32

People who claim they'll never use computer science in their job as a programmer remind me of the people who say they'll never need math after school. It reminds me of the old xkcd: you can get by without it, but the fun things in life are always optional.

Yeah, but most dev work isn't very interesting.

Re: Code != computer science

#64
post #47

This is like saying speaking fluent English doesn't make you a genius, and being a Genius doesn't mean you will speak fluent English. Having a CS degree won't make you a genius, or guarantee you write beautiful code. There are 3 factors at play. Brains, Fluency, and Theory. If you have good theory you won't spend 100 years trying to figure out things people already have figured out. If you have good Fluency you will…

Where does one apply for their genius certification? Perhaps I can slap that on my resume.

Seriously though, I like the assessment. I've worked with people from all three camps. Everyone has their pros and cons. I work in the medical space and end up spending a lot of time with more academic types.

In my experience they haven't been the best "architects", but they have been great at solving tough problems and writing code that does what it is supposed to do. I work with them to develop it, and then I take our code and integrate it in a way that allows us to maintain it more easily over the years.

Re: Code != computer science

#65
post #54
post #20

I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. There can also be a bit of an attitude, like the person is thinking "of course this is good, I we…

> I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. I would have ignored your comment were it not for you mentioning that you write javascript. I s…

The code was a little convoluted, but those comments totally cleared things up.

Re: Code != computer science

#66
post #32

People who claim they'll never use computer science in their job as a programmer remind me of the people who say they'll never need math after school. It reminds me of the old xkcd: you can get by without it, but the fun things in life are always optional.

From my observations, many seem to dismiss anything related to computer science that is not cutting edge research. For instance, I once recall reading a comment downplaying the Linux kernel because it only used simple algorithms that any first year CS student would learn.

And that may be the case, but that attitude places CS on a pedestal that most people feel is out of their reach. As such, when they use CS fundamentals in their day-to-day programming job, they don't really feel like they are using CS. They're just coding.

Similarly, I think people hold similar attitudes about math. Arithmetic isn't math. It is what elementary school students learn. Only mathematicians with chalkboards full of unintelligible symbols dreaming up formulas that the world has never seen before use math in their job.

Re: Code != computer science

#67
post #40
post #4

> Treehouse CEO Ryan Carson declares “A computer science degree is a rip off…I know because I have one.” Perhaps his CS degree was from a college which didn’t have a very good program or maybe his focus has been web development where you rarely need computer science. According to wikipedia: > In 2000, he graduated from Colorado State University with a Computer Science degree I suspect, like with most fields, that the…

Well if you think of it, a CEO like Steve Jobs will call the PC a truck... to sell the iPad. • Computer Science = Truck • Treehouse = iPad But how do you make iPad dev tools?

> But how do you make iPad dev tools?

The same way you make a real-world video editing suite work on an iPhone and have the guts to make that your seasonal and campaign: in a careful and considerate fashion without trying to be all things to all people.

That said, if I had an editable Chrome dev tools on a tablet I'd be 50% of the way there some days. :)

And ... Don't read too much in the car/truck comment. Eventually even smart phones will behave like supercomputers. It's just a matter of time.

Re: Code != computer science

#68
post #54

Earlier quoted context omitted.

> I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. I would have ignored your comment were it not for you mentioning that you write javascript. I s…

The code was a little convoluted, but those comments totally cleared things up.

Sure, "/* ie. dec==_DEAD_, no which ain't it not worth man */" really cleared things up.

Re: Code != computer science

#69
post #26

Coding / programming is part of computer science. CS includes maths, electronics, micro electronics, logic gates, how hard drives work, and what not. CS is about computing and computers as a whole. So, coding is only a part of it. In fact, I see this title as the wrong way round, it should be: computer science is not coding. Too many people think codes know all about computers. In my experience, they dont. They have…

At American universities, there is often a different degree for the hardware aspect of computing: Computer Engineering, which deals with digital design and other hardware stuff.

Computer Science is generally focused on algorithms and math, but the emphasis on coding varies across universities -- some are way more math heavy, while others have more software project work.

A few universities have a separate Software Engineering degree, like Cal Poly SLO. The emphasis is on the process of software development and applying computer science fundamentals to a product. This is the job of gathering requirements, designing a piece of software, and, often, actually implementing it.

SEs have to know how to structure software and put together data structures and algorithms, integrating knowledge of the hardware (and underlying layers, like the OS) that the software is running on. Computer engineers and electrical engineers make the hardware and everything lower than the OS. Computer scientists have to know how to develop new data structures and algorithms. Making software requires the work of all three professions.

I think there's a huge difference between "learning to code" and "learning to become a software engineer," or "learning to become a computer scientist." One can learn to code without a breadth of domain-specific knowledge, which obtaining a degree may give you.

Re: Code != computer science

#70

Speaking from experience, this is true. You also don't really know when true CS is useful until you run into it. I graduated with the equivalent of a minor in CS. When I started coding for an web-based gaming start-up in 2007, it was mostly irrelevant. You don't need a CS degree to learn Ruby on Rails, nor is it necessarily useful (beyond your basic intro courses) to have taken CS courses. Flash-forward a year, after…

These "hardcore" problems like AI and pathfinding are definitely tough problems. The issue is that there's an infinite supply of such problems and there's no way a 4 year degree can cover them all. In fact, even if they did, most lessons would be forgotten before they could be proven useful in the real world.

Why not just learn these areas when needed? Taking an Advanced AI course in just a 2-3 month semester is how many hours? Just spend a week or two hitting the books and you'll be good to go, and you're knowledge will be bleeding edge and up to date. Plus, you'll have been paid to learn it!

Post reply on HN