For further actions, you may consider blocking this person and/or reporting abuse
Read next
The Ultimate Guide to Design Patterns in Software Engineering
Aditya Pratap Bhuyan -
Finally figured out a whole bunch of Nginx regex. It's more confusing than normal regex somehow
Oscar -
Best Practices in Software Architecture for Scalable, Secure, and Maintainable Systems
Aditya Pratap Bhuyan -
Dev Log #14 - Phaser.js and game dev
Devtonian -
Top comments (12)
Who do you teach? What're the most and least interesting parts?
I teach the following main languages/frameworks.
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?
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.
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?
Practice, practice, practice
We recently documented all of the strategies that we use, across 5 different instruction teams.
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.
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.