My Swift Journey: Days 30 to 60
Last month I wrote a post, From Zero to Swift in 30 Days, about my first month learning Swift and building my first iPhone app.
This is a follow up about my progress over the next 30 days, along with some additional resources I’ve found useful.
Dedicate 3 to 4 hours each day for coding
I’m officially in the groove of coding every day and I love it. My best and most productive hours are from 6–10am. I spend this time adding functionality, changing functionality, fine tuning edge cases I ignored the first time around, really learning Auto Layout, and cleaning up my code.
Then I give myself the rest of the day to do other things, digest what I’ve learned and mull over problems. I can’t tell you how many “aha moments” I’ve had on my late morning runs after coding.
It’s fun to watch my app evolve as I continue to build upon concepts and learn more. Even though I have a million ideas for things to build, when I sit in front of my computer I give myself concrete and manageable goals. I break down features or functionality into small manageable tasks of that I can finish in about an hour, which feels great as I cross them off my list.
Keep Plugging through Stanford Swift Course
Paul Hegarty’s course, as I mentioned in my last post, is great but can be dense when you’re just starting out. I try to tackle just 1 or 2 lectures a week, taking notes and pausing the videos as I go.
The more the course has progressed, the more useful and approachable I’m finding the lectures. Rather than getting stuck on the homework assignments, I’m applying the concepts to my own projects — which means I’m highly motivated to get them right. Sometimes when I get stuck, I’ll remember something from lecture and I’ll go back to look at my notes or re-watch a segment.
Listening to someone literally talk about code as they type it, is vastly different than just reading tutorials and hugely beneficial if you don’t have exposure to this elsewhere.
Coding each morning is where I make my most significant progress, but after about 4 hours my productivity levels start to decrease and my mind starts to wander. So rather than force myself to keep sitting in front of Xcode, I’ve found other ways to stay engaged and get more exposure to Swift.
Similar to the Stanford lectures, hearing people talk aloud about Swift and iOS development starts to provide a familiarity to the language beyond just reading about it. In mentioned the raywenderlich.com podcast in my last post and I’ve also started listening to iOhYes and NSBrief. This spring and summer iOhYes did a series of shows covering concepts from the Swift Language Programming book by Apple. If you’re reading it (which you should be), listening along to the podcast is a nice way to digest and review the material.
If you’re like me and learning on your own, getting out of the house and talking to people is super important. In addition to some great meetups that I’ve found in New York (Brooklyn Swift Developers, iOSoho, CocoaPods NYC iOS Study Group), I’ve also started asking people in my network to connect me to smart iOS developers they know. I try to schedule 2–3 coffees or lunches a week so I’m expanding my network and getting better at explaining my goals and what I’m working on.
Documenting can sometimes feel like an annoying chore, but you will always thank yourself later for doing it. As I tackle more complex coding challenges, documenting helps me retain the information, identify patterns of learning, and serves as a handy reference in case I encounter the scenario again.
I recommend making your documentation pretty informal and lower any barriers to publishing. I use Tumblr, since it’s easy to set up a blog, easy to publish what I call “my notes”, and it’s public. Even if you think no one is reading, you never know when your solution might help someone or when someone else might help you by offering an alternative solution.
My first two “notes” are here:
- Unwinding segues to communicate between two view controllers in the same view
- Check for empty array of sections in NSFetchedResultsSectionInfo
I’m Available for Work!
Now that I’ve hit my first significant milestone of officially submitting my app, RoundTrip to the app store, I’m ready to tackle more.
I’m eager to learn faster by working with other developers and so I’m exploring opportunities for mentorship, collaboration, internships, and developer roles.
I have a lot of great startup experience as a product manager, project manager and user researcher and I’m open to trading my work in these areas for the opportunity to pair with smart mobile engineers.
If you have any opportunities to share, post them in the comments or reach out firstname.lastname@example.org My personal website is katiesmillie.com, where you can sign up to help me beta test my apps.