So what is this 80/20 stuff?
The 80/20 rule, also called the Pareto principle or the "law of the vital few", is simply the general belief that of the given total of 100% of "stuff", 20% of that "stuff" makes up 80% of what matters in the common use of that "stuff".
This answers the age old college question of, what is the minimal amount of study can I put into getting a B- grade.
I had heard of the 80/20 rule before but it was really put into perspective while reading 'The Four Hour Body' by Tim Ferriss who is a self-scientist, author, blogger, philosopher, fitness guru, and efficiency addict.
But the point here is really to get the most bang for the buck.
To find the least of something that you can get the most out of.
To spend the least amount of time to get the most benefit out of anything.
Which brings us to the 80/20 with iOS Swift.
What's the Plan?
My goal here is simple. I am trying to max out my learning of the Swift programming language across all of the native frameworks but there are nearly 2000 classes each with their own set of delegates and functions so I need to figure out what is the 20% of the swift language to master the core of the frameworks quickly.
Stack exchange is a gauge of conversation where the mass of questions and solutions and should give us an idea as to what is being talked about. The other reference is BitHub.com which contains projects published by huge number of programmers. By cross referencing these two, I can determine two things.
1) What classes are used most frequently used and chatted about? (the 20%)
2) What classes are the easiest to implement? (frequently used but not chatted about)
3) What classes are trouble? (frequently talked about, but not used in many projects)
And from this I should not only be able to identify what to learn first, but also prioritize in that 20% what are the easiest to learn and burn through those fastest.
What's the first step?
So the first step is to get a list of those classes and put them into a database. I will explore the classes to narrow down where to start exploring but at some point I might do an 80/20 of each class but to start, just the classes.
And here is where we get that list.
After I copied all of the classes into a spreadsheet and cleaned it up, I migrated it to a MSSQL database where I will add to the data. I did this because it was a convenient place to query these classes from and update those records with data from Github and Stackexchange when we later add the fields to store their data.
So by now, I have all the Classes and the framework they are a part of, and we have it stored in a database that we can use when getting data out of the GetHub and StackExchange APIs.
Next up, I need to test the API's on GetHub and StackExchange to see what I can search for and if the results are particularly useful.