Aaron Brager is a seasoned iOS Developer who gained notoriety by contributing extensively to the Stack Overflow community. Now, he's the iOS Course Director at Bloc, an online, mentored bootcamp with courses in web and mobile development. We talk to Aaron about his role writing and developing the curriculum, how he finds excellent mentors for Bloc students, and his passion for accessibility features in iOS apps.
Tell us about your background and how you got involved with Bloc.
I’ve been programming since I was a kid in several languages, mostly as a hobby. When the iPhone came out, it made me excited about programming in a way that I had never been before. I really liked the idea that you could carry around what you create and show it to people.
I started coding professionally when iOS 6 came out. I spent three years as an iOS Developer at Sprout Social and deck5 software. I really enjoyed the community of people, and tried to contribute to that by writing answers to questions on Stack Overflow. Bloc and I found each other on that site. I enjoy working with, developing, and mentoring people, so it seemed like a great opportunity to take what I’d been doing for fun and turn it into a full-time job.
Are you mentoring with Bloc now, or focusing on the curriculum as a whole?
I get an opportunity to work with the students sometimes and I have one student right now. Most of my role, though, is writing and editing the curriculum, collaborating with the mentors and hiring mentors.
What are you looking for in a mentor as you’re hiring?
They should be a senior level developer, so I ask highly technical questions that students probably won’t actually ever get into. I want to make sure that the mentors we’re picking are people who have gone really deep with the material, and that students won’t ever hit a ceiling where they accidently run into some area that the mentor doesn’t know. I want the mentor’s knowledge to be way beyond what the course covers.
The other thing we look for outside of technical expertise is mentoring experience. I look for people who communicate well and are empathetic. The best mentors remember how vulnerable and frustrating (and thus emotional) learning to code can be. They should also be friendly and approachable but also direct and challenging and are going to follow up with students and help them achieve their goals.
You don’t want a mentor to let you slack through the course; you want a mentor to push you.
How deep does the Bloc iOS curriculum go right now?
We have a big focus on covering patterns. We go through a lot of different technologies and frameworks but throughout the course, we highlight the 5 or 6 different patterns that Apple uses over and over again.
We make sure that students understand these patterns so that it becomes easy to open Apple’s documentation and learn a new framework quickly.
We teach these patterns by having the student build different types of apps. By the end of the course, the student will have built a few simple apps like a calculator and a web browser, an Instagram app, and three others of their choosing.
How much is the curriculum tailored to each student? Could a student work with a mentor on things that aren’t involved with the iOS curriculum?
Yeah, absolutely. The first third of the course is called the foundation. It’s highly directive: we tell students what to do and explain what they’re doing as they’re going through it. Then they ask their mentor questions and work on their assignments with their mentor. That part is less flexible.
The remaining two thirds is extremely flexible. It’s project-based, and much less directive. We have a library of different projects from which a student can choose. It’s meant to emulate what it’s like to work as an iOS developer where you get requirements and specifications, maybe some wireframes. The mentor can help tailor these projects to the student’s specific goals. This customizability is one major advantage Bloc has over many in-person camps.
The final project is totally customized: the student works with their mentor to decide what they want to work on. They write their own requirements,make their own wireframes, and build their own app from scratch.
How many mentors do you have in the network for the iOS course right now?
I’m guessing about 25. I’m really focused on providing quality and availability. I want there to be an excellent mentor available for students at any time. We have people around the world who speak different languages. Although the course material is only in English, we have a few students who speak to their mentor in other languages.
Is there any personalization as far as matching mentors with students or is it a random process?
Right now that’s optional when a student enrolls. Students can go through the mentor profiles and pick a mentor that they like. If students want, we can have a conversation with them, discuss their needs and preferences, and narrow it down to two or three mentors for the student to pick from.
Are most of the students looking for jobs after Bloc? Are they career-changers?
Most of our students are looking for new jobs but there’s also a big chunk of them that are looking to start their own company, and a growing percentage of companies that are sending their current employees through Bloc in order to expand their employee’s skill set.
If somebody’s looking to change their job, does Bloc help facilitate that in any way?
We have a job prep and placement program. At the end of the course, I email the mentor and ask if they would recommend a student for this phase. Students who show up to all their meetings, get their projects done, and put in a lot of work will a lot of additional support and guidance from Bloc.
It usually takes people 1 to 5 weeks to complete, depending on how much time they have. We help to build their LinkedIn and GitHub profiles, give them feedback on their resume, and do a bunch of practice interviews with them.
Our goal is to practice every part of the job interview process, from the initial emails to receiving and accepting an offer letter. They’ll have prior experience to rely upon, so they’ll be more confident during the interview process.
Is the iOS curriculum all unique content that you and your team have created or are you curating content from around the internet?
Our content is all unique. It’s written by our team, mostly by myself, Stan (our Android Director), and Christian (one of our senior engineers). Mentors will contribute to it as well when it needs some kind of improvement.
We also provide a curated list of excellent resources on the Internet. It could be tutorials, manuals, a great section on questions and answers, links to forum posts, stuff like that.
During the Foundation phase, how does it work logistically? Are students assigned exercises to do during the week, and then they meet with their mentor?
Each checkpoint teaches the student a new skill and tells students to complete certain exercises. The assignments build on those skills by telling students what to do but not how to do it. Assignments get more challenging as the course progresses.
We start with a really basic introduction to the tools they’ll be using. So the first is Bloc itself - we talk about checkpoints and assignments. The second is Xcode, Apple’s development environment for iOS. Then we cover GitHub, how to get and edit the source code, and how to sync that back up to GitHub when you’re done.
Then we go to the basics of coding in Objective C, which is the primary language used in iOS app development. We give assignments during these checkpoints - for example, the students are given broken code and they have to fix it. We have two checkpoints on Swift, which is Apple’s new iOS development language. The first one is a quick review of everything they’ve already learned in Objective C and shows the counterpart in Swift and discusses some of the ways in which the codes behave differently. Then the second checkpoint is all about brand new features in Swift; there are things that you can only do in Swift that you can’t do in Objective C.
One thing I’m really passionate about is making iOS apps accessible for people with disabilities. The Bloc curriculum has some content around how to make your app work for the blind or the colorblind or people who have some physical impairment; maybe they only have one finger or maybe they don’t have hands. We go through some of the different disabilities that developers and designers often forget about. We talk about ways to test your app and make sure there’s ways to use it to get to these different features if you have these different disabilities; then you’re not accidentally excluding people.
What is an example of something a developer can do in Swift but not in Objective C?
The most common example is something called an “optional.” Swift optionals are a safer syntax for checking whether an object is created successfully. You can chain optionals together in Swift in one long line of checks and find out whether everything worked the way you expected. In Objective C, this is not built into the language so you can do those checks - and you often should - but the language doesn’t force you to. The chaining reduces the number of lines of code, it makes the code safer, so it’s more succinct and your app has fewer bugs in it.
What do some of the apps look like that students build?
The first two are really simple. The first one is an alcohol calculator and it converts alcohol content between beer, wine and whisky. It teaches students how to show information on the screen, how to make buttons and sliders and basic controls and do basic math.
The second app is a web browser. It teaches the students about how to connect to the Internet, build custom user interface controls (in this case, a toolbar), and a few other iOS design patterns.
The last one is a much more robust complex app which is an Instagram app that connects to Instagram and downloads images. You can take pictures, crop them, zoom, and apply filters. You can also save pictures, read comments, like posts, and more.
What convinced you of the Bloc education model and drew you specifically to Bloc?
Before Bloc I was a mentor at Mobile Makers, a classroom-based iOS bootcamp. They have great content, and I knew how rigorous the material needs to be to get students to learn. I was initially suspicious about Bloc because I thought it might not be rigorous enough. Boy was I wrong.
Bloc courses are about 450 to 500 hours, which is way more content than many bootcamps. We see what students struggle with and what they accomplish. We’ll take anybody who's willing to learn as long as they have a computer and an internet connection and desire to learn; we believe they can learn to code just like anybody can learn a foreign language. We’ll put in the time if you’ll put in the time.
What drew you to online education or remote education in general as opposed to working on an in-person bootcamp?
They all have their pros and cons. There are tons of people all across the world who aren’t in a city that has a bootcamp and I think it’s really important to have options for everybody. Some people can’t afford or don’t want to quit their full time job. It’s almost impossible for an in-person bootcamp that has the overhead of hiring full-time staff or leasing a property to provide the flexibility - both in scheduling and in tailoring lessons for students - of an online bootcamp.
Additionally, there’s saturation in a lot of markets like San Francisco and New York. It’s almost impossible to find a developer who’s looking for a job and a lot of companies are turning to remote work as a solution to this.
Do you do training with the mentors that you hire?
We don’t have a formal training process. If there’s a mentor who has a knowledge gap they can look through our content and I’m happy to talk with them or set them up with another mentor if it’s something they want to learn. For the most part, the mentors are already coming in with expert level knowledge.
Are you hiring for mentors right now?
Yes, we’re always taking applications.