So I'm back in Edinburgh for week 6. There was no homework at the weekend so it was a good opportunity to recover from last week's project by not writing any code. This week we are moving away from Ruby and off into the world of Java programming and into a Compiled language.
Monday starts with standup at 9:00 with 21 relaxed cohorts ready to be thrown into the deep end of a new language. Lots more learning and at an even more rapid pace than before.
Java was intended to let developers "write once, run anywhere" (WORA) meaning that compiled Java code can run on all sorts of platforms that support Java without the need for recompilation. So it is possible to run it on the operating system on your PC, your Mac, your toaster, or even your Ferrari.
Although I've said 'rapid learning' above Java did not seem as painful as Ruby's day one. The Java code did look familiar, with variables and methods similar but in camelCase and lots of semicolons. The day's lessons were on Classes and Multiple classes and had us building dogs, cats, and bear coding examples. Oh, and remembering to compile the code... Ruby is an interpreted language and does not need to be compiled. Java does.
Tuesday and after standup, we had probably the hardest day yet. Long and so much to take in. A Bear example saw us learning about Array lists Casting and Polymorphism. Arrays in Ruby you can shovel any old thing into them. Java you can't and you have to define their size before you start. Array lists help us get around this.
Polymorphism! Joy! ..this is the ability for something to take on many forms. So if you have a Car Class and a Ferrari Class, the Ferrari can go into a car-shaped memory and also go into a Ferrari-shaped memory. The Afternoon was a lab expanding what our bear from Monday could do and giving him the ability to eat Salmon and Humans, and dance salsa.
Wednesday.. hmmm it was harder than Tuesday! We learned about Abstract Classes and Template patterns and an announcement that we would be making a card game for our weekend homework. So the afternoon lab task was to split into pairs to discuss and plan how you would build a card game in Java. What classes you would need and how they would interact. Sounds easy but is quite complicated to break down into its component parts.
Thursday and in standup, it is apparent that it's not just me who thinks things have ramped up. Today we learned about enums (these are cool!) Try-catch exceptions and some advanced testing. For the lab, we split into pairs again and started to code up the classes of the card game we had planned yesterday. The evening was social night and 3 cohorts from 7 had organized a pub quiz in Code Clan to welcome Cohort 8 and celebrate their first week. This was an excellent night and a great way to round off a week before getting the full homework assignment on Friday.
So to sum up week 6 (have I really made it this far already!) another good and enjoyable but difficult week. Code Clan instructors: top marks. My fellow Cohorts: each and everyone is brilliant and helping massively to make this learning experience something to relish!
Oh and here's a picture (right) I snapped at Edinburgh Haymarket Station. It made me chuckle and remind me of Windows and how used to a Mac I have now become...