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

Did you find this post useful? Show some love!
DISCUSSION (12)

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

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.

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?

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.

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?

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.

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?

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

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

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.

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

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.

Classic DEV Post from Jun 15

Follow Friday!

Following folks on dev.to has always been key to customizing the kind of content you're more likely to see in your feed and notifications, but now that we have DEV Connect I feel like there is even more we can do by following folks with shared interests and willingness to be helpful.

Steve Brownlee
Spencerian script, hand-stitched bookbinding, wax seals, coaching new crafters, helping people change their lives for the better. Despiser of complacency and maintenance mode.

The All-Time Best

Browse Top Articles