I feel like there need to be multiple CS pathways. For example, people who want to go into hardware development might take a set of courses more closely aligned with electrical engineering. Another set of skills might be aligned with data center management. Another might focus on distributed web application engineering. That’s where I ended up, and nobody ever taught me in college when would be an appropriate case for implementing a cache, what options exist to solve that problem, how to administer them, etc. When I hire for entry level DevOps people, there’s usually a skill gap between “I’ve built some cloud servers” and “I have specific experience managing redis caches and ElasticSearch clusters.”
I feel like there need to be multiple CS pathways. For example, people who want to go into hardware development might take a set of courses more closely aligned with electrical engineering.
There are.
My university (and many others) offered Computer Science, Software Engineering, and Computer Engineering. Computer Engineering is sort of a middle ground between EE and SE, where you learn hardware concepts like circuits and semiconductors (for hardware development), but there are also algorithm-based courses.
Each of the programs has many options for elective courses, and you can focus on databases, algorithms, security, web development, or whatever you want. The core concepts are the same, and it’s more about learning broad concepts and skills, rather than focused skills. Things like Redis and Elasticsearch didn’t exist when I took my database course - the practical portion was mostly just SQL. Things like Docker came even later. But the broad concepts I learned allow me to jump in and use “new” technologies as they mature and stabilize.
None of the programs were just “coding bootcamp”. Coding was almost inconsequential to my degree (CompEng), though I understand it’s used more heavily in Computer Science degrees. I had a single first-year course that was supposed to teach us programming - all the other courses just assumed a basic knowledge. The focus was more on the design, the logic, and the algorithms. Anyone can code - the bootcamps have that right. But not everyone can design and implement a distributed system efficiently and securely.
I feel like there need to be multiple CS pathways. For example, people who want to go into hardware development might take a set of courses more closely aligned with electrical engineering. Another set of skills might be aligned with data center management. Another might focus on distributed web application engineering. That’s where I ended up, and nobody ever taught me in college when would be an appropriate case for implementing a cache, what options exist to solve that problem, how to administer them, etc. When I hire for entry level DevOps people, there’s usually a skill gap between “I’ve built some cloud servers” and “I have specific experience managing redis caches and ElasticSearch clusters.”
There are.
My university (and many others) offered Computer Science, Software Engineering, and Computer Engineering. Computer Engineering is sort of a middle ground between EE and SE, where you learn hardware concepts like circuits and semiconductors (for hardware development), but there are also algorithm-based courses.
Each of the programs has many options for elective courses, and you can focus on databases, algorithms, security, web development, or whatever you want. The core concepts are the same, and it’s more about learning broad concepts and skills, rather than focused skills. Things like Redis and Elasticsearch didn’t exist when I took my database course - the practical portion was mostly just SQL. Things like Docker came even later. But the broad concepts I learned allow me to jump in and use “new” technologies as they mature and stabilize.
None of the programs were just “coding bootcamp”. Coding was almost inconsequential to my degree (CompEng), though I understand it’s used more heavily in Computer Science degrees. I had a single first-year course that was supposed to teach us programming - all the other courses just assumed a basic knowledge. The focus was more on the design, the logic, and the algorithms. Anyone can code - the bootcamps have that right. But not everyone can design and implement a distributed system efficiently and securely.