Contents

How To Become A Software Engineer

So You Want To Become A Software Engineer, Huh?

Becoming a software engineer isn’t that hard. Don’t believe me? You could become a software engineer in just a few simple steps. Let me show you.

Okay… Step 1… go to https://www.online-java.com

More info
This links to an online IDE. IDE stands for integrated development environment. There are many online IDEs that you can use for free without installing anything on your computer. I prefer this one because of the dark color scheme which is easier on my eyes. Of course, as you get more advanced you’ll want to install an IDE (i.e. Visual Studio) onto your computer, but for now this will suffice. I plan on making an IDE for this website which you will be able to use as well.

Now, on to Step 2! In the IDE window where it says “Main.java” type in the following code:

Click the note below if the code fails to load.

Note

The above code may not work on some browsers or you may need to refresh this page. As an alternative, here is the Java code to copy/paste if the code above is not loading for you:

public class Main {
  public static void main(String[] args) {
    String myString = "Hello World!";
    System.out.println(myString);
  }
}

Step 3, hit the run button. You should now see “Hello World!” output onto the lower console.

And that’s that. You just became a software engineer, congratulations!

So How Do I Really Become A Software Engineer?

Okay, okay, I get it. You’d like to really know how to become a software engineer.

Well, there are two main paths (options 1 & 2) to becoming a software engineer and third path (option 3) that’s a bit less traveled, but still a valid path.

They look something like this:

Options 2 and 3 are somewhat similar. During a coding bootcamp you usually build a portfolio during your time there. The portfolio is mainly to show that you actually learned something in the coding bootcamp.

Danger: About Bootcamps
Let’s face it, there are some coding bootcamps out there that are a joke. If you’re serious about becoming a software engineer it’s going to pay off big time if you select a high quality bootcamp. Spend your time researching bootcamps, connect with other software engineers and ask for bootcamp recommendations, and ask potential employers who are knowledgeable about bootcamps which ones they recommend.

Option 1 is the most expensive option but probably your best bet. Most employers still require a software engineering or computer science degree so unless you have some serious coding chops, you’re going to have difficulty competing with other people who have degrees.

There are a myriad of other options to becoming a software engineer and many of the common paths listed above may have other roads, stopping points and divergences along the way. In fact, the possibilities really only end at the limits of your imagination. But, the goal of this chart was just to outline some of the most common ways that people become software engineers. You are welcome to choose any path you like.

However, all that being said, no matter which option you choose you should follow the ABCs of coding: Always Be Coding. Although it’s become quite a cliché phrase, it’s nevertheless true that you should always be coding and improving your coding skills. The wonderful thing about coding is there is always something to learn. So keep on learning, keep on growing, and keep on improving your coding skills.

Steps After Learning How To Code

Whether you’ve chosen option 1, 2, or 3 you’re still not at the end of your journey exactly. In fact, in many ways your journey to becoming a software engineer has just begun. Almost all of these paths can include building a portfolio, for instance. Also, if you plan on landing a job at a formal institution you’ll be required to do a coding interview.

Building A Portfolio

Many companies are going to want to see that you are at least working on something coding related and see something tangible to boost your bona fides as a software engineer. There are many options to building a portfolio and there’s no way to give proper lip service to all of them. However, a few of the ways to build a portfolio are outlined below.

How to build a software engineering portfolio:

  • Create a website from scratch
    • Include examples of your code and work you have done as well
  • Create a GitHub account and collaborate with others on open source projects
  • Build a web application
  • Build an iOS/Android application
  • Code stuff you’d actually like to use yourself
    • Ex. Task scheduler app, remote for your smart TV, database to organize something in your home, etc.
  • Build or work on at least one object-oriented project to show you know object-oriented programming (OOP)

Here are some cool examples of portfolio sites:

Creating a portfolio website tends to be more common for front-end developers, but that doesn’t mean you should shun it completely as a back-end developer. Instead, you might be able to set yourself apart from other back-end developers that don’t have portfolio websites. That said, most back-end developers usually showcase their talents on their GitHub.

Note
Only display information in your portfolio for jobs you actually want. Don’t go on about how you’ve done X, Y and Z in CSS, HTML, JQuery and Javascript if you aren’t planning on landing a front end developer job. Likewise, don’t show off a ton of your projects relating to C, C++, Python, and Java if you’re not interested in backend programming.

At the end of the day, a portfolio is just a way to show you have some software engineering experience and that you actually can code or know a coding language well enough to do something with that code. You don’t have to build a portfolio if you don’t want to. However, you need to be able to show that you do have some coding skills and be able to exemplify that tangibly in some way, shape or form.

The Coding Interview

Most jobs in programming will require some type of coding interview. Some of these will involve coding in an IDE while others watch you. Others will involve coding in a blank text document or doing some sort of white-boarding while others are watching. Either way, these interviews are fairly intense and pretty nerve-racking for most candidates.

There are many ways to prepare for the coding interview. One of the best ways, and most tried, are the many websites which feature coding problems. I’ve outline most of these websites here. Another way to prepare is to take part in hackthons. Hackthons are offered both online and in-person.

One of the best ways to prepare for coding interviews is going through coding interview prep books. While there are many books available, Cracking The Coding Interview, is the gold standard for interview prepping for software engineers. I have also found the book Guide to Competitive Programming to be particularly helpful as well, especially if your language of choice is C++. I have also heard good things about Data Structures and Algorithms with Python if you plan on focusing on Python, although I do not own this book myself so I cannot vouch for it.

Another way to prepare for interviews is by enrolling in an interview prep course. Many of these programs are paid courses or online courses with video instruction. A popular one, and one you’ll see lots of advertisements for on YouTube, is AlgoExpert. As much as people may knock AlgoExpert, it’s actually pretty well done. It has great video instruction and goes over the time complexities of the solutions as well, which is pretty helpful.

P.S. I am not an affiliate with AlgoExpert so I don’t have any bias here. That said, I would be happy to promote their products as I think they do a good job. So, if I ever get an offer to promote them as an affiliate I wouldn’t pass up the opportunity.

One of the best courses to prepare for software engineering interviews (because it is free and high quality, a rare combination) is through CodePath. This is their technical interview prep course and it ranges from beginning coders to advanced programmers.

Info
If you decide to join CodePath be sure to enter my referral code when you fill out the application: jNWmScED

I recently finished the Intermediate Technical Interview class through CodePath and thought that it was very good. My only critique is that some of the problems were maybe beginner level, but since everyone is on a different level it’s really hard to create one level that fits all people. That said, they have a very high caliber of people teaching these classes. Many of the people teaching at CodePath come from companies like Amazon, Google and Facebook, for instance.

There are several other ways to preparing for technical interviews and perhaps I’ll write an article later job on the preparation portion. However, as for now, a quick Google search should give you a myriad of ways of preparing. The key is to start somewhere and continue on that path relentlessly. It doesn’t do you any good to bounce around from one things to the next. Stay focused, stay busy, and keep at it.

Keep Your Coding Skills Sharp

You can keep your coding skills sharp by making accounts at the following sites:

  1. https://leetcode.com
  2. https://www.hackerrank.com
  3. https://codesignal.com
  4. https://www.codechef.com
  5. https://www.codeabbey.com
  6. https://app.codility.com/programmers/
  7. https://codeforces.com/problemset (more advanced)
  8. https://projecteuler.net/archives (more math focused)

Make sure to work your way through all of the problems sets and don’t just focus on the easy problems. If you focus on the easy problems you won’t ever grow in your ability to code. Instead, once you have completed a few easy problems in one type of coding problem (arrays, linked lists, BSTs, etc.) then focus on medium and hard problems only.

I’ve Done All That But I’m Still Not A Software Engineer

Software engineering is a competitive field. Job opportunities wax and wane with the market and landing your first job as a software engineer is difficult. The best advice is to just keep at it and not lose heart. Keep improving your skills and making yourself more marketable.

You can also find companies you’d like to work at, find out what their coding stack looks like and train yourself in their stack. If you can somehow relay to them that a) you know their stack and b) they won’t have to train you very much, you’ll be a hard candidate to pass up.

Also, if you honestly feel like you are ready to start working as a software engineer, start freelancing. You can easily create an account on sites like Upwork and Fiverr and get to work relatively quickly. If you’re truly as good as you think you are you’ll have no trouble landing gigs and getting positive reviews/word of mouth the more work you do.

The Finish Line: Finally Becoming A Software Engineer

At the end of the day, if you are truly committed to becoming a software engineer you’re going to make it. Those of us who love to code will code whether or not we are employed. That’s the beauty of coding, you can code anything you can dream up. You can even code apps and sell them. If you code enough useful stuff for enough people, people will begin to notice.

But rest assured, if you love coding enough you’re going to eventually land a job coding. Whether it’s for a company, as a freelancer, or for yourself developing apps; you will be putting your coding skills to work in some way that generate some form of revenue. It might only be just some money you make on the side of your regular nine-to-five, but it won’t ever be a waste of time if you stay focused and put your skills to good use.

Good luck and feel free to share your story with me!