So here's where the real stuff starts. The nerdy stuff. Introduction to programming.
After two weeks of relatively familiar HTML and CSS, we were about to dive into the backend and study a language I'd never seen before - PHP. Although some say that PHP is a bit of an old fashioned language, many of the biggest applications and websites are built with it - Facebook, Wikipedia, Slack, Wordpress...
By week three I really felt like I was getting into the swing of the early starts, and working together on Zoom. My cohort of seven other students had started to feel like real friends, and I looked forward to seeing their smiling faces in the morning. My face: less smiling, more puffy and bleary-eyed - sorry guys.
This time round, our sprint was three weeks long covering basic language constructs, control flows, data-types and data structures. We also looked at SQL databases, unit testing, coding standards, cyber security and object-oriented programming and completed our Scrum Master training. Then the following week we tied it all together in a project where we designed and built a 'collectors app' using PHP and SQL.
We also learnt about different tech 'stacks' (like LAMP), and installed Docker (a virtual machine) onto our laptops. It was good to start to get an understanding of all the terminology and buzz words I'd been seeing in tech articles and social media. I felt fully jargonised by the end.
I felt like my energy was really high over these few weeks - I spent extra time after class practicing and really felt like I had got into my groove and felt really positive.
We spent two days learning the ins and outs of the scrum framework that is widely used as a tool for project management across the development industry. Getting this qualification was one of the big things that attracted me to study with IO Academy. I felt like having the Scrum Master certification under my belt would really help in showing future employers that I am serious about understanding the way that the industry works. Also, I'm keen to explore the idea of a project role within a tech company and this gave me a really good understanding of what that job might entail.
The training was delivered by Aglify in Bath and it was really well done. The trainer incorporated exercises and games that broke up the more theoretical content. The Agile methodology made me really think about how much time lots of teams waste in more conventional workplace team structures. From now on, all our projects on the course will be run using Agile and we'll take turns to be Scrum Master which will be great practice.
Our PHP project was to build an app that connected to an SQL database. I built a 'collection' of wines by inputting data into MySQL, fetching that data and outputting it to the front end. I really enjoyed this project, and felt like I really understood all the elements I needed to make it work. I was determined to spend less time 'faffing' making it look good - which I succeeded in!
Here's a screenshot of mine - all the data is brought in via SQL rather than hard-coded, so any changes made to the database are reflected here live.
When it came to presenting it at the Sprint Review my final piece of functionality wouldn't work, but I had got it working just moments before! Frustrating, but I do understand that's a frequent curse of the sprint review.
1. Unit testing
I found unit testing one of the hardest things to get my head around in this module. It seemed to take almost as long to write and run the tests and it did to write the code itself. And it was pretty mind-bending to try and comprehend that you want your failure test to pass.
2. Comparing to the other team
When it came to looking over our projects at sprint review I realised that the other class at IO Academy had got a lot further than we had in extending the functionality of their collector apps. I had gone into sprint review proud of what I'd produced, but came out feeling a little despondent. It was a challenge to try and remember that everybody learns at different paces, and that comparison like that is never beneficial!
3. SQL syntax
SQL syntax is written in quite a confusing way, and was quite unlike any other language I'd seen before. It's almost written inside out, and doesn't flow in the same logical way as other code. Or, at least, my head didn't follow the logic! By the end of the sprint I think I had wrapped my head around it - to an extent - but it was a struggle.
1. Understanding programming concepts
2. Code reviews
In my last post I mentioned that code reviews were pretty tough. However, in this sprint they seemed much more manageable. I think that is partly because we were all building similar functionality, and there were fewer lines of code overall. The HTML and CSS in our portfolio projects were so different person to person, and generally so long, that it took a very long time to read and decipher. It felt a lot more natural this week!
3. Stretch goals on my project
We were asked whether we wanted to accept one or two 'stories' (big chunks of functionality) for our project. I chose to push myself and go for two. Although I didn't quite get them finished, I almost did, and if I hadn't got so tied up with unit testing I may well have done. I was proud of myself for nearly getting there!