With technology burgeoning and career prospects becoming increasingly lucrative (~$60-120k+ starting salaries), many have asked me how they can begin programming and switch careers. What’s great is you can start coding right away on your 5 year old laptop for free – one of the lowest barriers of entry as far as careers go.
Before you begin
What stage of life are you at and how long do you want to be in a transition period for – Graduated from college? No degree? Well into another career path? High school student?
What are your career goals – there are many ways to break down programming jobs but note the lines are quite blurry between classifications and any goal can be achieved with enough determination.
Front End – The user interaction (UI) layer between the end user/client and all the systems powering it. Websites, apps and applications all have front-end components.
Back-End – Powers the front-end handling data storage (databases), serving the front-end (servers), etc.
Infrastructure – The tooling used by the back-end. Programming the actual machines that power the layers above it.
The order of the list from top to bottom is in difficulty and depth of computer science knowledge typically needed. Web/App Development are in high demand right now but are also on the low end of technical depth and salaries. The largest CS growth opportunities can be found in building the infrastructure for big data and machine learning – both require much deeper technical depth and accordingly come with higher salaries.
How much do you already know – What is terminal? Code academy ninja? Built a couple sites?
Every path you take will require some amount of self study. In computer science, you’ll never learn if you never try. Especially in your learning period, all your spare time should be focused on actually writing code, whether it’s a website, server or just a program, it is impossible to learn to code simply by reading a textbook.
It is possible to change careers into tech with no formal training. It will require significant effort and determination but I’ve seen many people working at top-tier tech companies with no formal training in the subject and some without any degrees. Your goals will determine how much experience/material and what to study. It can take just a few weeks to learn the basics of programming and begin to code your own websites and apps. Months to years will be required if you want to learn how to build the back end and systems that actually powers your websites/apps.
The crux of programming is algorithms and data structures. Most job interview questions will be based on knowledge directly from those two topics – master them and you’ll be working as a programmer in no time.
How do you study how to program? There are no shortcuts, to learn how to code, start coding something, anything. A combination of trying tons of tutorials, reading documentation, Googling at the slightest uncertainty and actually coding is how you ‘study’. Here are some resources to get started:
CodeAcademy is typically the first taste of programming many beginners try. It’s a great resource and lately they’ve begun to expand their offering.
Coursera / Udacity are great resources to take classes online without having to enroll in any degree programs. It’s great for people that like the structure of a traditional class.
BentoBox helps you find tutorials based on a goal when you want to build you own projects (which you absolutely should be doing).
Project Euler / Codility / Excercism feature puzzles and mini-assignments to develop the intuition and skills that will make you a better programmer. Euler exercises are more math heavy while Codility exercises are more well-rounded.
Hacker News is a reddit-style site to keep up with the latest industry news and technologies – oh, and my fingers fidget if I haven’t visited this site in the last hour.
Find a mentor. A mentor can help guide you when you get stuck and answer the myriad of questions you’ll undoubtedly have starting a new career.
This is the best option if it’s still viable for you. Getting a degree in Computer Science is the path most people will take. Even if you’re in you’re in your 3/4th year of college switching majors and pursuing Computer Science is very very possible. Computer Science typically has one of the least unit requirements out of the major subjects. It’s important to note that schooling on its own is never enough. You must be pursuing and actively building side projects. School will teach you the rules of the game but experience will teach you how to play. Many undergrads make the mistake of not coding their own projects outside of the ones assigned in class – only when they apply for a job do they realize how big of a mistake that is.
I’ve seen many people (and have myself) graduated with a CS degree in less than the 4 years typically allocated for undergraduate study. Depending on your interests and how deep of technical knowledge you want to acquire, your program length and outcomes will vary.
Graduate school is a must for those interested in doing deeply technical programming and Computer Science work. Understanding the fundamentals of how a computers, compilers, programming languages, machine learning, etc work require deeper study and allows you to do much more interesting work. If you want to build the next generation of software rather than simply using it, graduate school is the way to go.
Note that even if you do not have a Computer Science related undergrad degree, it is still possible to go to graduate school in it. Most programs will have some requirements in terms of basic computer science classes taken so do your research before hand.
The latest trend in programmer education is bootcamps. These are typically 3-4 months in length and promise to teach you the basics of programming and how to build websites/apps. Bootcamps are a great option if you’re already in a career and want to switch but don’t have the time/motivation to do a second Bachelors or want a more structured approach than self study. While bootcamps can teach you how to code right away, it’s important to note they do not delve into the deeper technical concepts required for some positions. Some bootcamps will also require minimal coding experience prior to applying.
Bootcamps vary in price anywhere from free to ~$15k. The investment is usually quite good because many camps also help their students get jobs out the door – some even claiming over 95% placement rates. This is one of the quickest ways to get into a programming profession and I highly recommend it if a degree is not a viable option for you. MakerSquare has a good cost/time comparison between their program and a few other well-known programs to give you a better idea of what investment these programs require. BootCamper has a great list of bootcamp schools with data on price, class size, material taught and more. Bootcamps vary in terms of material taught and quality – talk to a mentor and someone who’s gone through the program before deciding.
Have a question? Leave a comment.