*BONUS ENTRY* Year 1 Summary

Before I continue, and possibly finish Nick's Swift 5 course, I've realised that it is a whole year since I started my Swift Journey! I could trace this back further - to April 2015, when I got a Mac, Xcode and started learning Swift, or to December 2017 when I started creating this blog. Realistically though, it is really from June 2018 that I've consistently been learning how to code and developed my understanding of Swift. 

So, the purpose of this 'bonus' entry is to have a look over the last year, break down any particular achievements - partly for consolidation but also to show how far I have come. Let's go!

Start Time - 12:17

4th June 2018

So yes, this was the point where my renewed push to learn Swift really began. It was a re-signing up to Treehouse; for $25 a month, I would have access to any Swift or other courses. It made sense at the time, and in fact, it may be better to go for this monthly membership option, rather than slogging away with Angela's advanced stuff (no offence to her).

Here I learned about the history of Swift - that it was launched in 2014, took over from Objective C; it is always developing and makes sense to learn as it is the future. The next bits were all familiar at this stage but great to go over. The instructor - Pasan was clear and likeable.

14th June 2018

In the space of just ten days, with regular entries of pretty much every day (some days with two!), I had consolidated a lot of key concepts. By this stage, I was completing the work on functions. Prior to this, I had been learning about all of the fundamentals - variables, constants, types, operators, strings, arrays, dictionaries...the work with functions was a culmination of that as in this entry, we used a switch statement within a function, an array within a function and so on.

16th June 2018

So really, it was just 12 days to get to a similar point that I was when I properly learned swift before - in August 2015. It took me then around 4 months to learn the basics and some intermediate stuff. At this point in Pasan's course, I had covered object-oriented Swift with a rather laborious laser and tower example. The point about classes and structs is that it's much better to bundle together information, then create objects from these custom classes/structs, than it is to create endless variables or constants, or even functions.

Something that used to confuse the hell out of me was initialisation. For classes, you needed initial values, otherwise you would need to code the init part, to set them as self etc. This took some practice!

30th June 2018

Now, the next bit was much more technical - over two weeks, I learned about enumerations, optionals and protocols. I had several days gaps here and there, but still 9 entries! All of these make sense now, but still are vague as they haven't been used in as much practice as other Swift elements e.g. arrays or if statements!

The protocol bit was the hardest. The way I understood this in the end is encapsulating an aspect of behaviour. E.g. for a plane, you want to inherit just one behaviour from a bird - its ability to fly! You could inherit behaviours from other protocols too.

11th July 2018

After protocols it was building a simple iPhone App. Now this was REALLY simple; I remember it well! It was creating a 'fun facts' app, which I changed to F1 Facts. Essentially, it used randomisation and a simple function to generate facts from an array. I remember being proud of actually getting this onto my phone - the first time that had happened on my physical phone! There was also a bit about changing colour of background with text. Straightforward stuff and good to put into practice.

However, the next bit was Error Handling, which was dreadfully dull! This was the first time I actually felt a bit clueless and was unsure of what was going on. It makes more sense now - some if it is testing for errors; some is coding with the anticipation of errors that can be dealt with. At the time this was very difficult!

18th July 2018

So another project - Vending Machine App, then learning about Auto Layout. The vending machine project was fun in places but frustrating. Also there was a LOT that Pasan had to build in, so it was a bit strange just picking and adding bits to it. The auto layout bits were tricky and the programmatic auto layout bits almost nonsensical! Pasan even said that you will probably not need to know an awful lot of this...it was to make the point that ALL elements of a view can be programmed, rather than using the options on Xcode. I get that, but it seemed like a bit of a waste of time. At that point, I was feeling done with Treehouse - the quality had dropped off from Error Handling onwards. So I found what looked like a much better Udemy course (than the others I had tried before).

31st July 2018

Wow! This really was a productive an exciting time in learning Swift. Angela's course has proven still the best so far. In the space of 13 entries - on average one per day - I learned so much! The practical projects were great - the Dicee, Quizzler and Choose your Adventure ones in particular. Magic 8 ball too! Anyway, to actually put things like arrays, loops, functions, if statements into practice was fantastic. I spent a lot of time troubleshooting and figuring out what to do, which was a great learning process. I remember for the Destini (choose your adventure) challenge, I spent ages on a train to Eastbourne, nearly gave up, then it all made sense and worked! Definitely one of the most productive two weeks with so much learned. At that point, it just made sense to switch courses - I had bought one from Ray Wenderlich which was highly rated. This may have been a mistake as I was on a roll with Angela's course. But at the same time, it was useful to go over the basics...

18th August 2018

So several more days spent on Ray's course, and even more entries (15!), with nowhere near the same level of quality. The Bullseye app was fun, and I did end up getting a lot out of that, but the To Do List app was poor, with a different instructor and a lot of tedium. The last three entries I could see I was becoming increasingly frustrated, having no idea what was the logical thing to do next, nor any opportunities to use problem solving. I gave up at that point, frustrated that I wasn't understanding better.

4th September 2018

With the transition of coming back to Dubai and starting school again, I still managed to find time for regular entries. After a few days break after Ray, I went back to Treehouse and did 11 entries, approximately one per day. It was useful at first, having actual challenges to do. Then it started getting overly theoretical with no real coding challenge to apply my knowledge. The bit about APIs I gave up with, and have not been back to Treehouse since!

1st October 2018

This was a difficult, uncertain time for coding! I was a bit disillusioned after Ray's course and struggled to find anything for the next few weeks. It was however useful going over some 'easier' stuff - from Chris Ching, Nick Walter, EDU (though that proved completely hopeless!) and a couple of Angela's thrown in, from where I got to before. Ultimately, this was to prove to myself that I could cope with the content and managed to complete the challenges with few problems. So I guess this was more of a 'consolidation' time rather than anything new. I had just started learning about APIs and parsing from Angela when I thought I needed something pitched at an 'intermediate' level.

17th November 2018

Wow...the amount of time I spent on Bob Lee's course - 15 entries over 6 weeks! So not the most regular entries at this point. The content was becoming increasingly tricky though it was useful to go over and make sense of optionals, error handling and computed properties. So, this was a time to 'deepen' my understanding of those concepts. But yes, not a 'productive time'.

2nd December 2018

Well, here was a useful and productive time! In between Bob's course, I went about my first 'Own project' and created the 'How Many Letters' App! So proud of this, considering that I had a LOT of problem solving to do and logistics to figure out. But truly, I was so chuffed when certain elements came together e.g. getting the timer to work! Having the alert messages coming up, tracking the score...so many aspects to this. It is still a project that I am really proud of and has set the benchmark very high for own projects! I went back to Bob's in between until giving up with it - again, it was getting too technical. A similar pattern! Specifically, closures just became mind boggling and so theoretical that it put me off!

21st December 2018

One of my least productive times of all here. After Bob, I looked for another Intermediate course - this time one from Sandra L. No disrespect to her, but she was a hopeless instructor. The final straw was when I followed along with her 'Quiz' app, with separate buttons to reveal the next question and next answer...so un-user friendly and a waste of time! So, yeah - not the best use of nearly three weeks and 6 entries!

2nd January 2019

A frustrating time this. In some ways, it was fantastic to create a second project. The F1 Quiz was a great continuation from Angela's 'Quizzler' app; I integrated various concepts so it was a good combination of what I learned in her project as well as my own one. Ultimately though, it was frustrating as I couldn't get what I wanted - separate levels of difficulty to choose from. So lots learned even though by the end I was feeling deeply frustrated at the point of nearly giving up with it all!

21st February 2019

Well it was definitely the right move to go back to Angela! However, 18 entries in approx 50 days isn't a wonderful strike rate. Still, I covered a lot here. From the VERY START of her updated course! The first 10 entries were going over what I had done before, with her updated elements which made it worthwhile. After that I went deep into APIs, parsing, firebase, alamofire, JSON, CocoaPods... I wouldn't be able to do anything with it on my own, but the information is there!

23rd March 2019

So the third project again used some elements of what I had done before - timer was back, randomisation etc. Although this was a month, it was only actually 5 entries! I worked out also that I spent approximately 5 hours on the entire thing. So my rate of worked had dropped WAY off compared to what I was doing before Christmas. Still, great that I got this working. I also found a very easy way of adapting it to other operations or numbers - just a few easy tweaks of the code.

10th April 2019

Back to Angela's course, and the most recent point where I have studied this. It was again, very complex stuff - using Firebase to create a private messaging app. But cool at the same time. I was getting - again as last time - around one entry per week.

5th May 2019

Something that I realised I was not at all confident with (and still am not to be honest!) was closures. These came up in Angela's product but even in context, it was hard to make sense of them. So a couple of consolidation entries in quick succession but then a big drop off! I used Bob Lee's course again - which, I should have known was not going to help much! I picked up a few bits about closures but then decided to leave them.

3rd June 2019

So we've made it to the present! An embarrassingly long gap of a whole month meant very little choice of anything other than the dreaded 'reset'. I've done that before, many times over as you can see above. However, it tied in well as Swift 5 has recently come out; Nick Walter released a course on Udemy not long after this so it made sense to reboot! I did one, two hour solid entry for all the basic stuff. Then today I am going to focus on intermediate level.


And there we are! Something startling is how productive I was from June to October. After that, despite some flurries here and there, my rate dropped off hugely. So it's been four months of very regular entries, then eight of less regular ones! Overall, that's not a great record. The good news is, over Summer, I will be productive. And, I have a month still in Dubai before that to get some good work in!



Comments

Popular posts from this blog

*Xcode Project Entry 2* F1 Quiz - part 1

Angela Yu Course Part 10 (up to lesson 112)

Angela Yu Xcode 12 Course - Part 7 (lectures 74 to 79)