This month we had a chance to catch-up with Coding Dojo Chicago Instructor Fiaz Sami! Prior to Coding Dojo he was a developer for over 13 years, and an Instructor at Hack Reactor and Mobile Makers Academy. Read on to see some of his insights into the industry’s future and how to make the most of your bootcamp experience!
What is your background? How were you introduced into the tech/web development scene?
I’ve been a professional software engineer since 1997. I was first introduced to development in 1984 with MIT-Logo, a language specifically designed to introduce coding to kids. The distinguishing factor of MIT-Logo was that it was a language that was used to draw pictures on a screen. My first exposure to the internet was in 1994 during my junior year of college. The internet was a very quaint place and I immediately jumped into building out some HTML pages to make my presence known on the internet. This led to my first freelance contract out of college as a web developer for the University of Minnesota Alumni Association.
How did you pick up coding? Was it difficult to learn?
I would buy a book or two every year in high school curating a collection of valuable information. The worst part of learning to code in the 80s was that if you had a bug and your program crashed then your computer might shut down. Another difficulty was the lack of freely available compilers. I would have to go to the computer store and look for old compilers that were discounted by 90%. That meant I could walk out with a compiler for around $50. In general coding wasn’t difficult to learn because it was a hobby for me more than anything else.
Through your experience as a Software Engineer over the past 20 years, how have you seen the Industry evolve? What do you think will lay in the future?
Software engineering is becoming a very broad field as technology rapidly makes its way into every corner of our lives. We have yet to understand the full utility of what we currently have. You don’t have to look very far in the past to understand what this means for us today. Thomas Edison made the first commercially available light bulb in 1879. It wasn’t until 1917 that someone thought a light switch was a good idea! The light switch is something we take for granted nowadays as a sensible necessity. How many similar sensible necessities are waiting to be discovered when it comes to the internet?
I also see that you were an Instructor at Hack Reactor and Mobile Makers prior to Coding Dojo. What made you decide to move to Coding Dojo?
In early 2016 I decided to take a break from teaching and travel the world for a month. Upon returning I was contacted on LinkedIn to see if I was interested in teaching at CodingDojo. My first impression was how well the teaching culture was ingrained in everything we do here at CodingDojo. I met with Mike Bogdanski here in Chicago, and we instantly connected on the main mission of what it means to be an instructor at a bootcamp.
Can you tell us about the structure of CD’s curriculum?
Coding Dojo offers a unique bootcamp experience through its curriculum. We have a 14 week program consisting of four learning units. The first section consists of 2 weeks of the basics of how the internet works. This is prep work for all of the concepts needed for the remaining 12 weeks, which are divided into 1 month each. We cover everything you need to know about becoming a full stack web developer for a specific language/framework combination in 4 weeks. Then you get to do it all over again two more times applying the same concepts but to a different language/framework combination.
What is most impressive about the Coding Dojo’s curriculum is the focus on algorithms and algorithmic thinking. This occurs everyday, first thing in the morning for one hour. Algorithms are done on a white board in much the same way a job interview setting may occur.
What can students expect in the classroom? Can you run us through a typical day for your students?
The typical day for students starts around 8:30am. Students will spend about 30 minutes getting ready for the day. Instructors are usually present to answer any questions about the assignments the students were working on overnight.
From 9:00am to 10:00am we teach algorithms. All problems are done on the whiteboard without the aid of computers or the internet.
From 10:00am to 11:00am we will have either a very brief lecture combined with an open question and answer session, or we will facilitate a group activity to get the students collaborating on the core learning concepts.
From 11:00am onwards the students are focused on working through the course material on their own or in groups. Instructors are available to answer questions as needed. There are times when more than one student will require clarification on a specific concept. In these cases an instructor may hold a break out session, which is a very quick lecture intended to break down the concepts into the most basic elements so students can rapidly absorb the material.
CD has run a ton of successful cohorts - after working with so many bootcamp students, can you tell us what makes the ideal bootcamper?
The ideal boot camper is someone who has the determination to persevere when they are on the brink of failure. Students who are capable of facing their difficulties in learning in such a high paced environment are more likely to succeed than students who have some prior knowledge of coding. Many students who decide to undergo any bootcamp experience are usually looking to make a major life change, and this means they will have a lot at stake when it comes to succeeding. While absorbing the material is important, believing in oneself is equally important (if not more).
How do you assess student progress throughout the bootcamp?
We keep a very close eye on student progress throughout the bootcamp through regular code reviews of daily assignments, and testing at the end of each stack we teach. The code reviews are an important tool we use to determine if a student is developing a “coding style”. We usually see a definite inflection point during the second week of each month where a student’s code communicates that they are understanding the material, and more importantly, they are beginning to express their own style of how to execute their ideas using code as a tool.
What is the process if a student is really falling behind? Are people ever asked to leave?
The most important thing students who fall behind must understand is that bootcamps are by their nature very difficult. Students must first be willing to be compassionate towards themselves before attempting to push ahead. When a student falls behind it is best that they ask for help from their peers. The reason for this is two-fold: first it gives other beginners a chance to articulate what they have learned, and second it gives themselves a chance to learn how to be more resourceful with their cohort.
When it comes to absorbing the material students will eventually get it provided they persist. For that reason we don’t see the need to ask anyone to leave because they are falling behind. Despite the plethora of options available to programmers in terms of languages and frameworks, coding is still very much accessible. I’ve have yet to meet someone who is inherently not qualified to be a developer.
Can you share a favorite teaching moment or the best student project you’ve seen?
I have a front row seat to witnessing people recognize something in themselves that they didn’t think was possible a few weeks prior. I’m specifically referring when students demonstrate what they have learned when they form a team and deliver a project in one week. This is a special moment because students start talking like developers. Their productivity goes through the roof and the potential they present for their futures becomes obvious.
What is your personal teaching style?
I will allow students to discover things for themselves. I have to walk a fine line between knowing when to push students, and knowing when to give them space. As the weeks go on and as their understanding expands, I add a few more technical terms when talking with students so they grow accustomed to “talking shop”.
What do you think are some of the biggest challenges facing the bootcamp learning model and how did you overcome them?
The bootcamp learning model is something that is rapidly evolving. The challenges we had a few years ago in the industry are not the same challenges we face today. The idea has proven itself and it’s here to stay. I think one of the current challenges the industry is facing is keeping up with the educational demand.
For our readers who are beginners, what resources or meetups do you recommend if they're thinking about a coding bootcamp?
Startup and design meet ups are great places to start before attending a bootcamp. These are great networking events so they can build a better vision for what their end goals are. By networking with designers they can understand technologies they will focus on. It’s important for beginners to understand that attending a bootcamp means that they will be the developer on a project, not the entrepreneur and not the designer. Once someone is enrolled in a bootcamp then I would highly recommend joining various coding meet-ups and networking like crazy.
Online resources to learn how to code is also a great place to start to see if they enjoy the learning process.
A few good free online resources are:
- Coding Dojo Academy (http://www.codingdojo.com/academy)
- Coding Dojo Algorithm App (algorithm.codingdojo.com)
- Codecademy (https://www.codecademy.com/)
Do you have any other tips or suggestions for aspiring bootcampers?
Develop discipline before entering a bootcamp! This cannot be stressed enough. Coding bootcamps are nothing like high school or college.