Austyn graduated from MIT and worked for Microsoft for three years before joining the Software Guild as a Java instructor in Louisville. She is now dedicated to enhancing the tech scene in her hometown, and loves passing on her passion for coding. Austyn tells us about the different coding skills you gain at college versus a coding bootcamp, why she uses llamas as examples in her teaching, and how the Software Guild continually iterates on the curriculum.
What is your background and experience before you started working at the Software Guild?
I was at MIT from 2001 to about 2006 and graduated with a computer science degree. It was a pretty awesome experience. I got into computers because that's what I really enjoyed the most there. When I graduated I got a job as a software developer engineer at Microsoft on the PlayReady Team and moved to Seattle. I did a bunch of test and architecture design for their DRM manager Playready, stuff that worked in Silverlight and Xbox.
I worked at Microsoft for about three years, when my mom got sick, so I decided to come back home to Louisville. She's doing great now, but at the time it was a fairly scary diagnosis. When I got back, I was self-employed for a while. Then I got a job at a shipping tracking company called SMC3 where I worked on their Java web services and applications.
I also started to get very involved in the Louisville tech community. I worked with local meet-up groups, I helped found Louisville Makes Games, I volunteered at CodepaLOUsa, and worked with Girl Develop It Louisville.
I had started looking into mentoring with Code Louisville, but they weren’t interested in server-side/back-end mentors at the time. Then I heard that the Software Guild was looking for Java people, and I love Java. I was not entirely sure about switching to full-time teaching because I love development, but I really wanted to help grow our local tech industry. So we started talking, and they made a good case, so I started there in August 2015.
Did you already know how to code before you went to MIT? Had you taught yourself?
Yes. I knew some HTML, and I had fiddled around on my TI83 as a kid – I used to program choose your own adventure games. But I didn't know Java or anything like that. When I got to MIT I was a little intimidated at first because you get all these people who've been coding since they fell out of diapers. But most of them were always very interested and happy to share their knowledge so that was good.
Having done a computer science degree, did you feel you needed to be convinced of the effectiveness of coding bootcamps when you first heard about Software Guild?
Not exactly. I've met people who are threatened by coding bootcamps, which I find strange because we're in an industry that also loves the stories of the self-made coders who have taught themselves.
It's a different approach from college, and doesn’t produce exactly the same result. While I love my breadth of knowledge from MIT, as a junior developer, I didn't have as many job-ready skills. We didn't really cover source control, or MVC models. We spent a lot more time on algorithms, how to build an operating system, and fundamental architecture. That gives you a nice understanding of how the pieces fit together and the problem-solving attitude. But at the same time, you don't use any algorithms research for at least the first five years of your career.
What’s your specific background in Java?
I worked in Java WebServices at my last place, some of my own personal projects have been in Java, and then we also covered Java at college. I’ve worked in a few other different languages too. We used mostly C at Microsoft, with some .Net and SQL Server, and then I used SQL Server when I was self-employed, and SpringMVC and MySQL Server at SMC3.
In your role as the Lead Java Instructor, how do you contribute to the bootcamp curriculum and how do you iterate and improve on it?
We're constantly going back and forth on what the new things are coming out because there is almost always new tech. We ask ourselves “is this something that we want to include into our curriculum?” Because we only have 12 weeks, we know if we introduce something new, we will have to take something out.
We also always talk about what are good examples that have worked in one class that we want to incorporate permanently into the curriculum. We have our curriculum director who is the main manager for all that, then we work with Learning House to finalize everything. But we constantly read over, edit, write, and can always propose new ideas.
Do you ever come across situations where you noticed something about the curriculum while you're teaching and feel that you have to alter or change something on the fly?
While presenting the curriculum itself, we always have slides and notes that are set in stone regardless. Every once in awhile, we'll change it up a bit. We have personal discretion as to what examples we give. The long-term goal for the bootcamp is to develop full-stack web applications with MVC and a CRUD application. I generally talk a lot about llamas because my family has a farm with a small llama herd. Those come into a lot of my personal examples which is a bit different from the other instructors! But the general trajectory stays the same.
What’s your personal teaching style? Do you prefer to do more lectures or let people get stuck and then help them?
I like to do lectures just because I want to make sure we have a visual representation that we can refer back to. I like to get students involved, get them up in front of the class, draw on the whiteboard, and make sure they're talking to each other. We have warm-ups most mornings, then depending on how much trouble the cohort is having with a concept, I might go back and do more on that concept. In the warm-ups we do some pair programming, pair design, and individual implementation.
The hardest thing when I first started teaching was getting used to leading students down the hard path first, before showing them the easy way – because you really want to make sure they understand how something works. If you can't understand why it's working, then when it breaks, you're not going to understand how to fix it.
We also want them to learn how to ask the right questions. We have a question template which says "Tell me what you expected to do, what you're actually doing and how that's different from what you expected it to do.” You don't have time to sit there and get stuck on a problem for hours.
Are you the only instructor teaching Java or you have TAs who help you as well?
I'm the only Java instructor here in Louisville. And then we have one other .NET instructor here. We're only two cohorts here. Akron has a few more instructors each and the Minneapolis campus has three main instructors – two .NET and one Java.
How many students do you usually have in the class or cohort that you're teaching at one time? Where do they come from?
Here in Louisville our average is between five to eight people at this point. We've not crossed the double digits. It's always really good. Unfortunately for me, because Java is not the most popular language here in Louisville, most of them end up going back to where they came from. It's always a bit sad. We have a lot more local students taking .NET but we have a slightly higher .NET job percentage here in town, so most locals end up going .NET side.
What hours do students usually put in each day and each week?
Class time is from 9am to 4pm or 4:30pm every day except for weekends. Typically I see students put in at least 15 to 25 hours during the week.
Do you guys give assessments or tests to see how students are progressing through the course material?
Yes we have several. We have a mastery project in week 5 where students show us that they've mastered a lot of the language specifics, structure breakdown, problem-solving techniques, and how to develop a console application for that. Then we move into web, and work on individual mastery projects for the MVC breakdown, where students can demonstrate their front end skills, and make websites interactive between the server side and client side. Then there is also a database modeling project to show they understand how to structure and connect databases.
The last portion of the bootcamp is a team capstone project where they design and build a full stack application from scratch in teams. They have to use Agile development methods, set up sprints, have an iteration plan with their user stories, and get that approved.
What happens if students do the mastery project, but they're not getting the material?
It depends. We've had some students who just aren't interested in doing the work in which case we have to talk to them. Students must pass a professionalism and a communication component to be able to graduate. As long as they are in good standing in that respect, we will continue to work with them – so they can come back and repeat certain aspects of the course. Students can work with me or one of the other instructors to make a structured plan of what they need to work on in order to graduate, and perhaps work on an individual capstone project. As long as students do that and continue to be professional, continue to communicate, and ask questions effectively, then we'll work with them on campus until they are ready to graduate.
How are you are approaching job placement at Software Guild?
For the first eight weeks we encourage students to just concentrate on the code – if you learn it, jobs will come. Then once they have a certain amount of mastery, and can verbalize their understanding about what's going on, we have employment network managers who specialize in helping the students judge their job trajectory. If they love front end more, let's look for those kind of opportunities. If you're loving backend more, we’ll help you find that kind of job.
We also have a job fair in week 10 where companies and recruiters come on site to talk to the current students. Last time we had some employers come in to help students with mock interviews. In the last few weeks, I start asking students more technical interview questions, because knowing the tech and being able to explain the tech, are two separate skills.
We keep in touch with students as they start looking at different jobs. I try to make sure they know, especially in the first couple of years, that while money is great, a mentor and a great junior development program in a company is worth its weight in gold. That's going to be the best payoff for them.
What’s the tech scene like in Louisville? What sorts of companies are hiring developers?
We have several. UPS, Zirmed, Papa John's, Humana are our big ones. There's a growing startup scene. SMC3, where I worked previously, ended up hiring one of my first graduates and loved him. We have our fingers crossed because Google Fiber is looking at our city, so we’re really hoping that will open in the next 18 months
What sort of roles are students prepared for when they come out of Software Guild?
We aim for Junior level web developer type roles. Depending on their passion about certain things, we'll also counsel them and have them work towards specific jobs like front end. But our main thing is to get them job-ready for junior level web development, which provides them a larger versatility. With most juniors, you're hiring them for their passion and quick learning skills, not for their backlog of experience.
Who is the ideal student for Software Guild? Are you looking for people with a bit of experience or what kind of attributes?
A little experience helps, because the more understanding you have coming in, the more likely that you can concentrate on higher level concepts and learn new languages. The main skills needed are problem-solving, pattern matching, identifying common elements, being able to break down large problems into smaller problems, then being able to solve those. Being able to put in a lot of effort but also knowing when to ask for help. Being able to understand your own pace requirements, and being able to take care of yourself. I have a lot of people burn at the candle at both ends. You can only do that for three or four weeks before you just hit a rock wall.
I don't think experience is necessary. I've had people who come in with next to no experience, but they're really passionate, so they've done great. That's the other thing – being excited enough to identify new tools and then going, "What else can I do with this?” You don't want to just follow a pattern. You want to sit there, identify the pieces and figure out different ways to use these tools.
How does the application and the interview process work to make sure that these kind of students are going to get through the program?
First of all our enrollment team starts talking to people. We have a test for applicants which tests pattern matching and problem-solving skills, and some basic math-based stuff. That’s just to indicate aptitude, it’s not necessarily a cutoff. After that they have to write an essay which is graded by all of the instructors. Then there is a phone interview if we really want to talk about what the applicant’s motivation is and why they want to do this program.
After that, there is the intro to web development pre-work that they have to complete before they can actually come to the in-person cohort. It’s good because it gives them an introduction to what coding is like, problem-solving and hitting deadlines. Throughout the pre-work they have access to a chat room with all the instructors and TAs. After the pre-work, some of them come and do the full program, but others realize they don't like sitting in front of the computer all day. And it's good to have that happen before they get in person because that's awful to have people hate it once they get here.
What resources or meetups do you recommend for aspiring bootcampers in Louisville?
Everybody here in Louisville is pretty excited about anybody who shows up to a meetup. It's okay to go and meet people and ask questions because if anything, people here in Louisville love to talk about tech. Even if you've never coded you can just meet really passionate people.