*First Blog* Starting Points and Summary
Here we are! A new blog and a fresh start. It's always exciting at the beginning of something, whether it's a relationship, a film...visiting a new place in the world. Anything really! One always has that optimism and sense of adventure.
In truth, this is not so much the start but a continuation. My last blog (Josh's Swift Journey - https://www.blogger.com/blog/posts/756758691918297531) had to be curtailed as I was unable to code during 'Learning From Home' - the lockdown period for teachers. With that much screen time per day, it was not feasible to get in any Swift time at all. When I opened the, now, old blog, I saw that I hadn't coded for four months. That's a hell of a long time!
So, as I've said a chance to start afresh, anew... It is important to remember that I did learn lots of useful elements of Swift before and no doubt, those will be back again at some point. At the same time, I have fresh eyes and mind and really need to start thinking bigger with this. This blog will be a bit different to the last one. The main difference will be the nature and style of which I write - more about my learning process and understanding rather than rewriting the content. It makes much more sense to focus on my live 'reactions' rather than just regurgitating what is already there. Of course, it makes sense to write out summaries in my own words, as that is a useful aid to memory.
This time, I really want to use this blog as a tool of talking aloud how my understanding is evolving and developing. It makes more sense that way!
Now, going back to my opening thought, the beginning is always exciting but in my experience, it can be a misleading sense of hope. Many times over with Swift, I've made 'new' starts with different courses, websites, instructors and I've kidded myself that it was all about finding the right tools. It is in a way, but it's more than that. It's my philosophy and honesty with what I understand; rather than plowing through, I need to take things slower to digest, try things out and make sure my understanding is far deeper. I happened to be talking to a friend who has recently started learning Swift; he recommended Courserea (it may be spelt differently) so I will check that out to see what the best avenue is. Anyway, stop getting diverted Josh! New beginnings are especially exciting as they seem to give credence that this time, things will go well. It's a chance to put the past behind and get old habits eliminated. Yet, it's more complex than that. In a new relationship, you automatically remember and apply lessons from previous ones. When you visit a new place, you compare it to others. What I'm saying is that although this is genuinely a new start, I have a schema of Swift knowledge which I will integrate what I will develop this time. I'm not a blank slate basically!
Where I am
In this blog, one thing I want to achieve is assessing my current skills. There is a website from Hacking With Swift I've used before. As mentioned above, I will type out my thoughts as I go along with this. This is what we in education call a 'baseline'. A useful level to compare myself to when I look at this again. Of course, the flaw is that the assessment will be more familiar next time. So I need to take that into account of course, even if the questions do randomise.
Another thing I then want to achieve is a plan and where I want to go this time with Swift. Before that, let's look at this 'baseline'...
There are 20 questions here for the 'novice' level:
https://www.hackingwithswift.com/test/be-the-compiler
I am not going to type out my thought process for this but will do so in regards to what I got right and wrong afterwards.
A thought during - some of these are familiar but a lot aren't. The familiar ones are not in anyway obvious So this is good - a clear, honest point of what I actually know!
10 out of 20 - a fair reflection! Let's now review each question...
1 - Ah the error message is #error, not _ERROR_. Fair enough!
2 - concatenating arrays, no problem
3 - string interpolation with a double and square root, all good
4 - UInt minimum value is actually 0. I thought it was the smallest negative number but isn't.
5 - for backwards loop - yes got this right as the code does not compile for these
6 - replacingOccurences method - this is a weird one I got wrong. The original string does not change apparently.
7 - Yes got this right as the class had no initializers
8 - closed range operator for a for loop, got it
9 - count for allCases in an enum - got it
10 - should have seen this. With the repeat it prints the value, then stops. So it went above 100.
*After 10, I am on 6 so far, so a pretty decent start!
11 - func of sayHello - all good
12 - changing value of a property from a struct, then printing original - all good
13 - silly mistake - it modified the names within the array, but was a constant. So code would not work.
14 - I wrote 'decimal' as the type but meant 'double'. Silly error!
15 - enum then a switch. All good.
16 - switch of int but not exhaustive/no default used. Got it!
17 - changing value of string, no problem
18 - willSet - made a mistake here of thinking print statement would trigger for initial value and the changed one. Just the changed one.
19 - argh another silly mistake! I missed the 'final' keyword before class. That means that you CANNOT then change a method or property in the inherited one. Actually it means that you cannot inherit from full stop!
20 - Ah I put as an optional but it's being unwrapped with if let, so just the value
*4 out of 10 for the second half.
Out of the 10 I got wrong, 3 or 4 were silly errors that I should have avoided. So actually my score of 10, having not coded at all for nearly 4 months is OK. I'll take it!
New Plan
Now I've established where I am, I now need to map out where I want to go. This needs to be looked at in stages really, WITHOUT specific time frames.
Stage 1 - relearning/recap
I have just signed up on Courserea for the 7 day trial. Over the next week, I aim to do an hour every other day. So by the end of the week, I will probably have completed most of the initial course I am looking at - introduction to programming
After this, I will look out for any other recap courses that I think are relevant. Swift will have evolved in the last few months. I also have RW.com, so will go over any courses from before that I feel will help.
Stage 2 - new learning
This will be whenever I feel ready to take on 'new' information. This could be a number of weeks but I can't say how long for sure. At this point, I need to feel secure again in the basics
Stage 3 - own projects
While learning and sharpening up on new content that comes along and feels relevant, I need to have a series of projects - all education-related as that seems to be an area that makes most sense for me to get into.
Stage 4 - branching out
At this point, I should feel like I am confident at what I have learned with Swift, have a number of own projects which I'm evolving/tinkering with. I can sign up to other sources, look potentially at how to do freelance and teaching, if I feel ready for this
Stage 5 - app developing
We're talking a way down the line here! But when ready, I will launch whatever apps I've made and be actively looking for projects I can get paid to do. This will be the beginning of easing away from my job and life and looking to transition into app development properly.
Stage 6 - full time app developer
Now we're talking maybe years...or more! By this point, I am ready to totally switch to careers. I will either be making apps, running my own company to teach others....basically I would have made it by now!
So, all deliberately vague in terms of what I want to achieve and - most importantly - no definitive time scale!
For now, I want to complete stage 1, using Courserea and anything else from RayWenderlich.com. Once I've done that and feel like I have a good grasp of the essentials again, I will do the assessment and see how I do!
This is enough for this first entry. Tomorrow I will begin the Courserea introduction course, going over those basics once again!
Comments
Post a Comment