Thoughts on learning as a junior dev

This post was originally a TweetStorm. You can see that Tweetstorm storified here

As I’ve been spending more time working with junior developers, including my time with Austin Coding Academy, Dev Bootcamp, and Codecademy I’ve noticed a few patterns that intrigue me about the way we teach programming.

Usually we start with HTMl then CSS then JavaScript. This makes sense to me because it starts with concepts a lot of people have cursory experience with at the very least. Whether that’s using MySpace or building email campaigns. There are numerous other opportunities where these languages are used outside of being a pure developer.

Weaving education together rather than teaching silos

Yet, it feels to me that online learning platforms that teach these in silos rather than a meshed method lose opportunities to teach core coding superpowers. By doing so they teach the basics of Web Fundamentals without the supporting tools.

Everyday I work as a developer, I make as much use of my browser’s DevTools, the command line, and git. It seems learning about these tools, along with including lessons surrounding how to learn outside of a platform or finding answers to questions not in the lesson, are sorely missed. This is something I see regularly with early junior devs and recognize in myself as well.

Fair enough this may lead your user away from your learning platform, I understand that is not something you want to encourage as a business. However, does it not make them a more successful developer and thus have a better overall experience with learning on the platform.

I’m of the opinion that you can teach DevTools and research while you teach HTML and CSS. There’s no reason you should get to JavaScript or even jQuery without these skills. They solve so many early struggles.

Teaching superpowers early on

Now to my second point. In line with this, familiarity with the command line and git feels like it would also benefit from being taught earlier in the jr dev process for no other reasons than to give them super powers over their machines.

With great power comes great responsibility. Sure they could go off and delete their entire system accidentally. That’s a lesson in an of itself. There’s something to feeling like you’re a badass console cowboy.

Again these are core skills that if someone doesn’t continue on into Web Development helps them solves other problems or move into other IT roles.

More importantly, I think is the feeling of exploration and discovery. It feels to me that learning the command line creates a path to learn git which as of my experience leads to Github or some other similar platform.

Even if that feeling of exploration is overwhelming or daunting it’ll usually open your eyes to a whole new world. All of a sudden you can find a whole host of resources. Things like:

  1. AngularJS Learning
  2. Engineering Blogs
  3. Free Programming Books

Learning environment versus learning platform

My concern with some learning platforms is that you continue through them and then think, “What’s next?”

This isn’t entirely the fault of a platform or a course. It’s just as much about the student. Yet, why not tease them with further exploration, you’ve learned this and this, you should learn this or watch this or be involved with this.

These programs have no doubt thought about this. Some are much better than others. This is my number one belief in the value of a developer bootcamp environment. Some might see it as “join a bootcamp, get a high paying job” , but in hindsight it’s “consider joining a bootcamp to find a community”

This is the shtick you here from high cost colleges too, which should give students equal pause. Doubt or educated doubt is not a bad thing. It’ll challenge your preconceptions. It’ll also help you ring true during these opportunities.

You will of course learn a lot in these environments but that will only increase through interaction & growing with your peers in comparison to working in isolation.