DEV Community

Steve Brownlee
Steve Brownlee

Posted on

I teach the vocation of software development to hundreds of people each year, Ask Me Anything!

Top comments (12)

Collapse
 
isas1 profile image
Mr.I

Who do you teach? What're the most and least interesting parts?

Collapse
 
stevebrownlee profile image
Steve Brownlee

I teach the following main languages/frameworks.

  1. Client side foundations (HTML, CSS, VanillaJs, React)
  2. Python/Django server side foundations
  3. C#/ASP.NET server side foundations
  4. Data relationships/SQL

Most Interesting

The most interesting part, by an order of magnitude than anything else, is the people. Every cohort is filled with 27-30 humans from a dizzying array of backgrounds, ways of thinking, and expectations. Nearly all of them have near-zero technical capabilities.

Coaching them through the painful process of their brains getting re-wired to think like a software developer is rewarding beyond description. It's 6 months of frustration, joy, panic, successes, tears, and laughter. You can read my The Best Day of our Lives article to get more on that.

The second most interesting part is seeing the impact that Nashville Software School is having on our community. As a 501(c)(3) non-profit, we see ourselves more as a community service than anything. We're in this to grow developers from Nashville for Nashville. The demand for software developers here is booming, so let's grow our own.

The largest (unforseen) impact is that we've redefined what a Junior Developer is for the community. In the first few years, employers were wary because they were used to juniors from the university system. Those graduates required a significant investment in on-the-job training for what they were needed to do. Now, employers know they can hire from NSS and get someone who can contribute to the code base within a week or two, once they are familiar with the system.

Now employers have very high expectations for our graduates, which has the natural side-effect of us having to continually improve our process to ensure the highest quality possible.

Least Interesting

I have yet to run into any aspect of this job that I despise. This is because I've always had a passion for two things: software development and educating people. I've kinda found my sweet spot in life.

The only time I get frustrated in on the very rare occassion that we get a student admitted who doesn't put in the effort. They think they can coast through a rigorous, accelerated bootcamp and we won't notice it. Asking those students to leave the program is by far the hardest part of my job, because I desperately want every single one of these people to succeed.

Collapse
 
d0ruk profile image
Doruk Kutlu

I'm interested in #1 and #4.

Can you name a subject from each of those where you know/feel students must be graduating with less knowledge than you'd like them to?

What are those things you just can't teach in a bootcamp, and graduates need to figure it out themselves?

Thread Thread
 
stevebrownlee profile image
Steve Brownlee

Can you name a subject from each of those where you know/feel students must be graduating with less knowledge than you'd like them to?

We do receive feedback from employers, but no statistically significant patterns have emerged yet, so it's hard to answer this question. The most important thing (but not the only thing) we teach students is how to learn on their own. The next in importance, simply because it's the most mentioned item in the feedback from the community, is SQL skills. We constantly try to find ways for students to gain more SQL practice, without detracting from their education in any other foundational skill.

What are those things you just can't teach in a bootcamp, and graduates need to figure it out themselves?

Navigating a large commercial code base. Nearly all of them need to do it when they become a professional but giving them time to do this while in a bootcamp would seriously impact their ability to learn other foundational skills.

Collapse
 
isas1 profile image
Mr.I

Excellent! Really enjoyed this article and 'The Best Days of Our Lives' article -- it sounds similar to the rollercoaster of teaching in a High School over here in the UK.


Now employers have very high expectations for our graduates, which has the natural side-effect of us having to continually improve our process to ensure the highest quality possible.

This is great to hear! What would you say the most difficult concepts to learn or mindset challenges for students were?

Thread Thread
 
stevebrownlee profile image
Steve Brownlee

Difficult Concepts

As the abstractions get larger, the struggle becomes immediately obvious. Development is, by its very nature, an abstract craft. Once the students get the hang of the vocabulary and grasp the fundamental concepts of iteration, logical branching, functions, we start discussing asynchronous programming, event driven programming and modularization.

That's when the stress and frustration levels elevate quickly.

Difficulty for students rises as we ask them to create larger mental models. When the signal or data flow begins spreading across multiple modules, they need to keep a mental reference of multiple objects in their working memory to implement a feature or fix an issue.

Mindset

This is something nearly every student needs suport and coaching on. Their fixed mindsets become very loud and ornery because the challenges are non-stop, and we spend a significant amount of time in the first 6 weeks helping them develop their growth mindset.

People are rarely challenged to this level in their lives before NSS. I've heard the same story from hundreds of students over the last 4 years that they coasted through high school and university with minimal effort. This leads to a strong self-image of "natural intelligence". When getting the icy cold splash of water in the face of NSS, their ego takes a big hit. However, we encourage them that with good strategies and high effort, they can achieve anything.

Not a message they usually get in traditional education which relies more on segmented, broadcast teaching and fact regurgitation on graded assessments.

Thread Thread
 
isas1 profile image
Mr.I

It’s great to see you’re so passionate about this!

Re: strategies — how do you help when students are struggling with larger mental models — is it a case of reassurance and practise or do you use specific memory techniques?

Re: mindset — what kind of strategies do you use in the first 6 weeks?

Thread Thread
 
stevebrownlee profile image
Steve Brownlee

how do you help when students are struggling with larger mental models

Practice, practice, practice

mindset — what kind of strategies do you use in the first 6 weeks?

We recently documented all of the strategies that we use, across 5 different instruction teams.

  1. Lightning exercises - Small, targeted exercises that students can complete in a few minutes, and then live coded by a member of the Learning Team. Helps them realize they know more than they think.
  2. Morning memes - Motivational memes created by the Learning Team related to something they are currently experiencing.
  3. Foundation workshops - Before class begins, junior instructors will cover foundational concepts that some students need reinforcement on since the lead instructor needs to keep moving the class forward.
  4. Being intentional about creating an environment - both for students and from instructional team - that mistakes are not to be feared, but to be seen as a learning opportunity.
  5. Personal professional stories about when shit happened and the world didn't end
  6. Have students talk at their currrent level of understand about the code and coach on how to ask questions, and empathize about their understanding
Collapse
 
alchermd profile image
John Alcher

Do you believe that a person can put on an honest effort and not become a competent developer?

Collapse
 
stevebrownlee profile image
Steve Brownlee

No. I believe anyone that doesn't suffer from a serious mental disability can become competant given the right amount of time.

Now, let me specifically address being successful at a bootcamp. I don't believe everyone can be successful in a bootcamp, but only if they haven't set themselves, or their lives, up for success. Here's the factors that have led to people not being successful.

  1. Not being able to put their ego aside and being trapped by a fixed mindset.
  2. Too many distractions in their life. Financial worries, sick family members, new children, highly disruptive family lives.
  3. Not enough baseline mathematical-logical intelligence before starting the course. Everyone's level of this kind of intelligence increases dramatically during the course, but if their lives did not develop this intelligence enough before starting the program, they really struggle.
  4. Not being able to focus mentally. This could be because they have ADHD or some other, external reason (see item 2 above).

So far, this has been about 15 students in my time at Nashville Software School. It's a vast minority. Maybe 3% to 5% of students? Just a rough guess.

Collapse
 
juankortiz profile image
juankOrtiz

How do you keep your students motivated and make sure they want to keep learning?

Collapse
 
stevebrownlee profile image
Steve Brownlee

I can't.

I have zero control over that.

Adult learners are intrinsically motivated, and I can't make them do or learn anything. All I can do is make sure that we have a wonderful Learner Experience that they can take advantage of, and enjoy.