NEW: Learn to build amazing SwiftUI apps for macOS with my new book! >>

Programming as a Hobby

Forums > 100 Days of SwiftUI

I have a scientific background (neuroscience and medicine). I have never taken any computer science courses in college, but I taught myself how to program in Objective-C on Xcode a while ago. I developed a few little apps but got stuck on a big project and then had to drop due to time contraints. I just got a new iMac and in the last week have started 100 days in Swift UI and have completed day 12 and all the checkpoints up to 7 without looking at the hints. A lot of concepts from Objective-C work have been really helpful for me and the way the lessons are presented seem very practical and helpful.

Overall, by no means I am a professional developer but is it realistic for me to continue to progress with the goal of developing a few amateur apps? (I have idea for an app to catalog my books at home, a pong emulator, and ultimately a program to do a baseball scorecard during a game). This is all just for fun for me, but who knows if it may open some doors for me in the future.

Do you professionals think this is realistic for me (I likely have no more than about 5 hours or less a week to devote to this)?

1      

You are perfectly suited to be a Swift programmer.

Much of programming is collecting and analyzing data. With a background in neuroscience, you certainly can describe how thoughts are processed and stored in the brain. More importanly you understand how new memories are formed for future recall. Programming for iOS might be similar. You use many different parts to ingest and sift data. Eyes: Cameras, Ears: Microphones, Touch: Screen, barometer, altimiter, gestures; Nutrition: JSON Decoding. There are many parallels.

The declarative models used by SwiftUI to create user interfaces, coupled with the Model, View, View-Model architecture may require you to unlearn some Objective-C memories. But if you keep up with 100 Days of SwiftUI, your brain will be re-wired before you know it.

Furthermore, @twostraws lays the groundwork with simple examples, then moves to more complex examples, then moves the goal posts again with more clever applications of extensions, enumerations, and other constructions. At each step your neural paths are reinforced with previous knowledge, with allowances for updates where you will value the benefits of a newly introduced topic. Perhaps this is similar to a first-year anatomy course being the ground work for year two and three courses which challenge the some of the earlier lessons. At some point you'll enter rotations, and watch similar videos online from other developers. Mark Moeykens, Coding with Chris, CodeSlicing, Karin Prater, Stewart Lynch, CS193p, and more. Like a rotation, you'll see different aspects of SwiftUI coding, perhaps also see how the same problems were solved using different protocols. (combined medical/ swift pun!)

I think one of the challenging dimensions of being a second career iOS developer is being clever enough to solve a problem using the existing catalog of parts (i.e. Swift programming APIs). After all, in the medical field you know all about lungs, tracheas, nostrils, and septums. But are you ever called on to design a new, untested human breathing organ? When dealing with respiration, you pretty much stick with the original design.

With programming you have all of the parts in SwiftUI's version of Grey's Anatomy, but are free to build what ever you wish. Some designs are elegant and pure. Others are Frankenstein-ish. But that's the fun.

1      

I'm a hobby programmer myself. The only difficulties I experience is the following. As I don't have as much time as a full time developer you projects take significantly longer. So my problem is if f.e. I start a project in March/April I ususally in the middle of a project when WWDC takes place in June. So I'm unsure to adapt my current projects to the tools and toys or should I continue. :)

But you really don't have to worry. You just need more time to finish your projects.

1      

I'm not a professional myself, this is a side thing for me, and the farthest I've gotten so far is Day 40, but I have already written several apps that I've sideloaded on my iPhone through Xcode. One is a dice game, like Yahtzee, that rolls dice, has animation, computes the scores, and saves high scores.

The first "app" I wrote was just some code in an Xcode playground that went through an array of the presidents of the US, and generated a print out of random presidents, without repeating any, and their corresponding number. I copied the printed information into a document and printed it out to quiz my child on the presidents, either by number or president. I rerun the playground whenever I want a new list. I am working on turning this into an actual app, not for the App store but for my own purposes.

You also sound like you have more programming experience than I did when I started, so start making apps.

1      

Long before I was a professional programmer I was a hobby programmer. I am now retired and I'm still a hobby programmer. The whole point of programming, for me, has always been to make the device do the thing I want it to do, not what someone else imagines I might want it to do. It seems to me that this is appropriate for everyone. Do not allow yourself to be discouraged by any imagined gatekeeping -- this is totally something you can do, and something you should feel free and even encouraged to do!

5 hours a week is enough to do some fooling around with, and sure, it'll take a very long time to build something huge and complex. However, with practice comes efficiency. And high-level languages like Swift and frameworks like SwiftUI let you do a lot in just a little code.

I find that if I come back to some code after I've been doing something else, especially something complicated, it can take me a while to restore my mental context to be able to make any real progress. If you find that happening, may I suggest keeping a narrative programming notebook? I keep a notebook where I talk through what I'm trying to build, and I find that reading it helps me regain that context quickly.

4      

Thanks so much for all the feedback, sounds like it is certainly realistic for me to play around with this and see where it goes!

1      

Fellow hobbyist here.

I had all the time and resources I needed to learn programming and software design in the late 00s when I was enrolled in a university curriculum that combined computer science and economics. But despite the amazing resources the university had, it was all very uninspiring - like a premade career path to churn out blue collar coders for the corporations to gobble up. So I dropped out after a couple of years without too many finished courses under my belt.

I always thought programming is not for me, that I'm not fit for it mentally, that I'm too stupid to get it. Slowly going through 100 Days of SwiftUI has completely changed my perspective on programming and myself. I have a very clear goal: an app for a specific use case to make my own life easier. It's what keeps me motivated. Instead of striving for a degree and a high-paying job, I want to do this to express myself and my interest in computers.

Full disclosure though: I just took a 10 day break for health reasons. Now I'm anxious about how much I have forgotten. :P

If making an app is something you might enjoy, give it a try and keep learning it whenever you can. Don't worry about whether it will open any doors for you or not, especially if you're doing OK financially. Too many things in our lives are measured for profitability and utility.

Learn for the sake of learning and enjoy expressing yourself. It's good for your brain and it gives you a sense of fulfillment. This is something I learned from my grandfather who passed away in September. He was a self-taught hobbyist clocksmith.

1      

Hacking with Swift is sponsored by RevenueCat

SPONSORED Spend less time managing in-app purchase infrastructure so you can focus on building your app. RevenueCat gives everything you need to easily implement, manage, and analyze in-app purchases and subscriptions without managing servers or writing backend code.

Get Started

Sponsor Hacking with Swift and reach the world's largest Swift community!

Reply to this topic…

You need to create an account or log in to reply.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.