3 ms·
I would say my CS degree (if memory serves) covered all these except version control, which I agree is an omission. 1. Version Control - Really no. I think we
by basseq 12y ago
I would say my CS degree (if memory serves) covered all these except version control, which I agree is an omission.
1. Version Control - Really no. I think we talked about it, but it should have been one of those CS201 things that was then required through the rest of the curriculum.
2. How to Write - I had great high school English teachers, which helped, but undergrad also had a) a written thesis requirement and b) "STS" (Science, Technology, & Society) that emphasized non-technical disciplines.
3. Regular Expressions - I feel like I learned formally in college, but may have taught myself.
4. Libraries - Yes, absolutely, in a variety of languages. There could have been more here, but you have to balance knowing how to write quicksort (which you may be quizzed on in a job interview, after all) with the standard sort() algorithms. There's a lot of nuance here.
5. SQL - Database was an elective, though one I think a lot of people took. Agreed could be earlier and required.
6. Tools - We used an IDE (Eclipse for Java, e.g.) from Day 1. We had required courses that required 100% remote execution on a Unix cluster.
7. Debugging - Kind of learned throughout, I think.
8. Defensive Programming - See #8.
9. Teamwork - Big check. Multiple teamwork requirements across all classes.
10. Existing Code - We re-wrote part of Windows 95. How's that for legacy codebase?
The big thing to remember is that a CS degree is not a "Programming" degree. Yes, most CS majors are programmers, but they are also more. Things like linear algebra, physics, graphics, hardware design, statistics, data structures, probability, distributed computing, and algorithms all contribute to a high-level computer scientist.