Why Not Having a CS Degree Is Awesome (2019)
caitlyngreffly.com
caitlyngreffly.com
Everyone always says, "You never use that in the 'real world'" What's funny is that the people who say that are the people who don't know they should use those concepts to solve some problems. That's what the real separation is between having one and not having one. Trying to explain, say, a discreet system to someone who has never even heard of it is hard. There is so much people who haven't gone through a cs program don't know.
I hope to think this, because I'm in this camp, but people without cs degrees can be good programmers. They just have to realize that it's not "Ha ha sucker, you spent 4 years learning something I did in 12 weeks." It's "I have to spend my nights and weekends for years learning what you concentrated in on college."
Then I got to work with and eventually hire people who had the CS degrees and not only did my knowledge explode, work got done way faster with higher quality. I'm sure it's a whole new ballgame with the wealth of resources out there but when you have time, space, and support to become a true practitioner it's got to be an advantage if not confidence builder.
> Trying to explain, say, a discreet system to someone who has never even heard of it is hard.
Well, that's because discreet systems are inconspicuous and don't stand out much. Totally normal.
You are 100% right.
I don't like the deficiency in knowledge and skills that this implies. As a self-taught person you can learn and know everything that's covered in a CS degree. It will take time and effort, and your experience will be different compared to someone who took the traditional route (I'm not even arguing for one or the other) but the idea that self-taught people don't know computer science is kind of a silly meme.
I've had coworkers unable to write basic emails without someone helping them; or worse, they can't clearly explain their thought process on anything and are confused when you're unable to read their mind, verging on some kind of mind-blindness.
Of course, not everyone is this bad. But by the nature of the work, chances to practice communication skills are few and far between.
So, sure, there's maybe missed opportunities to practice during a CS curriculum, but there still are plenty of them (remember, 2 years of 'core' classes, that have nothing to do with CS, not to mention opportunities to talk to the professor and TAs for questions, grade corrections, and just straight up brown nosing, and that's ignoring all the group projects you're likely to have, just for the fact those invariably turn into one or two people doing the actual work, and of course it's also ignoring any other social interaction opportunities you might have on a college campus, which they're kinda known for). You just have plenty of people who -want- to be heads down over a computer going into CS; you generally don't go into nursing or psychology or similar if you're not looking to work with people.
By analogy, they should be reasonably capable of explaining their thought processes to another human that understands computer languages (i.e. a fellow software dev).
To me, anyone who doesn't pass that bar shouldn't be working on software at all. It's also curious that, on another thread about AI generated code, people are dismissing it because the AI "can't explain the code" or something.
B needing that high-level discussion doesn't mean B isn't a good developer, and A being narrowly focused on implementation details doesn't mean A isn't a good developer. But they both need to be able to meet each other in the middle to be most productive.
Heck, I'd go even further - (that one takes effort) but the 1st and the 3rd books of TAoCP are rather accessible (no necessarily all chapters, though)
Big O and discrete systems, for example, both make perfect sense if you've internalized how computers work on a fundamental level. And usually what trips people up about understanding computers is how alien they are/how different they are from the natural world. If you're a child, then you haven't learned enough to think computers are 'weird' so that brain block doesn't exist.
CS degrees are a shorthand for a knowledge set that you really ought to know, since you were explicitly guided to acquire it, but can’t really guarantee knowledge or skills. Obviously, the inverse is also true.
I usually don't go in for piling onto defenseless groups of people, but having worked in marketing and development, I applaud this (likely unintended) sick burn.
This article comes across as rather arrogant to me. I agree that people of different backgrounds can bring new skills to the table, but the article seems to implicitly imply that people with the author's background are better at the things that really matter for a software engineering career than a CS graduate. It feels like this article is just the author trying to boost their own confidence.
That reality muddies the conversation, as evidenced by the comments here: while a CS degree certainly gives you a head start, those with one but without good self-learning skills will not be valuable. On the other hand, non-CS-degree folks who get engineering jobs are independently very likely (not guaranteed, but likely) to have good self-learning skills.
So we're not really comparing apples to apples. Rather, were comparing people who probably have high aptitude for a core component (self-learning) of software engineering with people who studied CS in school. Making it through a CS degree is, at most institutions, not nearly as strong a proxy for aptitude as breaking into the field because you possess a strong ability to teach yourself things. Note that none of this implies any negative things about people with CS degrees.
If you don't have the academic background but can teach yourself things to "backfill" the missing knowledge, you can be a valuable engineer. The reverse is not true.
medicine, nursing, electrical engineering, civil engineering, physics, biology, environmental science, etc.
Going through a list of stem fields in my mind, I can't think of any other fields that have boot camps.
My buddy went to hairdresser school and it was longer than a lot of technology boot camps.
Just feels unusual that in the industry, a 2-month boot camp competes with a 4-year computer science degree.
In the US, careers in those fields requires certification and IT does not. Probably because 1) the field exploded in popularity before anyone could formalize a certification process and 2) bad developers aren’t as dangerous to society as bad surgeons, bad nuclear physicists, bad civil engineers, etc.
Also IT’s labor gap is especially extreme. I think it takes less knowledge/training to be helpful to a company when they desperately need workers with computer skills.
Some countries have tried to put degree requirements for software engineers, but developers are not union-friendly or certification-advocating.
Medicine is a great example. Nurses have 4 different levels that vary from a boot camp equivalent of training (CNA) to requiring an advanced masters degree. (advanced practice registered nurse). Doctors have specific specialities that take more or less time to earn and pay different amounts.
Electrical engineering has Electricians (and even in Electricians, you have a breakdown of apprentices, journeymen and masters) but it also has Electrical Engineers.
Biology has lab assistants and lab technicians, it also had people with Doctorates working a lab. Theres also levels of certification and training that depends on if you are doing Forensics, medicine, research et cetra.
Looking at computer science. It's all just engineers/developers. A company need something built and finds out they really needed someone with a bootcamp level of training and not the Masters Degree in Computer Science. But they have one "Software Engineer" track at their company and they pay them both the same. The guy/girl is a wizard at SQL optimization gets written up because they get moved to a team that requires them to grind out React code.
Some places do have different tracks for different types of devs, but it seems like for a lot of places they have been consolidating their roles, not creating more role diversity. The reason for that is that when your boot camp React dev finds themselves on a non happy path, they can get hard stuck and a "higher" level of dev has to intervene and help, so the company figures it makes sense to go ahead and just get the higher level of dev that can handle it when things DO come up.
Isn't that the meme about Google? That lots of their devs are just doing configuration tweaks but getting huge salaries? I would imagine Google does that so when there IS a problem those people presumably are equipped to go outside their comfort zone and be able to handle it.
i have a whole bunch of friends who were sold this dream of six figure job after a short bootcamp. Almost none of them work in tech/coding now.
I like boot camps as an opportunity for Junior Devs to break in but seems like they can prey on people looking for an easy payday.
For example, a great front end engineer I know had an art degree and a boot camp experience, combined with self study. She went to work with an agency, then moved into product engineering, and is a fantastic coder today.
I think 2 months is too short for the vast majority of people, even in addition to another degree. However, I think a dedicated degree is also not necessary.
Completely agree.
I wish there was some sort of designated career path for people with clearly defined milestones.
I did technical school before university, which are the last 3 high school years in Portugal (10 - 12, from 12), as alternative to go to the university, just in case I would fail the national admission exams.
Yet after those three years there was so much to learn, how come a 2 month bootcamp teach anything beyond basic programming knowledge.
History of binary? I guess either Ada or Babbage (or both) were the first. It wasn't part of my curriculum though.
Unnecessary basics learned? It comes in handy knowing a bit about data structures, big-O and compilers when the need and situation arises. Oh yeah and normal forms and automata are fantastic.
However I agree with the authors point that having cross disciplinary skills and backgrounds will help in this field, and that those who come into it without formal training should not shy away from applying for positions that they think could fit them.
Having only a BSc in CS, I for one do not plan on getting a MSc in it as my next degree (if there will be another). Probably something involving business or design instead to deepen my knowledge in related fields.
However I really dont like how this post potraits the people "having a CS degree" as the same person. Everyone is individual and brings their own skillset..