If you’re thinking about trying to learn to code online, you’ve probably searched for resources that allow you to do so. If you’ve made it that far, then you’ve probably discovered that there are way too many options. How can you possibly separate the good from the bad? And how can you figure out which platform is right for you based on where you’re at in your coding journey?
Depending on your budget, goals, and prior technical experience, the right place to start coding will be completely different. So it’s important to pick the right resources to ensure that you’re not wasting your time or delaying your growth.
If you’re struggling to fully understand the complete online coding ecosystem, then this post is for you. We’ll get into the 4 main categories of online coding resources and put them in perspective for you based on your previous experience and goals.
Let’s get into it.
1. Free coding resources for beginners to get started.
There are a number of free resources that allow people with little to no experience coding to get some started. Here are the popular options that many people find useful.
A platform with a collection of a little over 20 courses. These courses span topics like HTML, CSS, Ruby, Python, SQL and other technical topics.
Cost: The core courses are free, but users are able to update to a pro account for $19.99/month for additional content.
Format: Codecademy pioneered the concept of in-browser coding education. Having 100% of the coding you’re doing inside a web browser has certain advantages and disadvantages.
Advantage: Setup is a breeze. All you need to do is sign up for an account.
Disadvantage: By coding inside a web browser, you’re not using the actual tools and programs that are used in the real world. You’re also not building actual projects.
Length: You should expect to be able to complete the free material from each course in 10-20 hours.
Reasonable Expectations: If you have no prior experience coding, going through the free material (or upgrading going through the pro material) will give you a great introduction to the programming concepts.
Codecademy is a great way to accomplish a few different things:
- Find out if coding is something you enjoy
- Learn the most important coding concepts.
- Be able to communicate better with developers and talk using the terminology they’re using.
These are all great. Just remember that you should not expect to land a job as a developer after a short (or series of) short primers on these core technologies. Most beginners without prior coding experience are not able to do this.
A free online book about the ruby programming language.
Cost: Free (with an option to buy additional content for $29.99)
Format: Text based, written lessons delivered digitally.
Advantage: Non-browser based, so it allows you to build ruby programs with the normal tools/text editors and run them through the command line.
Disadvantage: Assumes basic familiarity with command line tools. Getting started can be intimidating.
Length: ~50 lessons. Around a week of content.
Reasonable Expectations: Going through the tutorial will give a reasonable experience with building and running programs in a real environment. Prior to starting this, you could also use something like Codecademy’s Command Line tutorial and set up an account with a fully functional web coding environment, like nitrous.io.
This book introduces each of the important concepts from the ruby programming language. It’s also a great introduction to programming language ideas. Additionally, it includes “study drills,” which are excellent challenge exercises to make sure you applied the material.
The book will teach the basics of the ruby programming language, which is great. But it can be difficult to know when to apply these topics once you’re done with the material.
The Firehose Software Engineer Intro Course (our intro course)
A primer on the most important elements in software engineering. The course covers HTML, CSS, and the ruby programming language.
Format: Text and video lessons. Coding challenges and code reviews.
Length: 2 weeks
Advantage: Covers the basics of HTML, CSS, ruby and the command-line too. If you get stuck, you can ask for help in the forum.
Disadvantage: Only two weeks.
A free tutorial that teaches you how to build a Ruby on Rails app. This course walks students through building a micro post (i.e. Twitter-like) web application.
Cost: Free (upgrade to get screencasts for a series of different payment options)
Length: 10 chapters, over a month of content.
Format: Written lessons, delivered digitally. Optional video screencasts for customers who upgrade.
Advantage: Covers the tools and frameworks that are used in the real world. Covers things like git, GitHub, Heroku and Rails.
Disadvantage: Since there is no support, it’s easy to have a small error message, a simple typo or the difference between a capital or lowercase letter throw you off for a long time.
Reasonable Expectations: After building the application in the Hartl tutorial, you’ll have the hands-on experience of building applications on your own. You should feel capable of making tweaks to the app that you’ve built, but you may not be able to build an arbitrary idea out without a tutorial if you don’t have prior coding experience.
The bottom line about free courses for beginners.
Free courses are a great way to get the first taste of programming. If you’re a beginner without any experience, they probably will not teach you the full breadth of knowledge that you’ll need to land a job as a developer. And they probably won’t give you the skills you need to launch an idea that you have. But they are a great way to jump into code.
2. DIY Coding Resources
There are a number of coding resources that are relatively inexpensive that you can learn from, too. These can also be valuable to leveling up as a developer.
A popular online course for building web applications with ruby on rails.
Cost: $299 ($199 for monthly subscribers).
Length: One month. 2-3 hours per week.
Format: Video lessons
Advantages: You can jump right into it and build web applications quickly with tools like ruby on rails. The cost incentivizes you to put in a ton of energy each week.
Disadvantages: There aren’t clear steps to achieving your goal once you complete the course.
Reasonable Expectations: After building the application in the One Month tutorial, you’ll have the hands-on experience of building an application on your own. You should feel capable of making tweaks to applications, but you may not be able to build your own idea without a tutorial if you don’t have prior coding experience.
Team Treehouse (basic plan)
A series of video lessons on various coding and design tools.
Length: With 1000+ videos on the platform, there is pretty much an unlimited amount of material to go through.
Format: Video Lessons
Advantages: The video lessons will allow you to learn the concepts you want, whenever you want.
Disadvantages: It’s up to you to choose the material that you want to cover. Whether you want to learn iOS, web development, C#, PHP, WordPress, design or game programming, it’s on you to decide. This can be intimidating for many beginners.
Reasonable Expectations: If you put a reasonable amount of energy into learning the different technologies, you’ll have a wide array of material to learn. However, for any given track, there is only so much material. For example:
- 18 hours of video on the ruby programming language
- 46 hour of video on the rails framework
This level of overview is great for people who already are proficient at programming in other languages, but if you’re a beginner, going through 64 hours of video materials probably isn’t enough to land a job as a programmer.
A unique platform that invites instructors to record video and present additional material in a course (like quizzes, study guides, etc).
Cost: Free or $9-$200. Most courses range in the ~$20 range.
Format: Mostly videos with supporting material in other formats.
Advantages: A huge range of topics are covered. Anything from Photoshop to coding, to SEO and marketing. Rating system ensures that you know how other people perceived the course.
Disadvantages: Wide range of quality from the good courses to the not very good courses. Since anyone can upload a course, some courses are of lower quality. In general, Udemy courses are for absolute beginners or people who are already sufficient developers. Intermediate developers can have a hard time finding relevant materials on Udemy.
Reasonable Expectations: Short courses are great for teaching a small concept or isolated idea. With the various topics in programming, however, it can be difficult to understand how all the various pieces of applications fit together if you’re just learning from one-off, short courses.
A marketplace for video courses. The quality of the video production on Skillshare is quite high.
Format: Video lessons
Advantages: Similar range of topics to Udemy, with a seemingly higher quality of content.
Disadvantages: Monthly subscription is not ideal if you just want to try a single course.
Reasonable Expectations: Like Udemy, these short courses are great for teaching a small concept or isolated idea. With the various topics in programming, however, it can be difficult to understand how all the various pieces of applications fit together.
The bottom line about these DIY coding resources.
These relatively inexpensive learning resources cover a wide breadth of programming concepts. This is great. But it can be difficult to glue together the various courses covering seemingly unrelated topics to achieve a specific end goal. This can make it difficult for beginner or intermediate-level programmers to go as deep as necessary in order to transition careers.
These options are great for people who:
- Are unable to make a commitment a more structured coding path,
- Want a great secondary resource to learn valuable skills
They tend to not be as great for people who have not programmed in the past.
3. Online Pieced-Together Approaches
Some companies offer more structured online paths to learning. These programs acknowledge that there are a lot of interrelated concepts that up-and-coming developers need learn and that beginners will have a hard time piecing these together on their own.
Length: The course is quite long. Some people suggest that going through all the material will take up to 2 years.
Format: Text lessons and coding challenges.
Advantages: Help non-profits in your code journey. The course is free. The curriculum has incredible depth and is a tremendous path to learning development. Includes coding challenges, algorithm problems, and instruction on the skills you need a developer.
Disadvantages: For a free course, this is a really great option. There really aren’t many disadvantages to talk about.
Reasonable Expectations: FreeCodeCamp is a completely free and viable way to learn web development.
A more structured approach to learning software development on the Treehouse learning platform.
Length: 7-12 months, ~320 hours of material
Format: Video lessons and quizzes
Advantages: Build a series of projects. Complete quizzes. Get your work reviewed.
Disadvantages: When challenges come up, it can be difficult to get a solution to your problem from their community.
Reasonable Expectations: After getting a Tech Degree certificate, you can expect proficiency in the tools and technologies that are taught on Treehouse. As a beginner, though, getting stuck is inevitable. And there may be situations where you find yourself struggling to articulate your problems in a way on that can help you get a helpful answer.
A way to learn skills relevant for job titles such as:
- VR Developer
- Self-Driving Car Engineer
- Or Full Stack Developer
Length: ~200 hours of material
Advantages: Teach the relevant skills in a project-based way.
Disadvantages: As of now, these are still fairly new. It’s difficult to find reviews. And some paths, like “Self-Driving Car Engineer,” are fairly niche careers.
Reasonable Expectations: Udacity NanoDegrees are new, but may be a viable way to land a job as a developer.
The bottom line on Online Pieced-Together Approaches.
These are a solid option if you’re confident that you can work your way through problems as you learn to code. But if you’re worried about getting stuck, you could be putting yourself in a frustrating situation.
4. Online Coding Bootcamps
Online coding bootcamps are programs that teach you web development using a high-touch educational community and a high level of student support. They provide the path, the course materials, and the help that you need when you need it.
Length: 3 months – year
Format: Written lessons, video lessons, and individual support when you need it.
Attending an online coding bootcamp is a higher-touch experience than the other types of online learning. They do this by offering additional support in ways that are difficult to scale at inexpensive costs.
There are various ways that online coding bootcamps provide additional support to students. Some coding bootcamps only offer support in some of these ways.
- One-on-One Mentorship is a common way that online coding bootcamps support students. Students meet with senior developers from real companies. These senior developers have already mastered the craft. There is no faster way to overcome obstacles than having a senior developer explain concepts directly to you.
- Support Channels. These are moderated areas where you can ask for help when challenges arise. For example, when error messages pop up in your code, you can ask someone to help you identify the problem. This allows you to get back on track without losing significant momentum.
- Virtual Office Hours give you the opportunity to listen to other students. You can also ask your own coding questions to experienced developers.
- Community and Group Chat. Most online coding bootcamps use the real-time collaboration tool, Slack, to allow students to collaborate and help each other all the time. They also offer other avenues for students to communicate about code, including Google+ groups, Facebook groups or custom communities on their platform.
- Team Projects. In the real world, most modern projects are built together on a team. These teams perform agile practices and commonly have meetings (called SCRUMs) where they discuss the work that other members are working on. The experience of working on a team can be incredibly valuable. Learning to code, while working together with other developers, is an important skill to have in order to land a job as a developer.
Advantages: Online coding bootcamps offer the structure to learn course material and a comprehensive support system to keep you on track. They generally push students to accomplish a certain amount of work each week.
Disadvantages: The cost of online coding bootcamps is much more expensive than traditional online courses with less comprehensive support systems. Like all online learning experiences, online coding bootcamps require diligence and discipline to do the work.
Reasonable Expectations: If you go through an online coding bootcamp, you should expect to go from a beginner to a self-sufficient developer who is capable of building out ideas they ultimately have. They ultimately have the skills they need to be an in-demand developer, who is capable of landing a job as a junior developer.
Online coding bootcamps aren’t for everyone.
They’re more expensive than most other online courses. They’re a comprehensive path to go from a complete beginner to a developer who is ready to accomplish their coding goals, whether it’s to get a new job or launch an idea.
If you think online coding bootcamps could potentially be for you, we wrote a more detailed post about the industry here that you might want to check out: 23 Things Aspiring Developers Should Know about Online Coding Bootcamps.
Finding the right resource for you.
So remember, the right online coding resource for you is dependent on your goals and learning style. For some, an online coding bootcamp might be the right way to go. For others, it could make sense to just dive into Codecademy and see if you enjoy the practice of writing code.
Whatever you’re thinking, make sure that you think critically about how you learn best and what you want to accomplish with code. Once you understand these two things, you’ll have a solid idea of where to start.