![Cover image for Why Not Having a CS Degree is Awesome](https://res.cloudinary.com/practicaldev/image/fetch/s--egkn7YL7--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://thepracticaldev.s3.amazonaws.com/i/wjtnbk35408okz6sv1y4.jpg)
I didn't know what I wanted to do for a career when I was 18, and I feel okay about that. I also shouldn't have been trusted to pick a romantic lif...
For further actions, you may consider blocking this person and/or reporting abuse
I feel this.
While I was out not getting a CS degree, it wasn't like I was just sitting around not getting educated, not learning about this world and developing other skills that would be crucial for software development.
True, makes for a more well rounded person.
I have a CS degree, as I wrote in one of my articles, you don't need a CS degree to become a developer BUT unfortunately a lot of companies keep asking for a degree and/or don't pay you the same as if you have one (which I agree...sorta) I say sorta, because if you are very talented then you should get compensated for your talent, not because of your level of studies. If you are just average and don't have a CS degree then sure you should get paid less since the other person has more preparation. People go to school for 4.5 years average for a CS degree and most of the bootcamps are only for a few weeks and they teach you how to build apps, but the majority of them don't teach you how to think as a programmer.
Also, going to school is a great experience to learn from other people, do networking and get very good friends (you are stuck with this peeps for several years π€)
Another advantage of going to college is that some companies take your studies as experience. For example if a job opening is asking for 2 years experience using JAVA and you have been using JAVA through college then you technically qualify. Some companies specify 2 years of Professional experience tho and that's when college doesn't count as expirience.
Also, getting a college degree involves more than just CS classes. I had to take 9 math classes, chemistry, OR, and physics which helped my brain to develop in certain way and being more opened to other ways of thinking.
Lastly I have seen companies not carrying about your degree after 2-3 years of professional experience, but some companies when you reach certain level they care about it again. Like, yes you could be a software engineer without a degree, but a company may not make you a manager or a software architect because you don't have a degree.
Now, would I do get master's in CS. Hell no! Waste of money haha.
I think the only downside I see for people going college is having student loans. Thank god I didn't have any.
There are definitely so many up sides to having a CS degree, or any degree, and I agree that you get more than just coding skills in those programs. I just love that thereβs another option out there for people who canβt go to a university or donβt want to go again.
Interesting to think about pay differences for CS grads. Personally, as a non CS grad, I wouldnβt mind if a CS grad got paid more than me out of the gate, I would just think we would even out with time and years of experience eventually. But I would just hope an employer would give chances to people without CS degrees as well! Which we are definitely seeing in the workplace, one of the reasons bootcamps are so popular right now.
Yes exactly, like I said a lot of companies don't care after 2-3 about your studies so you can definitely even out after a few years if you are talented. Also people experience pay differences just by going to different schools. E.g someone from Georgia Tech usually gets pay more than someone who went to a small college.
Also, in my personal point of view, if I had another degree and wanted to get into coding I wouldn't do a "on site bootcamp". I will just grab $200 and buy the best courses for what I want to learn e.g React, NodeJS, etc. By doing this I will save a lot of money, learn at my speed, have lifetime access to the courses I bought and the majority of the courses are created by the leaders in the industry.
May I receive an advice since I graduated and I am hardly getting employed and am doing side projects for people yet the people at the end they drop me π down and I can't show case something that is hosted to employers please? How can I get a job as a graduate?
Thatβs rough if youβre doing work for employers but not able to show it off for whatever reason... I guess you would have to get some side projects going to grow your personal portfolio? Good luck!
Will they help me to be considered for a job though? It will really be nice if they consider meπ₯πππ
Yes, write your own apps, build a mini-portfolio to showcase your skills and work.
The "experience" of college can be gained from having any job, especially minimum wage jobs. I feel that working in food service or retail can far outrank college in every positive point you made.
Everything that you listed as a positive is not worth people going into debt for years, or life; and it's such a waste of learning potential.
If you want to learn how to think like a programmer, then do that. I did and I didn't have to get cozy with people I didn't want to associate with; I did that at Domino's and McDonald's.
I've been down in the dumps, Homeless, I've had close family murdered, including my mother. I've had wonderful things like my children being born and in my 30s meeting the woman of my dreams. Zero excuse to limit someone's potential. It can be done. Life is thinking like a programmer, no college needed.
The mentality that a college education is a net positive is consumer bias; apple products anyone? Use Linux.
Please use caution with your statements before you inadvertently put people into huge debt based on your recommendations.
Coding and understanding how to think like a programmer do not require college... Period.
As much as I agree there are other hardships people can go through - I wouldn't say simply having a minimum wage job compares to a college experience at all. Being in a position where you need to earn for yourself can outweigh it but still isn't the same. College provides an academic challenge where as a CS major you could find yourself working ALL the time for no pay at all - in fact you're the one paying the tuition dollars here. So it's very very different in terms of what you learn. In college you learn how you learn. By working a minimum wage job, you learn how to get by and survive. Two different skill sets!
I agree, and learning to survive is vastly more important. I have "been" to college, it was unflattering to say the least. So I quit.
College aims to teach life to the lowest common denominator. Life is the greatest teacher of all. Besides, the point here is software development and the necessity of a college degree.
We can intellectually disagree on the importance of a college degree, but my point is that a college degree nor a bootcamp is even remotely needed for a happy, rewarding career in software development. The passion in coding could use more entrepreneurs and startups, but that is another story.
I also love quantum physics, biology, math, etc. I don't need to have a degree to be good at any of them... I do it because I love learning. I think that is what is missing in college. The love of learning what you are passionate about.
Never stop exploring the world
I don't agree that a minimum wage job replaces the experience of college, in fact most of the recruiters tell you to take away irrelevant experiences like being a waiter etc from your resume but they never tell you to take college off your resume, for you may not be worth going to college for some people it is. Like I said you don't need to have a degree to be a programmer, but if you don't may not get pay the same as other one that do, and that's a fact.
Sure, no college needed to think as a programmer but they do teach you that in school, yes you can learn it somewhere else. Most of the bootcamps don't teach you this. How many developers who take a bootcamp also take the time to take logic, classes, and other things that help you think as a programmer? I guarantee you the minimum people who graduated from a bootcamp do it.
If your excuse to avoid college is getting into debt, then bootcamps shouldn't even be an option. A good bootcamp can cost you easily several thousands of dollars ( not going to school because you don't want to get into debt is a valid excuse, I hate the education system here in the USA that is so expensive). Like I mentioned in one of the comments, I will take $200 and buy the best courses online crated by the best people in the industry (something the majority of the bootcamps don't offer, a class by top shit people in the industry)
Now, to give class in college you need a Phd and most of the professors have worked in the industry, have connections and have patents. Something that makes college education valuable too.
I'm not limiting someone's potential. I spoke facts, and not because I spoke facts means I'm telling people to get in debt. I mean good salaries sometimes come with a price and not just programming. Are you going to tell the doctor to not get a doctorate because is expensive or what?
If you read the post carefully I even mention that after 2-3 years of experience companies don't care about your degree, some companies start carrying again about you having a degree when you reach upper level positions, which is a fact too.
College doesn't have to be expensive. My 4 year accredited degree cost me almost nothing out of pocket. I received a full tuition scholarship. The local community college has a partnership program with universities for several degrees. I attended college, lived at home, worked part time, and took general education classes at the community college rate. I paid for books and lab fees.
I probably have less than $5k out of pocket in my degree. If I paid 100% out of pocket for my degree it would have cost less than 2 years at a traditional university living on campus.
I understand that not everyone has access to these programs -- but they are around. More and more of them are becoming fully virtual as well.
Eeehhh...i don't fully agree here. With you and OP.
This article can be true for your typical programmer/dev role.
But for someone who wants to go beyond the typical dev, and, say, program the trajectory of a satellite, a space shuttle, or an autonomous car - "working at Domino's and think like a programmer" and a bootcamp is not going to cut it.
A colleague of mine once commented on the difference between what he called theoretical knowledge and domain knowledge. To sum it up succinctly, theory is the "why" of a thing and domain is the "how." Some mastery of both are necessary to become a strong developer.
That being said, while a CS degree should indicate strong basis in theory, it often doesn't. Conversely, not having a degree doesn't indicate a lack of understanding of underlying principles. All it takes is a driving curiosity and a commitment to mastering the profession. Whether one attended a bootcamp or a CS program is irrelevant compared to their drive and thirst for learning.
For what it's worth, I have a Master's in CS and I neither know nor care about the history of binary.
I know a developer in his 60s that has a masters in CS and during his entire degree program he didnβt write a single line of code. Why? Because the small college in Idaho couldnβt afford one.
An extreme example of course but my point is that you can haz CS degree and not know how to code but you canβt graduate from a Bootcamp and not know how to code a lilβ bit. π₯΄
Wouldn't that depend on the bootcamp? These are mostly for profit institutions. One way to increase the profit is to skimp on the training.
I very much agree! Engineers build stuff for people and since people are diverse having a diverse team only makes sense. Those people could be fellow engineers, or direct consumers, but the idea is the same, build for others. π
But I don't know if all employers know this fact, which is one of the problems in all industries, but I believe that will change :)
βOverspecialize, and you breed in weakness. Itβs slow death.β
I donβt agree in the slightest. So you know how much the programmers make that write some of the most obscure languages. Imagine you were SO specialized that you were the ONLY programmer on the entire planet that could do what you do. Youβd be highly paid, considered an expert, and when people have a problem with that platform you would be the one they would call.
Now I agree with the other side of the coin. If you have 57 programming languages listed on your resume then you probably arenβt very good at any of them. π
That is until what you specialize in isn't used. Its like being fluent in Latin, and all that ancient Greek texts have been migrated over to the latest version of English haha.
Regardless, I don't think the quote is suppose to be applied to a single person, most of the post, my reply and I assume this quote are organization focused.
The only thing that's usually missing from self taught developer / bootcamp grads is a solid foundation of cs principles. As a self taught developer myself, I'm still learning basic concepts on a daily basis.
While it's cool that bootcamp teach you all the new stuff, they also gloss over many important others that during an engineering degree are usually covered.
I'd argue that most CS folks who graduate from a 4-year uni also miss a solid foundation in CS principles ;-)
I agree. I've almost graduated and I haven't learned much in uni except for Math and Physics, and I'm doing a CS degree (not in the US btw).
It varies pretty widely. I went to Carnegie Mellon, which has its own idea of how to teach comp sci. It's very effective, but... Yeah, mostly places should not want to do it that way.
Agreed! Thereβs definitely no way to cover the vast amount of material youβd get in 2-4 years of CS in 6 months, but its a nice jumping off point.
Yes but how long do those principles stick around? For example, I minored in math. I took Calc I, II, III and DiffEQ, and Linear Algebra and if you asked me to solve anything but the simplest diff or integral I would be hard pressed. I know about Eigenvectors and Eigenvalues and Fourier transforms but ask me to explain it to someone and Iβll rage quit. π
You still learning every day is what it is all about. You can't wrap everything into 4 months or 4 years. You will write your best software solution when you close your editor for the last time.
I have learnt a lot from my CS degree that reflects on my daily work.
I learnt how data are structured, how to make our algorithms more efficient, how computers works and loads of other important stuff.
I am sure this is an incredible amount of value in a CS degree, and I didnβt mean to devalue that here. Just show that there is also value in bootcamps.
I hope this is sarcasm. #learnt
Oh dear... π€¦
dictionary.com/browse/learnt
Yeah, itβs a word...
Caitlyn this is an amazing post! I have 3 college degrees, 2 bachelors and 1 masters, all of which I no longer use. I chose to go to a bootcamp because I didn't want to add to my mound of student debt by going back for ANOTHER degree.
What really urks me reading this discussion thread are all the people claiming us bootcamp grads aren't worth hiring or having as teammates. It's really discouraging as someone currently looking for my first SWE role to know there are people out there with this mindset. Am I going to be mistreated or looked down upon as inferior in my future workplace because I'm a bootcamp grad?
All of that hard work I put in over 5 years to earn 3 degrees and my 3+ years of post-graduate professional experience does not disappear just because I switched careers and went to a bootcamp instead of going for a 4th degree. I may not know everything a CS graduate knows right off the bat, but I'll work hard to get to that point.
One last thing I'll add, learning multiple languages and frameworks over a short period of time is no small feat. All bootcamp grads reading this should be proud of their accomplishments. Do not allow these negative comments get you down about yourself.
I 100% agree with you! Your employer is going to see that you are a super hard worker and love learning, which is so important in a field that is constantly evolving. And I also really hope these comments don't discourage people - for what it's worth I have NEVER felt this kind of negativity in person. Only in the depths of the internet π€
I agree! I was a double major in undergrad (biology and information systems), got my master's degree, got several hours of post-graduate computer science coursework and I'm not going back to get a CS degree. I've shown I'm obviously capable of learning. If I have the projects to back up my computer science knowledge and experience, that should matter. There is no reason to go into more debt for another master's degree! Ignore everyone that tries to downplay your accomplishments!
It's interesting that you have a degree in psychology. I say that because quite a few folks I've encountered on my journey are in IT and were psychology majors.
I wonder where the correlation is sometimes, but it may be how one is able to "get it", or "see the bigger picture", and if they can't, they'll probe until they do.
And starting a project with that perspective is big because there's nothing worse than encountering 'scope-creep' or discovering additional use-cases more than halfway through development.
If I had to guess, this is one thing a CS degree or a Bootcamp will not provide for someone. Sometimes it takes a failed project or a few missed deadlines to gain this level of insight. Others may have this trait inherently.
I can't say I'm all-in on Bootcamps or colleges, but I will say the journey to becoming a developer is hard. Very hard. So I always tip my imaginary hat to recent CS majors and Bootcamp grads, and again for those who transform them into successful careers.
However, the common thread for all devs I look up to and admire the most?
And, some of the biggest career-traps I've spotted along the way here?
Thanks for the great read!
When I read this it just occurred to me:
Could it be thinking about thinking? Meta-cognition, computational thinking? Analysing thought processes, etc.
I initially majored in CS but after discovering that I was primarily good at coding per se and not the more theoretical aspects of math / CS I switched over to linguistics, on the cognitive science track. Computer science / AI is considered to be part of cognitive science. In either case (CS or linguistics) I am dealing with subjects that have at least the rudiments of a mind. We absolutely need people who are dedicated to solving problems like blocks sliding down an inclined plane but I just couldn't quite get into this sort of thing.
It bums me out that people think I am discounting having a CS degree. If I wrote a post of the perks of not having a dog, would everyone who owned a dog come out of the woodwork to angrily tell me Iβm wrong?
Also, I would not replace my psych degree. I think it adds value to my life and has made me the person I am. That does not mean I shouldnβt be able to change my mind later and go down a different path. If there was no need for engineers with the kind of skills that bootcamps provide, bootcamps would not exist. If no one was getting hired from a bootcamp, bootcamps wouldnβt exist. Iβm not sorry I spent 9k (not 15-20k) instead of 40k because debt makes me uncomfortable.
Everyone is free to their opinions, but I wish trying to uplift and support one group didnβt mean people felt like I was attacking them. There is absolutely nothing negative written about people with CS degrees in this article.
Caitlyn, your post was clear and non-attacking. I donβt know why itβs caused so much defensiveness and outrage. Even if someone has a different opinion, I donβt understand the anger in the responses. Youβve done an impressive job of not returning the attacks. It makes me sad that an article meant to encourage people has ended up showing an ugly side to our industry. π Itβs so good youβre here.
Great post. Some of the best developers I've worked with didn't have CS degrees (though many if them did have other Engineering degrees).
One word of caution though: while I've never been to a bootcamp program, my impression (which may be unfounded) is that they mostly just teach you how to code. There's a lot more to software engineering than writing code. It's a bit like a publishing company deciding that they need more authors, so they offer a spelling and typing class.
So whether you choose to get your education through a university or not, I think that what will be the most helpful would be to make sure you continue learning about all of the non-coding parts of being a software engineer. Some of the non software engineers I've worked with write code that works, but it is terrible to look at and you know they got all of their knowledge from their one programming class they needed for their mechanical engineering degree. I've worked with others who are constantly scouring the web for advice on programming principals, reading blogs, taking online courses, consulting their coworkers, etc. and they write better code than some of the classically trained software engineers.
In the end, the key is learning (and continuing to learn) the principal's, and to me, it doesn't matter how you do it.
Caitlyn, This post has generated balanced comments. I'm an Electrical Engineer "turning front end dev." I can't afford the time to go back to school for the languages necessary for front end dev. So I've decided to self-teach(taking courses online.) I'm just completing CSS, after HTML. I'll then do JS & React. I'm three weeks into it and I'm doing awesome because this is the best learning formula that suits me for now.
Great stuff here. I often feel that I learned a lot of my most rare & valuable skills not in my CS program, but in music school. How to take a deep breath & walk on stage like you own the room, (demos, interviews), how to understand requirements & translate them into a formal spec (reading/writing sheet music), how to focus under pressure, how to break down difficult sections/features into component parts & build back up to a finished product. How to switch languages/frameworks (I played two different types of tuba, plus a little piano).
I really do feel that I learned a lot of valuable stuff in getting my CS degree, but I don't think any of it can't be self-taught. Grab the Dragon Book, or The Little Schemer, or Cracking the Coding Interview, etc. On the other hand, there really is no substitute for walking on stage & performing. (Which has helped me with pressure situations & difficult conversations my whole life.)
As an industry, tech has a serious problem recognizing great candidates & knowing what makes them great. I understand why people doing the hiring sometimes ask for a CS degree, but I think they're missing out on a lot of outstanding devs that way. I agree that it's best to have some kind of qualification, but I don't see any reason to prefer a CS degree over a bootcamp cert, a portfolio site, an example project in github, etc.
Itβs possible a CS degree does give an advantage. I understood Caitlyn to be saying there are good things that come out of other backgrounds too, not that a CS degree is a bad or lesser thing.
The competition I was referring to wasnβt the job application process, but rather the putting down of people who have different backgrounds; that competition is not useful. If someone wants to weigh the pros and cons of getting a CS degree or not, thatβs a discussion of paths and their relative merits. That isnβt what the responses here have felt like.
If you think about it though, we celebrate babies when they first crawl. Then we celebrate again when they take their first step. We celebrate when a child first learns to ride a bike without training wheels. We celebrate graduating high school and college.
To me, it's not really appropriate to judge and call out people on the things they choose to celebrate. We have no idea what someone has struggled with in the past. We have no idea how many road bumps that person had to move past to accomplish what they did.
I think that if we don't celebrate the small steps in life, life would be quite dull. That's my opinion though, it doesn't have to be yours. I choose to celebrate the small steps I take in life because I like focusing on progress and positivity. After celebrating, I move on to learning more. It's all part of the process of climbing that "ladder of ability". π
p.s. Thank you for having a civil/healthy conversation with me! I do really appreciate it.
No not really , it's much easier to learn stuff like a minor in pyschology to give diversity but at the end of the day a bootcamp is just that much , sure you can do the basics , but with a cs degree you've spent 4 years just on computer science and nothing else , the amount of knowledge you get especially because you are around people ( most of them ) who are passionate about computer science as well , interpersonal skills can be developed much easier ( ie drama clubs social clubs , just interacting a lot , organizing events etc) and sure computer science is a subject that can be leaned online but what you get at a college is irreplaceable, thus there is reason people prefer engineers with a cs degree , at the end of the day sure bootcamp people will learn eventually by the time which cs students would have learned much more
As a software engineer with an art degree, I feel this article π€ I get to work with people who have backgrounds in teaching, organic chemistry, 3D animation, political lobbying... and yes, folks with CS degrees! Our differences are a huge part of our strength.
Wow, I would say that guy clearly did not understand the premise of this post. I'm currently getting my degree, however, I come from a military (infantry)/cop background. I understand two things: one, bootcamps work and two, experience counts for more than a piece of paper. Also, currently in my quest for that piece of paper I have learned that employers are wanting employees that have more soft skills than IT knowledge. In my past /current lines of work I have gained a plethora of soft skills and plenty of experience to boot.
The gentleman that isn't as understanding as some others in this thread appears to not have the experience with specific soft skills that would require one to be more empathetic.
Depends on the employer. Soft skills are rare in tech so a premium is placed on anyone who has them. But no real tech company is going to hire someone for an engineering role if they eschew technical ability in favor of people skills. The former is foundational. The latter is nice-to-have.
I didn't say it's end all be all and that we know everything now. I was saying it's not an easy task and that it's something to be proud of. Just like setting a goal at work and accomplishing it. Or any other goal in life.
I acknowledged that we don't know everything and we still have a lot of work to do, so I'm not really sure where you are basing your thought that I'm not
here.
Anyways, I know plenty of CS grads who are friends that felt like they struggled entering the workforce because they didn't know how to code and only knew theory. There are strengths and weaknesses to everything. Not every CS degree program is great. Not every bootcamp is great. People aren't perfect. We shouldn't be putting people down for it.
Iβm sorry youβre getting this kind of negativity Victoria for, what I thought, was a very inspiring post.
Unfortunately there are going to be people who insist on reminding us that we are less than because of the route we chose to go in life. I want to hope that group of people is a small minority. I donβt need someone tellIng me that what Iβve done is not an accomplishment because they did more. What a horrible thing to say to someone.
The post is inspiring and very well written. Don't let the negativity take that away. What we've accomplished is that, an accomplishment.
I'm choosing to also hope that this is the view of the minority. More and more companies are starting to integrate apprenticeship programs for those with non-traditional backgrounds. If companies are investing time and money to create programs for people like us there is obviously room for us here, as well as people supporting us and rooting for our success.
Caitlyn, I totally agree with the spirit of your post. Having a CS degree doesnβt automatically make a person qualified and likely to be a good employee or team member anymore than not having one makes them the opposite. People are composites of all their experiences and traits, including education, perseverance, communication skills, etc. Someone who doesnβt have a CS degree still brings relevant and beneficial skills, knowledge, and experience.
This isnβt a competition. We want to build an industry that works together, not one where people belittle others and jockey for supremacy. I appreciate you pointing out the value of having diversity in our field.
Hey Caitlyn,
Nice post. Loved it.
It totaly resonates with me.
My name is Ricardo I'm full-stack developer with around 20+ years of experience in this business.
I've worked all around the world as a freelancer for major companies - Accenture, SAP, Mercedes, Siemens, BP, Deloitte and many more.
Been in China, Germany, France, Sweden, and lots of other countries.
And I have a degree in... Journalism.
:o)
The fact that you're "out-of-the-box" only enriches you as a person.
And hey... with your background you bring humanism to this area (there's too much geekines sometimes).
I always tell my colleagues: if you want to be productive and really a supa-dupa developer go and read Classic Literature first :o)
For me, the fact that I don't have a CS degree was always a motivator for me to go the extra mile, learn more, improve myself.
Love what you do, that is all that matters.
:o)
THIS is inspiring. Thank you for sharing.
Calling people assholes when appropriate is ok, I hope. I mean I'm definitely an asshole sometimes. No biggie, it just means someone is a jerk.
My opinion is only controversial to people that have college degrees and have buyers remorse or people that live in the days long gone that actually learned something in college.
My wife is a medical professional, so I am fully aware of what is required for healthcare. That analogy/situation is bogus. I do have my issues with nursing/medical school as the intensity meant to weed out weaklings actually hurts us all as a species, but it's not my career
It always feels strange to read about educational problems in the US.
In Germany you study basically for free and can get a loan for you living expenses from the state where you only have to pay back half of it and only if you have a job that pays enough. Also, there is a comprehensive apprenticeship system for people who don't want or can study at a university where people even get paid to learn how to develop software.
I kinda disagree with this.
I usually never comment, but this resonates a lot with what I've been through.
Biology, life sciences and all that jazz was my thing. Studied 2 years, dropped out, started working as web developer right away but felt the impostor syndrome lurking around at every turn. Got a technical degree, but still, didn't put much academic effort into it and felt bad about it, as simple as that. Kept reading posts like this to make me feel good.
This year I'm 25 years old, getting back into a final year of remote studies to get a bachelor in CS. I don't need it for professional reasons, at all. I'm doing just fine a work I love and getting very well compensated for it.
It is awesome to have learned what I've learnt before getting into software engineering. But let's be honest, it never ever did me any good on a career perspective. Getting back on the academic bench feels genuinely great and I'm studying as hard as possible whilst maintaining a full time job. No pain no gain they say. You have to earn your peace of mind. Such is my journey.
I'm not saying anyone should follow any lead, and I'm all in for self acquired literacy, heck I've been through a lot of em' MOOCs and hackathons and what not. But getting a degree just feels great in my opinion, it's no hype, it's years of efforts from smart peers that get passed down to you in a condensed dose of knowledge.
Most of the people will never get the chance to be in the right context to become the next Gates or Zuckerberg. Drop outs are idolized and laziness justified nowadays. Being lazy about getting a CS degree is not a smart choice imho, at the very least it's not putting the odds in your favor. If you have to work a few years to pay for it or are making a career switch, then do. But then if you are still feeling bad about it, get a degree. Getting back on track is the hardest move, learning is awesome.
Just my 2 cents for posterity.
100% agree. I'm actually working on my CS degree now, my first BS was in economics. It's not been easy, there's certainly no free time with full-time work, kids, and school. Would I want to go about it another way, no.
I enjoy the process of learning, and I believe that is something that will service me well as I advance my career. Graduate degree next!
I joined this community just to leave this comment.
This article is wonderful! I've been a professional software developer for ten years without a CS degree and I've fought impostor syndrome every step of the way. I work with brilliant developers who are much younger than me and many if them write amazing code but I see them making the same mistakes I made when I was younger.
In the end we all have strengths and weaknesses and we all can help each other see things we might not have initially.
Great article! Really resonated with me, not the same backstory but certainly similar sentiment.
I, to, agree!
I realized a couple of days ago that I was spending over $16,000.00 annually to teach myself computer programming attending a University online. I have tons of self teaching resources plus an opportunity to attend a bootcamp. I just notified the school so I can focus on this one thing I want to for myself for fraction of the cost.
Having worked on Web apps since the late 90s, started a computer science degree, switching majors to more general computer studies, taken until my 30s to finish school, and still working on Web apps in 2019, I can definitely relate and am glad to see more employers being open to hiring from non-traditional channels.
One of the most talented developers I ever worked with was a history professor who switched careers in his mid-to-late 40s. It just goes to show that developer productivity is more often a mix of grit and passion for the field than academic credentials alone.
Iβve also interviewed at some big tech companies and been bitten by the fact that I am not quite an expert on data structures, algorithms, and brain teaser LeetCode algorithms. Itβs like the industry loves reminding me I should have just stuck with computer science and kept studying the freshman-to-sophomore concepts over and over just so I could pass some off-the-cuff whiteboard exams in my late 30s. Because thatβs how writing apps is supposed to work? I donβt know.
As someone who studied CS and a Bootcamp I must say that there is huge difference between being a Computer Engineer and a Software Developer. In the career I had the opportunity of learning the most important concepts about computer, networks, algorithms while learning about programming was secondary. In the Bootcamp, I learnt more about different technologies such as React, Node, Django... at the end, it teaches you on how to develop an application.
To sum up, if you want to focus your career only as a Software Developer, so doing a Bootcamp could be enough but it is true that a CS degree could open you more doors and gives you a wide knowledge that not any Bootcamp could ever teach you.
Just don't forget that although the name doesn't imply CS is still an engineering. You don't want a bridge to collapse with people on it because of an engineering fault. I mean it comes with responsibility and some principles accumulated over time are implicitly taught with engineering formation.
This actually is the main reason why you should keep studying CS basics on a daily basis. So that one day you don't apply a tempting workaround while there is a solid way to do it, so that it doesn't cost the society valuable resources or even worse lives.
It is awesome that education is getting more democratic. I myself switched software development from industrial engineering. But in software industry I can see how non-engineering approaches may be trouble when used for engineering problems. It's pretty good to kickstart with a bootcamp. Just don't stop there because all the CS content you skip is also available online.
Nice post!
I agree with you that people with different education backgrounds can bring different perspectives. My degree (BA in history) definitely doesn't play an obvious role in my career as a developer (I was mostly self-taught outside of college - bootcamps weren't a thing back then). However, I do think it gave me a different perspective and helped me to bring some communication skills, particularly in writing, that aren't always common in development teams.
I can understand why companies may prefer a CS degree (though not why some require it). But I agree that they can lose a lot of skills and perspective if they shut themselves out from people with different educational backgrounds.
How did you end up getting interviews?
Well, part of what I did is just be lucky. This was in the middle of the dotcom boom in the late 90s. There was a severe shortage of developers, so companies were desperate.
The other part, however, is something I think still applies today, which is that I built a significant project from scratch. It was a site that ended up with thousands of users (remember this is late-90s...that was more impressive back then). This was my main portfolio piece for interviews.
Luck isn't replicable, but I think the second part applies to bootcamp grads and self-learners. I talk to a lot of bootcamp grads through Orlando Devs and they all seem to come out with similar portfolios. Doing some kind of project that shows that you've integrated those skills you learned beyond the classroom setting can really help distinguish you among a group of applicants, many of which may be coming from your same bootcamp. For self learners, I'd say the need for multiple projects that can illustrate the skills you've learned are probably necessary.
Awesome advice man, I'm currently building the prototype for my first project which I've planned out the MVP and full product for. I'm hoping to display a wide range of skills with this one project before I start applying for jobs, but if that doesn't look impressive enough on my resume, I'll do another smaller frontend project. Your advice is super encouraging!
First and foremost, this is a great article.
I especially, 100% agree with this:
I went to college, in the early 2000s, and majored in computer engineering, which was mostly hardware focused. I actually got 90% of my useful experiences for writing code after college. I only refer back to a few classes, Discrete Math and Algorithms & Data Structures. With that said, college was a necessity for me because I come from an underrepresented background (black). I would have had an extremely difficult time getting into the industry without some sort of credentials at the time I entered the workforce in 2007. At that time, coding was not nearly as accessible, to someone like me, as it is now.
With that said a CS degree is only one of many signals that indicate whether or not an individual would be a great developer. It should not be exclusionary if you lack one and at the same time it can be useful to have one, but there should be much more that goes into the calculus for making an entry into coding. I thought the author did a great job highlighting those other signals.
This is excellent, and very true. You don't need a CS degree to know what you're doing!
I know as much as any BSCS student I've ever trained as an intern. I have amazing direct working relationships with the computer science departments at two local universities, so much so I was even invited by one CS professor to speak to his class.
And yet, I don't have a degree. I am self-taught, something that is known by everyone I've ever worked with. It simply doesn't matter. Most of the professionals I've worked with, including a few university CS professors, fully agree with what I've been teaching for years: You do NOT need a BSCS to work in this field! Unless you're aiming specifically for the academic branch of computer science, the degree is no better than dedicated self-learning and real world experience.
Thanks for writing this article...and please disregard the attacks you're sadly getting from some other posters. They're unwarranted.
As a fellow Psychology and Art History major that just recently graduated from a coding bootcamp, I love the way you articulate what seems like common sense to me. Having a more well-rounded skill set should be a plus for any employer! Keep killin' it Caitlyn πͺ
We need more diverse paradigms and experiences in tech right now, and I think you summed it up perfectly!
I think bigger employers are still trying to figure out where bootcamp grads fit in their organization, but I'm seeing smaller companies embrace them with more junior and associate positions. With tech embedded everywhere, you never know if your next employer could need help building something Psychology oriented, and suddenly you become a subject matter expert.
Not to diminish your accomplishments, but this is yet another "here is how my life's path led to success and therefore is the best way" article. Getting a CS degree, or any degree for that matter, does not mean you will be a good programmer. The same can be said for coding camps.
I've known hundreds of developers over my decades of working in tech, and few are this cookie-cutter person you describe. Almost all care intensely about creating good code, but all have outside interests that are not necessarily associated with tech--hiking, opera, everything under the sun.
Be careful painting groups with a broad brush. We are all individuals.
You may be missing that there are people who have received a "proper education". I'm guessing that means a formal bachelors and masters degree. They may be mid-career or changing careers and have decided to not take on additional debt by getting another degree. If they want to work on web apps, then that's awesome. It doesn't make you less than someone who studies AI or quantum computing. The point is that you don't have to have a CS degree to have a career in Tech. There is room for all of us.
I agree. To a degree.
I imagine beginning by obtaining a degree in CS is boring: it seems it has nothing to do with actual programming, especially for beginners.
However, I try to learn for quite some time some CS by myself (it's a very, very broad subject, so I try to learn it step by step, for fun mostly) and, since I develop for 20 years (10 years professionally), I can really see some benefits to learn about the abstraction layers we don't care about normally.
It helps to understand better our field and where it comes from. It's not a necessity (depending on your job) but it can teach you nice workflows and mindset how to write bullet proof code and how to tackle problems.
It's not magic and it's complex, but it's still very interesting.
Great article, but I think you're missing some fine points. Bootcamps are great for certain DevOps and WebDev jobs, but the growth of ML and Data Science require deeper and deeper Mathematical and algorithmic understanding and background, that no bootcamp can never cover.
In my opinion, after the thrive of web development over the past years, CS/Math/Physics/Engineering degree will become more and more of a requirement, as more and more of the work will be automated.
As a Portuguese and French bachelor, I totally agree with you.
I've felt plenty of times that if I wasn't there for my team to accomplish some communication tasks or to do some explanation (translation?) to users, it would be a total mess.
I agree, but I think CS Degree is very useful. though. College teach you how to be a programmer, experience teach you how to be developer. Sometimes when those meet later in life, amazing ideas are born.
I agree that a degree in and of itself is no guarantee of a person with a superior skillset for a coding position. I also strongly feel that a team can only be enriched by adding people with different views and experiences.
And sure, studying CS will probably put you far away from modern tech and languages.
However, this is the point - if you get a CS degree with a strong mathematical background you will know HOW and WHY the stuff you build works. You will grasp concepts, and in my opinion even more important, limitations.
The big O will give you intution on why your program might not be performing as it should. Decidability will stop you from banging your head against an unsolvable problem for days. Algorithmics will make you ask yourself if there is a better way.
Of course, you can learn all those things by yourself but that leads me to a point I already made here once - for me personally university is the lighthouse that points me in the right direction.
I personally came from a chef's school and went after a hotel management degree for two years before dropping out and decideing I wanted to pursue a career in CS. For a year I was feeling utterly lost flicking from the wast ocean of resources online, where everyone is boasting about how great their new tech is, before I enrolled in university again at age 22. Now sitting down to learn a new framework, library or even a language is much easier for me.
Of course, my example doesn't necessarily hold true for everyone - maybe someone can navigate the murky waters of tech on their own. ^
If you do decide to ditch the university way, the only thing I would advise is to never assume you know a tech until you take it apart down to the bolts. This might not show in an environment like web dev, but in an AI or embedded setting unexpected results and mistakes may arise if you lack a proper theoretical base.
Finally, I am well aware that the US makes switching or pursuing another degree quite hard due to the tution pricing. In Europe this isn't as much of a problem - for me it was quite easy to re-enroll as my government subsidies university studies.
Technically all four years are not intense CS study. You only have to take so many hours of that in your major. That's what, maybe 2 years. My bachelors is in information systems and I took 30 hours post bacc CS (with no CS degree).
Iheatu, you clearly seem to be upsetting yourself by reading and rereading this article (thanks for the traffic and comments that's generated! Great for my clickbait). I am sure it must be even more upsetting to have those comments "marked as low quality/non-constructive by the community". This article was meant to show support for those who chose a different path than you, and ultimately was not meant to be a place for you to exert your superiority. I can't stop you from doing so, but I am sure there are more productive ways you can spend your time.
The truth transcends people's feelings. You can feel that I'm not being nice, or I'm the nicest person, and sure, in retrospect I could have worded things better, but fact remains - people with a CS degree, in general, are better at CS than people without one. The same is true for absolutely any profession... Will you say an accountant that has formal accounting education is as good as someone who took a 3 day course and learned to use Quicken?! It's ridiculous. Sure, you can make up for the lack of formal education, but you can't make up for it in a fraction of the time. You have to do the time, and in CS specifically (probably other lines of business as well), if you do the time, you may as well get the degree.
Also, comparing fresh grads with bootcamp folk with experience is also bogus. Those fresh grads won't stay fresh for long. So compare fresh grads with fresh bootcamp folk, or experienced grads with experienced bootcamp folk, see what conclusion you come to.
And, I paid for my education, and I wouldn't change a thing.
Wonderful post. I'm 33, teacher for the past 10 years, now I'm finally taking the step to become a developer. I felt old, out of place. Thank you for sharing the experience.
You are DEFINITELY not old and out of place! Good luck on your journey :)
Thank you very much.
I've commented elsewhere here, but I realized something else relevant:
In my experience β and this has been confirmed by the university CS professors I've worked with! β a CS degree does not map to real world experience! Graduates must seek out real-world experience through internships or entry-level jobs before they can hope to be an asset to any team. This is because CS degrees teach theory, but very little in the way of practical application. College projects, even the much touted "group projects" and "final projects," barely manage a superficial resemblance to actual software development.
I've observed this with every single intern I've ever trained. Despite attending superb universities, maintaining high grades, and having all the right classes from excellent instructors, nothing could prepare them for a real project. They all spent the first couple of months with the "deer in the headlights" look about them. Despite their professors' warnings that the classroom doesn't map to reality, they were unprepared for just how different the real industry was.
To put that another way, without real world experience, a CS degree is just a very expensive piece of wall art. With real world experience, it can be helpful...but then, you can learn anything any university could ever teach you, on your own, from books, courses, and real-world experience. (Whether to get a CS degree should depend solely on your individual learning needs. It's a good option if you work best with guided learning.)
Guess what interviewers asked those internship graduates about? It wasn't the degree or the final projects for school (despite those being brought up)...it was the internship. The real-world industry experience was all that mattered in the end.
What does this mean? Assuming the same topics have been studied, the only difference between a BSCS and a self-trained/alt-trained programmer is a piece of paper. If the self-trained programmer has the experience, guess who's the bigger team asset? Guess who gets the job?
QED: a BSCS degree means literally nothing on its own vis-a-vis "equivalent experience".
I agree on that, that's actually what I did, dropped my university on the first semester and found my first job. I learn everything on the way and it was great experience.
Everything was good until I decided I want to move to Germany and that's where I need degree (governments still don't get it). It's great that we live in 2019 and I manage to find online university, but still I need to spend 3 years on that. And now I'm little angry on myself that I dropped the university back in days. :)
Having a CS degree for coding is akin to needing a writing degree to create content for a magazine. The underlying skill is pretty general and can be learned by anyone but the degree gives you highly technocal knowledge and experience that is hard to get anywhere else.
You can go really far as a developer without a degree. And indeed many practical and soft skills only learned on the job are almost more important. But the theory is still useful for certain applications, in particular those that require optimizations.
Me personally. I got a degree in physics. So I am confident I could learn all of the mathematical stuff. And I use a lot of math as a data scientist. Every now and then I crack open an algorithms book and I plan to go through all of RIT's (my alma matter) CS theory courses. I don't think this is necessary to further my career. But it will help.
Beautiful write-up, but I will say even bootcamps are not required. I quit my CS degree plan at 36, without even making it beyond college prerequisites. I knew what I wanted to do a decade ago. It is so simple to learn on your own with all that is online. I have been a developer for years and all I have is my GED. It is about passion and love for creating things that make people's lives easier.
Batteries not included, CS degree and boot camp not required.
Btw, coding is psychology...which anyone can learn that as well on their own.
So in other words, not having a CS degree, but having bootcamp on your resume, is awesome. Otherwise, your resume goes in the trash and you won't have a chance to tell the employer all these awesome things about your non-cs background. Especially if it's HR filtering these out.
Hi Caitlyn,
What a great article! And also... I've been in the same boat for a while (front end development, java, android studio?). I am now however leaning more towards Networking and Portland is definitely a place I want to end up working.
Would you say aside from software development, there is a good lookout for IT professionals in Portland?
Thanks again, very refreshing!
Love the article and I canβt agree more. Is college necessary? No. Is a degree worth having? Yes and no. I myself became a self taught developer and am very successful working from home freelancing. To me it boils down to why should I pay for free information? The internet has practically tons and tons of free information on Code.
I came here from twitter @ThunderfuryG so I had to read it :)
Happy to say I'll be interviewing Caitlyn for my website, nocsdegree.com, very soon!
hhahaha not be named that was super funny. Yes more and more companies are being more open about it. I'm suprised that Google and other big tech companies still asking for a degree
Not sure how it is in other countries but I'm currently studying CS/CE in Germany, and literally the only thing they don't teach you is how to code. They already expect you to be able to code and each class requires different programming languages, which you will have to pick up on your own or turn to the tutors for help or attend extra courses. Those extra hours won't get you extra credits since they are not part of the curriculum (instead more of a prerequisite)
What they do teach you is pretty diverse. Yes they do have classes on theoretical informatics talking about big o (kinda crucial if you'd like to optimize your code to run fast) or Turing Machines. But they also teach you stuff on internet protocols, signal transmission or even proper project management.
In addition you get selectives as well, which in my case is media technology. This is my gateway to psychology. I did experiments where subjects rate the quality of the given video stimuli and I do ANOVA on collected data. I'm reading books and papers on emotion as part of the affective computing course. I've stretched far beyond what people traditionally think CS should be.
This is why I don't think comparing bootcamp to a proper university degree is fair. Lots of undergrads don't go into software development because that's not what the degree is for anyways. Uni is not job training, it lets you tap into other fields and explore what you might be interested in, might it be CGI or encryption or Quantum computing. And if in the end you do decide on software development you come prepared as well. Not that you would have a bigger skill set than the others and know all the tools existed, but you are aware of what to expect of the industry, of the particular branch you chose, and you are able to quickly adapt and quickly acquire the needed skills all by yourself just as you did in the uni. At the very least you will know what a scrum master is since you literally had an exam about it. XD
Tldr: if you are interested in tech stuff but don't know exactly what, go uni. If you are absolutely certain about software development, then bootcamp is a great choice to achieve it in short amount of time.
I agree that CS degree is not necessary to perform most software development jobs out there (I myself have no degree and am doing just fine). That said, your trying to turn it into an advantage is completely misplaced. There are tons of CS graduates with great interpersonal skills or graphic design skills or what have you and I can guarantee you they're better at their job than you (or me for that matter) currently are.
Also, having been in the industry for a long time, I've studied some of the CS stuff on my own (mostly just basics TBH) and I can tell you it makes a great difference. It's the kind of knowledge that bootcamp doesn't give you. So to all the people without CS degree, don't just be content with learning how to program. Learn principles of computers, of operating systems, learn about automata and grammars, learn about algorithms and so on.
There are some valid points; but there are also several false equivalences here. For example: "Without a CS degree, you might not be able to explain Big O notation, but you might have great interpersonal skills."
Every person has unique skills and backgrounds. A CS degree is part of that. You are NEVER worse off for having learned something. There are many stereotypes that come with engineering and science degrees; many are 'true'. Most are not.
By no means should you let not having a degree prevent you from pursuing your goals. You can do a lot without one. Apply for jobs that you think might disqualify you because you don't have a degree; especially at smaller companies whom likely aren't using some bogus HR software to filter candidates. This is one case where recruiters come in handy as well (that is a different topic).
Don't view not having a (CS) degree as a road block -- but don't for a minute think that having one wouldn't give you advantages in your career. The time spent in college earning a degree comes with many of those life experiences that make everyone unique. Further do not sell short the networking potential that post secondary education has.
I feel the same with bootcamps. They have their own set of challenges and experiences. I do worry that some of them have become predatory and are good for not much else than taking money away from folks desperate for a change.
If I am looking at two otherwise equal candidates -- I am going to be inclined to go with the one that has the degree because it carries with it additional knowledge and experience. Having said that some of the best people I have worked with and had work for me did not have degrees (not just CS related ones). Good folks come from all walks.
I think there are some jobs that are meant for and heavily benefit from developers with degrees, and some jobs where the degree shouldn't be a requirement.
I hope the industry can diversify a bit, and start to have a separation between those types of positions rather than always asking for the degree. This involves a fair bit more nuance than most technology recruitment at the moment, but I hope the discussion continues and it evolves to that level.
We should identify a distinction between those with CS degrees and those without, not a conflict. This is the error these sorts of articles make, intentionally or not.
Someone with a CS degree will solve problems that someone without will never solve, and importantly, will never be asked to solve. There is nothing wrong with recognizing that a PHD isn't a meaningless piece of paper and acknowledging that those without a degree can do (and have done) very valuable work in the field. The distinction is between classes of problems, and the skills needed to solve those problems. The conflict happens when we mark one set as "hard" (read: important or useful) and the others as not important or not useful. That's an unnecessarily hostile position which, unfortunately, many of the comments demonstrate.
There is a commoditization of engineering happening, as happens in all mature industries, and there is a real need for narrow, deep knowledge, which is often very well paid -- it's useful and valuable work. That is maybe hard for some to accept.
"Not having a CS degree is awesome"... "A CS degree is useless/overpriced/not worth it"... "I didnt need a CS degree neither do you"... "I knew this CS grad that couldnt code."
I'm sorry but I find notions like this come off as slightly arrogant and ungracious.
Indeed, the demand for software developers is so high today that many companies are happy to employ anyone that can demonstrate an aptitude for writing code, and that is a great thing by itself. Our field is a magnanimous one for anyone with the right attitude and mindset and willing to put in the effort.
However it is very wrong to disparage the value of the Computer Science degree. The industry a it is today was built over several decades by formally trained Computer Scientists, Engineers and Technologists (in collaboration with other non CS professionals, of course). They built the programming languages, operating systems, frameworks, algorithms, databases, networks, devices etc that you use today so easily that you have the confidence to think that knowledge is nownsuperfluous. They continue to do so to this day.
I have worked with many people that have CS degrees who create far more problems in code and bug reports than positive productivity. Same in business & sales with people that have degrees yet can't spell, terrible grammar & communication skills and can't complete basic tasks, follow instructions or learn new things. It's a pandemic in all areas not just CS & s/w development; yet these folks manage to fool employers or are willing to take pay cuts to keep their job (or get one in the 1st place) at some sweat shop or poorly managed company.
Flip side, I've seen amazing work from people with CS degrees and those without a degree. The key difference is those with CS degrees tend to write code that are easier for the rest of the humans on the team to read, understand and debug.
There's always exceptions to the rule. It's certainly to the detriment of employers to adhere to strict hard rules for new hire entry requirements. Most of which comes down to employers that 1) have a large pool of resumes to pick from, so they can afford to be more selective, or 2) have very little clue on how to hire, mentor, train and fire staff or 3) a bit of both 1 & 2.
Oh gosh, I love to continue reading the comments if they were billions of them. This is an amazing article thank you Caitlyn. In the meantime I am currently 1st year university student, studying Cs degree in major and the reason I found this article was because I needed some advice about my career on which way to choose either continue learning cs degree or boot camps.
But when I found this article and read it through plus the comments. I am somehow inspired and encouraged and at the same time bit confused. but anyway I am thankful for you guys to discuss and argue about it cuz, this is about a future career topic. And yes, everyone does have his own opinion and sets of goals.
To me, how I see this article is that boot camps are better and less time consuming than cs degree and that is true which yet I haven't experienced. and the reason I read this article was to get some opinions from those who are more experience than me but not to give some negative (unnecessary) thoughts. I have seen people who took degree and become successful in their field and at the same time I have seen people who didnβt take collage/university degree and yet become successful, so we have both choices but it is depend on our commitment not the material.
Lastly, What I am saying is keep doing what you love to do and keep improving yourselves.
I am a drop out. Couldn't stand listening to teachers that for most were not anchored in reality.
Left that behind me in 1980 something. Much more exciting that sitting on a chair being fed
Kool-Aid. Worked for a major computer manufacturer at the time, 2nd to IBM, learned much more
than waiting to get a degree and most importantly, by far not boring a minute.
π¬
I'm currently getting my CS degree, but that's because I'm young and this fits my life goals right now. But you definitely doesn't require one to be a good developer. However, I strongly encourage people to study some fundamental computer science topics. To have the knowledge rather than the degree, it's actually more important, and it can be done by your own. Having this knowledge makes significant difference while developing. I'm a completely different programmer today after these topics, but you do can study them outside a CS degree. Strongly recommend that.
I'm the best at AWS, but it doesn't matter because I don't have a CS degree.
Everytime a job application has "CS DEGREE" as requirement a good dev reading it sheds a tear.
I don't have either degree in CS. See my journey: mydev-journey.blogspot.com/2019/11...
I'm doing my bachelors in CS but studying lot of subjects that are irrelevant to my field and that is killing my time and energy. We need to get rid of this attitude that degree is everything π―
βAs an employer, you know the strongest teams are the most diverse teams.β 100% agree, having different mindsets in the team is critical! Thanks for sharing your story
This is me right now, I graduated as a Telecommunication Engineer. Then I joined a bootcamp 4 months ago and still learning new things and skills needed to survive
Totally agree!
I fully support your statement. People would be surprised how useful is to have some other realm of skills when actually developing. Thanks for supporting non CS degree ENGINEERS π.
Physics degree, master's in computational modelling, successful tech career. I'd guess physics is a pretty common non-CS way of becoming a programmer.