Do Businesses Really Need to Hire CS Majors?

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,281
The idea behind a CS degree is to develop the skills to be a able to self teach yourself any programming language and go beyond your current skill set. So while the article does raise a few points within the degree, there's more outside the box that is being ignored.
Sure, it's as you would expect from a formal education study path + it would be kind of silly to go to varsity for x years and exit only having studied e.g. Java.

That however still doesn't discount the likelihood that someone without a degree could far exceed the knowledge / ability of someone with a degree -- hence many large corps today don't only limit their options to applicants with CS degrees.

For example, that silly policy would see guys like John Carmack, and the like flipping burgers somewhere.
 
Last edited:

Hamster

Resident Rodent
Joined
Aug 22, 2006
Messages
34,032
Fully agree. People think that CS is about being proficient in a specific language. I haven't been to a technicon or CPUT but I'm quite interested to know what it is that they study with the IT diploma.
If it's the National Diploma recognised by our NQF and not these "international" jobbies from CTI etc, then you're doing a more practical qualification than CS.

I can't remember all the subject names but it basically came down to this:

Information Systems - theory and practical in the form of Cisco qualification course work, networks, operating systems etc.

Databases - well, it had another name but it's theory and practical database work.

Development - focused heavily of C# and thought you programming 101 all the way to sockets/threads etc.

Advanced Development - some theory but again more practical work with algorithms and problem solving. It's here where you are first taught the venerable bubble sort, quick sort etc.

Throughout you have some research projects you need to hand in where you lose most of your marks for not quoting a source properly, some projects overlapping with the marketing students (they create a business, you do the IT) and a third year project in a team for the last 6-8 months.

But no stats or advanced math. Theoretically you'll be inferior to a CS student. Practically (at n00b level) there is a good chance you'll be superior to most CS students purely because you got a lot more computer time.

Regardless, you'll still be pretty crap by industry standards, but you won't know it....yet :p
 

TheGuy

Expert Member
Joined
Sep 14, 2009
Messages
2,971
If you have the opportunity to get a CS degree then take it. If you don't then you can still get very far if you are willing to work hard.

I have noticed that overseas companies are much less concered about you having a degree.

I do think that the industry is going get regulated in the not too distant future. Someone is going write some bad code that accidently kills a whole bunch of people and then regulation will start.
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
5,727
If you have the opportunity to get a CS degree then take it. If you don't then you can still get very far if you are willing to work hard.

I have noticed that overseas companies are much less concered about you having a degree.

I do think that the industry is going get regulated in the not too distant future. Someone is going write some bad code that accidently kills a whole bunch of people and then regulation will start.
In my experience, it depends on where your work experience was or if there were exceptional circumstances. If you don't have a good degree, the international top tier companies in tech and finance typically won't even schedule a phone screen, since it's too much of a burden on the interviewing staff. However, there are a bunch of things that will be taken into consideration in its stead:
- previous work at a recognizable name company
- participating in competitions such as IOI or IMC, or ranking high in something like Top-Coder or Stack Overflow
- for post-grads, having publications in recognized international journals
- being a prodigious contributor to a well known open source project
- having a very rare skill set that exactly matches the job
- knowing someone, who knows someone

If you don't have any of the above, you can consider companies that don't have 100+ applicants for every position - usually newer companies in a growth phase. This can then be used as stepping stone eventually, especially if the company is somewhat known or becomes well known.
 

ArtyLoop

Executive Member
Joined
Dec 18, 2017
Messages
7,781
So how is this for a cat in amongst the pigeons:

Developed a module a couple of months back. The thing works, everyone else is using it. Other devs love it...(and tell me this nearly every day).

Now Mr Mathematician with his deep OOP and design patterns was instructed to add functionality.
Here we are, two weeks later and he has mutilated the code to the extent where the other devs are threatening to quit.

Enough said...

University/College != THE REAL WORLD.

I am busy working on that code today, took Mr Mathematician's shyte, made a branch of it and made the last working version the mainline. Now adding in said functionality.. in 45 minutes. Job done. Everyone happy.

Coding is basically at the lowest level, getting the job done.. Do the job, get paid. It is silly to stand there and be all bigoted about some code you wrote in the past. In 5 years' its all worthless because some new way came along to replace it all.
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
5,727
So how is this for a cat in amongst the pigeons:

Developed a module a couple of months back. The thing works, everyone else is using it. Other devs love it...(and tell me this nearly every day).

Now Mr Mathematician with his deep OOP and design patterns was instructed to add functionality.
Here we are, two weeks later and he has mutilated the code to the extent where the other devs are threatening to quit.

Enough said...

University/College != THE REAL WORLD.

I am busy working on that code today, took Mr Mathematician's shyte, made a branch of it and made the last working version the mainline. Now adding in said functionality.. in 45 minutes. Job done. Everyone happy.

Coding is basically at the lowest level, getting the job done.. Do the job, get paid. It is silly to stand there and be all bigoted about some code you wrote in the past. In 5 years' its all worthless because some new way came along to replace it all.
So the guy’s a crap coder. You can draw absolutely no conclusions from that data, except that every single degreed programmer isn’t the dogs bollocks, which isn’t a position any sane person would take anyway.
 

CamiKaze

Honorary Master
Joined
May 19, 2010
Messages
13,867
If it's the National Diploma recognised by our NQF and not these "international" jobbies from CTI etc, then you're doing a more practical qualification than CS.

I can't remember all the subject names but it basically came down to this:

Information Systems - theory and practical in the form of Cisco qualification course work, networks, operating systems etc.

Databases - well, it had another name but it's theory and practical database work.

Development - focused heavily of C# and thought you programming 101 all the way to sockets/threads etc.

Advanced Development - some theory but again more practical work with algorithms and problem solving. It's here where you are first taught the venerable bubble sort, quick sort etc.

Throughout you have some research projects you need to hand in where you lose most of your marks for not quoting a source properly, some projects overlapping with the marketing students (they create a business, you do the IT) and a third year project in a team for the last 6-8 months.

But no stats or advanced math. Theoretically you'll be inferior to a CS student. Practically (at n00b level) there is a good chance you'll be superior to most CS students purely because you got a lot more computer time.

Regardless, you'll still be pretty crap by industry standards, but you won't know it....yet :p
Thanks for this. I always wondered. Do you did nothing like Theory of Computation, Architecture, Knuth-Morris-Pratt, Rabin Carp and Operating Systems (Damn that was hard on my body), DFA's and NDFAs, 2's complement.

Damn I'm struggling to remember some subjects and some theory.
 
Last edited:

CamiKaze

Honorary Master
Joined
May 19, 2010
Messages
13,867
So the guy’s a crap coder. You can draw absolutely no conclusions from that data, except that every single degreed programmer isn’t the dogs bollocks, which isn’t a position any sane person would take anyway.
We have to look at the guys exposure to these applications as well, he might be good in something else and was moved over into the team without understanding the full picture.

There is a degreed mathematician in my team, 15 years older than me. I smoke that dude and everyone in the whole development team with my wide skillset and depth of knowledge thereof since I'm the only double degreed person there.

Dude with Maths came from a COBOL background so he is good in that, but it seems like these COBOL guys in my team are still stuck in that way of coding and thinking, or in that little box. I noticed this when we moved over to SAP ABAP, it became quite clear that these dudes all still have that procedural way of coding, and thinking; regardless of how they tried to tell me that they are proficient in other languages as well.

Then there is other dude... My God...
I don't know what he did at technicon but he is apparently doing computer science part time...
1) He doesn't indent.
2) There are no spaces in his code, it's like a book with no paragraph spaces

And guess what, he is our coding embassador on coding standards for the team... All because he is based in JHB.

Either way, I don't like chatting to developers, or with them, because each and every developer talks about how they are the best in the world and all this *** just to stroke their ego. I rarely hang with developers outside of work, it all about this and that one is dumb or don't know how to do this and that, or I implemented that massive thing and I don't get recognitio, blah blah blah... It's all bs conversation. I don't have time for that bs at a braai.
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
5,727
We have to look at the guys exposure to these applications as well, he might be good in something else and was moved over into the team without understanding the full picture.

There is a degreed mathematician in my team, 15 years older than me. I smoke that dude and everyone in the whole development team with my wide skillset and depth of knowledge thereof since I'm the only double degreed person there.

Dude with Maths came from a COBOL background so he is good in that, but it seems like these COBOL guys in my team are still stuck in that way of coding and thinking, or in that little box. I noticed this when we moved over to SAP ABAP, it became quite clear that these dudes all still have that procedural way of coding, and thinking; regardless of how they tried to tell me that they are proficient in other languages as well.

Then there is other dude... My God...
I don't know what he did at technicon but he is apparently doing computer science part time...
1) He doesn't indent.
2) There are no spaces in his code, it's like a book with no paragraph spaces

And guess what, he is our coding embassador on coding standards for the team... All because he is based in JHB.

Either way, I don't like chatting to developers, or with them, because each and every developer talks about how they are the best in the world and all this *** just to stroke their ego. I rarely hang with developers outside of work, it all about this and that one is dumb or don't know how to do this and that, or I implemented that massive thing and I don't get recognitio, blah blah blah... It's all bs conversation. I don't have time for that bs at a braai.
Oh, for sure. There are a lot of questions about what was going on and why the person thought it needed to be written in the first place, but I doubt we would get a reliable answer on that, so I’ll give Artyloop the benefit of the doubt, because it is entirely possible, and we all know it happens.

What irks me is this same trope of an argument people keep pulling out of the same old hat: “well some non-degreed people are better than some degreed people because I know someone ....”. As though anyone at all is making any claim to the contrary. It also doesn’t invalidate any argument made on the benefits of studying a degree.
 
Last edited:

Hamster

Resident Rodent
Joined
Aug 22, 2006
Messages
34,032
Thanks for this. I always wondered. Do you did nothing like Theory of Computation, Architecture, Knuth-Morris-Pratt, Rabin Carp and Operating Systems (Damn that was hard on my body), DFA's and NDFAs, 2's complement.

Damn I'm struggling to remember some subjects and some theory.
No, I have no idea how to Knuth-Morris-Pratt my code...
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,281
...and why the person thought it needed to be written in the first place,
My sentiments exactly; surely there'd be a reason for the attempted rewrite.

.What irks me is this same trope of an argument people keep pulling out of the same old hat: “well some non-degreed people are better than some degreed people because I know someone ....”. As though anyone at all is making any claim to the contrary. It also doesn’t invalidate any argument made on the benefits of studying a degree.
The article and its notions are as I said BS; but similarly any strict notion with the inverse.

Where I'd agree is that those pursuing a formal study path have no choice over the content so the experience is as designed broader; whereas I know that not many self taught and / or non CS developers ever pursue depth of comprehension on their own. On the flipside; having privately tutoring many CS undergraduates, it's debatable how much of that study path is truly formative, and I'm not even talking about the amount who obtain degrees by crook more than hook.

Naturally I've excluded post graduate degrees because I rarely see someone who is still useless in that space, but I can say the same for self taught developers who've had more than a decade under belt.
 
Last edited:

Johnatan56

Honorary Master
Joined
Aug 23, 2013
Messages
26,559
Fully agree. People think that CS is about being proficient in a specific language. I haven't been to a technicon or CPUT but I'm quite interested to know what it is that they study with the IT diploma.
If it's the National Diploma recognised by our NQF and not these "international" jobbies from CTI etc, then you're doing a more practical qualification than CS.

I can't remember all the subject names but it basically came down to this:

Information Systems - theory and practical in the form of Cisco qualification course work, networks, operating systems etc.

Databases - well, it had another name but it's theory and practical database work.

Development - focused heavily of C# and thought you programming 101 all the way to sockets/threads etc.

Advanced Development - some theory but again more practical work with algorithms and problem solving. It's here where you are first taught the venerable bubble sort, quick sort etc.

Throughout you have some research projects you need to hand in where you lose most of your marks for not quoting a source properly, some projects overlapping with the marketing students (they create a business, you do the IT) and a third year project in a team for the last 6-8 months.

But no stats or advanced math. Theoretically you'll be inferior to a CS student. Practically (at n00b level) there is a good chance you'll be superior to most CS students purely because you got a lot more computer time.

Regardless, you'll still be pretty crap by industry standards, but you won't know it....yet :p
Degree has changed a bit due to the national government. Currently in B.Tech. software stream, just finished off the new diploma as well.

Languages handled formally: Java (1st and 2nd year), PHP (3rd), Elective: Angular. Current ones are also getting better electives than I had, they also have one which is FP paradigms.
The diploma focuses a lot on management/design as well.

CPUT diploma changed so you are a bit more jack of all trades to meet industry requirement.
1st year:
AppDev: Java Programming, mostly looping, basic sorting, GUI.
Communication Network Fundamentals: basically learn network topological, cabling standards, switching/routing, etc.
Business Practice: basically an e-com section of the degree. Also includes being an entrepreneur.
ICF: basic hardware class, build a PC, maintain PC. Not sure why this was in the course tbh...
Multimedia: Persona design, Photography, Typography, Color, HTML and XML, Animation, Logo Design, Branding, Sound Design.
Prof. Com: How to present, academic writing, research literacy.
Programming: HTML+JS+CSS first term. Moved to Java practical. Then Android Dev.
Projects: Basically project management this year, practical implementation of a year project as well. This year was dumb non-software project but did have requirements analysis, Grantt chart etc.

2nd year: You pick your stream. I went soft dev.
App Dev Fundamentals: SQL > PL/SQL (Oracle) mostly. So joins, selects, optimizing those, transactions, etc. at basic practical level.
Add Dev Practical: Java practical. Previous year again, more in-depth. Inc. of threading, networking, ended with a medium project which I once posted on MyBB, was a DVD checkout system using SQL with users connecting to server. Think the following years version was an airline check-in version.
App Dev Theory: Nutshell: System Analysis and Design. This is where we started with different diagrams, e.g. domain, class, etc. modelling. System requirements, user cases/stories, basic system architecture.
CNF again (Final time): delegated to minor. Mostly cyber security.
Electives:
- 1: I chose AngularJS. Made a basic weather app that fetched data from an API (sa weather service).
- 2: E-commerce.
Information Management: Database administration. Data administration. Both theoretical and ethical issues (also how to gather (like strategies, competitor data, different types of data, etc.)).
Information Technology Systems: Design, Implementation and Management of DB. Inc. of normalization up to Boyce-Codd practical, 4th theoretical. Transaction management. Relational modelling, role and components of DB.
MUF again (final): A lot of web design stuff, don't have subject guide anymore. This was a lot of UX mock-ups/wireframing, usability vs desirability (looks good) type thing.
Prof. Com.: Critical Thinking. Research. Referencing. Report writing. Technical writing (inc. of soft. documentation). Social Media. Media Literacy. Nonverbal Communication. Toulmin.
Project again: This one was a lot more interesting. Pick anything as long as it's newish/difficult. Got a good lecturer for this. Only requirement: follow IEEE documentation for SRS, present the stuff, document it, planning etc.. We had projects like: one group had a fingerprint attendance system in C++ that compiled the end results into graphs per user/class, another had a side-scroller game whereby a teacher enters a question and in order to progress you had to answer it (MC format), another was a fault logging system for IT rooms whereby it would pin the fault according to the room map given, etc.

Third Year:
ADP, used to be Internet Programming: PHP. Projects were: first one was basic WP site (first term one). Second was from scratch design and build either: School sports day system, sick letter system allowing doctors to submit the letter, mark capture system with appeal form for student grievances, and another system for lecturers able to assign sick tests to students which gets approved by management, with the sick test also added to it. DB must be there.
App Dev Theory: Software engineering. Agile, Waterfall, and other sd methods (e.g. scrum). Also XP and other things like that as well. Requirements gathering, goal forming etc.
Elective: Everyone picked Internship. This was the last 3 months at any company. Also inc. of making CV, linkedIn, how to interview, etc. Was a lot of PC garbage (not the internship itself).
ITS: Data warehousing. Distributed systems. Data Structures (XML, GIS).
PRC: Ethics (prof and from business perspective, Cyber). Literature reviews.
Project Management: Project proposals, project charters, scheduling, budgeting, resource utilization, risk management, closing projects, manager, project communication and documentation, organizational structures.
Project 3: Chosen project again.

Btech (1 year):
FY:
Projects: one large academic paper about chosen topic.
Project management: how to manage project. Assignment to manage one.
1st Semester:
Business fundamentals: different types/styles of management, PR, Marketing, production, finance, business: feasibility, law, economics; franchising.
Database Systems: Mathematical database representations. This was kind of diploma 2+3rd year repeat but more in-depth.
Development Software: OOP, modelling, dev. processes. Req. capture/analysis and refinement therefore. Sequence, communication diagrams. Specifying operations. Specification control. System architecture/design. Detailed design.
Research Methodology. Basically all you need for writing an academic paper (variable control, referencing, research process/proposal, data interpretation, etc.)

2nd Semester:
Computer Security: risk management and other things. Still in the process of this class.
Adv. Soft. Dev.: This one is OOP design patterns (there is a list of about 80 we are going to cover). Also advanced sorting/searching algorithms. Big O.
Soft. Eng.: Software design: fundamental principles. Agile. Plan-driven, OS. Architecture and design patterns (inc. of in different techs.). SRS in-depth. MDD. Testing, code reviews, etc. soft. dependability.

Overall, programming languages don't play too much of a role past 2nd year, in 3rd you just have PHP but all subjects where assignments are due don't have a language mandated. Quite noticeable at B.Tech. (for one assignment people have handed in in: PHP, Java (+Android), C++, C#, GO, think we had one Swift, F#, Python, and one ruby.

Already typed most of this out before, so just copy pasting and adding. I am probably/most definitely identifiable by this info. :p
 
Last edited:

_kabal_

Expert Member
Joined
Oct 24, 2005
Messages
2,937
If terrible code makes it into your codebase, and you know about it, it is your fault. If you don’t know about it, that’s your fault too

All of the examples can be easily fixed by following simple pull request and code review practices
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,281
If terrible code makes it into your codebase, and you know about it, it is your fault. If you don’t know about it, that’s your fault too

All of the examples can be easily fixed by following simple pull request and code review practices
Exactly aside from maintain ability of code, the attempt at a rewrite with something like TDD and /or CI should have fallen out in early in unit testing.
 

gkm

Expert Member
Joined
May 10, 2005
Messages
1,514
No, I have no idea how to Knuth-Morris-Pratt my code...
I also had to Google it. I think I shall stick with using .contains() or similar for the moment. :)

I very much agree with CamiKaze on his "blah blah blah" bit. I rarely talk about dev outside of work and then usually only if I am asked a direct question.
 

touch7

Active Member
Joined
Jan 25, 2016
Messages
64
There is a degreed mathematician in my team, 15 years older than me. I smoke that dude and everyone in the whole development team with my wide skillset and depth of knowledge thereof since I'm the only double degreed person there.
Then .....
... I don't like chatting to developers, or with them, because each and every developer talks about how they are the best in the world and all this *** just to stroke their ego
Lol.
 

CamiKaze

Honorary Master
Joined
May 19, 2010
Messages
13,867
Lol probably can't stand my own company, but that's not the point I was making.
 

CT_Biker

Expert Member
Joined
Sep 10, 2016
Messages
2,285
You guys are seriously hard up on **** code and not the degreed/non-degreed person it comes from.
Then again I do think my opinion means jack because I am self learning.
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,281
You guys are seriously hard up on **** code and not the degreed/non-degreed person it comes from.
Then again I do think my opinion means jack because I am self learning.
Careful with the broadsword -- not everyone buys into that notion.
 
Top