DEV Community

Cover image for How to Become a Software Engineer: No Experience? No Problem
Arlan
Arlan

Posted on

How to Become a Software Engineer: No Experience? No Problem

A core profession in the tech industry is software engineering. They are responsible for building the product that gets used by the end customer, moving the business forward.

We live in the 21st century and “software is eating the world.” Due to relevance of software in all industries and people’s everyday lives, being a software engineer is economically rewarding in these times.

And that’s not even mentioning the business leverage that comes from the fact that replicating and distributing software has zero marginal cost.

All this results in 6 figure - 7 figure yearly compensation.

Meanwhile, the culture of tech is really all about “execution.” Generally, no one cares about your school, certifications, diplomas, etc. What companies look for is a track record of getting work done - tracking, managing a work stream to completion, shipping a new product, fixing a major bottleneck in a company system. So as long as you obtain the necessary skills and experience in any way, you can be part of the club.

What Do Software Engineers Do?

Software engineers are technical individual contributors in a company. They execute on technical work streams by building new systems or expanding existing ones that the company owns with the goal to drive positive business outcomes - revenue, engagement, daily actives, etc.

Main responsibilities:

  • Finishing projects end-to-end.
  • Getting code published, reviewed, and shipped to production.
  • High standard of code excellence.
  • Handling launch + rollouts.
  • Project impact.
  • Debugging and fixing bugs.
  • Effective collaboration and communication.

This is the bread and butter of software engineering responsibilities, however, your day to day expectations evolve and expand through out your software career path. Want to learn all the software engineering roles you’ll be in and their requirements? I wrote a dedicated post just for that. Click Here.

Visual Representation of What Software Engineers Do?

Is Computer Science Degree Required? How to Become a Software Engineer Without a Degree

Job descriptions for software engineers write “bachelors or relevant experience.” So, no it’s not a hard rule. However, you have to have something else to show for it. Something that will give the company a strong signal that you can excel in the job and deliver impact.

In fact, degree requirements serve as a way for the employer to gauge personal qualities - willingness to take responsibility, commitment, and that you will show up everyday. And you can show this in other ways too - with your past working experience.

While I always saw and heard that a degree is not required from job descriptions and my chats with others in the industry, I never truly believed it. Until it actually happened for me.

That being said, the bar is high though. Higher than I anticipated. “Relevant experience” should be actual experience in a software engineering role, doing what software engineers do. Also, it’s important for this experience to come from a real business with a trustworthy brand. The more that’s the case, the better for you.

Real talk, by jumping into software engineering straight, foregoing the popular path, you’re on your own. Getting in that first experience is a slog, it will take time and hustle to get those first opportunities. Even then, you have to be flexible on things like title, or compensation.

All of this, I’m speaking from my experience. I ended up becoming an engineer without a degree right after high school due to the fact that no college accepted me. Read my story here.

email

How to Break Into the Industry (Entry-level)

Interested in entry level software engineer jobs with no experience? There isn’t a single one way to do this. But, generally, in the beginning the most important thing is to get your foot in the door. So that you can start to build experience and let that snowball into more exciting opportunities. That’s how it turned out for me.

As for getting that first role, it’s really about the hustle - working your network as much as possible, attending meetups and bootcamps, contributing to open source projects. In my opinion, the best way to land a job is through another engineer’s referral who’s already there. Build your network. And don’t be picky about what you get either. Your aim is to get started, you can always move on, down the line.

I got my start when a person gave me a chance at an informal internship with some pay, even though I was ready to do everything for free. But that starting role made all the difference in the end.

Skills Needed for Software Engineer

I list the most foundational skills a software engineer needs to have.

1. Master a Programming Language

We all know that to do software engineering work, you need to know programming languages. Its an engineer’s main tool. You need to pick a language and go deep. Learning all the ins and outs, from syntactic sugars to accompanying standard libraries.

This foundational experience with a single programming language, will end up helping you read and understand code in many other languages as well, because things tend to follow the same pattern.

2. Domain Expert - Front end or Back end?

Engineering and software is a vast field. And a lot of different components go into making software work. Several technologies often have to be combined end-to-end, like front end, server, data storage.

Initially, you start by developing an in-depth expertise in a single domain like front end or back end. You should know all the appropriate programming languages, frameworks, the process of how code gets shipped, how builds/compilations work, and anything else required to make that area of the product work in production.

3. Debugging Skills

A lot of times when you’re building software systems, things fall through the cracks. So you end up dealing with bugs, servers going down, crashes, running out of memory, regressions, etc. Aside from writing code, a big part of the job is reading code, digging into the behavior and understanding what exactly went wrong. It’s a combination of interpreting code behavior. Using internal tools, profilers, and loggers. And poking at individual system components, until the issue is found.

4. Work Stream Execution

This is all about your mindset to deliver on the work steam you own and signed up for. So that in the end everything works end-to-end as designed. It’s a mindset of taking full responsibility and feeling accountable towards your commitments to your team and steak holders.

Issues always pop up from the unknown. It’s important to embrace flexibility and take ownership of figuring out how to work around obstacles. Whether it be bringing in additional resources, or doing a PM’s work.


There are far more skills you need to learn and master during your career than this. If you’re interested, all of them are listed in this post. Read here.

Key Software Engineer Skills

Software Engineer Program No Experience

Interested in getting exact steps to become a full fledged software engineer? What’s great is that this skill can be self taught and you can make amazing progress learning online. Here’s what I would do if I started all over again:

When I was in school, I was really active in competitive programming competitions. It was a ton of fun! I didn’t know that it would help me later on in interviewing and do work as an engineer. So for anyone starting out fresh, here’s how I would recommend getting into software engineering, in my biased opinion.

  • Pick a popular language like Python, Javascript, Java, Ruby, C++, C#, etc.
  • Learn the basics of the language - there’s a ton of programming language tutorials online.
  • Start solving programming problems on leetcode, codeforces, spoj, hackerrank, etc. From easy to hard. Try for a ratio of 10 easy / 3 medium / 1 hard. In the beginning only easy and medium.
    • You will develop your CS, coding, and algorithms fundamentals.
    • Get comfortable with your programming language of choice.
    • Automatic interview preparation.
  • After you solve 100+ problems at least, start picking up some side projects. Try to build a desktop app, or mobile app, or a website, or a distributed server system. You can start from picking popular projects, that already have guides online, so the learning curve isn’t too steep. Most importantly, you should learn by overcoming blockers that you encounter in your projects.
  • Continue to build, learn, and get in a role at a startup/company, where you can bring value with your engineering skills.
  • Get ready for behavioral interviews. I have a guide on that here.

Be Part of the Community

Support from others in the industry is critical. Great roles are usually taken by those that are brought in via referral. In addition to having the skills to walk the walk, knowing people is equally important. So take the time to meet and get to know those in your tech circle.

Furthermore, I remember how just being around folks in the industry, I learned a lot about how the hiring process works. This includes hidden away info that gets transferred only through osmosis most of the time. Some of those things I publish here @ lodely.

Cheers! ☕

Top comments (0)