My Background

I’m a teacher by profession. I teach business, marketing, and technology to teenagers in Lehi, Utah. I’ve run a few websites in the past, and done some Wordpress consulting on the side, but prior to this summer my only real coding experience was a C++ class in high school that went from awesome to painful when the teacher took an industry job midway through the semester.

I often wondered what different paths my life would have taken if that teacher had stuck around and I had continued to develop my embryonic programming skills.

With development bootcamps sprouting up around Utah, I felt like that would be the right way to catch a glimpse of my missed opportunity.

I enrolled in the Web Development course through DevMountain for my summer break, but when they announced the iOS Course and I learned that my good friend Joshua would be writing the curriculum for it, I jumped at the chance and transferred.

I had done some work that ended up in the App Store before. I founded Lift Media, a niche third-party ad network with Joshua in 2011. I also collaborated with him on a couple of apps in late 2011 and early 2012. But my contributions were always web-related.

Class started 9 weeks ago, and today my first app went live in the App Store.

Piano Timer - A Noise Activated Piano Practice Timer

The first 4-6 weeks of class were great. Hard, but great. The first and most important thing we learned was how to learn the iOS frameworks.

We worked on class projects, with great sample code and solution comparisons. We learned UIKit, data persistence, basic MVC, Core Data and networking. But what I remember most from those first weeks of class was learning where I could go to learn more and turn my ideas into code.

My first real experience building something extracurricular was building a simple little pomodoro app. It had started as a class project, but I built it up into a working pomodoro with project time tracking using Core Data. It was spaghetti code, and terrible, but I was proud of it.

I never released it (story for another post). But I was hunting for something new to build alongside the classwork. I asked around for ideas at a family reunion when three people told me independently that they wanted an app that would help time their kids’ piano practices. Not just a straight timer, but one that only counted down the time when the piano was playing.

My gut reaction was ‘not a huge market, but definitely an interesting project for my current skill level’. So I got to work.

Building the App

I looked around online, I learned how to sample audio from the microphone for specific decibel levels, I built my basic timer view, and I had a label updating with the current decibel values before I went to bed that night.

‘I’ll have this done in a week!,’ I thought. Naïvete at it’s finest.

I kept at it. Refining my Timer class. Adding a settings page. Persisting those settings for each launch of the app. Building my own Onboarding Controller and views. Adding reporting and timer options. Putting in hours of learning, experimenting, fixing bugs, refactoring, and then doing it all over again for each change and new feature.

After a couple of weeks, I had something ready to submit to the store.

The Value of a Boot Camp

A quick aside for a moment. As I’ve gone through the bootcamp, I’ve been asked if I was really learning how to code in 12 weeks. The answer is no. You can’t master programming in 12 weeks in a part-time night class.

The value of the boot camp is building a foundation, working with other students on the same level, having access to mentors who can help you along the way, and most importantly… spending your own time outside of class to hone and develop those skills. You get out of it what you put into it.

Let me say that again. You’ll get out of a bootcamp what you put into the bootcamp.

Don’t expect to show up, have the instructor’s words wash over you, and start cashing checks from your high paying development job. It won’t happen. You’ll get frustrated and drop out. I promise.

What About Swift?

I was sitting with a talented group of iOS developers when Apple announced their new programming language, Swift. Initial reactions ranged from wild excitement to soul-searching introspection. One of them said:

My entire career just got deprecated.

I wondered the same thing. I was 5 weeks into my fancy iOS bootcamp! Was it all wasted? Should I toss everything out the window and start over with Swift?


Swift is cool. I’m excited to do more with it. But Swift is the language for the next 30 years of Apple. The language of the past 30 years isn’t going to just fade away into irrelevance in the next 12 months.

As I’ve learned while building Noise Timer and my current capstone project… iOS development isn’t about the language. It’s about the frameworks. It’s about how Cocoa works. The language is an implementation detail. The most important things I learned still apply whether it’s Objective C or Swift.

App Review

Back to Piano Timer. I had the skeleton of an app that I felt was ready to submit to the app store. But as I got ready to submit I realized that I didn’t have an interesting user interface, a logo, an icon, or a written description for the app.

I was running out of time I could spend on this side-project app, because I needed to get to work on my capstone project. In a world where Delight is in the Details, I was hesitant to push it live without spending more time on the little things. But, real artists ship, and it was time to move on to my next project. So I quickly put together the missing pieces, uploaded them to iTunes Connect, and submitted the app.

That was about a week ago. This morning the app went into review, and without a hitch was processed to go live on the store.

I’m happy to present my first iOS app, Piano Timer. Check it out in the App Store.

So What’s Next

I’m nose-to-the-grindstone on my capstone project, which I will be presenting during Demo Night at the Adobe Building in Lehi next week. DevMountain has an Eventbrite page set up for it, it’s free to attend, and I’d love to see you there.

I’m not sure where iOS development will take me in the future. But I’m thrilled with my experience so far. I’ve learned a lot. Most importantly, I’ve learned that development is something I truly enjoy. And even though it’s 12 years after my first failed development experiment, better late than never.

If you have any feedback, questions about how I learned, DevMountain, bootcamps, or anything else, I’m @calebhicks on Twitter. I’d love to hear from you.

I’ve been on the outskirts of web development for the better part of 15 years. I’ve built websites, I’ve managed servers, I’ve done side projects. If you take the entire population, I’m probably in the 98th percentile of experience with web development.

Which basically means I don’t know anything.

I’ve spent a decade and a half dipping my toes into this practice. And now it’s time for me to dive in. Sink or swim. And I’m writing today to invite you to join me.

The DevMountain Web Core boot camp begins on May 6th, promising to introduce students to building their own web apps using Node, Express, Angular, etc. The 12 week course takes place on Tuesday, Wednesday, and Thursday nights from 6-9pm and Saturdays from 9am-2pm.

12 Intense Weeks of Pure Code

This course isn’t for those who want to dabble or experiment. It’s a 12 week boot camp. Sure, the classes are at night, so it’s convenient for those of us who have full-time jobs. But if all you do is show up to class, you won’t get much out of it. Every bit of additional effort will pay huge dividends.

As a teacher, I get summers off. So this is a great time for me to really get deep into this stuff.

It’s not cheap. But it is.

Tuition starts at $3900 for the web core, or $4500 for the newly announced iOS core. This isn’t a $39 ebook or $25 video series. There are teachers, mentors, a professional learning network to continue learning once the class is over. There is face-to-face discussions, code reviews, and Q&A time. And as a reward for those willing to make the cash and time investments required, DevMountain has a 95% placement rate for those wanting to get development jobs.

You know what the average junior developer in Utah is getting paid right now? $3900 is a great investment.

So are you leaving teaching?

Not now. No. While the 2x salary is intriguing, I enjoy what I do too much to bail on it right now. I wake up excited to go to work. I get to work with kids wanting to learn technology and entrepreneurship, two things I love. I’m working on a Digital Citizenship program to get kids more involved with creating, connecting, and sharing online. I get 2 weeks off for Christmas, a week for Spring Break, and 2.5 months in the summer. I get to make a difference every day.

I’m not ready to give that up.

So why are you doing it again?

I want to learn this stuff. I want to be able to build functional prototypes of ideas I have. I want to get to know more people in this space. I want to be able to tell students more about what’s out there. Who knows, maybe I’ll end up teaching it at the junior high sometime 1.

You Said ‘Come Learn With Me’…

Yes. I learn better when I know people who are in the trenches with me. So I want anyone and everyone I know to come join me at DevMountain this summer. We can learn to build stuff together.

Oh, and if you use this special link to register, I get a little bit of a kickback on my tuition, and I’ll use the savings to take us both to a nice dinner:

Register for DevMountain

Maybe you’re already signed up for DevMountain, but we don’t know each other yet. We should meet up! E-mail me, hit me up on Twitter, let’s do lunch. I’d love to know someone before the first day of class.

  1. We already have an awesome Computer Science teacher at Lehi Junior. But he’s super old and bound to retire any day. Hi Mike!

Basecamp is an online project management tool built for collaboration. It’s been around in various forms for the better part of two decades, and it brings discussions, to-do lists, due dates and calendars into one place.

I had looked to use Basecamp for use in a couple of school projects, but kept putting it off because of the price. I came around after using it on a side project with a close friend who paid for it, and promptly started the 60 day free trial to see if it would fit for my work at school.

I was elated when on Day 55 of the trial I noticed that Basecamp had announced a free plan for teachers. I would have happily paid when the trial ended, but I was excited I no longer needed to. When I e-mailed to get on the teacher plan, they gave me 100 simultaneous projects, normally $100/month. Thank you Basecamp!

How do I use Basecamp as a teacher?

Collaborative course planning.

I work with other teachers in the district and state to collaborate on outlines, discussions, activities, and projects. We outline the semester, discuss how things went as we teach them, and we can look back at the archived project to review how it all went when we are planning again.

Student collaborative group discussions.

Each group in my Teen Entrepreneurship class gets their own Basecamp project where they can collaborate. They discuss their projects, assign each other to-dos, and build their businesses using Basecamp. All the while, I can monitor and participate in their progress, without standing over their shoulders. This is HUGE for young teenagers who can’t drive yet. And it makes me look like a true pro when parents can take a look at all of the work their students do for my class.

Plan conferences, service projects, and other events.

I run a chapter of FBLA at the junior high, and we use the heck out of Basecamp. We use it to plan and document regular meetings, service projects, our regional and state leadership conferences, and our business plan competitions. Each committee uses it to plan business tours, socials, and more.

Assign roles and responsibilities for our student store.

My Intro to Business class runs a student store at the school. We sell candy, drinks, t-shirts, etc. There are a lot of moving pieces. I assign weekly jobs using the Project Templates feature, and students get reminded the day before that they’re due to work the next day. The manager uses his Basecamp account to make sure the cashier and other employees get everything done. The cashier submits daily cash counts on Basecamp. I’ve run the store with and without Basecamp, and I definitely don’t want to go back.

Organize basketball practice.

I am the assistant coach for the 9th grade basketball team. The head coach works in real estate, and isn’t at the school during the day. So we plan practice, review games, and send announcements using Basecamp. Most of this could be done over the phone, e-mail, or text message. But it’s nice to have a home for all of our discussions, practice plans, and gameplans. It’s cool to look back at how much we did all season. We just used Basecamp to pull off our end of year banquet as well.

Work with TAs.

I have 3 TAs that help me get everything done at the school. They help prepare lessons, grade projects, and even teach some sections of class. We use Basecamp to keep track of what’s been done, and what still needs to get done. Indispensable.

When I started writing writing this post, I didn’t even realize how many different things I use Basecamp for. But I can definitely say that it’s become an essential part of balancing all of the different things we try and do at the school. I’m 100% confident in recommending Basecamp to all teachers. And with the new way that Basecamp is offering free plans to us in the profession, it’s an absolute no-brainer.

Local news organization KSL reports on the controversy surrounding the UDOT commercial that played during the super bowl:

Despite the intended message urging people to use their seat belts every time they get into a car, a number of people have criticized the commercial, saying it is not appropriate for children to see.

Pushing you to have a tough discussion about the realities of seat belt use with your 4 and 7 year olds is exactly what this commercial was designed to do. If your child is upset about it, have the discussion, and decide as a family that this isn’t going to happen to you.

I had 2 good friends die from car accidents while I was in elementary school. Children dying in accidents without seat belts1 is a harsh reality, and I applaud anything that increases dialogue and awareness, especially if it ends up saving a life.

We really wanted to spark some conversation between families and maybe inspire someone who hasn’t worn their seat belt to start doing so.

Brilliant. Mission accomplished.

  1. Either the child himself, or other people in the vehicle, as this commercial discusses

No talk, all action. Launch a startup in 54 hours.

That’s the mission of Startup Weekend, a global event focused on building communities of entrepreneurs.

My Startup Weekend Experience

I went to my first Startup Weekend in November hosted at the beautiful Weber State Startup Ogden extension. I worked with an awesome team, including Joshua Howland, Adam Harris, Corey Woodcox, and many of the great people at HQ. We worked on Statiq, helping people build beautiful, ridiculously fast websites using static blogging engines.

In one weekend we were able to build our first two themes, a beta web interface for managing your site, an iOS app for the same purpose, and a syncing engine for hosting your static HTML blog on AWS using nothing more than text files inside of a Dropbox folder.

And, in an eye-opening launch1, we sold over $1000 worth of memberships our last evening of the weekend.

Startup Weekend Provo

I met so many cool people and had such a great time at my first Startup Weekend, I decided I wouldn’t miss another one if it were nearby. So, even though my (for another 72ish hours) unborn son will be only 3 weeks old, my wife has graciously given me permission to head to Provo for the event.

If you’re interested in meeting other awesome people in the Utah technology or startup communities, you can do much worse than Startup Weekend Provo. I’ll be there. A couple of my students will be there. And so will a hundred or more other really stellar people from around the state.

My Personal Invitation

I’m going to pitch my first idea this time around. Everyone that attends gets the opportunity to invite people to their project, and the top 10 or so projects continue working through the weekend. I don’t know if my idea will be one of those 10 that get selected, and if not, I’ll find something else cool to work on.

I’ll be pitching my idea for an education tipline. You know those banners at football games that say ‘Text 55555 for assistance or to report an incident’? That, but for middle and high schools. I live in this world every day, and while it’s not the next billion dollar darling, I am confident that there is a problem worth solving here, and I have all of the connections to local prospects so that we can build the right solution.

If you’re into, or interested in learning about any of the following, I’d love to see you at Startup Weekend:

  1. Backend development (Rails, Django, Node, whatever)
  2. Frontend design (Photoshop, Bootstrap, jQuery, HTML5, CSS3, etc)
  3. Twilio
  4. Stripe

And even if you aren’t, or you want to work on something else, you should come out to Startup Weekend just for the experience. It’s a great time with great people. And if you’re into tech or startups, I can guarantee an experience you won’t forget2.

Early Bird registration ends today. It’s $49. It goes up to $75 up until the event begins on February 20th. Find out more details or get your ticket at EventBrite.

If you’re going, interested in going, or have any questions before registering, shoot me a message on Twitter. I love hearing from and working with other tech and startup people in Utah.

  1. Build something, launch it to the world, and have over 100 people from New Zealand to Japan give you money for it. This was my first hands-on experience watching this happen in one evening.

  2. Not affiliated, just a fan.