Friday, December 16, 2016

CODECLAN WEEK 12 - WORSHIPING AT THE CATHEDRAL OF CODE


So we have been working toward a full-stack JavaScript web application for a couple of weeks now and as one cohort suggested we have been drip-fed all the parts to build a cathedral but we are not yet able to see the cathedral. This week we have been given the last few parts. We now have the full box of lego bits. Some are unusual and comprise of odd shapes and sizes but we have them all. Have we built a cathedral? not quite. We built a bank app that could persist data. it needed 4 terminal windows all running various processes and had no CSS but it was good to see and understand all the parts and what they did. It was more of a shed application than a cathedral, but hey I like sheds. The Cathedral will come next week.

Monday was a standup as usual at 9:00 followed by an individual instructor review of the weekend's homework. Again I did the bulk of it on the train on the way home on the previous Friday. This time it was to pull movie data from an API and display it in a browser and add some CSS to make it look good.

This week we were supposed to start our group projects on Thursday, however, as next week is so close to Christmas and most folk will be traveling on Friday the project start was moved up to Wednesday. That means we had to compress an extra day into this week's classes. We were not quite sure how this would happen but it would become apparent later…

Lessons start with an introduction to Express which is a lightweight web framework similar to Sinatra that we had used with Ruby a few weeks ago. It provides a server to send HTML to the browser and gets us back to making RESTful routes again similar to what we did with Sinatra and Ruby. This was a morning code along and by lunch, we had a bank application working and another part of the built cathedral.

The afternoon was another code along this time introducing us to WebPack with gives us the ability to develop our apps in a Test Driven Development (TDD) way which we have not had since we took JavaScript into the browser. Great to see and brilliant to be able to have facilities to test code as we develop again. We revisited the water bottle app from a couple of weeks ago and were able to call methods on the water bottle and have them provide data into the browser. Another part of the cathedral added.

Homework was to refactor the bank application from the morning and pull all the web browser view code out of the main app and into its own constructor. Also, expand the bank and add facilities to add interest to all bank accounts via the push of a button. If only it were that simple. Each button press adds 10% to every bank account.

Tuesday morning lesson and we were introduced to Mongo and NoSQL. Mongo is a database add-on for JavaScript and NoSQL is as the name suggests no SQL. It is a JavaScript alternative to reading and writing data to a database without the need to create SQL queries and tables. Instead, data is stored as documents and as JavaScript objects meaning that you can use plain JavaScript to manipulate the data. Brilliant and if I'm honest seems much improved from the SQL that we used with Ruby and Java. In the code along we added a Mongo database to our bank application and were able to make the data persist, so should the app be shut down and started the data would be pulled back from the database, so all those 10% button presses from the day before are still in the bank accounts.

The afternoon's lab was hard! We were split into pairs and were given just over an hour to create a Bucket list application, where we should pull counties from the countries API, select them add them to a list, and persist them in a mongo database. So all the countries you want to visit in your life would be developed as an application and persisted into a database for retrieval later. We were to regroup back in class at 16:00 and go through what we had developed. A very frantic programming session followed and we managed to get the data from the counties API, and populated a list with selectable buttons (all 196 of them) and at exactly 15:59 we had our data saving to our mongo database. MVP met. Homework was to expand on the bucket list app and add some CSS to make it look good in the browser.

I can't say I did much of it as the two days had been intense and covered a lot of coursework. I spent the evening going through the class notes. Oh, and Mongo NoSQL was the last part of the Cathedral. We now have all the lego bricks to make a full-stack JavaScript web application.

Wednesday morning and apparently yesterday's hour lab is normally a full day lab… interesting… so that is how we compressed the week. No matter this morning was a quick lesson in using Git and Git hub in groups and how to manage to branch and merging code so we can develop our project applications in our teams.

Mid-morning we were split into our teams and given our project choices. I'll leave next week to cover the project in one hit.

We had an excellent lesson in the afternoon from CodeClans CEO Harvey Wheaton on Agile and Scrum methods. Interesting and inspiring and did make me chuckle when the Waterfall software development described as so out of date and only used by old-fashioned software companies and it had been a good 10 years since it was last seen in a company.

So this week has been long and covered a lot in quite a short space of time. Defiantly needing the two-week Christmas break now hopefully a chance to revisit some of the lessons from the past 12 weeks and practice more of what I have been learning. Oh, and I need to catch up on my evidence for my Professional Development Award. It's been falling behind somewhat.

Thanks again to CodeClan and instructors, have you really crammed so much into my head. And well done to my fellow Cohorts you are still brilliant and I'm still enjoying the journey with you guys. Can't believe after Christmas we only have 3 weeks left!

<shout out unknown artist for the pictures which I snapped in the cafe on lady lawson street, Edinburgh>