Can Anyone Learn to Code?

So this learn to code movement is becoming a pretty big deal. It's not hard to find a billboard or job advertisement that is look for a developer. In fact even President Obama gave a plug on coding:

So the question stands, Can anyone learn to code?

The answer is a resounding YES. Let's talk about why.

Coding in the last 8 years

When I first started learning to program in 2007 all of my peers were computer science graduates. I remember constantly feeling inadequate being a self taught programmer. To make things worse, when I started doing it professionally my programmer peers were quite unkind and felt that I should not have been amongst their ranks and were vocal about that.

So what is Computer Science? Well historically, and currently many 4 year universities offer a Bachelor of Science degree in Computer Science.

Michigan Technological University says:

Computer science is a discipline that spans theory and practice. It requires thinking both in abstract terms and in concrete terms. The practical side of computing can be seen everywhere. Nowadays, practically everyone is a computer user, and many people are even computer programmers. Getting computers to do what you want them to do requires intensive hands-on experience. But computer science can be seen on a higher level, as a science of problem solving. Computer scientists must be adept at modeling and analyzing problems. They must also be able to design solutions and verify that they are correct. Problem solving requires precision, creativity, and careful reasoning.

I think the key points of Computer Science is theory and abstract terms and in concrete terms.

There are many programmers who believe a CS degree is the only way to be a true programmer. Individuals have told me so!

In 2007 it seemed as though every coder I worked with was a graduate of a CS program. A lot has changed since then.

Today's Coders

The coders of 2015 have much greater diversity than ever before. I will not speak against Computer Science degrees. I will rather talk about what the possibilities of today are.

I work regularly with recruiters and hiring managers of tech companies. Here are some of the things that you can be without a degree in computer science:

  • Front-end web developer
    • Focuses on Javascript, design, HTML, CSS, Angular, API Requests
  • Back-end web developer
    • Builds API's on servers
  • Android Developer
  • iOS Developer
  • Contractor (People pay you to build stuff)

Here are some jobs that typically require a CS degree:

  • Big data developer
  • Database Administrator
  • Graphics Programmer
  • Senior Full-Stack Developer
  • Technical Leads
  • .NET Programmer
  • Java Enterprise
  • CTO's

Where do I learn to code?

Currently there are 3 majors ways to learn to code:

  1. Learn on your own
  2. Attend a coding bootcamp or online course
  3. Earn a degree in Computer Science

Learning on your own is the cheapest option, but sometimes you are left without support.

Computer science degrees are $70,000+, take 4 years to earn, and don't necessarily guarantee you a job when you graduate (because you don't usually learn practical skills while in school).

Coding bootcamps and online courses kind of bridge the gap between a CS degree. Get help and a guided path without paying for a 4 year degree.

When can I get paid to code?

If you don't earn a CS degree you might wonder *"When can I get paid to code?". Well that all depends on the skills you obtain. I know individuals who have started working professionally as a developer after just 3-6 months of coding.

It also depends on what an employer is looking for. This is probably the most important deciding factor.

One of my students was not amazing at Javascript/algorithms, but had a keen eye for design and was a good salesman. The company was a consulting company and needed someone who could talk to clients and code, so he was picked over the more advanced programmer.

Some jobs need an advanced programmer who is great with algorithms and data structures (which you learn very well in a CS degree). Other jobs don't. In fact there are many companies and startups who just need someone to code, at any experience level.

In the end employers and clients care more about results than anything else.

My suggestion to you

So if you are considering to learn how to code on your own this is what I suggest:

  1. Plot a path of learning around a technology that you want to learn (ie iOS development vs Web Development)
  2. Get a book or take an online course like this one
  3. Build a resume
  4. Build up your LinkedIn profile and network
  5. Spend at least 2-3 hours a day coding
  6. After about 6 months (or when you feel ready) start applying for jobs (this takes practice!)

The reason I've laid out these simple steps is because I've seen many students follow this exact path and get jobs in the industry within 6 months.

So in the end, no matter what anyone tells you (including all the trolls on Reddit), the reality is anyone can learn to code and you do not need a Computer Science degree to get a job as a programmer.