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)
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
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.
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?
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.
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.
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!
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.
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.
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’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.
> 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.
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.