That Magical First-Time Feeling of Coding Your Own Thing!
Tags: beginners, programming, swift, ios
Published: 2023-08-27 17:12:30

## Summer's Gone!
I'm back to teaching algebra full-time. So I need to get more disciplined about time spent learning, which also means writing more new DEV posts - I put it on my calendar! I've been pushing ahead as fast as I could while time was my friend this summer. Here's what I accomplished...

**Udacity iOS Development Course:** Made it 80% through; Completed 3 out of 5 major projects.

**[100 Days of SwiftUI](https://www.hackingwithswift.com/100/swiftui):** I started this free program (highly recommended) despite advice not to learn both SwiftUI and UIKit at the same time. So far, I feel like I'm doing fine. Made it 35% through.

**[Flock of Swifts](https://www.meetup.com/a-flock-of-swifts/):** I joined this online Meetup group and have attended nearly every Saturday morning for two months. I barely understand a thing they say, but I love hearing them talk Swift. They've been very generous helping me with my capstone project for Udacity...

**TardisCalendar:** That's what I'm calling it for now. My mom's temporal lobe epilepsy makes regular calendars pretty much meaningless to her. Hopefully this app will help her navigate days and weeks. I've made a good start, which brings me to... 

## That Magic Moment
I'll just copy this from my journal with some editing...

July 24, 2023 at 5:50 PM
Something happened yesterday - I was working on my mom’s calendar app. I had already created a background that represents days and nights with vertical light and dark stripes. The question was, could I place date labels so they would line up correctly?
 
I needed to be able to...

- Create a view in SwiftUI. 
- Use ForEach to incorporate a list of views stored in an array.
- Work correctly with dates and times.

1st breakthrough - working with dates. It actually took a lot of research to figure out how to use `calendar` to initialize a date, how to format a date in text, and most crucially, how to switch between `Date` and `Double` types in order to calculate ratios. I'll post a whole article on this soon.
 
2nd breakthrough - defining subviews and incorporating them into the main view. This is something I literally just learned about in 100 Days of SwiftUI, exactly when I needed to know it. Serendipity!

3rd breakthrough - how to place a view in a specific location on the screen, accessing screen dimensions with a geometry reader. I looked that up on advice from the Flock of Swifts group.

Next - figuring out where to put what. 

I spent about an hour coding with that as my goal. Xcode threw errors at me left and right, but I understood them and easily made corrections. I did what I thought was needed without looking anything up. I hit run and held my breath. 

Date labels sprouted onscreen in all the right places! They stayed with the days they belonged to when I zoomed in and out! This was exactly what I was going for!

This was my proof of concept! Now I know the calendar I've been picturing in my head is something I can actually make for my mom. I teared up, picturing her using it.

In the span of an hour, I defined my own piece of work, figured out how I would do it, coded it, ran it, and it worked! 

It still feels a bit unreal, but I know I've passed a threshold - from purely learning to applying new skills in a purposeful way. I'm feeling confident and competent. That moment yesterday was the first time I really felt like an iOS software developer!   

## How About You?

There's an actual coder emerging from your learner self - I know there is! Have you felt it yet? Don't let that moment pass without marking it. Milestones are worth savoring, celebrating, and sharing!

So please share! When was the first time you felt confident and competent writing your own piece of code?