It was just another hot Florida June, but there was something different I had been feeling. I couldn’t shake it… a compulsion to do something new, to find a new resource within to ultimately share. Having an affinity for electronics and having previously played with breadboards and circuits, I decided I’d make the leap I always wanted to pursue. I was determined to learn to code.
I never had a computer science background, but I felt a personal drive to learn the Swift programming language. I passionately began to research and set self-paced study goals as a side hobby after my work hours. Starting to learn to code is probably the most difficult thing I’ve done thus far. As of the date of this post, I am still a novice after six months of daily 2 - 4 hour study sessions. I joined online code communities like codewithchris.com and hackingwithswift.com.
Not satisfied at my progress I thought a more integrative learning approach would be helpful, so I enrolled in Ohio State University’s online “Getting Started with Swift” paid course. While reviewing the official Apple developer pages, I learned of a valuable educational opportunity. Apple sponsored grants to learn Swift at local community colleges, the list of colleges wasn’t large, but it was close enough. I found my way to a grant opportunity at Miami Dade college, I filled out the online interest form, not thinking much of it at the time. I was 2 hours away, I did not think I would be selected to participate. A few weeks after I endorsed my interest in the course. I was contacted by the college’s STEM coordinator. I was accepted to participate in the course and Apple’s grant covered my tuition. So many things had to happen for this opportunity to manifest. I took it as a sign from God, this was kismet. Yes, it was a long drive twice a week; a sacrifice I weaved into my already busy days, because I couldn’t let such a valuable experience just pass. I began the Ohio State course online in July, then the Apple sponsored in person courses in August. Things were swiftly developing! At times the breadth of the body of work I needed to gain an understanding of was very discouraging. It didn’t stop me. I just told myself, a favorite movie quote, “Big things have small beginnings.”
This required a paradigm shift on my part in terms of how to think. Abstraction was key because Swift is designed to neatly obscure the complexity of its code base. It's very hard to learn a topic in which you don’t need to understand the whole to begin to engage with it. I spent weeks on my own with free and paid tutorial videos and services, toying with the code until I decided to cast a wider net. I started to share my interest online; wherever I could. Paul Hudson, a well-known Swift educator's advice resonated with me when he said, "Read Swift, Write Swift, and Discuss Swift every day. I had a strong start that way.
In sharing my interest I found the Swift.org forum and began to read through the posts. Many times I wouldn't understand the discussions I read through. Many of them are very advanced, but I read them anyway and tried to research and understand them anyway. It was on this forum where I learned about the 2023 Swift Mentorship Program.
I was super excited to have been part of the Swift mentorship program 2023. I came into the program because I wanted to learn a new skill in coding. I have an electronics background and I have previously created prototype circuitry on a breadboard(hardware engineering) for both school and hobby. When I did that, the results were not something that could be shared. At the least, it was something that prepared me to think abstractly. Learning a programming language coming from almost no computer science background was tough. The body of work; that goes in a code is so overwhelming, every time I learned new terminology I was taken aback, always feeling like I hadn't yet scratched the surface of the various libraries; every new term branched out into many webs of functionality and intricacy. Given the difficulty I have to say, I don't know what drives the passion for Swift. I just wanted to learn it. Maybe to prove it to myself, that I could master a new skill. I think the initial interest came from the few Swift updates showcased at Apple's annual World Wide Developers Conference events.
Apple delivered Swift as an easy language that anyone can learn. I began searching for resources on the code base, half in awe, and half confused. The funny thing is, many of the tutorials and learning resources often stated, "You don't need to completely understand this right now, the understanding will come with practice." This was reassuring because of the mental gymnastics it takes to acclimate to thinking like a software developer. It was during one of these research moments when I came across the mentorship program.
I appreciate mentorships as a teaching tool and so I applied. I didn't know what to expect, if I would be selected to participate; if I'd make the cut considering my lack of any computer science knowledge. I was surprised to learn of my acceptance and pairing with @hborla, Swift Language Engineering Manager at Apple. I was in! Then I panicked and wondered, "What the heck am I going to discuss with her?”. I brought nothing! I understood Swift to be open source, but what does "contribute to the compiler" actually mean!? I wasn't a candidate to start contributing anything, and I learned that was ok. My mentor shared with me the mentorship program seeks to remove barriers to learning code and welcomes all. Her strengths were teaching the fundamentals and helping to break concepts down into focused and digestible bits.
Understanding that I was starting an upward journey; I did my best to come prepared with a selection of topics and questions I had come across in my studies. I made clear I would be asking some "stupid questions.", code kindergarten stuff. I sometimes felt out of my league, but there was constant reassurance, "Everybody has to start somewhere." I am ever so grateful for the time that was invested in my learning during our meetings. When our meetings began I was already in 2 college courses and one online bootcamp! So I was able to request some direction on the topics I was learning or discuss concepts I was having trouble understanding. I always felt about an inch tall having access and interfacing with someone of her position... that took a little while to fade. I guess it's because I admired her grasp of the knowledge and respected her role and her time. We got to work. I went through all my studies; working hard, I brought my successes and difficulties to our meetings. It was a lot of learning. It was difficult to figure out how to learn a topic that branches out into several more. I just had to remember to keep the focus tight and let the expansion happen naturally. Syntax, for example, just takes practice. Today, only a few months after beginning this journey, I have completed 2 of the 3 Ohio State courses, and obtained those certifications. More importantly I have also achieved a credential from Apple as a Swift Associate.
I am continuing in both the college courses for additional credentials as a Swift certified user. I look forward to building apps that might be useful in my primary job in the hemodialysis industry. Learning to develop means building many, many apps. You need to learn hands on. I’ll be on this journey for several
more months as I mature as an iOS developer, a creator of mobile user experiences I can share across the country! The potential to blend this new skill with my established role is very exciting! Much gratittude to all the mentors and devs that take time and help out the little guys!