The heart of tech is coming to the heart of the Mediterranean. Join TNW in València this March 🇪🇸

This article was published on April 23, 2016

Why half of developers don’t have a computer science degree

Why half of developers don’t have a computer science degree Image by: Kotoffei
TNW Deals
Story by

TNW Deals

Hot deals courtesy of The Next Web. Hot deals courtesy of The Next Web.

Last year, Stack Overflow, a question and answer site for programmers, asked its user if they had a degree in Computer Science (CS).

The results of the 2015 Developer Survey were startling. Nearly half of the 26,086 developers who responded didn’t have a computer science degree.

Does this mean you can be a programmer without a college degree? Simply put, yes. But the non-traditional road towards the world of programming is obviously a tougher one than if you had a CS degree.

John Reed, the executive senior director of staffing agency Robert Half Technology, said that many well-established tech companies use college education as an initial criterium to weed out candidates.

Google, for example, will not interview any entry engineering position candidates that don’t have a CS degree.

If that’s the case, why do plenty of people have no college degree? One major external factor is the exorbitant college fees.

In the US for instance, the cheapest option is the public two-year college which costs on average $11,438/year and the most expensive choice, the private nonprofit four-year colleges cost about $43,921/year, all excluding living expenses.

There are other factors, too. One is the explosion of shorter term online courses or boot camps that allow you to put the teachings into practice without having to wait years to graduate.

So if you decide on taking the non traditional route to programming, here are a few tips for you.

1. Don’t work in solitude

Find a place where you can work together with other programmers, regardless of whether you are working on the same project.

The worst challenge you can have while writing code alone is you have no clue about what you don’t know. That’s until you see what’s wrong with your code by comparing it with others’.

A study by Barry Boehm of the Institute of Electrical and Electronics Engineers suggested that reviewing code with other people whether or not pair programming (a technique where two programmers work at one workstation) is executed, can discover up to 60 percent of bugs than compared to working alone.

Co-working spaces may provide you with this type of benefit, where you can work together with like-minded people. You can use this coworking space directory to find one in your local area.

Credit: Pawel Pierzchala/Github

2. Strong relationships are more important than good programming

Another positive consequence of not working in solitude is the possibility to build relationships early on in your career that could pay dividends later.

When you build a strong relationship with fellow programmers, they will help you benchmark your skills against your peers and improve your programming skills over time.

3. Catch up on what you would have missed from not taking CS

Greg Neustaetter, the senior director of products at Egnyte, a cloud file sharing company admitted that “there were big gaps of knowledge in terms of things that he would’ve had if he had gone through a CS background.

The rule of thumb for reading is that if you master the fundamental knowledge of six or eight books, you will be a solid developer.

Some of the recommended books range from discrete maths with applications, design patterns or J2EE design patterns, to algorithm design.

For online courses or boot camps, it is recommended that you take the one that has a bottom-up approach, unless you have a certain amount of prior programming experience or natural affinity with technology.

As opposed to the top-down approach which educates learners by “throwing them in the middle of an application or a framework and encourages them to put the pieces of knowledge back together”, the bottom-up approach “starts with the basics and slowly builds the knowledge over time.

The bottom-up approach is recommended for beginners because it minimizes the amount of unclear concepts that learners usually take for granted using the top-down approach.

One of these unclear concepts, for instance, is from the book on Ruby on Rails. It begins its first chapter with the concept of Model-View-Controller design and explains nothing about what makes it up e.g. Object-Oriented Programming.

Credit: Amazing Gifs (via Giphy)

4. Keep on building stuff

Degree or no, having outside projects that you can show is not only important for future career placement, but also an effective way to learn while getting more experience.

This holds even more importance if you don’t plan to take a CS degree since these projects will be your main portfolio that showcases your skills.One good way of starting your own project is by creating mobile apps. This is because you can easily present your product to the end users and in return, receive feedback directly from users.

If you think of making your first mobile apps, we suggest you learn Swift or Objective C for iOS, Java for Android, and C#, Visual Basic or Javascript for Windows Phone.

Another alternative is to make use of technologies such as Phonegap and Titanium to create an app that can run on all three major platforms. These technologies allow you to write using HTML, CSS and Javascript, and run your app native everywhere.

You can also contribute to open source projects via the trending repositories on Github. Or for the sake of solely getting more knowledge, build something for your own use.

5. Have a side job in tech

It goes without saying that building your own program for the first time won’t pay your bills. Even if you had a $20,000 app idea, you can’t ask for that price because you don’t have enough credibility.

In other words, you need to have a side job where you can cover your bills, preferably one that can also improve your programming skills.

Depending on how advanced your programming skills are, you can always go for startups, working in Quality Assurance (QA), or freelancing.

Startups in general are more willing to take risks and hire someone with little or no practical experience. However, there’s a boundary to what they consider a “good enough” programmer.

While you don’t have to build something solid with maintainable code, you need to at least prove that you can build something that works. For instance, try to make a mockup of a feature that your potential startup has.

If you can’t do it, working in QA will help you improve your technical skills.

Work in QA entails identifying issues in a product and suggesting changes and fixes, which is also a core foundation of problem solving (decomposing problems and systematic debug) in programming.

Good thing about working in QA is as long as you are confident in your technical skills, a formal college degree is hardly a necessity.

The last option is freelancing in just about anything, as long as it can cover your bills. A website like Upwork for example, lists a variety of tech-related jobs ranging from Web and mobile development to design and marketing.

apply for a tech job
Credit: Randy Glasbergen

Interested in taking an online course with a bottom-up approach?

On TNW Deals, we have a 89 percent off complete computer science bundle.

With only $39, you will be taught several foundations in computer science from data structures and algorithms in Java, heavy lifting in SQL and databases, to a more practical knowledge such as using Raspberry Pi for your home project and how it fits the emerging trend of Internet of Things.