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…
Code != computer science
61–70 of 148 posts
Re: Code != computer science
#62Fundamentally,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…
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
#63People 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.
Re: Code != computer science
#64This 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…
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
#65I 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…
Re: Code != computer science
#66People 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.
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> 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?
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
#68Earlier 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.
Re: Code != computer science
#69Coding / 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…
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
#70Speaking 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…
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!