4 ms·
> I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract lev
by mrdrozdov 10y ago
> I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract level.
I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming.
There are lots of good jobs for people who can program effectively. There are also lots of good jobs for people that can think abstractly about CS problems. These jobs don't always overlap.
You're right in that bootcamps are not a replacement for the traditional CS degree. There are things you can do in a 4 year research institution that are difficult to do in a 12-week program. It's probably more fair to compare a University program to a bootcamp + 3.9 years of working professionally.
It also almost unfair to call the CS degree traditional. Of the STEM degrees, it is probably the newest and least understood. Bootcamps are wonderful since they help people get awesome jobs, become amazing contributions to society, and in turn will continue to help the CS degree through its identity crisis.
- joslin01 10y ago> I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming. Huh? Even if you didn't want to learn to think abstractly, you would still be enrolled in courses like "Data Structures" that force you to. Did you get a CS degree? You're also making the assertion that you can code successfully without learning abstract thought. That's like saying you can paint a picture without knowing how to use a brush. Quite literally, you can't program without keeping an abstract model in your head of one form or another. Things like OOP helps make these abstractions tangible, but it is nevertheless, just your own vision of how 1s & 0s gotta fly around. I think it's bad form to assert most students who complete a 4 year degree don't ever think at an abstract level. It's rather ridiculous from my vantage point (again, it's 4 years), but maybe your experience is different.
- mrdrozdov 10y agoI'm confident you can get through an Algorithms and Data Structures course (which is the most difficult aka "weeder" course at most institutions) by memorizing a handful of sorting and search methods. You probably won't impress the Professor, but I'm sure you can pass. OOP and other design patterns are also susceptible to memorization. I suspect that you're bringing this up because we have vastly different views of what difficult abstract thought is. Here are two problems that I suspect are difficult to solve on programming experience alone. 1. How does Google display instant results (and recommendations) when you type into the search bar? 2. How would you build a Siri competitor, and what would be the biggest bottlenecks? A problem that someone with minimal programming experience could probably solve would be. 1. How would you build me an inventory system which has an app, automated deploy, and unit tests? 2. Imagine you have only ever built Android apps with a NodeJS and Mongodb backend. How would you build an iOS app with a Python and MySQL backend?
- joslin01 10y agoOk, you'll pass but how will you get through the advanced courses? I don't really understand the point you're making. If I combined these two statements together, I get "it's the exception to the rule because most grads just memorize enough to pass" No, we don't have varying views of what abstract thought is (let's drop the "difficult" cause it's irrelevant). Your view is simply wrong because even your "how would you build an inventory system" takes a tangible (inventory system) and asks you to come up with a programming (abstraction layer above 1s & 0s) solution. Some examples of not abstract thinking: * Memorizing (good one you nailed it; bad that you insinuate most engineers coast through 4 years only learning to do this) * Observation * Memory-recall Some examples of abstract thinking: * Math * Imagining something * Philosophizing something What you're referring to is abstract problem solving, which involves two things specifically for engineers: math & imagination. You didn't answer the question. Do you have a CS degree? I don't think you know what you speak of, and I would not go around telling people "most CS grads just coast thru never abstract thinking." Your fictional split of programming VS abstract thinking I already proved is false with my painting analogy. So again -- do you have a CS degree? What was your experience like? And if you don't, well, maybe you shouldn't be talking.