Bill Blogs in C# -- bootcamp

Bill Blogs in C# -- bootcamp

Created: 4/7/2015 5:02:02 PM

I’m teaching a second .NET bootcamp in Detroit this spring. It’s quite a rewarding experience. Like the previous cohort, these students are all adults that are motivated to make a career shift. I always think I learn as much as the students do when I teach one of these groups. I’ve got four important lessons for all my readers based on the first few weeks of the bootcamp experience.

Lesson 1: Developers are in Demand

My first surprise was the experience that some of the students have coming into the class. Everyone has been successful in different fields, from business to medicine to finance. And they all want to be developers. Developers are in serious demand everywhere. This may be an exaggeration, but I believe the unemployment rate among developers is approaching 0. Every growing company I work with wants to hire skilled developers. It’s become a barrier to their growth.

Investing in yourself by learning to code will pay off. It opens doors.

There’s a corollary to this lesson: Having other skills also pays off. As we’ve been discussing next steps, we discuss where everyone’s past experience will also pay off. Several of the students have very strong backgrounds in different vertical businesses. Those skills will help to set them apart from other entry level developers.

Lesson 2: Anyone can Code.

I’ve been really happy to see this result. There are too many people that have the world view that someone is “born with” the skills or the mindset necessary to be a developer. These classes, and the students that have attended, prove that’s bunk. Most of the students enter with no programming experience at all.

8 weeks later, they can develop code, and feel comfortable with the .NET framework.

Now, I don’t want to overstate this: they are all still beginners, and ready for entry level jobs as developers. They don’t yet have the experience many of my typical readers do. But, that’s a function of time, not innate ability. I was beginner once, as were all of you, dear readers. These students will continue to grow, as they keep coding.

Anyone can learn to code. It takes motivation, some help, and a path. If you know someone interested in learning, get them involved. Point them in the direction of learning resources. Encourage them to try and build something. We’ve all enjoyed developing software. There’s plenty of room for more. And, anyone can learn.

There’s a corollary here: I continue to be impressed by just how fast new folks pick up the core skills. There’s so much vocabulary and concepts that we work with. We have learned a lot and have a lot of experience behind us. I am truly impressed by how quickly I see these new developers learn and grow the skills we’ve already internalized. It does seem very frustrating for a day or two, until they get past that “Hello World” stage. Thankfully, within a week, they are building classes, understanding core concepts, and creating real code. It’s great to see.

Lesson 3: There are stages of understanding

This has been the most interesting piece to observe. There’s the famous quote from Joseph Joubert: “To teach is to learn twice”. I’m finding that students really go through four distinct phases of understanding: reading code, doing guided labs, working independently, and helping peers.

In that first phase, they can see code that I’ve written and begin to understand what it does. They don’t yet have the vocabulary, and they are kind of unsure exactly what they are reading. But, they certainly beginning to understand.

The second phase is where students can work with a guided lab, and understand what’s being added. They can follow the instructions, type in the code, and do the debugging and proofreading necessary to make a guided lab work.

The third phase is when they can create their own code and their own algorithms to build software that does something useful. It’s where a lot of entry level developers spend much of their time. Their code works, but they may not be able to completely understand and articulate how it works.

That fourth phase is the key to mastery: Once students get to the point where they can explain what they’ve built, how it works, and how it uses the underlying libraries, they have achieved a new level of mastery.

Well, what about you?

I’ve truly enjoyed working with new developers and helping them join this career. There are large numbers of people that want to write code. Can you help? It would be a great opportunity for you learn twice. Maybe it’s not beginners, maybe it’s mentoring junior developers in your organization.

Current Projects

I create content for .NET Core. My work appears in the .NET Core documentation site. I'm primarily responsible for the section that will help you learn C#.

All of these projects are Open Source (using the Creative Commons license for content, and the MIT license for code). If you would like to contribute, visit our GitHub Repository. Or, if you have questions, comments, or ideas for improvement, please create an issue for us.

I'm also the president of Humanitarian Toolbox. We build Open Source software that supports Humanitarian Disaster Relief efforts. We'd appreciate any help you can give to our projects. Look at our GitHub home page to see a list of our current projects. See what interests you, and dive in.

Or, if you have a group of volunteers, talk to us about hosting a codeathon event.