Live data from Hacker News

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

zeroequalsfalse.com

221–230 of 330 posts

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

#221

Earlier quoted context omitted.

People with no degrees hate degrees. People who can't pass FAANG interviews hate FAANG interviews. It's a defense mechanism, along the lines of "I'm not a bad student, the teacher hates me".

What does it say about FAANG interviews that many can pass them without any practical experience by studying leetCode and Cracking the Code for a year? How many SE’s do those companies have? Do you really think they are all the best and brightest?

> What does it say about FAANG interviews that many can pass them without any practical experience by studying leetCode and Cracking the Code for a year?

It says that they can be gamed and that they aren't perfect. It doesn't mean they're entirely useless, entirely wrong, or that they generally don't select for the profiles they want to select for.

> Do you really think they are all the best and brightest?

Having worked at FAANG, non-FAANG with a lot of ex-FAANG, and non-FAANG, generally speaking, yes, I do believe that.

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

#222
I work with a team of people who mostly have "Software Engineering" degrees. I am one of the few with CS.

In short: IN GENERAL - Those with SE degrees (or other non-CS degree, or no degree) can be excellent developers (good code style, good unit test coverage, aggressive PR reviewers, etc).

However, the art of computer programming - or computer system design -- is often in formally defining the problem at hand using computational structures (such as graphs), understanding the properties of that model, and creating a new algorithm over that model to solve it. Then developing a software system to mirror the properties of that formal system you designed.

Those people who did not spend dozens-to-hundreds of hours agonizing over their coursework in algorithms, abstract algebra, linear algebra, "foundations of computing" (i.e., computational complexity theory, computational theory, language hierarchies, etc) I found can lack this critical aspect of system design. Instead, they design systems that lack unity and are often simply a collection of routines to handle various inputs - rather than having the knowledge to think "Hm, maybe this whole thing I'm working on is a special case of a well-studied problem". What this means practically is that there is often a simpler, better-defined, and more testable solution lurking behind the veil of ignorance.

Sure, there are many many teams and projects for which the scale or complexity are not sufficient to warrant some kind of formal analysis and modeling -- but many do.

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

#223

Earlier quoted context omitted.

> Teaching yourself to code while getting a CS degree is best IMO. This is effectively what I did. I found a job at a small company programming part time while I was still in school. Class was very much this is how things should work, and the job was this is how things actually work when you're coding for clients with unrealistic schedules just trying to make rent. I learned a lot in both scenarios. The other thing I…

> the job was this is how things actually work when you're coding for clients with unrealistic schedules just trying to make rent This description comes with an important disclaimer. You learned how things worked at a particular company and for the one or more projects that you were assigned. There's no reason to think any of the knowledge you pick up in a specific job will be valued outside the company, or even in a…

Yes and no. Every project I've had at a job was larger and had more consequence than anything I did in school. Learning how to deal with those pressures is valuable beyond the particulars of the given job.

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

#224

Earlier quoted context omitted.

There are certainly classes that cover networking. IP, TCP, DNS, and HTTP were covered in classes I took. As for actually on the wire. I haven't studied anything about how ethernet actually works. I assume its kindof like i2c, but I don't know more than that and haven't needed to.

So if college was so invaluable teaching networking, how do you think people who went to school before http existed learned? Just like everything else, you can learn as needed.

> So if college was so invaluable teaching networking,

I never said or implied that college was invaluable for teaching networking. I just answered a question about what was taught.

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

#225
post #222

I work with a team of people who mostly have "Software Engineering" degrees. I am one of the few with CS. In short: IN GENERAL - Those with SE degrees (or other non-CS degree, or no degree) can be excellent developers (good code style, good unit test coverage, aggressive PR reviewers, etc). However, the art of computer programming - or computer system design -- is often in formally defining the problem at hand using…

nitpicking here but aggressive PR reviewers != excellent developers

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

#226
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?

Immersing yourself in a supportive environment for the sole purpose of education is an extraordinary experience, and it's sad that not everyone gets to experience it.

We should work to keep this idea alive, but in order for it to persist, the model has to change. The juxtaposition of that high-minded ideal with the harrowing reality of the financial cost is too jarring. We can give all the lip service to collegiate education that we want, but if we slap a 100K price tag on it, it's no longer an ideal.

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

#227
I think this is highly dependent on how your course is structured. I used to do a lot of contractor work and competitive programming before going to uni. I thought I knew how to write code, or at least knew how to "teach myself". I had never been more wrong.

Having tough coursework across diverse esoteric subjects (where you cannot easily stack overflow your way into a solution) was easily the best learning experience of my life. Standing before massive "walls" that looked impossible to climb, and being forced to figure out how to do it on my own, is the most important skill I have. Some CWs which I thought were particularly tough and taught me a lot:

- Kernel for target non-widespread platform (where all you have is the processor's manual), capable of IPC, written from scratch in C.

- Both a pathtracer and a rasterizer without using a graphics library. (you can read about the advantages or disadvantages of each one, but writing both makes you appreciate each technique independently)

- Some sort of compiler or interpreter (parser too).

- HPC problem that requires non-trivial parallelisation and vectorisation.

- Some sort of adversarial attack on a target "real world" platform that uses deprecated encryption (i.e. RSA).

- Individual research project.

ALL of these tasks are possible to do by yourself, independently, but very hard to see them through the end without solid infrastructure and support staff surrounding you. I imagine it takes a very highly motivated individual to do the same things outside of academia.

The biggest benefit of attending uni is learning how to learn and tackle complex problems.

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

#228
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?

It's a mistake to think that school is the best way to appreciate "pure knowledge" for all people. I "taught myself" a lot, and later had the opportunity to take CS classes in a highly ranked (for CS) university (I already had a college degree from another university in another subject). I was thoroughly underwhelmed by the classes. I took a number before eventually giving up (got good grades in all of the ones I took).

Further, the idea that not learning in school is "teaching yourself" is flawed. You're using books written by others (sometimes the same books that are being used in university. There are communities - online and in real life - that you have access too, often full of people much more dedicated and experienced in the field than university classmates. If you really want something that's similar to a university class, there are MOOCs, coursework, and lectures available.

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

#229
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?

Hmmm, I love pure knowledge, I love reading about everything, I am super curious about most of the things I find. And I hated when I was in college (this is from the perspective of two universities I have attended in the Barcelona area, it may be different in other places). Classes are uninteresting and slow. I love learning on my own, I hate to have a rigid curriculum.

I'd like to see us change our notions about what college means. There's this idea that college is extended school, and something that is done when you're young.

The reality is that we all learn continuously throughout our lives. A college should simply be a place that provides (a) low-cost temporary housing for those who need to devote more time to pursuing knowledge than to a job, (b) access to as many learning resources as possible, and (c) optional classes/mentorships/tutoring for additional cost.

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

#230
post #222

I work with a team of people who mostly have "Software Engineering" degrees. I am one of the few with CS. In short: IN GENERAL - Those with SE degrees (or other non-CS degree, or no degree) can be excellent developers (good code style, good unit test coverage, aggressive PR reviewers, etc). However, the art of computer programming - or computer system design -- is often in formally defining the problem at hand using…

I have to be honest with you, I find your experience to be contrary to mine. I went to university to get a degree in Computer Science, but I dropped out because the course work was full of stuff that did not have anything to do with computer science. Furthermore, you will find that in many countries, a Computer Science degree is the same as a Software Engineering degree.

I have met many computer science majors who are incapable of writing software to save their lives, let alone design complex systems.

I also think that if you get hands on experience first, you learn to appreciate the science later on and therefore learn it with more gusto.

Post reply on HN