Becoming A Developer: Week 11 (Planning)

Mitch Little
3 min readApr 17, 2018

--

Last week I focussed on studying new topics and revisiting previous ones such as concurrency, networking, and debugging. Since, I have still very much remained on paper in planning my approach to Project 6.

“Give me 6 hours to chop down a tree and I will spend the first four hours sharpening the axe” — Abraham Lincoln

One of the main things I have learned in this journey is the important of planning. My recent increase in efficiency just this week is manifested in the planning I did prior to this project. This is also at a vital period as I also have to factor in time for exam revision, and deadlines.

I’m focussing heavily on efficiency and consistency over the next month so I can make the most out of everyday.

This practice of planning I mention has greatly imrpoved over the last two months. No longer do I jump straight in to a project and come to a dead end or a blunt axe.

For project 6, my plan is broken down into a workflow / to do list predicated on the components and topics I think I will need to use. By creating a rough high level overview of what I need to do from start to finish, I not only have a good workflow and idea of what I should be doing but it also identifes the topics I need to sharpen up on. I can then take these topics and study and practice them in depth which in turn, expands and concretes my knowledge for the futre and also helps grow my ideas on how the app will actually work.

One of the maun topics I had always been hesitant to face was networking. It is inevitable I would have to use it as most apps connect to an online server. I think the way the networking layer is implemented in the Treehouse courses confused the matter for what it really is. I will definitely use their methods due to reusability but separating concerns with a separate downloader and client combined with the use of protocol, encoding, generics, and completion handlers added a lot of baggage when initially visiting the key componenets. Through Apple’s documentation, I simply practices opening a session, generating a task from a request and url and parsing the JSON data received into types or throwing the relevant errors. Taking this basic approach took down my mental barrier to networking and now I feel comfortable to start focussing on SOLID principles and reusabilty.

After this planning, things can not unexpectedly not work and it is important to bare this in mind. A flexible human brain can look over small details that Xcode will not. Over time, I think this process will become much more accurate as problems become more easily anticipated.

Overall however my plan gave me a good start to and in just two days I built the model layer, the user interface, the networking layer, and populated a UIPickerView through its data source and delegate methods. Considering the last project took me over a month and a lot of stress — did I plan? — Nope.

Of course I will have to reiterate in the future as I mentioned but I’m seeing much stronger progress.

I have learned a lot, thought and studied deeply, planned well and had a great start to the weak. Breaking the project down like I have with this one really took away that initial overwhelming feeling I always have when starting a new project.

“The last 10% of effort will provide 90% of the upside” — Steve Bartlett, CEO Social Chain

I’m approaching the end of this academic year now and I feel it is easy to lose focus with the Summer months around the corner. As long as I keep my effort and efficiency high I think I can balance my iOS progress, uni coursework, and exam revision well and see some positive results throughout this week and the next month.

Any feedback is more than welcome and feel free to message me!

If you find these posts in anyway helpful, you can help others too by pressing the clap button!

Social: Instagram, LinkedIn, GitHub

You can learn to code and join me on Treehouse here 😊

--

--

Mitch Little

Documenting life and progress. iOS Developer. Passionate for new experiences mainly through food, people and places.