Live data from Hacker News

A CS degree is better than teaching yourself how to code?

zeroequalsfalse.com

181–190 of 330 posts

Re: A CS degree is better than teaching yourself how to code?

#181
The problem with these articles, and discussions of same, is that they rapidly degenerate into festivals of self-praise.

Long term everyone is teaching themselves to code, or picking up skills on the job. Maybe I'm an idiot, but almost every skill that I have has gone almost 100% in and out of cache over the years. Having had a decent foundation at one point is probably helpful, and struggling through a highly mediocre CS PhD (the program at CMU was excellent, but I was pretty shit at the research side) gave me some lifelong skills and interests. However, almost everything that I can do semi-competently now is a product of repeated independent study and learning on the job.

Many of the skills that I now think of as bread-and-butter weren't even a thing when I was an undergraduate or early grad student. SIMD programming was pretty much non-existent on mainstream processors (although I learned some nice parallel prefix stuff in a parallel algorithms course). Computer architecture is hugely different. C++ is nearly unrecognizable - when I started C++ programming, half the language wasn't even really there (no templates, and exceptions exploded in weirdo ways) and the emphasis of how people programmed back then was totally different.

In the end, everyone will either be a self-directed learner or GTFO into management.

The skills you will get from university can be deeper, but I've met plenty of people who managed to escape CS degrees without learning anything profound. They can also be 'wider' - I learned a lot of useful stuff in pure mathematics (graph theory and combinatorics). There's nothing stopping a truly inquisitive person from picking up a lot of this on their own, but the structure of university is good for a lot of folks.

Re: A CS degree is better than teaching yourself how to code?

#182

Teaching yourself to code while getting a CS degree is best IMO. Just teaching yourself you'll likely miss lots of topics and not challenge yourself as much. Conversely I've met plenty of students that don't really care about the topic and are just taking the class to get a job. So do both! Take the class and teach yourself. In other words pursue your hobbies and use code where those hobbies match. Learn the things y…

If I were asked to impart one piece of advice to prospective CS students, it would be to take advantage of your school’s coop work program or, if there isn’t one, to try and find a recurring internship.

Nothing beats real world experience, and the sooner you can put theory into practice, the better.

Additional learning on your own is, of course, also a great idea. Pick a project you’d like to do, and then do it. Or find an interesting open source project, explore the code base, and try tackling a bug report or two.

Re: A CS degree is better than teaching yourself how to code?

#183

Teaching yourself to code while getting a CS degree is best IMO. Just teaching yourself you'll likely miss lots of topics and not challenge yourself as much. Conversely I've met plenty of students that don't really care about the topic and are just taking the class to get a job. So do both! Take the class and teach yourself. In other words pursue your hobbies and use code where those hobbies match. Learn the things y…

Is it really possible to apply CS skills to all hobbies? If yes then how do you apply CS to hobbies like woodworking or crochet? The only thing I can think of is a retail site, but then again why wouldn't you just use something like tindie? Or should people who don't do coding related hobbies not do CS? Which is a special requirement just for this major. People in civil or biomedical engineering don't apply their maj…

In the pursuit of your hobbies, you will find problems. Many of those problems can be solved (or made less onerous) through coding up a toy app.

Or you can tackle the really hard problems if you want. Make a CNC lathe for wood working. Maybe create an app to layout your cuts in the most efficient way.

I don't know enough about crotchet to suggest anything...but I bet there are problems to be solved.

As far as why you wouldn't use an already existing app? Why would you build a birdhouse from scratch when you just go buy one?

Re: A CS degree is better than teaching yourself how to code?

#184
post #162

Earlier quoted context omitted.

> This is a very strange article and premise to me. A university education is not vocational training. I know right? Stupid plebeians expecting to get something that will help them earn a living out of spending three or four years learning something and foregoing the earnings they could have made in that time. If you don’t know that university is for signaling your social class rather than learning skills that will b…

The purpose of a university is research. They teach undergraduate courses so they can get more researchers to further academia. The university isn't interested in anything else. If your goal is to maximize your earning potential, there's far more effective ways of spending 3-4 years.

> The purpose of a university is research. They teach undergraduate courses so they can get more researchers to further academia. The university isn't interested in anything else.

Sorry, but this assertion is so incredibly wrong. At Warwick, where I did my undergraduate degree, 95% of students in my CS cohort were in a professional job 6 months after finishing the course - they're not staying around to do research! The courses are marketed based on earnings potential after graduation. Research grant income is dwarfed by tuition fee income. That's just how it is.

It's just laughable to suggest that universities aren't interested in teaching.

>If your goal is to maximize your earning potential, there's far more effective ways of spending 3-4 years.

I agree with this and it's one of the regrets I had.

Re: A CS degree is better than teaching yourself how to code?

#185

Teaching yourself to code while getting a CS degree is best IMO. Just teaching yourself you'll likely miss lots of topics and not challenge yourself as much. Conversely I've met plenty of students that don't really care about the topic and are just taking the class to get a job. So do both! Take the class and teach yourself. In other words pursue your hobbies and use code where those hobbies match. Learn the things y…

Personal story, sorry if I ramble a bit (I put things in footnotes when it really became a huge tangent), I don't have time to edit to make it short and snappy.

---

I agree with this, I didn't take this approach and I'm regretting it (in a way). I'm in the computer science camp and just trusted that my education in it would be fine. Instead, I studied other things on the side (working on the side as a TA and studying psychology were my side projects and in my final years web dev, which is how I know what I've missed in my early years).

The trade-off is a tough one though: studying psychology and being a TA made me a much more well-rounded person. I have so much more confidence in my social skills. I would not have gotten that if I'd have teach myself coding on the side as well, not even if I'd do freelance projects on the side as well [1].

Not learning how to code as a web or app dev really limited my growth because of a lack of context. Discovering HN 3 years ago saved me a bit from it [2]. Now that I do have some context, I can more easily see how abstract topics such as theoretical CS or algorithms are important as they force you to simulate code in your head and not rely on a debugger! But I could only gain that context by teaching other people JavaScript and realizing that in the beginning stages, learning algorithmic thinking is the toughest still to become a web developer [3]. If I'd have learned web dev or taught web dev earlier on during my studies, I'd have understood the importance of abstract CS topics.

Instead when I learned them I was bored out of my mind and it was such a shame that I was, I shouldn't have been bored. I should've been fascinated, because it is fascinating. Unfortunately, I couldn't see it at the time.

But hey, at least now I can!

[1] Because just like computer science, psychology taught me something formal that I needed to learn but wouldn't be able to learn on my own which is: how to detect nonsense when people talk about the science of human behavior. I need a lot of formal training on human behavior, so knowing how to distinguish a good vs a bad learning source is of paramount importance, especially because about 1 in 20 resources are decent and the other 19 will make you worse off.

[2] Because it taught me general industry concept simply by reading the front page while also keeping my interest high in other topics.

[3] Almost everyone has some eye for design, so they are able to have that as a reference. HTML and CSS basics are always easy enough to learn for people. Where they struggle is with JavaScript and mostly stepping through code. The people who are mathematically inclined are the only people who will learn the basics quickly.

Re: A CS degree is better than teaching yourself how to code?

#186
post #152

The lack of appreciation of pure knowledge in this thread is truly saddening. If all you care about is getting a job, this question boils down to simple finance. If you want to truly learn, understand and engage in a topic, what can possibly be better than emmersing oneself in an environment of learning, inquisitive students and knowledgable professors full-time?

Most parents and students aren’t getting in 10s of thousands in debt to go to school for “pure knowledge”, they are going to school to get a job. Being able to get in debt for their child to be a better citizen of the world while they get a degree in “Ancient Chinese Art History” is not a luxury that most have.

Re: A CS degree is better than teaching yourself how to code?

#188
post #152

The lack of appreciation of pure knowledge in this thread is truly saddening. If all you care about is getting a job, this question boils down to simple finance. If you want to truly learn, understand and engage in a topic, what can possibly be better than emmersing oneself in an environment of learning, inquisitive students and knowledgable professors full-time?

Normal people appreciate pure knowledge about as much as I do team sports. I see no moral reason to privilege my enjoyment of literature, economics, sociology or physics over theirs of tv, the Super Bowl and other things I don’t really care about.

The education system gets 12 years to expose almost everyone to great art and science, some of them go onto further study and most people in both groups never engage in anything resembling pursuit of knowledge for its own sake once their studies are over.

Nothing wrong with that. My life would have been better if no one has tried to expose me to team sports when I didn’t care. I wouldn’t have been under the impression I hate exercise when I just find team sports grating.

People who love knowledge have their entire lives to pursue it. The people who want a job and to watch their three hours of TV a day out spend time with their children, friends or spouses have to endure 12 years of boredom in K-12 and then four more if they have to get a degree to get a job that’ll get them a job they want. They’re paying in time and suffering. They don’t deserve pity.

Re: A CS degree is better than teaching yourself how to code?

#189
post #179

Earlier quoted context omitted.

What can I say. My fellows did not cover AI, robotics or people management. Sounds like it's become a lot more of a practical degree in the last twenty years. Much more vocational, perhaps. There was a time when CS graduates would be hired and big companies would immediately start training them in how to engineer software, but now people expect to finish a CS degree and be capable of a related but different disciplin…

> What can I say. My fellows did not cover AI, robotics or people management. Sounds like it's become a lot more of a practical degree in the last twenty years. Honestly, it needs to be. Employers are not going to be impressed with grads who've not encountered basic things like version control by the time they've graduated - and it's irresponsible to market a degree as a stepping stone to a e.g. software engineering…

Employers are not going to be impressed with grads who've not encountered basic things like version control by the time they've graduate

That's true now. It certainly wasn't true in the past; especially with larger companies who would hire people with the intention of training them.

I wonder if there will be a bifurcation in education. To some degree (excuse the pun), there already is; software engineering "boot camps" and the like that teach software engineering rather than CS. Maybe we'll see that split reach upwards to the formal education level; a more vocational college for the software engineers, a more mathematical alternative for the informatics enthusiasts.

Re: A CS degree is better than teaching yourself how to code?

#190
post #31

Talking with co-workers who completed 4 year CS degrees, I feel like I got a much better value out of my now defunct 2 year trade school. Mind you this was 15 years ago, but I came out of it with a decent enough working knowledge of C, C++, VB.Net and Java - and basic understanding of SQL, PLScheme and functional. On top of that there was a solid year of data structure class. Trade schools have been largely demonized…

While I agree trade schools are not considered enough for the value they can add, your comment strikes me as reinforcing the college degree path. 1. Beyond a few general requirements, most CS programs do let you focus on what you’re interested in, and to much greater depth and pragmatic application than trade school. “Focusing on things you don’t care about” is a very minor part of college technical programs unless y…

While I agree that the soft skills will help you break the ceiling of being just a developer in a corner somewhere (art not so much), college in my experience is only useful to get you that first job. Especially if you spend your entire career as an “enterprise developer”. You can pick up the other useful skills on the job with time.
Post reply on HN