Friday, 20 December 2019

Why You Shouldn’t Learn to Code With Codecademy

codeacademy-donts

Codecademy is a web app designed to teach new developers the building blocks of coding. It’s wildly popular but does have a lot of things it can do better.

Since 2011 they’ve taught millions how to code for free, and have launched the careers of thousands of developers. At the same time, their product and teaching methods leave much to be desired.

So, what’s wrong with Codecademy? There are a couple of problems that should be talked about and learning the things it does not do well might lead to some better alternatives to learn code.

Codecademy Problem 1: It Doesn’t Teach the Mindset

Reddit programming challenge question substitute for codecademy

It’s fantastic to know a language by heart, but being a programmer is more than simply being able to memorize syntax. It’s about having a particular mindset and learning how to break a problem down, solve it with algorithmic thinking, and then code the solution.

You need to be able to look at a problem on a grand scale and understand how each step you take affects the rest of the program. On top of that, you need to be able to tolerate a high level of frustration and persevere when you hit a mental brick wall.

You need to be able to research errors, Google for answers, and communicate your problem to other developers. Simply put, you need to be able to think like a coder.

Codecademy courses do not teach you to think like a coder.

Rather, it teaches you the basics of a number of programming languages without much instruction on how you’d apply them to real-life problems.

What are better ways to get that problem-solving experience?

I’m a big fan of Project Euler and Reddit’s Daily Programmer Subreddit, which feature programming puzzles to solve. I’m a big fan of the latter because you’re encouraged to share your code and receive feedback from other developers.

The Daily Programmer subreddit comes with daily puzzles for all skill levels, from absolute beginners to code experts.

Codecademy Problem 2: Blink and You’ll Miss It

Interactive javascript code for codecademy

One of my biggest frustrations with Codecademy’s approach to teaching is the speed that the courses move. You learn something, complete a challenge, and may never revisit that topic again. Blink, and you’ll miss it.

If you want to cement your progress, you’re going to have to do some deliberate practice outside of Codecademy. One of the best ways to do that is to simply write code. Many programmers swear by notetaking and reinforcement with flashcards.

Paper flashcards are cheap and effective. In fact, you can buy packs of 1,000 on Amazon to get started.

Oxford Blank Index Cards, 3" x 5", White, 1,000 Cards (10 Packs of 100) (30) Oxford Blank Index Cards, 3" x 5", White, 1,000 Cards (10 Packs of 100) (30) Buy Now On Amazon $11.99

If you prefer digital, there’s also a number of apps you can use. I’m a huge fan of Anki because of how customizable it is. It has thousands of community-built flashcards and is extensible through its application programming interface (API).

For mobile users, there are also lots of flashcard applications for Android, and for the iPhone.

Codecademy Problem 3: Syntax Does Not Equal Programming

Codecademy will teach you the syntax of a programming language but for the most part, won’t tell you how to apply it. This is why you often see questions like this, posted on the LearnProgramming Subreddit.

Reddit codecademy javascript question

The developer is learning JavaScript and is beginning to understand the language, but does not know how to actually apply it. It may not be the developers’ fault.

The introductory JavaScript course doesn’t dive into using the Document Object Model with JavaScript. The Java course doesn’t teach you how to compile your code in order to run it.

That’s not all that tends to get glossed over. Codecademy doesn’t give you tips for writing cleaner code. It doesn’t teach you how to write code that’s self-documenting. It doesn’t teach you about package management, or how to use other people’s code in your own projects.

This is something you can overcome by finding an alternative to Codecademy. Look for instruction that teaches these important habits, and your coding will flourish.

Codecademy Problem 4: Does Not Explain Theory

Codecademy java code example

The reason Codecademy is successful is that it takes coding and transforms it into addictive bite-sized pieces that are easy to accomplish. It feels great right now, but not so much over the long term. Learning to be a developer means learning the principles of software development, which are quite honestly very challenging. It’s the reason why good developers are so valuable.

In Codecademy’s curriculum, you don’t learn about the theory of programming. The stuff that Donald Knuth spent thousands of pages—and the better part of two decades—writing about in The Art of Computer Programming.

The Art of Computer Programming, Volumes 1-4A Boxed Set The Art of Computer Programming, Volumes 1-4A Boxed Set Buy Now On Amazon $162.33

Codecademy shields you from the complicated part of programming. There’s no way around this, other than having the discipline to do your own research. If you don’t know what you should be looking at, a good way to learn is finding experienced developers that can mentor you.

Codecademy Alternatives

If you prefer the structure that Codecademy provides but want some alternatives, there are some options.

Code School vs. Codecademy

Main Logo Code School Pluralsight

Code School will teach you how to code just like Codecademy, but with some significant advantages. Code School (recently acquired by Pluralslight) offers a deeper selection of classes from software development to cybersecurity.

Classes are taught with video by coding professionals that explain the concepts in-depth. The curriculum spans from beginning to advanced level coding. Code School learning is separated into coding paths and each path could be upwards 20 hours just on one language.

Code School is not free, but the price you pay monthly will cover all of their material. It’s a serious investment with serious results.

FreeCodeCamp vs. Codecademy

Main Page for FreeCodeCamp

As the name implies, FreeCodeCamp is free just like Codecademy. Just like Code School, you’ll get some pretty in-depth material to learn.

FreeCodeCamp is centered around getting you a job. They tout over 40,000 graduates getting jobs at high-profile companies like Microsoft and Google. They offer seven different certifications, each at around 300 hours.

Where you will see the real difference is the coding interview prep. FreeCodeCamp provides thousands of hours of challenges all centered around learning the logic behind the coding. Companies want to know how you solve problems not memorize a language, so this is a huge benefit.

Codecademy Isn’t That Bad

Now look, there’s a lot to like about Codecademy. This isn’t meant to discourage budding programmers, learning is always the goal. Codecademy has introduced thousands to the fundamentals of computer science. But there’s considerable room for improvement, too.

There are alternatives to learning code. For web programmers looking to grow, you can learn JavaScript with these Udemy courses. If you need some inspiration for real-world ideas, check out some great beginner projects for new programmers.

Read the full article: Why You Shouldn’t Learn to Code With Codecademy



from MakeUseOf https://ift.tt/2vqQRX1
via IFTTT

No comments:

Post a Comment