Friday, January 27, 2017

CODECLAN WEEK 16 - THE GLADIATORS HAVE BEEN THROWN INTO THE PIT!

So it's the last week and we are now fully trained Coding Gladiators. The week has become a bit surreal as everyone is competing against each other for the glory of a new job. Some are performing coding tests set by prospective employers, some are attending group interviews and some are having cozy chats.

What was once a close group of 21 friends who worked together and had each other's backs changed into Gladiators coding to death? There will be casualties…

This week is the final project and the brief is we can do anything we want from what we have learned over the last 16 weeks. The only caveat is that we need to show evidence of architectural design and planning, and we have to learn something.

We have 6 days to create something and come back and present it on Thursday in class.

I chose to do a Ruby on Rails app and I set myself a project brief:

“Create a personal portfolio app that I can use to continue to develop my coding skills when I leave CodeClan”

I set my MVP (Minimal Viable Product) to:
be a Ruby on Rails project
be live on the internet (to date all apps we have developed have only existed on servers on our MacBooks)
be a sandbox to add further projects over the next 52 weeks
include a database with data served as API to applications
have Javascript with TDD setup

The 52 weeks is the key for me and although I have learned a huge amount since I started the course it has been a frantic learning process and moving from one language to another and one technique to another with little or no time to practice. What I need now is to practice and practice what I have been taught before I forget it all. Thankfully I have taken a lot of notes and these are backed up by some excellent class notes for all lessons.

So my plan is to create an App (this week) that I can use and set myself the challenge to extend once a week from here on for the next 52 weeks. I will add an additional page per week with some functionality as mini-projects.

I started this on the Friday of the previous week and spent some of the weekends working on it before I was back in Edinburgh for Monday morning standup.

Monday's standup had us discussing how we were getting on in our projects, and how much or how little that had been achieved. As discussed above some had been set code tests by employers so that had been taking priority over the projects.

Following standup, we were back in the classroom for the morning to do a series of tests for the Professional Development Award (PDA). These are done under exam conditions with invigilators. The tests consisted of 4 modules related to computer science, development, and testing. For each test, we were given 45 minutes to complete and were performed online on our Mac books. The tests were fairly straight forward and thankfully I had done some revision over the weekend and passed with flying colours.

In fact, I'm happy to say that everyone passed. The Pass mark was 60%. Go us!

In the afternoon and through to Thursday morning it was all about project time. I however did mix the project with collating my PDA evidence which is due to be completed at the latest 3 weeks after the course is finished. As this is my final week in Edinburgh I thought it was prudent to get it all wrapped up before I left on Friday. I don't want to be finishing things the following week as I have big plans to get on with.

My project went smoothly and I had something to show to class on Thursday morning. I achieved my MVP and had my App hosted on a Heroku remote server. It was up there in all its glory, No Scaffolding, no help from Squarespace, Go Daddy, or WordPress. My app was purely my code. It may not have been as slick as the aforementioned but it was all mine.

I had knocked up a quick presentation to give to the class along with my demo. It went well and following a few questions and a round of applause I was done.

And yeah that was me done literally. I had finished my course. There was a small code test to do on Friday morning but I had been made aware we could do this anytime so I had also done this during the week to get it out of the way. A bit swatty I know but if I can get something done and ticked off Id rather get it done.

So yea that's my 16 weeks over. What have I learned? A lot! probably too much to recall here. I will go into detail on my views of the course and a summary of what I have learned next week.

But for now, I have to hand back my laptop and I will be sent on my way back to Aberdeen. But before I leave I need to graduate and there is one final social night and a chance to say bye to all my new friends.

Massive thanks to CodeClan, its instructors, and its support staff you have been great, very welcoming and you provide a fun learning environment.

And to my fellow Gladiators, go easy on each other, you are all champions. Fight with the bears in the pit rather than each other...

And for me, I get to go home to see my boys...

Friday, January 20, 2017

CODECLAN WEEK 15 - THIS BABY CORNERS LIKE IT'S ON RAILS

So it's week 15 and the penultimate week at CodeClan.

The mood at standup has changed as cohorts are stressing about applying for jobs and the realization that soon it will all be over and we will be cast back into the real world outside cosy CodeClan.

Exciting times ahead but we still have work to do.

This week we are learning about Ruby on Rails, and using it as a back-end framework for our web apps to serve up API data.

Monday 9:00 standup and the talk was about the homework and about how much or little people managed to do over the weekend. It was hard. The task was to create a Guess Who Game app with Javascript React.

I completed some of it but did not get a fully working game. I'd like to say the main reason is I ran out of time which is partly true, but I did get stuck with a bug in serving up my API data (Rails where are you?). Thank goodness for one on one instructor homework reviews!

Lessons start with an introduction to Rails, and in a 2-minute whirlwind of commands, we had a fully functioning website, although just flat HTML it was a website. What was generated in a few commands that had previously taken us days to code from scratch? I can see the power of Rails and instantly like it. Coding is fun but if something like Rails can do the boring bones for you quickly I'm ok with that.

Hidden in the back of Rails are some great database tools and the plan this week is to use Rails as a server for API data. Gone are the SQL queries, and replaced by some simple Rails commands that seem to know what you are thinking before you do.

The afternoon lab was a pair programming exercise to set up an API server of our choice using rails and view data in the browser. Pizzas and toppings were served up as JSON data. Homework was in a similar vein and we had to create another Rails app that could serve up TV show data as JSON data.

Tuesday expanded on the SQL databases by adding multiple tables and creating one-to-many and many-to-many relationships and serving them to an API server. Something that was hard a few weeks ago in raw SQL became much more intuitive in Rails.

In the afternoon lab, we were let loose on our own to create an App of our choice with one-to-many and many-to-many relationships. I chose Formula One which had Drivers who belonged to Teams, that competed in Races at Race Tracks and had Sponsors and Sponsorships.

Wednesday's lesson was an introduction to Authentication on websites. A bit of theory and some practical code along. We added login signup and sign-in with password protection to our API data. If you're not logged in you can't access the data and the server bounces you out. Again Rails with an added Ruby Gem makes the whole setup fairly painless.

Thursday is a big day as it's the last day of lessons. No more code along, no more following the whiteboard, no more looking at what's on the projector, and no more class banter… One thing I have to say is that the lessons have been brilliant and very well executed. In my past life during long classroom training sessions I would have found myself nodding off (usually after lunch in a warm classroom) But I can say hand on heart having attended daily lessons for 15 weeks surprisingly this has not happened, not once.

So Thursday we marry Rails API server with SQL data to a React Javascript front end and have a full-stack app running with security. This is what we have been building up to over the last 15 weeks. I really should emphasize this more as it's a big thing.

So we have a FULL STACK APPLICATION running with ‘RUBY ON RAILS’ Serving API data as JSON to a REACT framework JavaScript front-end website that has security Authentication!!!

Brilliant and I know it might now mean much to some folk but to me Its awesome.

Thursday afternoon we were given a brief for next week's project. This is the final project and we need to present it on the following Thursday.

The brief is brief, to say the least. We can basically do what we want and use what we want from what we have learned. We can expand on what we have learned, build something, or just practice. We need to show evidence of architectural design and planning.

So that was week 15. Another great week, and a few more tools in my toolbox.

You might wonder (I did) why we did not just start with Rails from the beginning and have it do a lot of the coding for us.

But it was about the journey and the learning, I can see what is going on behind the scenes and if pushed could code it all from scratch (I have evidence on my Git hub to prove it --> Link)

Thanks again to CodeClan and their brilliant instructors. And to my fellow Cohort's top marks, you are the best!

<- And thanks to the unknown artist/s that did the pictures above, I snapped them in a shop window in Stirling and forgot to take note of who painted them, I like the style and colours ->

Friday, January 13, 2017

CODECLAN WEEK 14 - SPEED DATING WITH POTENTIAL EMPLOYERS

So after a couple of weeks off, I'm back in Edinburgh CodeClan for week 14. There was much excitement to see my fellow cohorts who have now firmly become good friends.

It is tinged with a hint of sadness as I know that we have only two weeks left after this one and we will all be off on our way back out into the real world.

9:00am standup had stories of some that had coded over Christmas and the New Year and some that had not and feared that they had forgotten everything. I was between the two as I had done some work towards the evidence for my PDA. It needs to be submitted soon.

Monday classes start with an introduction to frameworks. We will be learning two frameworks over the next couple of weeks. React for Front-end Javascript and Ruby on Rails for the Back-end. Frameworks are intended to add more structure to the code. Using React this quickly becomes apparent as code and its component parts start to fall into place and code becomes easier to manage. Less Like Jekyll and Hyde and no more Spaghetti.

So this week it's React and in class, we have a couple of code-along sessions where we build a Comments App and a Piggybank App. Code-along sessions are fast-paced where you follow the instructor at the front of the class but thankfully there are instructors at the back who jump in when something goes wrong. Normally missing commas or capitals where there shouldn't be.

Homework for Monday was to recreate a container element from a movie website and have the latest movies showing in the UK displayed in a list. At first glance, it looked like a big ask but applying what we learned with React each element on the container could be broken down into individual parts with their own .jsx files and it quickly came together into something that resembled the website we were copying.

Tuesday starts with a step back. React was kinda hurled at us yesterday and chucked into our code. New strange functions were doing things for us that made life easier but had no real idea what, when, or why they were doing things. The first lesson is a review of the lifecycle of React. We add a number of log messages that are triggered by each of the functions and can be viewed in time order in the browser console window. Very powerful and great way to see what is actually happening.

The next lesson of the day is to start adding API data back into our apps. We used the Countries API (seen this before) to pull data from a third party and display it in the browser. In the afternoon we had paired programming lab where we were set the challenge of using the Netflix API to pull a list of movie titles for a chosen Actor and display it as a selectable list in the browser.

We managed it within a couple of hours given to us and it was back in class to be given the evening's homework. Yippee it is another new App, this time to pull the Top20 singles from an iTunes API and display them in a browser container. (…Yea that's the 3rd new App we have created today. It was a long day!)

Wednesday solved a problem that we had been having in that all our Apps had been single pages, but as yet with React it was not apparent how to make multi-page apps. React Router solved this and in a code along we had a way of fudging React to create multi-page Apps. I say fudging as it was not quite like what we had done previously in a restful route way.

Homework was to create our own app of our own design using React and React Router. This time we were given free rein to make whatever we liked so long as we used what we had learned. I made an App that had a choice of 3 doors and displayed a picture of a fluffy bunny if you got the right door and a picture of Jack Nicholas's “Here's Johnny” if you chose the wrong door. Basic but all the magic was behind the scenes.

Thursday was a big day for Cohort 7 as it was Speed Dating Night, or should I say Speed Networking Night with potential employers. Code Clan has 85 (and increasing) employee-partners and on Thursday night 12 who had vacancies came in to meet us with a view to potential employment. A bell would ring every 10 minutes as we went around each employer. Meet-greet, find out about the employer and sell yourself 12 times was fast and furious but in the end good fun. Two companies stood out for me: Horisk in Cuper and iDesign in Dundee. Both were really friendly and sounded like forward-thinkers with interesting projects and products. If only I could make Dundee closer to Aberdeen. I guess when Aberdeen Bypass opens they will become closer by car. I did meet one contact with a possible vacancy in Aberdeen so fingers crossed.

Friday's standup at 10:00 was mainly about how much we had to learn this week and prepare for the employer meet-up. React is a lot to take in in just 4 days. Oh, and I forgot to mention we had a lesson on converting JavaScript ES5 (the old version which we have been using and learned) to ES6 (the new version which we can use from now on) Many many differences but thankfully ES5 code can run with ES6.

Weekend homework is to recreate the Guess Who Game in Javascript with React. That's it? that's all we were given. Short and Sweet MVP. I'm writing this on the train on the way home to Aberdeen for the weekend. So best get on with it…

Huge thanks again to CodeClan and instructors and massive well done to my Cohort 7 classmates you did brilliantly at the Speed Dating and I'm looking forward to seeing your Guess Who games on Monday.

Saturday, January 07, 2017

2017 - HAPPINESS AND IN MY CONTROL

So here is the plan… I have just turned 46 and it's the start of a new year.

The most common question I have been asked since I was made redundant last year is “What are you going to do?”

“I'm going back to school to learn to be a Software Programmer” has been my response for the last few months and has worked well but the reality is I finish my PDA in Software Development in just 3 weeks' time. That takes up January and the question is back.

So what next?

It's odd how we define ourselves by what we do for a Job and who we work for.

In reality, I would like to say my main job is being Dad. It is the thing that I will be spending my most time doing for at least the next 10 years (and beyond). So Dad is what I'm doing next and in the time when the boys are at school I’d like to do many things:

My brainstorm came up with some really good ideas that in an ideal world money is no object I’d be up for. However, I need to be realistic, after all my main job is Dad


So my actual plan has 3 parts.

1. - Get a New Job
Apply for a new job at a small startup/design agency in Aberdeen. The reality of finishing my PDA is a 6-month average wait for a Cohort to get a coding job (***edited - 6 is the time it takes half the Code Clan cohorts to start a job - but it's weeks, not months***). This number is based on a job in Edinburgh so in Aberdeen, this could be longer in the current climate.

So Ideally in a job, I want:
  • to be able to help build a business
  • to have the effort I put in be directly related to how the business performs
  • to be using my PDA and expanding my coding skills but still using my existing control skills
  • to be designing websites or apps
  • to be creative (I like building things)
This is my first choice... I would like to be part of something and have colleagues to see and work with each day. However, applying for a new job seems to be a different ball game these days. I have applied for a few recently, and companies (mainly agencies) do not bother acknowledging your application or even getting back to you.

One company came back to me but refused to tell me why my application had been unsuccessful as it was not company policy to do so, is that somewhere I would like to work?

Also, recent advice is to spend a lot of time tailoring applications to job vacancies. I spent a day applying for a job I really fancied and was well qualified to do but after only 5 minutes of emailing my application, I received a negative response.

So if the average is 6 months to get a new job I’ll use the time wisely and in appropriate amounts.

2. - Start a freelance business - Udny Solutions
A pipe dream for many years was to start my own business, however, I grew up with my Dad who had his own business and I know how hard it can be so I am cautious. But hey if I have time on my hands why not get something started. I have had www.udnysolutions.co.uk parked for a while now.

So what would Udny Solutions do? I have a few skills I can offer and see what happens.
  • Small business web design and update service
  • Technical author for ops manuals and tech documents
  • Human-machine interface design and evaluation
  • Help and advice in getting chartered
  • I also have a couple of app ideas that I need to develop now that I have the skills.
3. - Expand and formalize Udny DesignsI have had a small side hustle for a few years now. Its low income mainly donations via commissions and craft fairs to help with therapy for my youngest Son. Thomas was born with Cerebral Palsy and requires help with his motor skills. He attends a brilliant school Craighalbert Center in Cumbernauld. As a parent, I have to fund this myself.

Udny Designs has been covering this for 2 years now and has been going well (we are already on track for this year)

So the plan here is to expand and formalize it into a real company. Adding to the website, making it easier for people to order items, and have some additional products. All to help Thomas. (www.UdnyDesigns.co.uk)

So that's my plan. I'm thinking long-term here. By 2026 I'll be 55, Jamie will be 18 and Thomas will be 16. Who knows by then it may be ‘Tuckwell and Sons’ making and selling hoverboards

Anyway happy new year and all the best for 2017, for me it may not work out as planned above but it's been a great exercise to spend this week planning out and brainstorming.
You best get cracking, I've just taken delivery of a 2017 MacBook Pro as I need to give the Code Clan one back at the end of the month.
It has been with me now for over 4 months and will be difficult to let it go, Seems I'm fully converted to Apple