55 comments

[ 5.1 ms ] story [ 114 ms ] thread
(comment deleted)
I’d say yes if it’s something you enjoy rather than quick way to find a job because there are many fields with high and many times higher paying jobs that can be easier to get in other fields.
What other fields with easier to get higher paying jobs?
You shouldn’t go to college to get your first job. You should go to get your fifth job. (Kind of paraphrasing a quote that I don’t remember who was from).

I studied economics, political science, and history at a liberal arts college. I’m a senior software engineer and can hardly imagine receiving much benefit from a CS degree.

Looking forward in my career, the stuff that’s quickly becoming more important is not the technical stuff (though I expect to stay on the technical track), it’s the communication, critical thinking, and analytical skills that were at the core of my college education. Could I have gotten those skills if I had majored in CS? Maybe, but I don’t think I would have enjoyed it as much.

If I were to go to do college over again, expecting to have a similar yet more direct career, I would do things differently, but I still don’t think I would major in CS.

Of course, others may have different interests that would lead them to requiring a CS degree.

I am not convinced that you are a senior software engineer
> Some schools are doing this so much better now...For example understanding how the tech field can be so diverse Purdue University through their Polytechnic School offers majors in these different fields, Web Programming and Design, UX Design, Data Visualization, Cyber Security, Game Development and Design...etc. This is how things are out to be... Purdue is doing it right...

These aren't college majors.

Reading the article, the coursework the author was enrolled in seems pretty... light.

A serious computer science/software engineering degree is almost always worth it for someone who wishes to program professionally. But a major in "Web development" doesn't sound serious at all.

Learn the fundamentals. The stack will change 5 times by the time you retire.

Thanks for your comment. Believe it or not those are college majors offered at Purdue. You can visit the link I shared!

A major in web dev doesn't sound serious? Why is that so? Do you have an idea of how big web dev is? There's a lot to learn in web dev and it definitely deserves to be a major!

This is a very old debate, and one that will not be resolved with an opinion volley. (Learn fundamentals / Learn specializations).

Web dev is big. It deserves to be a major. You could probably have a 4 year specialization on various parts of web development. And you'd be highly capable and inextricably linked to those specializations for years after graduation. And it all may change from your Freshman courses to your Senior courses. Op was suggesting that situation is limiting. You could substitute "robotics" for web dev, by the way, and it would still stand.

Coming from a small midwest school as you did, your coursework should (and does) skew towards current-skill-based specializations which help you get a job. This is OK and desirable for the vast majority of students.

By the way, I also went to a small midwest school, and its "Computer Science" program was cancelled in favor of more skill-based specializations (right after I graduated with a CS degree). I don't blame them, but I stuck to my theory / fundamentals because that's what I wanted.

> Web dev is big. It deserves to be a major. You could probably have a 4 year specialization on various parts of web development.

A course on web dev in a CS degree sounds right. 4 years that's just... what are you going to do in 4 years?

http, some js, some css, some html, one popular back-end and students should be pretty much comfortable reading the docs and picking up whatever framework-du-jour is trendy right now.

By the time you graduate this 4 year major, the frameworks will have changed twice!

> By the way, I also went to a small midwest school, and its "Computer Science" program was cancelled in favor of more skill-based specializations

That's a very bad signal.

I think you are less diplomatically saying the things I was trying to say more diplomatically.
No, what I meant was that you might get enough content to fill one university level class on web development. Like a 3 credit class in the US.
A bachelor's degree in Web Development sounds very fishy even it's from MIT.
> Believe it or not those are college majors offered at Purdue. You can visit the link I shared!

I have absolutely no doubt there's someone charging tuition for these.

Web Dev is learning how to service cars from X manufacturer. Totally different than cars from manufacturer Y! CS/Engineering is learning how to design cars.

I think the reason people don’t think of it seriously is because they don’t consider it an field of study. It’s certainly an industry or a career path.

I’ve worked in Web Development for 15 years, and just got my degree in Software Engineering this year. Before I completed I remember hearing someone decry that they didn’t understand how software engineering was a degree. At the time I didn’t really either and was worried that my degree would some how be worth less than a CS degree.

Part of it is gate keeping. People are worried about their relevance or the value of their accomplishment. Part of it is a sense of what university study is supposed to be.

Software Engineering and CS have multiple definitions. The curriculum will vary between schools.
I agree. This article is an N of 1 from the perspective of a fairly new grad. It's useful for what it is.

I've worked with a lot of software engineers who would do a lot better for themselves if they understood the basics of how a computer works (eg: what's a program counter.) There is definitely a rift of "engineers" whose discipline amounts to gut feeling and whatever code works at the time. This is ok for ephemeral software but isn't for complex projects.

Getting an education has value. Getting a good education is valuable. Getting the right education pays dividends.

Finally, learning how to think critically and solve problems is where it's at. (IMHO)

Program counter:

1. something which counts programs, for example "find . -executable | wc -l"

2. misnomer for the instruction pointer, which is a CPU register that points at instructions

I must fight pedantry with pedantry! Historically it has been correctly nomered as a Program Counter, such as on the 6502 (https://en.m.wikipedia.org/wiki/MOS_Technology_6502#Register...)
People aren't just wrong on the internet. People were wrong before the internet existed. It's even possible to be smart enough to design a CPU and still be wrong.

The register points at instructions. It does not count programs.

The register is correctly named in some hardware manuals, including those for PowerPC and x86.

Program Counter = Counter used for programs. Counts bytes for position of next instruction.

Within an early context and machine code vs hw level, not totally unreasonable as a legacy term. "Counter" was often used as name, even when starting at 0.

Wrong before internet or just pioneers? And what wrongs do we now do, or not?

It sometimes seems to count, but then an interrupt happens or there is a backwards jump. That isn't counting. 42, 45, 47, 3, 4, 7, 37953, 37955, 37959, 11, 12, 15...

Actual counting on real hardware does happen. For example, x86 has the CX/ECX/RCX register for string operations. That has a far better justification for being called a program counter, but still that would be awful terminology. Another example is the CTR register of PowerPC, commonly used with an instruction that decrements it and then conditionally branches to do a loop. Even a cycle counter has better justification for being called a program counter.

Yes, I let go of "counters" some two decades ago. Personally prefer index or just i, instead.

The way it used to go. Call something counter. Increment it each loop. Use goto for looping. Over time, add more gotos and change "counter" value. It tends to creep in, and clear names are important.

While I agree with ‘learn the fundamentals’...

> These aren't college majors.

They most certainly are, at many colleges and universities, not just Purdue. Game Dev in particular is a very popular CS sub field that a lot of schools have recently developed complete programs in. Data viz & web UX majors are super common.

Each one of these has it’s own set of fundamentals. There are some overlapping fundamentals among them, parts that are common to Computer Science in general. And there are fundamentals in each of these that a general CS degree doesn’t cover.

Couldn't agree more! You nailed it
(comment deleted)
If you don’t get a CS degree you’ll forever be a grunt doing some web development thinking you are doing computer science. Then you’ll probably go around telling people you don’t need a CS degree.

But if you’re going to do science and push the state of the art, you must have a foundation in computer science, that means a degree from a fully accredited university.

Academic gatekeeping looks so good on you.

The question is whether it's worth getting a degree, not whatever the shit you're disgruntled about.

I mean, I have a CS degree and I’m a grunt doing web development.
Better a computer scientist in web development, than a web developer in computer science, etc...
You speak as if being a grunt doing webdev isn't a good gig. I have a degree in chemical engineering and do webdev stuff, but I know I'm not doing computer science nor do I care to, I'm content making good money doing easy work.
That’s fine now, but times change, and you change. Are you going to be happy after 20 years doing grunt work?

Even if you are, the industry advances, and that kind of grunt work has a history of being automated away. Web masters probably felt the same way.

You don’t need to get another degree, but since you have the math background, it wouldn’t be that hard to spend some time on CS fundamentals.

CS is a young discipline compared to, say, physics. And that immaturity is reflected in how much CS curricula can differ from school to school. Just looking at the titles of the courses he took and comparing to my own experience, there's almost no intersection between the two, and yet we both have Bachelor's degrees in CS. That would be inconceivable in a more mature field. So the question of whether a CS degree is worth getting is not only dependent on the student's own goals and inclinations but also on the specific curriculum of the CS degree program in question. Unfortunately, it's very hard to determine how well matched the student is to the program unless the student takes one or more CS classes in order to find out.
In one of my classes (a year or so ago) we read a paper by someone I happened to know in another context. I found myself shocked to be reading university published material by an acquaintance. I mentioned this to a friend and he related the same thoughts as you. CS is a young enough field that many of its original researchers are still around, unlike a lot of its sibling fields of study.
Do you need a degree? No, you don't.

Do you need the skills a degree provides? Yes, you do.

Will you develop those skills on your own in the same amount of time? Maybe not? You could if you wanted, but I have found that people generally study "the fun stuff" on their own, and only study the hard stuff "when it comes up at work". One advantage of a degree is that being in school gives you hard deadlines for stuff you don't want to do.

Developing muscles in only "the fun stuff" will send you down a different career path initially, you might find.

Other benefits of school include meeting people who can get you a job at the place they work, and vice versa. That's what networking means. It might not even be an active thing, if you just happen to know someone, and they know you can do something, you're going to be the first person they call when they need that, rather than a total stranger.

It's possibly also easier to get a foot in the door in particular technical niches if you have a degree, since it can be difficult to get experience in some things "as a hobby or side project", but easy to get experience with in a school.

This ain't rocket science, it's life 101, but if you don't have someone in your life to give you this advice, you learn it the hard way (i.e., it takes a long time...).

You can do it all without school, or you can do it with school, there are pros and cons, and the calculus changes with your personal situation, your family wealth, your personal network, etc.

There's no single perfect answer here.

I worked as a programmer for 7 years before I went back for my CS degree. It was 100% worth it just to fill in the gaps.

A CS decree gave me building blocks to solve problems that has made me a much better developer.

I would urge those interested in the article to read it at its fullest. At no point did I mention that a CS degree wasn't worth it...I did raise a couple of questions and share a few options that some people might not have known were there. This is definitely not a debate of whether a CS degree is worth it or not...It's my hope that those interested in tech will see that CS is just one among the very many options...and tech as we know it is huge! Each one of us has a place in tech not only those who did CS in college. And there are so many paths to get into tech apart from CS
(comment deleted)
> Computer Science Degree - Is it worthy it? Should You Get it?

The title seems to have an error ("worth it" is the expression).

I bring this up not to be that person, but rather to note that a lot about how you'll be perceived is determined by how you use language.

Those English classes you think are a load of hot garbage on your way to a CS degree? They might be the most important classes you'll take.

I really appreciate it! The Hemingway app was no good...will now invest in Grammarly
Uh, no. Those English classes were in fact a load of hot garbage. In the two decades since I graduated, I have not once been asked to write Marxist literary criticism of poetry. I haven't even been asked to produce a bibliography, especially not a punctuation-perfect one in MLA format.

Reasonably correct use of the English language is important, but that wasn't taught. Grammar is not part of a typical English class at the college level. It's a college admission requirement. I probably met the requirement in 6th grade. Even if grammar were covered in college, it's not likely to stick if the previous 12 to 15 years of school didn't make it stick.

I was never required to write Marxist literary criticisms of poetry. I learned rhetoric. I learned to write clearly and concisely, and I learned to write persuasively.

Correct grammar is not sufficient for effective communication.

Lucky you. English classes are normally a load of hot garbage. Concise writing would earn an F.

That stuff you learned is still not college material. It's remedial. OK, yes, there are remedial classes taught at most colleges, sadly enough. It's not justification to mandate that normal students take English classes in college.

Freshman English classes are generally English composition classes not literature classes. More often that not they have nothing to do with Marxist literary critique.

If you think that English composition shouldn't be taught in college, you clearly haven't ready many undergraduate essays. It's fine for you to think that this information should be remedial. Looking at the writing of "normal" students, it clearly isn't.

Also most schools offer a CLEP exam for English composition, so if you consider the information remedial, you can easily skip it.

Well, maybe we shouldn't have 2/3 of the population attempt college, and maybe we shouldn't let every warm body with a pulse graduate from high school. Truth is that English classes in high school are also often a load of hot garbage, because evidently the teachers prefer politics and art over teaching English.

For my own kids, the solution is homeschooling, with dual-enrollment in a community college starting at age 11 to 13. Community college seems to have less of the hot garbage than a typical 4-year school would.

That’s a different argument. If most college students are lacking a skill, teaching it is by definition not remedial.

A class on Ancient Greek isn’t remedial just because the top 1% of society that went to college in the 19th century learned it in secondary school.

I’ve never had experience with English teachers who teach art and politics instead of English, but then again American school systems are very diverse. You might want to consider that before you make generalizations. You also might want to consider whether you have enough real evidence to hold such strong opinions on the state of English education.

I have 2 bachelors degrees, a minor, and a masters degree; none of them in anything related to STEM or CS. I’ve been a professional wed developer (full stack from server installation to DBA to server side programming to front end development) for nearly 23 years. My company will pay my tuition for me to go back to school. I’ve considered getting a software engineering degree, but I need to do it while still working full time.

I’m not sure if it would be worth my time or what kind of program I should be looking for. I mainly want to get a better background on software engineering that I missed out on by not studying STEM in college. I should mention that I don’t know any math beyond high school algebra and geometry. I’ve never taken calculus or any higher math.

Is there anyone out there who was in a situation similar to mine who went back to school? How did it go?

I am surprised by how much time CS undergrads are required to waste on irrelevant subjects such as Physics.

Here's an example CS curriculum at University of California at Los Angeles: https://www.seasoasa.ucla.edu/curric-19-20/80-comscicur19.ht...

English Composition 3

Differential and Integral calculus

Integration and Infinite Series

Physics 1A — Mechanics

Calculus of Several Variables

Oscillations, Waves, Electric and Magnetic Fields

Calculus of Several Variables

UCLA Samueli Ethics Course

Linear Algebra and Applications

Introduction to Discrete Structures

Electrodynamics, Optics, and Special Relativity

Differential Equations

Probability Elective

That's a whole bunch of useless courses. These courses are intended to make sure you're well-rounded in your education. But spending more than 50% of the time making sure you're well-rounded in Physics is useless for a software engineer. 99.9% of software engineers don't use physics in their career (except maybe some game or graphics programming). 99% of software engineers don't need Calculus (except maybe for innovating some ML core algorithms).

A better way to be a well-rounded software engineer is to make sure graduates know more than just algorithms and a couple of programming languages. They should know Networking, Databases, Operating Systems, Machine Learning, Big Data, Distributed Systems, etc. Because of the time spent on general education (that will be forgotten as soon as they graduate), CS graduates are missing out on valuable topics such as those I listed.

You are looking for a bootcamp, not a Software/Computer Engineering/Science degree.

English Composition 3 - Core skill to effectively communicate in a professional setting.

Differential and Integral calculus - Required for AI/Complex algorithms.

Integration and Infinite Series - Series are key to many algorithms and results.

UCLA Samueli Ethics Course - Fashionable.

Linear Algebra and Applications - Core of ML/AI/Graphics/High performance computing

Introduction to Discrete Structures - Core and fundamental for algorithms and data structures.

Differential Equations - Required for any serious ML/AI

Probability Elective - Pretty much required to do or read anything AI related.

They should take what you listed as well. Should be possible in 4 years.

I don't see it as "looking for a bootcamp", and that sure sounds classist in a bad way. Bootcamps are highly non-standard and usually weak, with very little time spent on the fundamentals of computing. (building an OS or compiler, theory of computation, etc.) Wanting to avoid college nonsense isn't the same as wanting a bootcamp. It is legitimate to want a 4-year degree that is 100% meat, no fluff. The desired degree would be like a BS plus MS, minus the AA that is built into every BS.

There are an awful lot of people wanting that. Schools don't want to offer it because the instructors would be costly, because demand for BS/MS combined degrees would go down, because administrators personally love non-technical subjects, and so on. Standardization and accreditation are additional barriers to giving students what students want, though conveniently both are under the influence of the schools.

A lot of the "fluf" is really the foundation on which a lot of courses is built.

Linear Algebra and Probabilities for instance are pretty much required for any level of AI.

Compiler relies heavily on Discrete Math.

Maybe the physics is a little bit useless. But it helps by providing a practical application for the math.

> A lot of the "fluf" is really the foundation on which a lot of courses is built.

What is the point of a massive foundation if the superstructure you're building on top of it is only barely livable? Maybe we need better balance.

Some disparaging comments about C# in that post. I don’t think it applies to everyone, but I feel the same way.

If you want to avoid C#/.Net, it may be best to stay out of the northwest and north central US.

The universities primilarily teach C# there, which affects the applicant pool and solutions that businesses use.

You’re not isolated from it elsewhere, and you don’t need to stay away from it, but SQL Server gets expensive as you scale, and the rest isn’t free either, though it’s more free and there’s more Linux then there used to be.

You can get into just as much if not more expense though with AWS or similar cloud services. There’s benefit to being able to focus on development vs, infrastructure, but your burn rate can easily be higher due to IAAS these days rather than coder salaries.

The CS industry is rather cyclical - during the early phase of some 'hot new thing' (OOP, Internet, currently AI/Machine Learning) folks will employee anyone that can help. After some period of time, folks will want proof you can help: degrees, diplomas, certifications, etc. Currently you can use the free/almost-free resources on the Internet to replicate most of a 4-yr (Bachelor) CS degree ... when/what part of the cycle are you in? Do you have the time and/or money to sit yerself down for 4 years?

Your choice ...