The team at Codecademy have identified a great way to introduce new users to coding languages by making it easy to get started, social and fun. Unfortunately theyve hit on something we in the Attendly office like to call, Great idea! Execution? Not so much.
When you hover over the icon, youll get a short message about what the problem is. When its Missing semicolon, thats easy enough to understand and fix. But when it says, Expected an assignment or function call and instead saw an expression, thats not much help to a newbie. Its better than nothing, which is what was offered when I first started using the site, but still not enough to be useful.
By having someone fix your code, youre not learning to work it out for yourself.
Lets just make this quite clear to begin with:I believeCodecademyhas great potential. I really want to see it succeed, because I can see there is an identified gap where Codecademy fits, and a lot of people can benefit from using the site.
This is probably the point where youre saying that to be a good programmer you need to be good at problem-solving, right? Unfortunately, weve hit on that a smidge too early. Remember, were dealing with beginners who have no understanding apart from what theyve covered so far in the Codecademy lessons. Andwithout a solid understanding of the languages foundations, there are no reference points to work withwhen it comes to troubleshooting.
The web needs Codecademy and other sites like it. Coding is an important skill for anyone who works on the web to have, and the easier (and more fun) it can be to learn, the better.
This is perhaps my biggest concern: the basic principles of coding languages and how they work are missing from Codecademys lessons. Until you get a feel for how code behaves, youre going to have trouble writing it and even more trouble fixing it when you make a mistake.
Unfortunately, a peer support forum doesnt work this way. And while the emergence of an entireSubreddit dedicated to Codecademypoints out the ineffectiveness of this Q&A forum, it doesnt solve the problem, either.
They have some idea of what they can build with code (i.e. theyve used apps and websites)
Code can be like this. Take the concept of HTML tags for instance: its common sense to make sure that all of your tags are openedand closed.And for someone who knows HTML, its not hard to jump to the conclusion that in another coding language, anything thats open must also be closed at some point. But imagine approaching code without an inkling of this concept. Why would you ever consider that the problem with your code is a tag left open ifyouve never encountered that concept before?
This last point is one of the more frustrating aspects to have your code passed so you can move on to the next lesson even though the console is producing an error message is frustrating for those who hope to learn coding skills that they can actually use.
My last major concern: the difficulty in fixing problems with your code. The team at Codecademy has implemented a Q&A forum in an attempt to help with coding issues. Sadly, this is not the solution we need. Unless youre happy to simply paste your incorrect code into the forum and wait for someone to fix it for you, this is near useless. And unless thats what you call learning, Id say this solution is really missing the point.
Join our thousands of subscribers & stay in the loop!
Attendly is a world class event registration system for mass participation and endurance events.
If you already know that all HTML tags have to be openedandclosed, or that if you spell something wrong, the computer wont be able to run your code, you cant forget these things. Through your experience in programming youve picked up the fundamentals, but a beginner is missing these important ingredients.
Ah, but if youve been following along, youll remember that I mentioned troubleshooting being near impossible anyway. Without a strong understanding of the foundations of the language youre learning, how can you possibly troubleshoot issues?Whats needed here is guidance towards identifying the errors in your code, but not a complete fix.
They dont understand the basic principles of whichever coding language they are learning
In several lessons I noticed grammatical errors or ambiguity in explanations, lack of clear instructions about the requirement of lessons, lack of clear explanation of how and why each foundational part of the coding language would be used, and incorrect code being passed by the console.
Since each lesson that you complete assumes that you understand what youve learned, theres no easy way to go back and check how to do something (althoughapparentlythis is a feature thats coming). If you can remember which lesson explains it, youll find it eventually after some digging around. Its certainly not the ideal way to double-check what youre doing, though.
After giving up on this method of problem-solving, I tried grabbing a correctly coded answer from the forum and pasting it into the console to compare the result to my own error-riddled code. After no less than eight attempts to complete the lesson with corrected code, my browser had unfailingly crashed every time and I gave up completely (which also points to the general bugginess of the lessons try googling Codecademy is and see how many times buggy appears in the search results).
For first time coders, its horrible.
No doubt youve heard someone call Internet Explorer the internet before. The concept of web browsers is completely foreign to some users, and yet because its second nature to many of us, we dont realize there are people who just dont get it.
This last point is a red flag for me. Let me explain with an analogy from The IT Crowd:
Its not hard to find your way to a lesson of some kind within Codecademy, but following a linear progression can be quite difficult. Lessons have multiple entrance points, so you can end up in a section far beyond your current skill set by mistake. Of course, this leads to frustration when youre asked to use parts of the language you havent been introduced to yet.
Weve already established the trouble with learning the foundations this gets even more difficult once you get into the lessons where you need to implement them.
They are completely (or almost) new to the world of coding
Codecademy undoubtedly has a lot going for it, but these major problems are letting it down.
Many developers haveheralded the conceptofCodecademy itself. In theory, it sounds like exactly what we need. For developers, however, its almost impossible to forget what they already know. Take the browser example above: until someone says Thats the button for the internet, you probably wont realize that itsnotobvious what a web browser is.
Its great to let people skip around and do just the parts they want to especially if developers are using the service as a refresher course. Butif Codecademy is really going after beginners who are new to programming, this is something that has to change.
Im going to take these two clues to mean that Codecademy is aimed at beginners. As far as I can make out, the idea is to reach people who have little-to-no coding experience, but want to learn. Im going to use this assumption as the basis for the rest of this article.
The lessons and courses included on Codecademy are written by various people crowd input is what keeps the site going. The issue with this, however, is the difference in the quality between lessons.
Providing a clear hub or menu for logged in users to navigate from and monitor their progress would make this much simpler.
The Codecademy console has a great feature to help you find mistakes. Next to each line of code, youll see a hazard icon if somethings wrong. This is really handy if your code wont run but you dont know why.
In an attempt to use the resources available to get what I needed, I tried to glean some insight from the code that had already been corrected in the Q&A forum. Unfortunately, this confused me even more, as many users (who I suspect are actually coders who are brushing up or adding a new language to their repertoire) had used different coding methods than those explained in the lesson.
So what else do we know (or can we assume) about these newbies?
When you visit Codecademys homepage, one of the first things youll notice is a big heading that saysLearn to code. This is followed by the sentence, Codecademy is the easiest way to learn to code.
If you try to run your code and it doesnt work, you will get an error message from the console as well, but it will be something like this: It looks like you didnt run ten. Try again. Helpful, huh?
To make matters worse, the home page looks the same for everyone even when youre logged in. Apart from seeing your name and a small avatar at the top of the screen, youre still greeted with a get started button and an introductory lesson. You can bypass this intro lesson by clicking on theLearnbutton or your name, but each of these options takes you inside the site from a difference angle, adding to the confusion.
Their point of reference for anything language-based is standard usage rules which apply to conversations and literature