Computer Science was great dont get me wrong, but I totally agree. Comp Sci helped with some of the basics, but didnt prepare you at all on the soft skills that get you ahead, nor why task management, version control, and other such concepts are so important.
It’s a little unfair to criticise a CS course for not being a SWE course. But I agree that graduating students in CS without having covered the basic requirements in the SWE day job most of them will move into is a disservice.
I did CS (30 years ago) and things entirely missing in the syllabus back then:
any and all soft skills
version control
refactoring
testing and the value of testing
staging and replicated environments for raw dev, QA, live, etc
It never fails too how many times I have to teach jr devs git right off the bat. Its just weird enough to require a little bit of handholding when they start.
Teaching about version control would be preferable to a singular tool. Git wasn’t always the #1 tool nor will it be forever, & there are some great tools pushing against Git as we speak which will be great for all of us when something truly better usurps—like Subversion, the former king. Training on a singular tool is like learning Microsoft Word instead of document processing where the broader concepts are more valuable for your career as you understand not just how but why.
Personally I had a lot of fun giving darcs & Pijul fair shakes in 2023 to understand what makes the patch theory cool to work with. You could probably do a whole course on VCSs & their models since you are correct that they are rather integral to real world teams & projects.
It doesn’t require university level study to understand. You took Comp Sci, not applied software development. If you can pass Comp Sci, you should be able to use a system like git without it having been part of a tertiary level curriculum.
it doesnt require university level study to understand
Yeah you can learn it outside of uni but I could say the same for anything in that course. Students wouldn’t know they need to learn it because they haven’t worked in the industry.
During the course you are doing projects with multiple people. Looking back it would have been a great place to introduce version control.
If you were to study version control in a comp sci degree, you would study the way it’s implemented, not how to use it. The data models for how to store and access repositories of many files with many changes is interesting, and can have different aspects depending on if it is text content or binary. Is it optimal to store each file as an aggregate of its diffs, no matter how many. Should there be snapshot points, etc?
Those are the aspects of version control that belong in tertiary level computer science. Learning how to use “git add” and “git push” don’t.
My university created an entirely new school because while the computer science graduates could do computer science they couldn’t write an email or contribute to a meeting.
Heh yeah. Lots of fresh grads don’t even really know anything about application development. Like they have a handful of sorting algorithms memorised and can explain what a compiler does (and are thinking about writing one some day) but can’t actually build anything.
Often, they can pick it up quickly, whatever the “it” is… But it doesn’t give them that much of a head start compared to someone who did a shorter program or self-taught.
I’ve never used PuTTY either, tbh… Is that just what Windows users use for SSH stuff?
Not anymore, it’s a terminal emulator but most have transitioned to just using Poweshell to SSH into things. I like multi-tabbed putty and use it heavily when configuring network appliances.
It’s also not a Windows thing lol you can install it natively in Debian, Fedora, and Arch that I know of with the basic package manager of each.
I’ve never used Linux in an Enterprise environment so I don’t know if there’s an easier way to store servers/switches as objects and access them via the standard terminal than MTPuTTY, but yeah I’m not surprised it was originally created for windows and then ported at some later time.
Usually they’re not willing to pay anywhere close to doctorate money for doctorates anyway, and will end up settling no matter who they pick.
I’m not sure if i’ve ever known any engineer who has met the listed job requirements for their role. They say requirements, but what they mean is “this is my ideal”. Put another way: think of it like a dating app profile. dude may act like he only dates 10s in his profile, but you show him some attention and suddenly you’re just as good as a 10, because he’s lonely and needs affection from someone.
Basically, for most companies, they’re essentially the corporate version of incels. Way too high of standards, but will settle for anyone who is into them regardless of what they think their standards are, because they just need someone ASAP, and their standards disappear quickly once you make yourself available.
I’ve enjoyed a 20+ year long career as a programmer, and I dropped out of college 3 months in because i couldn’t afford it. That’s because early in my career i took a few shitty jobs until i had a decent enough resume that i didn’t have to take shitty jobs anymore. That took study and practice and passion in programming, but i did that for fun years before i even showed up on the university doorstep.
I dunno, most of the job descriptions I see say something like “a relevant degree or equivalent experience…” And lots of places don’t even list an educational requirement, at least for more senior roles.
I basically self-taught while I was working in a different field, and then eventually found a bootcamp with a good alumni network and career placement services. Once you get a little bit of experience, it starts to snowball, but getting that first opportunity (or first few) can be a steep hill to climb.
Oh, and you gotta be pretty good at building software too, of course, but not as good as you’d think to get going-- Most of your learning is on the job, regardless of what educational path you take. In that respect, most go-getters with some diligence and aptitude can exceed the capabilities of a typical compsci grad inside of a year, I’d say.
There will always be employers who think the degree is really important, and there will be roles where it actually is… But plenty just want evidence that you can do the job well.
Like… Literally any of it. I’m a software engineer and my degree didn’t have anything to do with software or engineering.
I’d have to really stretch to something like “time management” or “active listening” to find any connection, lol.
Computer Science was great dont get me wrong, but I totally agree. Comp Sci helped with some of the basics, but didnt prepare you at all on the soft skills that get you ahead, nor why task management, version control, and other such concepts are so important.
I can’t believe in my comp sci course they never went over git. Like cmon that’s core to software development these days.
It’s a little unfair to criticise a CS course for not being a SWE course. But I agree that graduating students in CS without having covered the basic requirements in the SWE day job most of them will move into is a disservice.
I did CS (30 years ago) and things entirely missing in the syllabus back then:
Totally agree! git is a standard for a reason.
It never fails too how many times I have to teach jr devs git right off the bat. Its just weird enough to require a little bit of handholding when they start.
Teaching about version control would be preferable to a singular tool. Git wasn’t always the #1 tool nor will it be forever, & there are some great tools pushing against Git as we speak which will be great for all of us when something truly better usurps—like Subversion, the former king. Training on a singular tool is like learning Microsoft Word instead of document processing where the broader concepts are more valuable for your career as you understand not just how but why.
Personally I had a lot of fun giving darcs & Pijul fair shakes in 2023 to understand what makes the patch theory cool to work with. You could probably do a whole course on VCSs & their models since you are correct that they are rather integral to real world teams & projects.
It doesn’t require university level study to understand. You took Comp Sci, not applied software development. If you can pass Comp Sci, you should be able to use a system like git without it having been part of a tertiary level curriculum.
Yeah you can learn it outside of uni but I could say the same for anything in that course. Students wouldn’t know they need to learn it because they haven’t worked in the industry.
During the course you are doing projects with multiple people. Looking back it would have been a great place to introduce version control.
If you were to study version control in a comp sci degree, you would study the way it’s implemented, not how to use it. The data models for how to store and access repositories of many files with many changes is interesting, and can have different aspects depending on if it is text content or binary. Is it optimal to store each file as an aggregate of its diffs, no matter how many. Should there be snapshot points, etc?
Those are the aspects of version control that belong in tertiary level computer science. Learning how to use “git add” and “git push” don’t.
My comp sci course used SVN.
There was one tutor who used git on their course though, albeit via GitHub Classroom so that was probably more a convenience thing
My university created an entirely new school because while the computer science graduates could do computer science they couldn’t write an email or contribute to a meeting.
It’s crazy that someone can go through college for comp sci and never touch things like VSC or PuTTY until they’re in the workforce.
Meanwhile a programming boot camp or IT Security Analyst boot camp will have you digging into the tools of the trade immediately.
Heh yeah. Lots of fresh grads don’t even really know anything about application development. Like they have a handful of sorting algorithms memorised and can explain what a compiler does (and are thinking about writing one some day) but can’t actually build anything.
Often, they can pick it up quickly, whatever the “it” is… But it doesn’t give them that much of a head start compared to someone who did a shorter program or self-taught.
I’ve never used PuTTY either, tbh… Is that just what Windows users use for SSH stuff?
Not anymore, it’s a terminal emulator but most have transitioned to just using Poweshell to SSH into things. I like multi-tabbed putty and use it heavily when configuring network appliances.
It’s also not a Windows thing lol you can install it natively in Debian, Fedora, and Arch that I know of with the basic package manager of each.
Oh lol TIL. I just read “PuTTY is an SSH and telnet client, developed originally by Simon Tatham for the Windows platform” on putty.org.
I wonder how many of the people I work with have used it before. Maybe I’m an outlier for never encountering it.
I’ve never used Linux in an Enterprise environment so I don’t know if there’s an easier way to store servers/switches as objects and access them via the standard terminal than MTPuTTY, but yeah I’m not surprised it was originally created for windows and then ported at some later time.
How did you become one? Every job description I’ve seen says it requires like a friggin doctorate or some shit. Lol.
You just apply anyway.
Usually they’re not willing to pay anywhere close to doctorate money for doctorates anyway, and will end up settling no matter who they pick.
I’m not sure if i’ve ever known any engineer who has met the listed job requirements for their role. They say requirements, but what they mean is “this is my ideal”. Put another way: think of it like a dating app profile. dude may act like he only dates 10s in his profile, but you show him some attention and suddenly you’re just as good as a 10, because he’s lonely and needs affection from someone.
Basically, for most companies, they’re essentially the corporate version of incels. Way too high of standards, but will settle for anyone who is into them regardless of what they think their standards are, because they just need someone ASAP, and their standards disappear quickly once you make yourself available.
I’ve enjoyed a 20+ year long career as a programmer, and I dropped out of college 3 months in because i couldn’t afford it. That’s because early in my career i took a few shitty jobs until i had a decent enough resume that i didn’t have to take shitty jobs anymore. That took study and practice and passion in programming, but i did that for fun years before i even showed up on the university doorstep.
I dunno, most of the job descriptions I see say something like “a relevant degree or equivalent experience…” And lots of places don’t even list an educational requirement, at least for more senior roles.
I basically self-taught while I was working in a different field, and then eventually found a bootcamp with a good alumni network and career placement services. Once you get a little bit of experience, it starts to snowball, but getting that first opportunity (or first few) can be a steep hill to climb.
Oh, and you gotta be pretty good at building software too, of course, but not as good as you’d think to get going-- Most of your learning is on the job, regardless of what educational path you take. In that respect, most go-getters with some diligence and aptitude can exceed the capabilities of a typical compsci grad inside of a year, I’d say.
There will always be employers who think the degree is really important, and there will be roles where it actually is… But plenty just want evidence that you can do the job well.
Same except i dropped out of college 3 months in and have enjoyed a healthy career for the last 20 years anyway.