Path to a Software Engineer


If you are an absolute beginner and have not yet even written a line of code yet, and you want to become a software engineer that gets a job, and you are a self-taught software developer, I would recommend what Andy Sterkowitz says in his YouTube video called Teaching yourself to learn to program? Start Here! For that video, here are some points I agree with. Andy has many more videos as well. In another video, he says that to go from nothing to a job as a software developer it can take anywhere from 3 months to 2 years.

  • Keep it Simple. Write simple code. Don’t try to write complicated code when you are starting out. You are better off writing several simple pieces of code than a complex application.
  • While you are learning a language (with websites, books, courses etc.), build an application or 2

If you are brand new, here are four topics to learn. Don’t spend too much time on these and learn everything about them. You could start with the basics of web development. Any assumes that you are spending about 15 hours per week studying. What I did was to create this WordPress blog to learn and blog about HTML and CSS.

  1. HTML & CSS (2 weeks to a month) – Build 1 or 2 very simple static websites as you are learning. Check out w3schools.com.
  2. JavaScript (about 2 months) – Build 2 to 4 projects. A simple to-do list, a calculator, tic-tac-toe and so on. Keep it simple.
  3. Git and GitHub. (Andy doesn’t say but maybe 1 to 2 weeks)
  4. Client/Server Architecture. Andy suggests that you spend time learning how the internet works. This includes http, networking, https, SSL, POST, GET, APIs, DNS, Databases and so on. (Andy doesn’t say but maybe 1 to 2 weeks)

If we are spending 15 hours per week, the total weeks in the above plan is from 12 to 16, making the number of hours from 180 to 240.

Projects

Here are a couple of projects that are on YouTube that you might consider as projects after you’ve studied for a bit. To Do List App in JavaScript [beginners]. I haven’t done this one so I don’t necessarily recommend it, but I include here to show you that there is a lot of resources on YouTube.

What’s Next?

This depends on your interests. You probably want to pick a programming language and focus in on it. Ultimately, you want to explore one language fully, and know a few others as well. Java, JavaScript and Python are popular languages. It’s good to know Java because amny code examples are provided in Java, as well as the Design Patterns. You might focus on “clean code” that Bob Martin emphasizes. If you are new to design patterns you could look at the book Head First Design Patterns.

Things to Avoid

Andy Sterkowitz has a video called 5 Reasons Why You’re NOT Becoming a Programmer.

  1. Thinking Programming is all Academic. Programming is partly academic, but mostly it is hands-on. Begin coding now. Code early. Code Often.
  2. Perfectionism. Keep your first projects as simple as possible. It’s okay if they don’t look and act like your favorite website. Don’t get stuck for too long. Move on. Programming is a marathon, not a sprint and along the way, the course keeps changing.
  3. Fear of the Unknown. Step outside your comfort zone and try a project type that you’ve never done before. It doesn’t have to be perfect. Move on the next one.
  4. Bouncing Around. You see this with programming languages. To be a good, employable developer you need to learn the depth of a language. You need to sit down and focus even when things get boring.
  5. Poor Job Hunt Strategy. Don’t just do what everybody else is doing to sell themselves. How are you different as a person?