Wednesday 26 March 2014

Codeacademy courses


After completing the CS101 Udacity course that I wrote about in my previous blog entry,  I tried out a course with codeacademy.com, another commonly used free learning resource for programming.  They are famous for having a course called the Code Year where people who have made it their New Year’s Resolution to learn coding in one year, can follow a specific track that covers all of the 6 programming languages that Codeacademy offer tutorials on (Python, Ruby, HTML & CSS, Javascript, JQuery and PHP).


For a little bit of a change from the Udacity course which focused on Python, I started out with Codeacademy’s Web Development tutorial, which gives an introduction to HTML and CSS (part of the appeal of doing the course was finding out what these mysterious acronyms stood for! And then being able to feel like a total boffin by casually dropping them into conversation like a pro…or maybe that’s just me).  While the Internet still generally seems more or less to be powered by magic to me, this course helps you understand what the source code behind websites is referring to.  After doing this course, you can pretty much write the code for a website from scratch in Notepad using HTML and make it look pretty using CSS, but in reality, most people would still find it more efficient and convenient to use a template or another helper program.

A section of the codeacademy.com homepage source code....believe it or not, after doing the HTML course, this will no longer be complete gobbledegook!


Having completed the Web Development course, I already felt like I was forgetting the Python that I had already learnt, and given that Codeacademy had a Python track, I thought it might be interesting to blitz through the Codeacademy Python course to see if there was anything that the Udacity course had missed out on.  The main extra material not covered in the Udacity course includes taking a user input, bitwise operators and slightly different ways of writing ‘for’ and ‘while’ loops.  You also get to build quite a cool simple Battleship game too!

 
Compared to the Udacity course, this was more of a very basic introduction into the language and a whistlestop tour of what you can do, rather than giving you a deeper understanding of the syntax.  I found the exercises rather repetitive, with the instructions often telling you exactly what to type, meaning it’s quite easy to forget stuff you’ve learnt after pressing Save & Submit.


Having said that, the benefit of the Codeacademy course is that all the individual chapters are available in easy bitesized chunks, so you can dabble in and out of exercises; which comes in handy when you are trying to fit in your study around a hectic work day.  This is why I stuck with Codeacademy and used it to try out its courses in Javascript and JQuery, hoping these courses would build upon the basic Web Development course.


Rather bizarrely, I thought the Javascript course did not really explain at all how one would go about integrating the simple programs we were writing into a webpage.  In many ways, it was much more like the Python course, and even though Javascript was a new language to me, it was satisfying to be able to pick up the fundamental concepts quickly as a lot of the groundwork overlapped with the previous courses I had done.  However, this did leave me questioning why I was bothering to learn how to do the same things in a new language and how it was in any way relevant to building websites.  This was not helped by the fact that in the final 2 units of the course, there was A LOT of repetition of course content (it looked like it simply had not been edited properly) and there were quite a few bugs with Codeacademy checking the code that you had input was correct.  It wasn’t just my computer/browser! -  I tried using Codeacademy with Internet Explorer / Chrome / Firefox on my laptop as well as my iPad, and I could see from the course forum that there were many other frustrated students experiencing similar issues…


I forced myself to get over the annoyance that my course completion rate was stuck at 99% despite having the right code, after finding out that what I really needed to do was the JQuery course in order to transform my newly acquired Javascript coding knowledge into building an interactive website.   This course really gave much more meaning to the previous Javascript course I had done, and it taught how to translate a user’s key commands and mouse clicking into simple animations of a website’s features (e.g. moving your favourite Nintendo character around a page, or making a planet explode!) 

If you "get" this meme and how it references making planets explode, then you are probably as cool as me.
Overall, the codeacademy courses left me with a thirst to look into more in-depth tutorials and some of their "non-track" content (i.e. self-contained projects designed to let you practice your newly acquired skills) look very interesting.  Despite a few of my "complaints" about the bugs and teaching style, I think it is still unbelievable and absolutely amazing that a resource like codeacademy is available for free!


Pros
  • All the teaching is done via coding on the website
  • Bitesize chunks and short courses makes learning easier to time manage
  • Something about the way it's written is very good at helping to keep you motivated and want to get through all the sections...perhaps it's because they reward you after completing sections of the course with some lovely badges on your account profile (anyone else remember collecting these in the 90s???)
Cons
  • Teaching is not as in-depth as I would personally prefer
  • Website has bugs with saving and submitting exercises
  • Too much hand holding/spoon-feeding. Often the exercises  just tell you exactly what to type, and can be very repetitive.  While this does drill in certain things that you do need to memorise, it can feel like an exercise in copying and pasting

1 comment: