Well it was another rough week here in the Linux blogosphere, thanks to the ongoing conflagration over Systemd.
Linux Girl hasn’t dared shed her flame-retardant cape yet — just in case — but was relieved when the conversation took a turn late in the week down at the blogosphere’s seedy Broken Windows Lounge. More than a few bloggers were seeking some respite from the flames.
“Does learning to code outweigh a degree in computer science?” was the question that got the proverbial ball rolling, and it wasn’t long before hundreds of comments began pouring forth on Slashdot and beyond.
“I don’t think a degree is needed to work in IT,” opined Google+ blogger Alessandro Ebersol, for example.
In fact, “sometimes I see the academic field very detached from the daily IT practices in one’s work,” he added.
“It depends a lot on what you want to do,” offered consultant and Slashdot blogger Gerhard Mack. “Most jobs these days are simply building an interface to a database, and will not need much of what is taught in a CS class.”
‘Calculus and Logical Thinking’
On the other hand, “coding is just one small part in computer science — an important one, but not enough to replace the whole major,” Google+ blogger Rodolfo Saenz countered.
“There are so many courses in computer science that make that a complete college degree — it’s like asking someone who knows how to put bricks together to do the job of a civil engineer,” he said.
Simple coding is one thing, but “it is well-known in computer science that calculus and logical thinking are necessary for complex coding solutions,” Saenz pointed out, and those are part of the major as well.
“My conclusion would be that computer science’s curricula should be reinforced in universities, with more specialized coding courses to fill the gap,” he suggested.
‘Standards That Must Be Met’
Blogger Robert Pogson took a similar view.
“One can learn to write software without leaving the basement,” Pogson began, but “a degree from a certified university means more than just being able to write software that works. It means understanding computing from the basics to current trends and the state of the art. It means meeting in person people who are established in computer science.”
In university degree programs, “there are standards that must be met, certain compulsory courses and some cross-training, say in mathematics or social sciences,” he added.
‘I Learned a Lot of Amazing Things’
Of course, “that’s all quite variable, as a university might have a program or professors who lag behind the state of the art — the so-called ‘dead wood,'” he acknowledged. Also, “a self-taught person may succeed quite well in his chosen specialty, especially if he/she becomes self-employed and may end up being the boss.”
Still, “at least a parchment is some real evidence of competence,” Pogson said. “A developer who worked on some unknown product in his basement may not be able to displace that person with the parchment.
“While my career as a parchment-holder had its ups and downs, I never regretted attending university,” he concluded. “Those were some of the best years of my life — I met a lot of really great people, and yes, I did and learned a lot of amazing things. Most of it made me a better person able to solve complex problems in seconds and to adapt to new technology rather quickly.”
‘It’s Really a Catch-22’
Google+ blogger Kevin O’Brien saw the need for both.
“Why should we have to choose?” O’Brien asked. “I think both practical knowledge and theoretical background are valuable. The best candidate should have each of these.”
Indeed, “knowledge in your field is paramount when attempting to get a job,” Linux Rants blogger Mike Stone told Linux Girl. “It’s really a catch-22. Many companies will require you to have a four-year degree to even get an interview. Once you’ve got an interview, then you have to prove that you’ve got the knowledge to do the job.”
In this day and age, “you’re going to have to both know how to code and have a degree,” Stone said. “If choosing one or the other, I’d go with knowing how to code, and hoping you can get an opportunity to come your way despite not having the degree.
“A whole big bag of theory will get you a degree, but it won’t carry you very far in the workplace,” he added.
‘Apprenticeships Over Degrees’
“We as a society place too much emphasis on credentials,” opined Chris Travers, a blogger who works on the LedgerSMB project. “The vast majority of programming jobs out there do not require significant knowledge in computer science to do well, but companies use such a requirement to weed out candidates.”
Most of the time, “coding is a craft,” he said. “Most of the time, software architecture and engineering is a craft. We’d do better to stress apprenticeships over degrees for most jobs.”
That said, “CS degrees have an edge in purely technical computing,” Travers pointed out. “There are very many cases where the degree would be very helpful in a practical sense, so there is room for both.
“My own degree is in history,” he added. “Am I limited by my lack of a CS degree? Sure — but I am less limited in other ways, and there is only so much that anyone can do with his or her life.”