Thomas Parrish started programming in high school, then attended UNC Greensboro where he pursued a degree in Mathematics, but also rediscovered his love for computer science. When one of his instructors at UNCG, Andrew Jensen, told him about an opportunity at Coder Foundry, Thomas got involved first as a student and then as an instructor. After teaching a few cohorts, Thomas tells us about the advantages of the bootcamp model, discovering his teaching style, and his plans at Coder Foundry going forward.
Tell us what you were up to before you started as an instructor at Coder Foundry.
I first discovered programming during my sophomore year of High school. I was lucky enough be able to attend a vocational high school that offered several technology courses, including computer science and graphic design. I spent the remainder of my high school career immersed in my computer science courses, learning C++ with Windows API ( so it was very old technology). When I graduated in 2001, and I went to a local community college for about a year before I started working in customer service.
In 2010, I was a shipping & receiving manager for a local toy company and I decided I need a career; I was tired of having little job stability in jobs that did not stimulate me intellectually. Because I had a little bit of background in community college, I transferred to University of North Carolina at Greensboro, where I pursued a degree in mathematics. During my tenure at UNCG, I was lucky to receive an NSF funded Math-Biology research fellowship which heavily involved computer science. Our study involved using automated video processing to study animal behavior.
It was through that research experience that I realized that, while I loved mathematics, my real passion was computer science. Unfortunately, by the time I realized that, I was a senior a semester away from graduation, so changing degrees wasn’t practical. Instead, I decided to stay one extra semester, and get a minor in Computer Science. It was during that time that I had the pleasure of taking several of Andrew Jensen’s courses. It was through him that I found out about Coder Foundry.
Coder Foundry was exactly what I needed. I felt very comfortable with my skills in programming and my ability to solve problems, but I had little formal training and no insight into what a career in computer science was like. In short, I felt terribly unprepared for a job. I’d never heard of a programming bootcamp before, but the description fit my needs exactly. Paired with the tremendous amount of respect I had for Andrew, well, for me there was never really any choice. I had to go. I called Lawrence Reeves the afternoon I discovered Coder Foundry, and three months later I sat down for my first day of the course.
So you actually did the course before you started mentoring and instructing?
Yes. I was hired as an instructor a week before the bootcamp ended.
Once you found out about Coder Foundry, did you look at any other bootcamps?
I felt confident enough with Andrew and at the time, they were doing all of their own financing and the terms were really good. There was zero risk for me, and I was sold from the beginning.
What was the difference between taking Computer Science undergrad classes and the bootcamp?
They can’t compare! I learned more in the three months that I was at Coder Foundry than I did taking CS courses for a year in the institute.
At a university, you don’t have the focus of being there 8 hours a day, so there’s the immersion aspect of it. The whole time I was at UNCG, I found courses I really loved that I’d spend 20 hours a week working on, but there was always another course I had to take that was distracting me. I was always juggling a course load.
Just having the focus on programming and the structure was a huge benefit for me. At Coder Foundry, our work is entirely much project-driven. Each student is given the same project specifications, but the products are clearly individual. You have this experience of building an application from the conceptual and design stages all the way through deployment on Windows Azure. That was something I’d never done before.
What was the process of getting hired as a mentor and instructor?
Prior to making this transition into CS, I had planned to get a PhD in mathematics with an emphasis on undergraduate mathematics education. I’ve always been interested in teaching, and I’m particularly interested in how people learn very conceptually difficult, abstract topics; whether or not there are different ways to approach teaching so that subjects that are traditionally difficult for the majority of students can be made more approachable to the average person. When I came to Coder Foundry, I told both Lawrence and Bobby that a teaching position would be really appealing to me.
Did you do additional training to become an instructor?
Since I went through the course myself, I already had first-hand knowledge of the course materials and pedagogy. Being a cohort of the inaugural class, I was able discover a lot of what works and what doesn’t before I ever accepted the position as an instructor. The students in my class played an active role in helping to refine the curriculum. We also spent a lot of time teaching each other. All of the students in my class were independently motivated, and actively explored topics that extended beyond the prescribed course materials. Often times, one of us would come across a solution to a problem or discover a new feature of one of the two frameworks we teach, and come in the next day and teach it to everyone in the class. Of course, I also had several years of experience tutoring at UNCG while I was a TA, so I had a lot of the skills already.
I have spent the last two courses working during the day split between an active software development position and a mentor, and teaching a class at night. I’m really excited to take over teaching of the March 30th class as Andrew prepares for our coming expansion to Charlotte.
Can you give us a couple of examples of what you’ve changed since that original curriculum?
A month and a half into our course, Microsoft released an update to Visual Studio that included the release of ASP.Net Identity 2.0. We finished a project up on Monday, and started a new project Wednesday. Only the scaffolding that was included with the Identity 2.0 update was quite different. All of the sudden we had to learn the Identity models all over again. This is the kind of experience that accredited educational institutions aren’t equipped to handle. You can’t just alter the scope of a university course halfway through the course.
Another example is in how we’ve refined the resume and professional portfolio website projects, which is the first project the students do. We use this project to teach HTML5, CSS3, and Bootstrap, but it also serves as a potent marketing tool that helps us pitch our students to potential employers. During our curriculum review of the last class, I came up with the idea of teaching the students how to build their own blog, and incorporate it with their personal sites. This servers as our introduction to code first database design and implementation. It’s a very small-scale project but it also is real world example of something that’s useful that you might have to do.
We’re constantly tweaking the assignments for the students so that they can optimize their time here. We’re trying to make it so that every project or assignment that they work on and every bit of time spent coding is going to end up with a final deliverable product that they can use to market themselves.
That’s really smart to have them build their blog into their personal portfolio site.
We also ask the students to make a blog post once a week. This helps provide the students with an outlet to review their learning experiences, and it gives the opportunity for for potential employers to discover how our education model works, and how much it benefits the students.
Do you have an idea of your ideal student at Coder Foundry? Is there a type of person that you found really excels in the class?
Coder Foundry is definitely not for anyone who isn’t highly motivated and hard-working. It’s also not for beginning programmers who are still learning the foundations of software development. We’ve had people come from the very procedural mainframe background and most of them have struggles. The material is challenging, especially when it comes to AngularJS, and the pace is breakneck. If you fall behind in week one or week two, it’s almost impossible to catch up. You really have to be prepared to commit all of your time and energy, during the course and outside of it, for the duration of the twelve weeks.
When it comes to preparation, I think a good general rule of thumb is to have the equivalent knowledge of the first two to three semesters of a computer science degree. A typical degree path will have an introductory course that covers basics of syntax, compilers, working with an IDE, etc. The second semester is typically an abstract data type that covers how to construct and use many of the advanced data structures we use, but don’t really discuss in detail (like Lists, Dictionaries, Hash Tables, Stacks, Queues, etc.) A third semester usually covers more advanced data structures, like Graphs and Trees, and algorithms.
That’s not to say a formal education is mandatory. We have a couple of people right now who are self-taught and are doing really well in the course. However, they tend to have more difficulty with technical interviews, because their foundation tends to be a bit weaker. When you’re self-taught, you’re motivated to learn how to solve problems, not necessarily the theory behind how everything works, and so there tends to be gaps in that knowledge. That’s one of the things that we’re working now to address: students who are capable of taking the course but missing some of the fundamental stuff they need to really excel and get the job afterwards, how can we provide them with the individual resources they need to improve that.
What is your personal teaching style? How much do you let a student struggle before stepping in?
I think it’s really important to let students struggle a little bit, and then I try very hard to direct the student’s thought. If a student asks me a question, I might ask them 4 or 5 questions that lead them to the answer, rather than just telling them.
Learning this material for me was an exercise in self-discovery. A large part of the learning process was actually making connections and linking what I just learned to what I already know.
Are you still thinking about a degree in education?
I hope I won’t have to, since Coder Foundry really is the ideal job for me. It’s a very exciting opportunity to pursue both my passion teaching, and my passion for developing software. We’re moving to a two-instructor model, in which one instructor teaches while the other one acts as the mentor and then the next class they’ll switch places. During their time as mentor, our instructors actively work as a developer. That gives all of our instructors 6 months of development experience each year, in order to continue expanding their skill set and learning the emerging technologies.
I think that’s really important because technologies, particularly web technologies, are evolving at an incredible rate. In order for our curriculum to keep pace, our instructors have to be experts in the latest technologies. It’s very important to our students, too. We’re taking students that have master’s degrees in CS, students that are very, very intelligent. If we don’t know what we’re talking about, they see right through us. So it’s great that we have the opportunity to improve our skills and keep up with the growing marketplace without having to spend a ridiculous amount of time outside of class doing continuing education-type activities.
Is job placement emphasized in the Coder Foundry curriculum?
About 25% of our class time is dedicated to helping students to cultivate great job-seeking skills. Each Monday, we have mock interviews where the students demonstrate their work to our instructors. This gives us an opportunity to provide the students with feedback on how to interview; how to talk to a potential employer, how to direct and interview, how to respond to technical questions, how to redirect questions back to their personal experiences and work. nce. That’s something that’s not really mentioned heavily on our website and in our marketing but that is a big part of the skillset that you learn, and that’s hugely valuable for getting a job.
Is there anything that you’d like to add about your experience at Coder Foundry or bootcamps in general?
Every student tends to ask some version of the same question: most of this information is available for free online; why pay to learn at Coder Foundry? What we offer is the structure of a directed program combined with the expertise of people who are actively developing in the field.
When you have a question while you’re learning on your own, what do you do when you get stuck? Who do you ask? We have somebody right here that does this for a living. That’s a huge value and asset. We can teach you something it might take you a year to learn on your own, in just three months. When you factor in our job placement services, the interview skills you learn, and the personal portfolio we help you develop, I really do believe it’s an exceptional value.