News for hackers. Stuff that matters.
Re:The Imposter's Handbook by jacobsenscott on Wednesday August 24, 2016 @11:42AM (#12352828)
I have a CS degree, and while nobody sits around talking about data structures and complexity that's not the point. It gives you a foundation of knowledge that you automatically and subconsciously apply to every job you do.

A CS degree prevent you from making a lot of obvious (if you have a CS degree) and costly mistakes. It sort of gives you a crystal ball. You can see that some code isn't going to work when a db table gets to 100,000 records, or that some code is making the wrong space/time tradeoff, or that some code is using the wrong data structure from the standard library.

When your performance monitoring tool is telling you something is slow or leaking memory you have the foundational knowledge to understand why and fix it, rather than spending money on 10 more dynos or whatever.

Computers are so fast and cheap today a lot of this doesn't matter most of the time. The naive solution does just fine. But when the core dump hits the fan you better have one or two CS grads on staff.

Re:The Imposter's Handbook by BinaryIdiot on Wednesday August 24, 2016 @12:30PM (#12353213)
> A CS degree prevent you from making a lot of obvious (if you have a CS degree) and costly mistakes.

I couldn't disagree more. I do not have a CS degree and have lead many teams of folks with a combination of having and not having them. It's a huge mixed bag and I'm not confident you can make a general statement in either direction.

Yes CS can prepare you by knowing some of the basics but I've run into countless people with CS degrees who don't understand how much of anything works. I've also run into many without CS degrees who understand how the damn storage implementation in Postgres works.

Anecdotally, to me with my small bag of data points from the teams I've lead and the people I've interviewed, a CS degree is only what you make of it. If you were a good student, studied and understood the content then you have an edge. If you were an okay student who just memorized things for tests and never actually applied the knowledge then you're in no better state than someone without a CS degree (perhaps even in a worse state as most of the people I know, including myself, were told by multiple leads that without a CS degree everything is going to be a struggle and to advance you career you must get one so of course I had to work even harder to prove them wrong).

Re:The Imposter's Handbook by nikmobi on Wednesday August 24, 2016 @12:42PM (#12353306)
I agree with you for the most part, but I think if his sentence read:

> A CS degree can prevent you from making a lot of obvious (if you have a CS degree) and costly mistakes.

I think most people can agree that it doesn't provide any guarantee, but it definitely gives you a boost in the right direction.

(For the record, I don't have a CS degree)

Re:The Imposter's Handbook by jasonjei on Wednesday August 24, 2016 @02:20PM (#12354107)
I think in many ways, though, the self-taught guys are going to be very adaptive and resourceful to learn new things. The difference in knowledge can often be compared to a self-taught home cook and a formally-trained cook.

I once had an intern that was a CS master degree student and while he was tackling neural networks in school, I showed him how to link to a DLL 3-times in C++ and he still couldn't figure it out on his own. It also shows you having a CS degree doesn't mean anything.

I think CS though will tell you how it works.

Re:The Imposter's Handbook by stevenwiles on Thursday August 25, 2016 @08:16PM (#12363456)
> A CS degree can prevent you from making a lot of obvious (if you have a CS degree) and costly mistakes.

That is just wrong. A degree is just a piece of paper. How is a piece of paper going to prevent you from making mistakes? It won't.

What you mean to say was this:

> Any intelligent person with reasonable CS knowledge will be able to work without making a lot of obvious and costly mistakes

I hope I've taught you something. :)

Re:The Imposter's Handbook by BinaryIdiot on Wednesday August 24, 2016 @01:07PM (#12353501)
Yeah a simple word and I would have taken the post entirely differently :)
Re:The Imposter's Handbook by jacobsenscott on Wednesday August 24, 2016 @02:05PM (#12353975)
I must have thought the word 'can' and didn't type it because it doesn't read right as it is. I do that sometimes.
Re:The Imposter's Handbook by BinaryIdiot on Wednesday August 24, 2016 @04:29PM (#12355002)
Fair enough. I to do that quite frequently :)
Re:The Imposter's Handbook by manigandham on Wednesday August 24, 2016 @06:05PM (#12355622)
Interesting comments but both are saying the same thing: it's all knowledge in the end.

Either you know or you dont. CS degrees just means you learned it in a more standardized/formalized setting and have some proof to show you did it, but ultimately it's the knowledge itself that makes the difference, not how you gained it.

Re:The Imposter's Handbook by themartorana on Wednesday August 24, 2016 @12:59PM (#12353430)
Agreed. CS degrees do tend to insinuate some degree of focused study, but it's a unique field where you can put in the same focus outside of a collegiate setting and exit with the same result (for undergrad, at least).

I have a CS degree and have worked with brilliant engineers that were HS drop-outs. It has everything to do with a passion for learning. It still requires the time focused on the study of CS, but the setting is secondary.

Re:The Imposter's Handbook by noxToken on Wednesday August 24, 2016 @01:17PM (#12353579)
Different universities will provide different sets of knowledge and depth of that knowledge. However, I think we can generally say that a CS degree will provide the "crystal ball" information that GP states. I believe that your last point is the crux of it all.

Anecdote: I have peers all over the CS knowledge spectrum while taking the exact same class from the same instructors. Some peers have taken that knowledge and written kernels. Others are struggling to write an array sorting method. The former have been served well by their undergrad studies. The latter would have likely fared better in a 12 week bootcamp where it's more training and less theory.

Re:The Imposter's Handbook by unethical_ban on Wednesday August 24, 2016 @01:42PM (#12353781)
Along with the other remarks, I believe it would be fair to say "all things being equal". That is, a given person would benefit from a CS degree in the following ways.
Re:The Imposter's Handbook by emodendroket on Wednesday August 24, 2016 @12:10PM (#12353033)
I agree with the sentiment, but I would say people who are familiar with the CS principles and not necessarily people who have CS degrees.
Re:The Imposter's Handbook by BurningFrog on Wednesday August 24, 2016 @12:39PM (#12353278)
Spending 4 years to get a CS degree gives you a lot of skills and knowledge.

But so does writing software outside of college for 4 years.

Which one is better? That's an empirical question.

Re:The Imposter's Handbook by epalmer on Wednesday August 24, 2016 @01:00PM (#12353442)
I think the CS degree validity question depends on the person and the institution. I have interviewed programmers from CS programs that did not know even the basics of programing, not to mention the more advanced topics that we should know. I also know of programs that are producing pretty well rounded and knowledgeable students with a 4 year degree. So the normal YMMV must be applied.

I also think the same holds true for self taught programmers. I am self taught. Early in my career (decades ago) I was using perl to process some large text files. I was building a string of relevant information like $x = $x + "some value".

So this was wrong on so many fronts. After 25 hours of running I figured something was wrong. Okay, so I'm a slow learner...

I preallocated the string and the program ran in less than 20 minutes. Now of course a string was an inappropriate data type as well. I learned a lot at that point and starting thinking about internal representations of data structures and other concepts.

Re:The Imposter's Handbook by JoeAltmaier on Wednesday August 24, 2016 @12:40PM (#12353288)
Usually here is where we observe Dell, Gates and Jobs didn't finish college. But that's more about business than engineering.
Re:The Imposter's Handbook by cholantesh on Wednesday August 24, 2016 @03:58PM (#12354768)
And even if it wasn't, one could retort that Brin, Page, Musk, Nadella, etc. did, and in fact, did graduate level studies. It's a complex question.
Re:The Imposter's Handbook by rayiner on Wednesday August 24, 2016 @12:49PM (#12353358)
> A CS degree prevent you from making a lot of obvious (if you have a CS degree) and costly mistakes.

This. Many years ago, our code was shitting the bed, a month before a major milestone deadline. Turns out that someone wrote an N^2 algorithm and only tested with N=5.

I don't have a CS degree--just a few semesters of combinatorics and graph theory. When I was programming, I always felt that was a huge liability. I'd confront a problem, and I knew just enough to know it could probably be reduced to some graph problem and solved using a known algorithm, but I didn't know what that was.

Re:The Imposter's Handbook by pc86 on Wednesday August 24, 2016 @01:01PM (#12353449)
And a CS degree teaches you nothing about how to appropriately test a given system and whether N=5 is sufficient, but industry experience will.
Re:The Imposter's Handbook by unethical_ban on Wednesday August 24, 2016 @01:43PM (#12353787)
some CS degrees. From what I've observed, some CS programs are teaching "software engineering" at the senior/masters levels in order to focus on development and design over theory and math.
Re:The Imposter's Handbook by simtel20 on Wednesday August 24, 2016 @12:53PM (#12353389)
Yes but I've seen CS degreed developers with industry experience do that when deadlines approach and the test procedures don't keep up with the product specs.
Re:The Imposter's Handbook by crdoconnor on Wednesday August 24, 2016 @12:27PM (#12353188)
>Computers are so fast and cheap today a lot of this doesn't matter most of the time.

Indeed, yet since it's emphasized so much in college people prioritize this over cleanliness and architectural elegance which matters much more.

Re:The Imposter's Handbook by Silfen on Wednesday August 24, 2016 @01:03PM (#12353461)
Depends (like most of these generalizations) on your college and teachers. I had two professors who hammered the point that the priorities are: clarity, correctness, and performance. In that order. Perhaps a bit dogmatic, but a useful idea.

We would often spend class time writing cleaner, simpler code after arriving at a correct answer.

Re:The Imposter's Handbook by ap22213 on Wednesday August 24, 2016 @01:20PM (#12353597)
It's extremely helpful if a team member has a CS degree, but it's not always essential.

The CS grad usually understands the whole stack from UI through CPU, I/O, and memory. They don't get the distant stare when they see code with a Red black tree or a graph algorithm. They may not know about skip lists and bloom filters, but they can figure it out quickly. They understand reference vs. object equality. They understand multi-threading and concurrency strategies. They understand how to implement a hash so that there are few map collisions.

That said, a lot of IT work, web development work, database work, API work, etc. doesn't require all of that. A lot of my work does, but if it doesn't, I hire based on passion, productivity, resourcefulness, and craftsmanship.

As an analogy, many small businesses are successfully run by self-taught entrepreneurs. But, running a $100M company requires different knowledge.

Re:The Imposter's Handbook by eksemplar on Wednesday August 24, 2016 @12:03PM (#12352992)
The thing is though that you don't really deal with this in your day to day life, and when you do, even with a few CS candidates on staff, you're going to hire a consultant with a Ph.D. in the field.

Of course I may be environmentally damaged from never having worked with someone who was self taught.

Re:The Imposter's Handbook by schrodinger on Wednesday August 24, 2016 @12:34PM (#12353242)
I don't think that's entirely true. It comes up pretty often. You may not be doing formal proofs but it's helpful to have a thorough understanding as it helps guide intuition around scaling your product (e.g. how a database query will scale with more users). It should influence your design early on rather than be something requiring a PHD consultant later on
Re:The Imposter's Handbook by jacobsenscott on Wednesday August 24, 2016 @12:20PM (#12353127)
I deal with this stuff regularly, but not daily. I'm sort of the go to guy on the team when things start to feel CS'y. It isn't PhD level stuff.
Re:The Imposter's Handbook by burnstek on Wednesday August 24, 2016 @12:15PM (#12353086)
It also helps communicate with colleagues who prefer to leverage their CS background when discussing algorithms, issues, etc.
Re:The Imposter's Handbook by muhmi on Wednesday August 24, 2016 @12:12PM (#12353058)
That sounds like very basic CS stuff, so I guess "CS degeee" here means B.Sc. level knowledge? ;)
Re:The Imposter's Handbook by pc86 on Wednesday August 24, 2016 @01:02PM (#12353459)
As opposed to what? When discussing the existence of degrees in industry "CS degree" means Bachelor's 999 times out of 1,000.
Re:The Imposter's Handbook by vonmoltke on Wednesday August 24, 2016 @12:21PM (#12353134)
Why would it not?
Re:The Imposter's Handbook by mamon on Wednesday August 24, 2016 @01:23PM (#12353619)
In some countries (think "Europe") Bachelor degree is considered "incomplete", or just an intermediate step. Only Master of Science degree is regarded as true "higher education". There are even university programmes that take you straight to MSc degree, without stopping at BSc.