6 ms·
I'm not sure I would so quickly listen to the HN trends. There are a lot of people on HN who are younger and they like the idea that this would be a trend. You
by georgefrick 11y ago
I'm not sure I would so quickly listen to the HN trends. There are a lot of people on HN who are younger and they like the idea that this would be a trend. You are allowing them to define the competitive advantage.
You'll have to do the math and weigh the cost/benefits of your degree.
Personally I think we're in a bit of a bubble/gravy train. The idea that programming will become the new automotive assembly line for self-taught labor is a bit of a stretch.
A degree can impart many benefits (math, core CS ideas, subject matter classes such as speech theory, advertising, management, etc). While many people can make enterprise apps with direction based on being self taught; not many can really build something in depth. Boeing isn't going to let just anyone write aerospace firmware. So if you want to get a job quickly and milk this while it's hot - maybe you go for it?
I don't think it's clear cut, and I like having my degree. I'm good friends with fantastic developers without degrees who work alongside me.
In the long term; it depends on the competitive advantage you can get out of that time in school vs your peers extra experience in the field; as well as your goals.
- hajile 11y agoIs a degree objectively better? Developers generally fit into two broad categories -- those who learned to program on their own at age 10 or so and those who decided to pursue a CS degree because the job pays well or they like playing video games. 7 years of experience beats 4 years of college and 3 years experience pretty much every time. Unfortunately, a huge amount of CS degree time is spent dealing with those with no experience (We have remedial Math or English classes, why not remedial programming classes?). When I hit college (pursuing EE with CS on the side), I already had almost a decade of programming under my belt. I coasted through anything programming related (I'd already found and read books on the theoretical side of programming, so even those weren't that interesting). At the end of the college road, the people with college only were mostly worthless. They may be able to parrot the big-O notation, but they couldn't tell if a function would be efficient. They could talk about design patterns, but they couldn't handle systems more complex than a couple files. That's nothing against them, I (and others who had been programming from an early age) simply had a lot more experience in thinking in that way (and over time, most of them have become much better). We need to introduce programming to all children at an early age. Not because everyone can code (that's not at all backed by any studies I've ever seen), but because lots of kids don't find out that they have a knack for programming until college (or not at all). If most CS students had been programming since middle school, CS could drop a bunch of the remedial classes and focus on the finer parts of programming. Many so-called masters classes are within easy reach if you have some programming time under your belt. Companies would be a lot more willing to hire a dev out of college if they knew college was worth something. Until that happens, I don't think a degree is actually better.
- georgefrick 11y agoI'm actually confused why you seem to be attempting to argue my point, when I was stating it's a situation that is unique to an individual. Do you really objectively think a degree is a yes/no answer that applies universally? What if someone wants to work on deep sea exploration robotics? Yes/No is an oversimplification and your post actually helps to point that out in two ways. The second way is easier so I'll get it out of the way. More education earlier is an argument that formal programming education can be helpful. That wouldn't undermine the idea that a CS degree has importance on a individual basis; not as a general yes/no rule. We've agree that formal programming education CAN help. The second point is big for me, and it really bothers me to be honest (not about your post, I appreciate your post). It's this idea that the CS degree is this static cement thing; like we order it from Amazon. A degree is what you make it! Your point about remedial classes, etc is spot on. It's exactly an argument that each person has to weigh the benefits they can get from the degree with the benefits from going right into the industry. If the person shows up at college and picks programming for the reasons you described; then you are probably correct in that it is not "better". However, college is a four year chance to build a competitive advantage. Statistics. Economics. Linguistics. Physics. Accounting. Art. Etc. If someone chooses to make their degree a worthless money sink, that does not cancel out the person who spends four years learning to code, analyze speech, and working hard on the OpenROV team. Those are two completely different people and neither needs to put their degree on their resume. But only one can put speech analysis and OpenROV there; which they got as part of that degree. They also now have those contacts and team building experiences. Another example might be someone who spends the four years working part time as a contractor. "Got a degree while building industry experience" trounces "got a degree" AND "industry experience" (imho). A degree is something you pay for, it's an investment and should be treated as such (in the scope of our discussion). While the underlying argument may be if an employer cares; I think that honestly employers are looking at it as a signal that there might be something more to you than some Java/JavaScript syntax.
- gravypod 11y agoMy main problem with attending my university is a lot of my time is spent dealing with classes I can't care about. Right now my in major GPA is above a 3.2 while my cumulative GPA is hovering around a 2.9; I just don't care about non-cs classes. This would be find if being at a university had any noticeable benefits, but it only has detractors. - No one will hire me for a paid position - I have to waste most of my time on classes I don't care about - No more time for my side projects that I use to learn.
- Ologn 11y agoYes, we just had a period after 2008 when open positions dried up, and I remember 2000-2001 when the economy hit the tech companies specifically (I went to work at an investment bank). People shouldn't ask if they and their co-workers have CS degrees, they should ask what percentage of programmers in their 40s and 50s they have met have CS degrees (or at least math/physics/EE degrees). 1999 was even more of a go-go time than now, then suddenly everyone was laid off and looking for work, and the few positions open that didn't require a BSCS would have HR go over your educational background asking about it. A lot of the ones without degrees who got jobs when people were desperate to hire got washed out when times got hard, and never came back to the industry. Something to think about when you see all the 20 somethings sitting around you (where are the older people?) and tell yourself a BSCS does not matter. One point people make is the best programmers without degrees are better than the worst programmers with degrees. This is true but does not mean much. I took courses in Java and C++, and self-taught programmers tend to know as much as I learned in those classes. What they tend to skip is the theoretical foundations. Calculus, graph theory, theory of computation, mu-recursive functions. I took two classes (one was elective) which dealt with mutual exclusion, race conditions, critical sections etc. I spent months studying them, writing complex homeworks dealing with them, being quizzed on them etc. This came to be helpful, sometimes very helpful for me. Obviously people are not learning about this as I run across race conditions in code far too often, and I have heard others say this as well. I had to sit down and learn to deal with this for some months and some programmers never do. I don't understand the comments from people who say they already knew what was taught in class so it was a waste. Class is one fourth of the time, then you're supposed to spend three hours studying for each hour in class. So if you know 100% of what was taught in class you just saved yourself three hours to do something else. I was a Unix sysadmin for a long time and yes, the class where we learned "ls", "cd", "pwd", "chmod" etc. was not that educational. But the next class our homework was to study the process scheduler for Mac, Windows and Linux. I had always put off doing this, so I finally sat down and studied how Linux's completely fair scheduler worked and learned a lot. I learned what actually happened in full when an add instruction came in for two registers on a processor, and what logic gates they would go through. So even what I specialized in was filled out. Another thing - often it is not what you know you don't know, but what you don't know you don't know. If I know a heap is a good data structure to quickly find the highest number in a list, then I can learn about heaps. If I never heard of a heap I might use a slower method. Or a real world example - in class I learn about Goedel numbers. Then a year later at work I have to take a (short) list of (small) numbers and make them into a hash. But how? Then I remember Goedel numbers. Again, it's not what you know you don't know, it's what you don't know you don't know. To learn by yourself, you have to know what to look for, and you often don't. As I said, I worked a while as a Unix sysadmin. I went back to finish my BSCS. I'm not rationalizing a decision I made at 18 by talking it up, I realized how important it was to filling in gaps of knowledge, as well as to getting a job, especially when one is needed. A lot of people reading this are too young to have been working when most of the startups and dot-com's folded in 2000, and the few IT positions at traditional companies were flooded with applicants, many with college degrees. Things can turn on a dime, and having 4 years experience in RoR or Node.JS can quickly go from meaning a $120k job to meaning next to nothing.