← Back to context

Comment by cyber_kinetist

7 days ago

I think having one or two "software engineering" courses where it's project-based really helps. You get to actually learn how to use Git, work in a team, and architect and finish a project on time - which is going to be valuable no matter if you're seeking a software engineering job afterwards or stay in academia.

Seriously I had multiple courses on Java and C++ but not a single mention of version control. It wasn't even an elective as far as I remember.

A course where 3+ students build something together in a single repo and the professor can view the commit and PR history would be amazing.

  • I had one during my undergraduate years: four people had to work together as a team to build a full web service from scratch and present it at the end of the semester. The lectures from the professor were mostly about general software engineering practice (version control, testing, etc.) and OOP / design patterns - but apart from that the real deal was that you had to learn the entire frontend / backend web stack (which the TAs covered instead, at breaknecking speed). Obviously it was known to be the most brutal and hardcore course in the entire CS department, but you got decent grades given that you actually survived the whole thing, and it's often said to be one of the most memorable ones (I've heard an anecdote that the single course was more helpful than interning at Google for half a year)