I've come across a lot of discussion lately about the best path to becoming a developer. Unfortunately, often this is focused on disparaging one pa...
For further actions, you may consider blocking this person and/or reporting abuse
This may sounds a little controversial, since I worked at big companies and small startups:
For big tech companies that everyone wants get into:
If you have a degree from a top Computer Science college, you'll most likely move to the front of the line for job interviews (or even get pampered internships from top schools before you even graduate.) These big companies have dedicated on campus recruiting teams at these big colleges that throw parties, host events "free pizza", identify you probably as soon as you chose your major, collect data on you and recruit you. That is why Google and Facebook engineers are dominated engineers from top colleges.
Nowadays, at big companies, they will hire bootcamp graduates, but they will be on a different career track almost immediately. Some big companies have "apprentice" programs. But the expectations will be very different.
Self taught, usually you have some project or open source project that have some traction, then you would stand out to big companies. It is only ver recently many of the big companies removed college degree as a requirement.
For smaller companies:
Although any one can be a developer if you can develop a product!!! Practice and practice.
My experiences and observations generally align with your. Most big companies, even if they've removed the requirement for a CS degree, still heavily favor them. In my own career, I've encountered positions that I could not be considered for even though I have a degree, just because my major was not computer science.
I think this is where your motivation really matters. If your goal is to work at a major company as a developer, then the safest path is probably still the CS degree. That being said, I know plenty of people who did make it into major companies (myself included, having worked for Adobe) despite the lack of a CS degree, but this required years work and experience that compensated for the lack of a CS degree.
Just to be up front moved from a CompSci+Eng to just a Eng degree. I've been writing software almost 20 years and have played a part in hiring for 10+ years of that. I've worked in startups (usually leaving when they hit ~50ppl) and various other companies of 10-150ppl. In all these jobs we integrated with large multi-nats so I've experienced that, too. I grew up and got my degree in Australia and have worked in the US a while.
I got a degree in essentially physical engineering. Electronics, power electronics, semi fab, ASICs, control software, etc. I trained myself in writing code to write an online store for my employer at the time. I took a full time software job with one of the companies we supplied at the time once they found out I had created the store. It was after the first bubble so tech jobs were really difficult to find.
My first job was with a crew of self-taught developers - I found so many SQL bugs because they'd learned SQL but didn't really understand it.
Since then I've gotten every job I've had via word of mouth. After your first job it really doesn't matter what your qualifications are if you are networked and represent yourself well and do good work.
If you want an international career you will need to get a degree from a decent school unless you get a decade of experience and find a willing employer. It is possible to circumvent this but a degree makes things easier.
Outside of this one of the best developers I worked with did a semester of a biology degree and then taught themselves. The worst developer I ever worked with also was self taught.
You sort of hit on the main differential I've see between someone with a degree through to self-taught and that is breadth of knowledge. Depending on the quality of the school you'll generally get a wider knowledge than someone who teaches themselves and absolutely more than any bootcamp. You might not have used those skills enough to be practical but when a problem arises you are more likely to be able to find an existing pattern/algorithm or practice. You're also more likely to be able to differentiate between solutions as the problem sets get more complex.
I see bootcamps only as accelerated self teaching. They get you more quickly to the point where you can teach yourself but do not seem to give nearly a broad enough understanding of software development, computer science or anything else to be useful without further learning. College suffers the opposite problem in that they teach you a broad range of knowledge without necessarily seeing how to use it in the real world.
What I would say is that if you have a college CS grad they might have some lackluster skills but you typically have a large amount of shared understanding. With a bootcamp or self-taught person you quite often get hit with surprise gaps in their knowledge.
If a company has the resources to really hand-hold new recruits then I don't care about schooling as much as their demonstrable skills, ability to learn and their motivation. If the company has limited resources to train new developers then typically college graduates are easier because there is a shared understanding of knowledge.
From my experience, developers that have a degree turn out to be either really good developers(developing is their true passion) or really bad developers(meaning they started developing because it pays high - not for passion). I'm 100% self taught and I haven't had a hard time finding good paying jobs. In fact, I often make more than my college degree holding peers simply because developing IS MY PASSION. I started using Linux, terminal, upgrading/fixing computers etc., by my early teens. I did attend college for one semester but I quickly got discouraged when my computer science teacher didn't know what "pointers" were. Pointers being a common feature in most languages that is derived from the c language.
You are right!
I was basically love the computer. Did not decided. Got first computer since 2007.
At that time I was a teacher of Desktop publishing software like Photoshop, illustrator, page maker, corel-draw etc. It was my Bachelor's of commerce part time jobs. I was good at photoshop so I have decided to think on animation courses for being a animator. But when coming to metro city of Kolkata in India that time 3d animation production houses were not there.
So I moved to web designing course and convert myself as a Graphic and html designer. :)
Now I am experienced 8 years of experience in this IT field as a Senior Fullstack developer.
I am telling my story that I have few friends who has MCA degree but getting salary less what I take. And even they are not a passionate developers who fixes issues. They just completes their degree for jobs.
I was passionate with computer and I have even done computer chip level courses and mobile chip level and can repaire computers and phones. Do you imagine it's just for knowledge, I did this courses. I did not do it for job. I just want to know how these things works. And it helped me.
Interesting post and interesting responses. Having been at the same company for many years and not been involved in the job hunt scene for quite some time, I often wonder what it's like out there and just how much these things matter.
My own route was a mix: Self taught as a teenager and that naturally transitioned into college once I started post-secondary. However, I only did a 2 year diploma program, not a 4 year degree, something that I sometimes regret on a level of "It would be nice to have a little more education/and also be nice to be able to say I have a degree" however it hasn't held me back career-wise at all so far (knock on wood!) I did get some of that knowledge breadth in college but I can't help but wonder how much MORE breadth I might have if I had done a few more years.
That said, everyone in my program at college seemed to wash out and end up moving on to a non-dev career unless they were also self-taught to some degree. I don't feel like college was the place to actually learn how to become a practical developer, it was more a place to teach theory, history, best practices, and nurture people who were already doing a lot of this stuff on their own time. It feels like this is an industry that you need to either do a lot of learning on your own time, or else have some kind of apprenticeship or articling approach, in which you take courses but are also required to learn on the job with mentors, maybe similar to how the CPA program works.
I have worked with some really sharp devs in the past who had no formal education and left me totally in awe of how talented they are, so there's definitely many ways to excel in this industry, which is pretty special. It feels like so many industries have hard requirements in terms of education so it's great to work in a field where there IS that flexibility.
I feel like CS is more focused on the things surrounding code like project management, design patterns, documentation & programming concepts where as boot camps (& self thought) are more focused on just coding and not the surrounding concepts around programming which are required for large scale applications. Correct me if I'm wrong.
I have done neither a CS degree nor a bootcamp, but based on what I've seen, it seems that CS programs try to teach many of the broader concepts of programming that, while taught with a specific language (sometimes a bit outdated), apply across most application development regardless of language.
Bootcamps seem much more task-oriented. You are building a project using specific languages/technologies to learn how to use those technologies. It seems less about the overarching programming concepts since the end goal is to become a developer in those specific languages, though many students may grasp that on their own.
Great article as always Brian. When it comes to Bootcamps I would suggest you do your research on the Bootcamp you're interested in. A lot of them will boast about numbers but don't actually report to anyone to verify them. At Tech Elevator we have a graduation rate of 93% and of those graduates a 91% placement rate. Not all Bootcamps are created equal but if you can find a good I really believe in them (us).
There's a 4th and HUGE option... attend a Career Tech/VoTech High School that offers Software Dev(or some variation) as a career pathway.
Thank you, I was going to mention this. I currently attend a Technical College and they give you hands on coding experience, and not only that, they usually often talk with employers to see what they would like you to know and tailor the programs around that. Also, they cost a fraction of what Universities cost and a full time student is done in 2 years. For working people they offer night classes and certificates (1 year). In addition, they help you with job placement like the Universities.
Great to hear. I had not considered that option. It'd be great if you or @mj Lokes posted about your experiences. I have never encountered anyone who got into the career this way or heard much about the programs and I suspect I am not alone, so it'd be great to hear from folks who have been through it to make people more aware of the option.
Yes! I was looking for this. I took an 11-month Web Development program. This included a web development certification. Our teacher helped us build up our portfolio with plenty of real-world projects for charity/non-profits (which is more important than the certificate, imo), and she networked within the community to find jobs for her students. I worked as a waitress during this time, and I was able to complete the program with no debt and a career in the field.
I consider myself a self-taught developer, I started when I was 14 years old, the idea of being able to control the computer through commands seemed very promising to me, I made some small tools to solve my math homework, I quit studies after I got my high school diploma, landed my first full time job as a developer a year later, I needed to invest in an online certificate to show my capabilities, I chose w3schools, that was around $100, I worked for a year, then I quit, I'm now attending an in-person entrepreneurship bootcamp, to start my own business, but that's a different story.
I am mostly self taught. I went to school for a "Multimedia Development" diploma which taught me very little programming. I have taught myself all that I know about development through either youtube tutorials, side projects or at work. I have been in the industry for around 13 years now.
I have worked at small startups (2 - 3 people) and at larger companies (200+ people) and have helped hire at both. In my hiring I have never taken a CS/Bootcamp degree into consideration. To me schooling does not make a good developer.. What makes a good developer is someone who is humble, interested in tech and interested in learning. I tend to find a lot of (not all) student who come out of a CS program lack these and are more interested in the industry because of the pay.
My advice to people looking to get into the industry is always to network. Find people in the industry and connect with them. Whether that is through meetups, LinkedIn, Twitter, whatever. The more connections you have, the better off you are.