Codecademy first launched in 2011 as an innovative way to learn to code. Fast forward to 2017, and it now has courses in 12 different programming languages and tools.
If you want to learn to code, Codecademy can be an amazing resource. But there’s a lot of confusion out there about what Codecademy is and what it isn’t. I wanted to write a post to declassify myth from fact and help put Codecademy in perspective for people who want to learn to code and become professional developers.
Codecademy is a lot like surfing lessons.
Have you ever tried to surf? It’s pretty hard to do. Why? Here are all of the things that you need to do right:
- Catch a wave
- During the small period of time when you’re at the tip of the wave, propel your surfboard just a little bit faster than the wave to get the initial momentum.
- Once you get the momentum, jump on top of the board
- Try to gain your balance as the board is moving and stand as long as possible
If you ever tried to pull this off without lessons, you would probably have a very small chance of success.
That’s why most beginners opt for surfing lessons. I know I did.
Now, there are varying levels of intensity for surfing lessons. But the most common type is a one-hour long introduction to surfing…essentially Surfing 101. Here’s how it works:
- On land, an instructor walks you through the mechanics of what you have to do
- You take your surfboard and head to the water
- The instructor positions you exactly where you need to be in the water
- You both wait until the exact moment for the wave to be caught.
- When the right moment arrives, the instructor shouts “Paddle!” and pushes the surfboard to give it a little more speed than the wave you’re trying to catch.
I personally have experienced catching exactly one wave for a reasonable length of time, until I toppled down and fell into the water.
The experience helped me get the payoff- the thrill of riding a wave – as well as enough experience to understand that surfing is way more difficult that I initially anticipated.
The short experience opened my mind to all of the different factors that you need to take into consideration:
- Where do you position yourself in the ocean?
- When do you paddle?
- What’s the right way to paddle to get the maximum amount of speed?
If you don’t line up all those things perfectly, you won’t be able to ultimately achieve your goal. And that’s with surfing in a super beginner friendly zone with easy waves. Obviously, it gets a whole lot harder when you attack the monster waves that professional surfers ride.
My first surfing lesson gave me an understanding of what surfing is about, but it didn’t put me in the position to get sponsored by Billabong.
You can think about Codecademy as a similar, and super valuable introduction to programming.
Here are 12 things that you should know about it and why it’s similar to learning to surf.
1. Codecademy makes it remarkably easy to get started.
If you’re feeling intimidated, unsure of yourself or afraid to even try, you shouldn’t be. Programming isn’t easy, but like all things…it starts with the basics.
Codecademy can give a great introduction to what programming is, what it isn’t and how to do it. It doesn’t matter if you don’t even know what a line of code is…Codecademy will guide you and put you in a position to start writing code, even if you’ve never done anything like it before.
2. You don’t need to install all the developer tools.
Codecademy lets you start coding right away in a browser. This makes your life so much easier. Installing a developer environment is a notoriously difficult task to do. Since it’s typically step number 1 to getting started, it can prevent many people from ever building momentum during the most critical stage of the process.
On the flip side, coding in a browser has some trade-offs. By doing it, you’re not using the actual programs used by real developers…which means you’re interacting with code in a way that’s different than an actual developer.
It’s easier than ever to get started coding with Codecademy, but it’s not what real programming actually looks like.
3. Codecademy Provides Step-By-Step Instructions.
When you’re starting out, step-by-step instructions are important to helping you learn the skill of programming.
People pretty much unanimously agree on one thing:
Programming is something that is best learned by doing.
You can read books upon books about programming, but without actually writing code, you really can’t call yourself a programmer.
By getting you writing code quickly with step-by-step instructions, Codecademy can push you in the right direction.
4. Codecademy Doesn’t Lend Itself to Experimentation.
The Codecademy instructions tell you to run specific commands and will respond to the exact commands that are run. Because of this, the platform doesn’t lend itself to experimenting and trying things out that aren’t explicitly told.
So for example, let’s say you want to build a new project in Ruby on Rails. To do so, you can run this command:
rails new AppName
You can name your app whatever you want. In Codecademy’s Rails tutorial, they suggest running this command:
rails new MySite
If you choose to run a command that is not exactly what they suggest, they simply tell you that you didn’t follow the instructions.
This prevents you from making mistakes, but it also prevents you from coloring a little outside the lines and learning through that process.
5. You can’t mess up in Codecademy.
This is a blessing and a curse. If you make a mistake in a Codecademy coding environment, the platform will simply prevent you from moving onto the next step. This could because of a typo, skipped step, or another type of mistake. It works in that it helps you get back on track, but there’s a drawback, too.
In a real coding environment, these types of mistakes would show you error messages. A big part of being a self-sufficient developer is learning how to read, understand and fix error messages. Codecademy doesn’t help you develop that skill.
6. You can get exposure to pretty much any programming language you would want.
Codecademy supports a wide variety of programming languages, web frameworks, and programming tooling. Regardless of what you’re trying to learn, Codeacademy can give you the exposure you want. This is pretty remarkable.
7. The work you do doesn’t help build your Github account or portfolio.
By pushing your code live on the Internet or up on Github, you can help prove your ability as a developer. Unfortunately, with Codecademy, most of the work you do in Codeacdemy doesn’t build out your portfolio or Github profile. In Codecademy Pro, they do have some projects they suggest building outside the Codecademy platform, but as far as I know they don’t offer structure or support for them.
So Codecademy helps you learn, but it’s not going to be the resource you use to build up an online portfolio or Github account.
8. Codecademy offers free courses and premium courses for $19.99/month.
Codecademy makes is super affordable to get started. Even upgrading to a pro account to get additional courses and support doesn’t break the bank. It’s a free/freemium place to learn how to get started coding.
9. You work on projects by yourself.
In the real world, the best projects are built by teams of developers. You make better software products by collaborating with other developers, breaking advanced features into smaller parts, and working with code you didn’t write yourself. This is one of the reasons why working on a team is the most critical skill to getting hired as a developer.
With Codecademy, the work you do will be on your own. This is great, but if your goal is to become a professional developer, eventually you’re going to want to gain the experience of working on a team with other developers.
10. Codecademy does not teach Computer Science fundamentals.
If you want to become a developer, you’ll need to learn how to write code that solves the problems that occur in the real world.
What exactly do I mean by that?
Developers are often tasked with breaking down big concepts into smaller problems and fixing them with code. To solve these types of problems, you write algorithms.
In the real world, it’s essential to know how to write algorithms, work with data structures, and apply Computer Science fundamentals
11. Codecademy helps you learn the concepts of programming, but not the mindset of programming.
Learning programming is a lot different than traditional learning in school. A big part of learning to code isn’t about the actual stuff you’re learning, but instead is about learning how to think like a programmer.
Codecademy is great for exposing you to the concepts of programming. But you’ll likely need to turn to other resources in order to develop the mindset of a programmer who knows how to break down bigger problems into smaller ones that can be solved with code.
12. If you don’t have a programming background, Codecademy is probably not enough to break into the industry and get your first job as a developer.
Codecademy is a wonderful resource for people without a lot of coding experience. You can get started writing code quickly and build some really cool things. It’s an awesome guided introduction to programming and a valuable way for you to get a better understanding of what it means to write code.
What I’m saying is….Codecademy is a great surfing lesson.
It helps you gain momentum at the start and get a feel for what the discipline has to offer. But you’re not going to become a professional surfer by sticking to surfing lessons.
In order to land a job as a developer, you’re going to be expected to have a few things:
- A portfolio of real projects that people can interact with in the real world.
- A certain level of problem-solving skills
- An ability to break apart algorithmic challenges on a technical interview.
Programming really is a lot like surfing. If you want to become a pro, you’re going to want to:
- Use the same tools as professional developers
- Build real projects
- Go through experiences on your own and overcome the ability to make mistakes
Codecademy is a wonderful introduction to programming ideas and coding. Going through it can help you gain momentum and understand what programming has to offer.
It can be a wonderful first step on the journey to launching Version 2.0 of your life.
But if you want to move past that stage and become a professional developer, you’ll eventually just need to move onto other things.