Monday 31 March 2014

Back to School!




It was pretty fun giving the short courses with Udacity and Codeacademy  a whirl (see previous blog posts for more info), I enjoyed learning something new and while this might sound strange, I actually quite liked doing the “homework”  - never thought I would say that after graduating from university 7 years ago!  However, if I was serious about becoming a programmer, obviously these courses don’t dive deep enough, and you do stumble across questions where it would be good to ask and discuss with a real human being (preferably one who knew something about computer science).  A cursory search for jobs and a couple of phone calls to recruitment agencies suggested that almost all potential employers wanted candidates to have some sort of Computer Science degree, and for me, the only way that could be achieved would be through a Masters conversion course for students who had studied a non-Computer Science degree as part of their undergrad (in my case, it was Economics).  


I think it is by all means possible to get the necessary knowledge through self-study and “proving” your worth by contributing to open source projects or building your own apps, without forking out £10k for a certificate.  However, I am pretty risk averse, and I like routine, so although a Masters is expensive (though American readers will probably think I’m getting a steal), you are getting a universally recognised qualification, and it only takes one year.   A friend asked me once, if there was a profession I would do that wouldn’t “feel like it was a job” and I immediately thought of being a yoga teacher or a scuba diving instructor (ok, I would absolutely LOVE to be a professional badminton player, but sadly I may as well hope to win the Euromillions).  A quick google for courses to become a yoga or diving instructor suggested this could also be pretty expensive, and while the potential “returns” would obviously be more than monetary, my Asian upbringing made me lean towards something more academic that could offer more financial security.  To be honest, after 6 years of working in an office from 7.15am- 6.30pm, the idea of being a student again was also a massive draw!!!


In London, we seem to have a wealth of higher education institutions and luckily there are 3 Universities, all of them excellent, that offer a one-year full time conversion course for students who did not study Computer Science for their Bachelor’s degree; Birkbeck, Imperial, and UCL.  Yes, it is expensive to be a student in London, but 1. I love this city 2. I have a flat here 3. The UK “tech-scene” is pretty much focused around Old Street roundabout (aka the “Silicon Roundabout”, sadly not as cool as a Californian Valley) 4. I couldn’t leave my badminton club (did I mention how much I love playing badminton?)

The Silicon Roundabout: the slightly grittier version of Infinite Loop
The thought of writing a personal statement as part of the application was rather daunting.  None of the universities’ online application forms specified word limits or what info to give.  Luckily, there are many good online templates (see here for general advice, examples and what not to write) and once you get over the cringiness of writing about how you would be the ideal student for this course, it no longer seems like mission impossible.


I wrote about:

  • Why I wanted to do a career change into computer programming
  • Transferable skills from my current job and undergrad degree that would help with learning Computer Science (e.g. analytical, technical and problem solving skills etc)
  • How the online courses I’d done had sparked my interest in further study
  • What I thought differentiated that particular course/institution
Overall it came to around 800 words (or just under 2 A4 pages with size 11 Times New Roman font and 1.5 line spacing)

Birkbeck :


Based around Russell Square, this University specially caters to mature students and offers mostly part-time courses for people who are studying for an undergrad or postgrad alongside doing their day jobs (huge respect to those people!).

I love the Birkbeck advertising slogan, and I fully subscribe to the philosophy that if you don’t like something, you should think about how to change the things you’re unhappy with rather than just moaning! (Though perhaps I don’t always practice what I preach, particularly on rainy Monday mornings, or when I’m hungry.  I get pretty grumpy and angry when I’m hungry – I have been officially diagnosed with hangriness by friends)

I popped along to the Birkbeck postgraduate open evening, and was impressed by how super popular the event was.  I met one of the Professors who would be teaching part of the course – he was very friendly and approachable, and he told me that he thought what differentiated the Birkbeck course was that it offered a more personalised learning track.  See here for Birkbeck’s summary of the course details.

Entry requirements (from their website):


  •  UK Second Class Honours degree in a non-computing subject, or overseas equivalent, or relevant computing work experience
  •  2 References (at least 1 academic – I asked my Director of Studies from my Undergrad, and an ex-colleague who used to work in my department)
  •  1 Entrance Exam and short interview
  •  £7k tuition fees (2014/2015)
 
I submitted by application online in January and a few weeks later, was invited to sit the entrance exam and was told it would be followed by a short interview.  We were emailed a short pdf tutorial (click here to try it out for yourself) on the programming language “Groovy” (yes, that is its actual name) and the exam would consist of solving exercises using this language.  The idea for this blog was actually born on the bus to this exam, as I was wishing there was some advice out there for prospective students!


The “exam” was actually a lot more informal than I expected, it doesn’t test your ability to memorise syntax (a cheatsheet with the main commands is provided). It was really more a straightforward quiz that checked to see if you could “think” in the same logical way as a very simple computer programme and was no harder than the exercises in the tutorial pdf.  Groovy is a bit like a mix between the Python and Java languages – maybe doing the Udacity courses gave me a bit of a headstart, but I think if one took time to read the tutorial material a few times, passing the exam should not be a problem.  In fact, you don’t even need to install Groovy on your computer in order to learn (and actually, installing Groovy and trying to get my answers to the Exercises working on my Windows 7 laptop proved to be much trickier than learning the concepts in the first place!)

Imperial:  


Imperial is one of the best known universities in the UK for science degrees, and I hear they have a pretty hot badminton team too.  What made Imperial stand out for me is that they seem to have a Women in Computing group, and strong links with industry - several well-known companies (i.e. potential sources of employment!) sponsor their Computing department in some way and they put on talks for their students by industry experts.  See here for more details about the course.

Entry requirements (from their website):

  • A a good upper second-class UK degree
  •  2 References 
  •  1 Interview (though apparently they don’t interview everyone)
  •  £10.5k tuition fees

I applied in late January and towards the end of February, was invited for an interview with the admissions tutor.  From working in finance, I’m used to giving interviews full of brainteasers and technical questions.  The non-technical questions we pose are all very much geared towards testing the interviewee’s motivation and aptitude.   It was therefore somewhat of a pleasant surprise that the Imperial interview turned out to be more of a friendly chat and a chance for me to ask questions about the course.  I was asked about my choice of degree and profession, and the online courses I had done – i.e. all the things I wrote about on my personal statement. 
The professor advised me to “hit the ground running” and try to learn as much C++ as possible before the course (C++ is the main language of the course, which I’ve been told by others is often not people’s first choice of language to work with!  But that if you can program with C++, you can do it with any language!).   I was also told that the Imperial course is a lot more “academic”, and while that makes it sound rather dry, this would ultimately lead to a better grasp of the fundamental concepts in Computer Science.  I was also told that most of the students on the course would be coming straight from graduating from their Bachelors, but as a mature student who had already been working for 6 years, I wouldn’t be completely alone.


UCL:

As the website says, it is London’s leading multidisciplinary University and the first university in the UK to be entirely secular and allow women to study!  I had a lovely chat with two very nice ladies at their postgraduate open day; they were very encouraging and gave me a real confidence boost about my choice to do a conversion course.  They also mentioned that it might be possible for me to perhaps combine by experience in finance and collaborate with a Computer Science faculty member to do an MRes, with a view to carrying on to a PhD.  I had not even considered this course of action, and while I am not ready to commit to academia for so many years, it was interesting to hear about alternative learning paths. 

Entry requirements:

  • Lower second-class Honours degree or higher from a UK university, or an overseas qualification of an equivalent standard, is required.
  • Maths A-level or equivalent, or a maths module at degree level
  • 2 References 
  • No interview, but they ask you to submit “an example of a program you have written, of no more than 2 pages”.  There is no guidance on their website as to the level of complexity, but after asking at the open day, I gathered that an extremely simple program would suffice (”as long as it does something it’s ok).  Apparently because they have no interview as part of the application process, they put in this requirement as they had applicants who had basically never used a computer before….
  •  £10.5k tuition fees
  •  A £50 application fee!
Ok, this might sound very stingy, but the application fee really put me off!  I understand there are obviously administrative costs involved in processing applications, but the other institutions were completely free to apply to, AND they involved an interview.  The lack of the interview stage also made me slightly concerned about how uniform the acceptance pool would be.  Given I was applying to things a long time before the deadlines, in the end, I decided to only apply to UCL if I was not successful with Birkbeck and Imperial.

You want me to pay £50 to apply??!

I got in!

I was lucky enough to be offered places at both Birkbeck and Imperial, and in the end, have decided to take the Imperial course beginning in Sep/Oct 2014!  

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