Acclaimed Udemy Instructor Colt Steele on the Best Way to Learn Software Engineering

Acclaimed Udemy Instructor Colt Steele on the Best Way to Learn Software Engineering was originally published on Springboard.

Acclaimed Udemy instructor Colt Steele built his career around his three biggest passions: coding, teaching — and cats.

He’s the creator of the Web Development Bootcamp, one of the best-selling and top-rated courses on Udemy, and he led Galvanize’s 6-month software engineering bootcamp as lead instructor and curriculum director. Ninety-four percent of his students subsequently landed full-time developer roles at companies like Google, Salesforce and Square.

Naturally, we’re thrilled to have him on our team at Springboard as the lead instructor for our Software Engineering Career Track.

Colt Steele on how he became a coding instructor: it kind of happened by accident.

Colt’s father was never a techie, but he had an enduring interest in Parallax robotics. One Christmas, he brought home a robotics kit for a four-wheeled Rover-type machine with sensors and a microcontroller powered by basic visual code.

“I spent the entire year playing with that,” Colt recalled in a podcast interview on Code Newbie. He would program the robot to do simple things like chase the family cats around the house or sweep the floor by attaching a broom to the robot’s pincers.

There are many routes into software development — some engineers start with computer science, some learn how to code first, while others might have grown up building robots using LEGO Mindstorm kits and realized that telling a battery-operated robot what to do and programming a computer aren’t all that different.

Colt Steele

Colt studied computer science at NYU but didn’t graduate with a degree. When he first started teaching, he was nervous about admitting to his students that he lacked formal credentials. But according to a recent survey, a whopping 69 percent of coders are either fully or partially self-taught.

Steve Wozniak, the co-founder of Apple, is one of them. What’s more, given the proliferation of in-person and online coding bootcamps available today, like Springboard’s, there are so many ways for would-be developers to learn how to code that don’t require a traditional college degree.

Colt Steele breaks down myths about coding: even the best developers Google things all the time.

When Colt first learned JavaScript, he tried obsessively to memorize everything he could about algorithms, strings, loops and so on. He even made flash cards to drill these things into his brain — like memorizing dates for a history test. Nowadays, he emphasizes to his students that it’s more important to focus on understanding concepts than memorizing isolated bits of code.

Colt Steele

Pop culture often portrays computer programming as a stomping ground for the intellectual elite — reinforced by movies like Jobs and Computer Chess — so most developers bristle at the idea that they might have to Google things from time to time. In a video on his YouTube channel, which has nearly 87,000 followers, Colt charts the actual Google search history of a high-paid senior engineer at a San Francisco-based tech company, who asked to remain anonymous.

His searches ranged from highly complex “Angular CLI project path” and learning how git hashing works to basic searches like a refresher on “using ENV variables.”

It’s not that you don’t need to know how to code, but there’s a difference between being a good developer and being a reference sheet or flash card master.

Colt Steele on the best way to learn how to code: one programming framework at a time.

Would-be developers often feel overwhelmed by the sheer number of programming languages — Colt calls it “framework paralysis.” Should you start with Python — the easiest to learn — or JavaScript, the most versatile? On top of that, there are JavaScript libraries like React, Angular and Vue, which are JavaScript files that contain a bunch of functions to enhance site functionality.

  • Start with HTML and CSS
    In a recent AMA on Reddit’s r/learnprogramming, Colt recommended starting with HTML and CSS basics. “You don’t need to be an expert; just get comfortable with the common elements and CSS properties,” he said. “Don’t waste time memorizing any of it — you’ll naturally memorize the most common bits on your own if you use them enough.”
  • Once you’ve learned HTML and CSS, try JavaScript
    Next, learn JavaScript on its own, focusing on components like functions, classes and manipulation. Once you’re comfortable with JavaScript, start learning a JS library like React. It’s important not to start with React or you’ll “drive yourself crazy,” says Colt, who has a 40-minute crash course on YouTube for HTML, CSS and JavaScript.

Colt Steele on how to land a job as a software developer: start a passion project.

Fields like journalism, graphic design and software engineering require job seekers to have a strong portfolio. A capstone project from a course is a great way to demonstrate your skills, but a passion project works just as well — if not better. “It doesn’t have to be some innovative, world-changing app,’ says Colt, “but make something that hasn’t been done a million times. I would stay away from things like Sudoku and to-do apps.”

Colt Steele

One of Colt’s students, an avid surfer, created an app that allowed users to select particular beaches around the world where they wanted to surf. The app would send notifications when there was a good surf forecasted nearby.

“It was nothing revolutionary, but it was reasonably complex and relevant to his interests,” said Colt.

If you can’t think of a passion project, cloning a popular app like Uber or Twitter is another impressive way to demonstrate your skills — but it can’t be a surface-level clone; it needs the same functionalities as the original.

“Recently, one of my students did a very faithful clone of Airbnb, including their ‘drag to search’ map,” Colt wrote on Reddit. “She spent a long time on it, but it got her a job in the end!”

Whatever you do, he recommends using at least one interesting library or API.

“Make something with maps involved, use Twilio to send texts or make calls, use a semantic analysis API or involve a fancy 3D graphics library.”

Colt Steele on thinking like a developer — it takes time, practice and making many, many mistakes.

To succeed as a software developer, you need these two distinct skills:

  • Understanding the mechanics of programming languages
  • Thinking like a coder (putting programming languages together to achieve a goal).

When you learn software development, your course material will most likely focus on the former. The latter takes time and practice.

Colt Steele

“It’s one thing to know a language or to be able to implement an app given a set of instructions,” said Colt. “It’s another skill entirely to sit down with an empty file and write something on your own.”

When Colt teaches his in-person courses, he delivers a lot of content over the course of 18 weeks, but half of the course is reserved for projects. During project weeks, there are no lectures and no new material is presented. Instead, students concentrate on one or two projects while having time to “practice thinking like a developer, get stuck on something and work your way through it.”

The post Acclaimed Udemy Instructor Colt Steele on the Best Way to Learn Software Engineering appeared first on Springboard Blog.

By Springboard
Bridging the world's skills gap through affordable, high-quality, online education.