A common question I have come across in coding communities is "How Do I Get Started Coding? ". After having many conversations about the different paths you can take to get started coding or leveling up. I thought it would be great to write a post containing a lot of what I have discussed in the past with my Twitch community.
This is a judgment-free zone. So check your opinions about boot camp schools and 4-year colleges at the door, everyone learns different ways and has various opportunities to learn. I will attempt to list the pros and cons of each path you can take. Also, some advice for each path of learning. This won't be an exhaustive list of Pros or Cons, but I hope for you to come away better informed.
So let's get started.
Self-Learning
In my opinion, self-learning is the first path you should try to take when you're curious about learning to code. You could try to pick up a book or try taking an online course/tutorial to see what programming is like if you're not 100% familiar with it. This will also give you a chance to see if you like coding also.
The self-learning path is the cheapest option since you're in control of how much you want to pay for your education. You can watch and read free guides and tutorials. You can then purchase a subscription to a learning service of your choice.
Self-learning is also one of the most challenging paths to take because you're going at it alone. You have to hold your self accountable, find learning resources, and find people to help you out when you're confused or stuck.
Pros
- Cheapest approach. You can start learning for free with online resources and pay for learning resources you when you feel it's needed
- Go at your own pace
- Learn anything you want
- Builds discipline to go and learn on your own which is a valuable resource in the workplace
Cons
- It will be overwhelming. Lots of resources/languages/technology that you can start learning, which could make it hard for you to decide what to learn first.
- You need to keep yourself motivated. You can get demotivated quickly when coming across issues or things you don't understand.
- You might accidentally misunderstand concepts or misuse them, use inadequate learning resources, or use bad coding practices.
- Can take a long time depending on your personal pace of learning
- Can become difficult to figure what you want to build
- Difficult finding peers/mentors to learn from or share experiences with
- Can be difficult landing your first coding job because you have more to prove
Advice
- Take a look at learning resources at the end of the article
- Earn certifications if the tools or services companies are using
- Following blogs, respected people in tech, blogs, tech retweet accounts on twitter
- Make a schedule, stick to it. Learning at your own pace is good, but you need to be consistent
- Making a portfolio of code examples and projects you built while learning. Even if its dumb code it still codes you wrote and it might be interesting
- Try contributing to open source projects
- Learn to use Git
- Go to tech meetups and build relationships
Vocational Schools / Adult Schools / Community College
Going to a community college or similar, I believe, is the next step up from self-learning. I think most people don't realize that you can take a coding class at one of these types of schools in your area. They are usually affordable and gives you a chance to learn in a more structured environment. You are going back to school, YUCK, but it can guide you on the path to a certification or an associated degree.
One beautiful thing about taking classes at a community college is that if you find coding isn't for you, you didn't waste a ton of meeting finding out.
I actually started my education at a community college. I was able to take advantage of a program that allowed me to take my first 2 years of course work at the community college and then transfer to a 4-year college. There I continued my course work towards earning a bachelor's degree. Check if your community college as such a program if its an option for you. It saved a lot of money for me.
Pros
- An affordable way to learn
- You might qualify for financial aide
- Learning to code from instructors and follow a curriculum to remove the guesswork of "Where do I start?"
- Can keep you motivated since you have assignments/projects/grades to keep up with
- You have instructors to talk to when you don't understand something
- Opportunity to work with others and make connections with classmates depending on the class
- You can work towards obtaining a certification or an associates degree
- There are usually financial aid opportunities
- Take advantage of career services and counseling
Cons
- You might have to take additional classes in other to meet the prerequisites to take the coding classes you want to take
- Can take up to 2+ years to obtain an associates degree
- The curriculum can be outdated compared to what companies are looking for
- It can be challenging to work around your work schedule since classes are offered at specific times of day that won't work for you
- Might have to pay for additional learning resource like textbooks
Advice
- At least take one programming class if you having a hard time self-learning
- Take a look at learning resources at the end of the article
- Try contributing to open source projects
- Go to tech meetups and build relationships
Coding Boot Camps
Coding Boot Camps are a high speed, cram you full of knowledge, learning environment. Typically they can range from 10-20weeks depending on the boot camp you choose. Just like the name, they are a boot camp for training you to be a programmer. Giving you just enough of the essentials to become a very junior programmer.
They aren't cheap either, they can start at around $10k. If you do a full-time program, you will have to be in class from 9am-5pm, like a full-time job. Unless you take a part-time program, those usually have classes in the evening.
In exchange for attending a boot camp, you will learn all the basics of starting a career as a coder. But let me make this clear, you only learn the basics. You will need to invest extra time outside of class experimenting and learning.
A word of warning, boot camp schools is a fast-paced learning environment. You will not have the opportunity to absorb everything you learned, so investing time outside of class to experiment with what you have learned will guarantee success.
When choosing a boot camp school, you should select one that either has internships or direct job placement. No "we offer careers services" stuff, you will need on the job experience with you want to be a cut above the rest when applying for jobs.
Pros
- Rigid learning track
- You will learn industry standards. Starting from the basics to being able to build and deploy a web app to the web
- You will have instructors to learn from
- Can keep you motivated since you have assignments/projects/grades to keep up
- Can potentially work with other classmates depending on projects
- Fast-paced learning
Cons
- Expensive $10-$20k
- Full-time boot camps could force you to quit your jobs or only work night shifts and/or weekends
- It can still be challenging to find a job since the boot camp with only teach you the basics
- Most boot camp schools are not accredited, so financial aid is not an option. So you will have to take out a private loan or dip into savings.
- It can be extremely overwhelming and easy to fall behind. You will have to spend up to 60-80 hours a week in class and outside of class, working on your assignments, projects, and studying.
Advice
- Take a look at learning resources at the end of the article
- Find boot camp schools with job guarantees, internships, pay share programs, or partnerships with companies
- Even though a boot camp school has "career services" for their graduates, that means nothing if they have no direct obligations to find you a job
- Continue to learn and practice what you learned by making side projects
- Try contributing to open source projects
- Go to tech meetups and build relationships
College(Bachelors degree)
This is the most traditional and familiar approach you can take, and it isn't cheap at all. I don't think there is much I can see about taking the college path other than some general stuff.
If at all possible, get an internship or get a Teach Assistant (TA) position during your time in school. This will look great on your resume and give you lots of useful experience. And make sure to make friends because those people will be great resources for networking on connections in your future coding career.
Pros
- Rigid learning track
- You will learn all about programming languages, theory, algorithms, data structures
- Plenty of different classes to take
- You will have instructors to learn from along with TAs
- It can keep you motivated since you have assignments/projects/grades to keep up
- Learn from fellow classmates and build relationships through suffering together
- Bachelor's degree easiest way to get your foot in the door for interviews and jobs. The easiest way to land internships and entry-level positions.
- You can get financial aide
Cons
- Very expensive
- Time-consuming, minimum of 4 years in school, upwards to 5-6 years
- Education could be out of touch with some industry standards so you will have to play catch up or learn them independently
Advice
- Go to office hours for your classes and just ask questions
- Take a look at learning resources at the end of the article
- Continue to learn and practice what you learned by making side projects
- Try contributing to open source projects
- Go to tech meetups and build relationships
- Makes sure to try to get an internship during your summer breaks
Learning Resources
This is no way close to a complete list, but its a good start. These are in no specific order. Take a look and see what works for you.
- https://web.dev/learn
- https://overreacted.io/
- https://www.reactscreencasts.com/
- https://a11yproject.com/
- https://learnxinyminutes.com/
- https://www.theodinproject.com/
- https://www.codecademy.com/catalog/subject/all
- https://www.freecodecamp.org/
- https://egghead.io/
- https://developer.mozilla.org/en-US/docs/Learn
- https://firstcontributions.github.io/
- https://exercism.io/my/tracks
- https://www.sololearn.com/
- https://thoughtbot.com/upcase/
- https://www.coursera.org/browse/computer-science
- https://www.khanacademy.org/computing
- https://www.linkedin.com/learning
- https://www.pluralsight.com/
YouTube
- Coding Tech https://www.youtube.com/channel/UCtxCXg-UvSnTKPOzLH4wJaQ
- Fullstack Development https://www.youtube.com/channel/UCNpIE11a9nLW_s2GUWmksqw
- freeCodeCamp.org https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ
- Fun Fun Function https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q
- The Net Ninja https://www.youtube.com/channel/UCW5YeuERMmlnqo4oq8vwUpg
- Harry Wolff https://www.youtube.com/user/hswolff
- Google Chrome Developers https://www.youtube.com/user/ChromeDevelopers
If you have other advice for a person looking to get a job coding, please leave your tips and advice in the comments below.
Drop me a follow on Twitch where you can catch me streaming
https://twitch.tv/talk2megooseman
Top comments (2)
One thing to add.
In almost all cases, you can virtually never go directly from college or another training program into a decent coding job. Job experience is mandatory for any worthwhile positions.
This means that, no matter what learning track you choose, you need to plan on searching for internships or equivalent entry-level coding job. Make sure you find one that complies with your country's labor laws, and that you will actually be doing actual programming (and standard related tasks). Interns and entry level coders are NOT go-fers, so if a significant part of the internship or job is non-technical grunt work, you don't want it.
I've Trained Programming Interns For 6+ Years, Ask Me Anything!
Jason C. McDonald ・ Aug 3 '19
+100 to this. I think its BS when a place has interns as glorified go-fers, I am glad to say I havent worked at a place like that yet and never will.