I’m Caleb Hicks, a 27 year old junior high teacher out of Utah. I’ve been a DevMountain student for the past 10 weeks, here’s what I’ve learned.
A Non-technical Junior High Teacher
I’ve been playing with technology for 20 years. I graduated from Game Boys, home-built PCs, and Geocities sites to smartphones, a Macbook Pro, and Wordpress sites. I read TechCrunch, The Verge, and am a seasoned Twitter user. I’m the guy everyone turns to when technology fails them. Sound familiar?
So to say I’m entirely non-technical may be unfair. It just depends on the context. Neighborhood barbecue? Technical. Startup Weekend? Non-technical.
Why a Coding Bootcamp?
My high school C++ teacher took a new job right as we started digging in. I had done really well in the class, but the program was shut down shortly afterwards. Without a teacher or mentor to continue learning from, my interests shifted elsewhere.
I sometimes wonder how my life would be different if I had kept learning 12 years ago. So when one of my friends got involved with DevMountain, a coding bootcamp based in nearby Provo, I looked into it and decided to take a shot.
I had a few big questions before I committed to DevMountain.
- What would I be able to learn over 12 weeks part-time?
- Would I be able to build something cool?
- Would I be embarrassed?
- Would it be worth the price?
Now that I’m almost finished with my 12 weeks, I wanted to answer those questions for anyone else who has the same.
What would I be able to learn over 12 weeks?
DevMountain’s goal is to get students prepared to enter the workforce as Junior Developers. The first rung on a tall ladder to proficient software engineering.
I was under no illusions. A 12 week part-time coding bootcamp wasn’t going to put me on the same level as someone who has dedicated years to refining her practice as a software engineer. But having worked hard over 3 months, I’m able to speak coherently and work alongside many senior developers as I continue learning.
Specifically, here are a few of the things that I learned during the iOS Summer Cohort:
- UIKit. Putting labels, textfields, tables and buttons on the screen using storyboards and programmatically.
- Data Persistence. Saving data between app launches using NSUserDefaults, Core Data, and network services.
- Networking. Working with data through open APIs, accessing Twitter feeds, World Cup match info, or custom APIs using Parse, NSURLSessions, and AFNetworking.
- iOS Frameworks. Mapkit. Message center. Location services. Push notifications.
- Best Practices. Version control. Github. Unit testing. Project architecture. MVC. Pair programming. And more.
I am not a master of any of those concepts. But I have experience and exposure to every one of them and I can use them to piece together some pretty cool apps.
Think about what you can build on iOS if you can put stuff on the screen, save data, use network services, and command the iPhone’s capabilities for sound, location, or Bluetooth LE. All of a sudden ‘I have an app idea’ turns into ‘I have a cool project I’m working on’.
Would I be able to build something cool?
Once people heard that I was learning to make apps for iOS, I started to hear one phrase over and over again.
‘Hey, I have an idea for an app’
In mid-June, about halfway through the cohort, I heard the first idea that I thought ‘Cool, I could build that!’ So I did.
I want an app that only counts down my son’s piano practice time when he’s actually playing the piano.
My first app, Piano Practice Timer, went live on the App Store two weeks ago. It hasn’t been a smashing consumer success but it is a technical success. I built an app that recorded audio from the microphone, sampled it in real time, and counted down a timer if the sound was loud enough to be a piano playing. I built a persistent settings screen, with options for practice length, timer type, e-mail reports, and a feedback form. And I built it all from scratch.
Pretty cool for 6-8 weeks of experience.
Would I be embarrassed?
When I first looked into DevMountain, I was worried I would hold up the class. That I would get lost and be that guy who asks the dumb questions.
Turns out, no one in the class was experienced. That’s why they were in the class! So there was no reason to worry about being embarrassed or slow. Those of us who put in the time and effort got a ton out of the class, and no one was holding us up. Anyone who puts in the time and effort will get as much out of the class as I did.
Would it be worth the price?
Anyone who’s paid college tuition is used to spending thousands of dollars on education. Thinking back to my college experience, this is much better. A few reasons: I’m more interested in the subject than I am about American History. The teachers are full-time developers working in the field. The small cohort was a better environment for individualized learning. I had two great mentors ready and willing to help. And the curriculum was project-based, so we learned by doing.
Before I applied, my wife and I debated if the tuition was worth me finding out if I enjoyed software development. And I can wholeheartedly say that it was.
I introduced you to my first app earlier. I’ve spent the last month working on my second app. It’s called Wired In, a modern productivity tool for Mac, iOS, and your desk. I’ve built the iOS component with UIKit, Core Data, iCloud syncing, Parse, submodules, and Core Bluetooth to communicate with an RFDuino hardware prototype I put together.
It’s not quite ready to go yet, but I’m hoping to announce the app launch soon. That will be followed up by an announcement for the Wired In desktop sign, to let your coworkers know that you’re in the zone and to come back when you’re on a break. I’m thrilled with the feedback I’ve gotten so far on the app and sign. If you want to learn more or get an e-mail when we launch, check it out at We Are Wired In.
If you have any questions about DevMountain, the iOS Cohort, or my experience in a coding Bootcamp, send me an e-mail, hit me up on Twitter, or ask me to answer your question on Quora anytime. I’d love to hear from you.