This is your brain. This is your brain on computers.

Become a Software Engineer With an IT Degree in 2022

So you have a shiny new Information Technology (IT) degree. Maybe you’re working towards one right now. You’re wondering what you can do with it in the real world. Can you become a software engineer with an IT degree? Yes. Do you need a Computer Science (CS) degree? No. Do you need a degree at all? It helps.

There’s a lot of nuances packed into the simple “yes” and “no”. And while we have previously written about how to become a software developer more broadly, this guide will focus on those of you who are unsure if your IT degree is applicable at all.

The bottom line is that nearly any degree in Science, Technology, Engineering, or Math (STEM) will give you the proper fundamentals to be a successful software engineer. You can easily self-teach your way across many knowledge gaps that would normally be bridged by a Computer Science degree.

Should I Be a Software Engineer?

This is a tough question to answer and one that only you can accurately answer for yourself. No one is going to be able to accurately predict your success at any given skill.

That said, if you are dedicated and smart enough to finish out an Information Technology degree, then you definitely have what it takes to dive into programming, software development, and software engineering. So put aside any of those feelings of anxiety or imposter syndrome that might be plaguing your mind.

So what about outsourcing that everyone is talking about? Aren’t all software developers moving overseas to cheaper locations? Sure, there’s a lot of global competition. But there’s also a lot of businesses in the industry that look explicitly for locals due to local laws, regulations, and security concerns. Don’t use outsourcing as an excuse.

A recent analysis by CareerBuilder indicates that software developers are among groups that command the highest salaries and are experiencing the fastest growth in every U.S. state.

Let’s break down some numbers according to the Bureau of Labor Statistics:

  • Median salary of $105,590 (varies wildly between cities and states)
  • Median hourly rate of $50.77 (varies wildly between cities and states)
  • Higher than average growth outlook (up 24% from 2016 to 2026)

Note that salaries and hourly rates can fluctuate wildly between locations, industries, and individual businesses. Your experience and performance will ultimately determine how much you end up making.

For new hires that have little to no experience, businesses sometimes associate the applicant’s college degree with the eventual pay rate.

With an Information Technology degree, you shouldn’t have an issue meeting the degree requirements set by many businesses. And even if you see something like “MUST HAVE COMPUTER SCIENCE DEGREE” on a job description, feel free to apply anyway. After conversing with you, the interviewers might end up seeing past the gap.

Do I Need a Computer Science Degree?

This is a resounding NO. People get confused by thinking that computer science is the be-all and end-all requirement to becoming a software engineer.

There are many STEM degree programs in the world, and most of them have nothing to do with computer science. Yet holders of those degrees go on to become successful software engineers every year.

Where did this misconception come from? Software engineering is still a young profession. Consider that some engineering professions (industrial, for example) stretch back centuries. That’s a lot of time to mature the processes therein.

On the other hand, software engineering started in full after World War II and “modern” approaches date back only a couple of decades. While it was originally a requirement to understand the exact binary sequences that made up your code, the profession has progressed to a point where it’s no longer required to understand the extremely fine details of computers and computer science.

Yes, having that knowledge is helpful and will give you an absolute advantage in the profession. But that doesn’t mean it’s a strict requirement to be successful. Do you think that every developer to have created a web page understands how to create or use a red-black tree? No, because it isn’t necessary.

We should note here that your specialized interest will ultimately determine what type of academic background you need. Computer security and encryption will likely require advanced math and algorithms designs whereas basic web application development would only require knowledge of the fundamentals of computers, software, and programming.

Information Technology versus Computer Science

All that said, there are still some gaps that may exist between those who studied Information Technology and those who studied Computer Science.

Information Technology degrees typically focus the curriculum around network architecture, information theory, database administration, systems administration, and computer support. Advanced programming techniques and software engineering practices are usually left up to the student to learn on their own or elect to take specialized classes while working towards the general degree.

Computer Science, on the other hand, focuses on discrete mathematics, computer theories, algorithms design, and data structures. There’s usually a lot of math and logic involved in these topics. Like Information Technology, however, this degree usually only introduces students to a handful of programming languages and techniques to accomplish the coursework.

Computer Science degrees may use Python, Java, or C++ to implement basic algorithms and data structures. Software engineering topics like database and systems architecture, enterprise application design, software source control, and team collaboration are noticeably absent.

As you can see, the degrees are markedly different and neither provides a graduate with 100% of the knowledge required to be successful in a software engineering career. It’s ultimately up to each individual to fill those gaps and land that job.

Here are some common knowledge gaps across both degrees. No matter what degree you hold, successful software engineers will benefit from these.

Start With Online Learning

Now that we’ve established that a Computer Science degree is not a requirement to being a software engineer and that your Information Technology degree does in fact have value, let’s investigate how you can cross those knowledge gaps.

  • Khan Academy — Starter location for a variety of topics. Aimed primarily at younger students, but the content is so quick that you should just do it anyway.
  • Coursera — Structured IT and CS courses from industry and academic experts. Join free classes to get going.
  • Pluralsight — Self-paced online courses narrowly focused to detailed programming and software engineering topics.
  • StackOverflow — Massive community of Q&A around software and programming tags. Participate regularly to up your game.

Khan Academy

KhanAcademy offers completely free videos and resources to anyone with an Internet connection and a computer.

It’s important to note that KhanAcademy’s videos are primarily focused at younger students, but that shouldn’t stop you from watching them if you want to learn the topics.

Go explore some courses on the site to see what you’re interested in. We suggest brushing up on your math skills if you are feeling rusty. If you’re feeling brave, try to tackle the Calculus and later math courses, but don’t feel obligated because they’re marginally useful in most software engineering jobs.

At the very least, work your way through the Computing section to learn basic programming, computer science, and other software skills.

khan academy course selection

Each group of courses, such as “Intro to JS: Drawing & Animation,” is broken down into topics. Depending on the coursework that you were required or elected to complete during your Information Technology academics, you might want to alter our suggestions listed below.

If your degree introduced you to very few specific programming related topics, we suggest starting with these fundamental topics. These are absolutely necessary to all programmers regardless of programming language, operating system, framework, and tool set. You can transfer these skills across multiple domains.

  • Intro to programming
  • Variables
  • Becoming a community coder
  • Text and strings
  • Functions
  • Logic and if Statements
  • Debugging programs
  • Looping
  • Arrays

Beyond programming fundamentals, we also suggest digging in to the Intro to HTML/CSS and Intro to SQL course groups. These aren’t considered “proper” programming languages (though you can write functions and procedures with SQL), but they’re still useful to have in your toolbox in case you want to get into web or mobile application development.

The past couple of decades has seen explosive growth in jobs related to web and mobile technologies. You would be doing yourself a huge favor to at least learn the fundamentals of web page structure, web design, and how to build and query a database system. These are essential skills if you want to tap into that market.

khan academy sql html

Khan Academy tips:

  • Don’t get put off by the presentation since it’s targeted toward a younger audience
  • Watch all the videos in your interested course group (don’t skip them, they’re rarely more than 5 minutes in length)
  • Complete all the challenges (again, don’t skip them, they’re short)
  • Brush up on your math by doing the math course groups


Once you’ve knocked out those quick introduction videos, take some time to learn in a more structured setting. You might discover that you learn better than through self-directed learning.

Using a site like Coursera offers you a set of free online classes. If you want grades, certificates, and other premium features, classes start at $49 each.

If you’re completely new to programming and software development, filter down the classes to only show beginner courses. This will prevent you from having to weed through topics that you don’t understand at all.

coursera filter level experience

If you have a dream job that you’re aiming for or want to focus on a narrow career path, you can filter down the classes to specific job titles. We don’t suggest doing this because it locks you out of courses that may interest or help you. Plus, it’s traditionally difficult to categorize computer science topics neatly into job titles. And finally, we have found job titles to be nearly irrelevant in the real world other than to work as a salary guideline.

coursera filter job title

Some universities and creators put out better content than others. If you’ve taken courses from an organization like Stanford University and liked what you got, you might be happier to stick with their courses in the future. Don’t pigeonhole yourself into a couple of creators though. There might be a variety of content from other creators that appeals to you. It’s OK to filter out foreign language creators as necessary.

coursera filter creator school

Coursera tips:

  • Check if the course you chose to see if it’s 100% online (otherwise you may not be able to finish it)
  • If there are multiple courses in a specialization, finish all of them (don’t skip around, just finish them!)
  • If your schedule is weird (maybe you work nights or you take care of family), make sure the selected course has “flexible deadlines”
  • Pace yourself, budget your time, and understand the course’s completion time (many have listed suggestions like “2-4 hours / week”)
  • Many courses offer multiple languages, so don’t feel like you have to be locked into a non-primary language


This is the first step of the process that may require payment. Pluralsight does offer free trials, but ultimately requires a monthly payment of at least $29 / month to start.

pluralsight select language

Drill into the language that you want to learn and investigate the paths and courses offered within that language grouping.

If you’re here purely out of your own self-interest and want to learn a programming language “just because”, then don’t worry about trending paths. Pick one that seems interesting to you.

But if you are aiming to get into a specific company or fit the mold of a certain type of developer for career reasons, you might want to investigate the trending paths and courses to make sure you aren’t off track. For example, Javascript and CSS are hot topics according to current Pluralsight metrics. That might mean that the industry has a big demand for those skill sets.

pluralsight select javascript courses

Before you commit to starting coursework, make sure the class aligns with your expectations. If you go into a course expecting one thing but getting a completely different experience, you’re more likely to abandon the course and the site altogether. That’s a loss for everyone (especially you).

Plus, you’re spending good money on Pluralsight (if you go that route), so you should definitely make sure to get your money’s worth.

Pluralsight tips:

  • Monthly payments of $29 is required after a trial is completed (keep an eye on discounts)
  • Be mindful that coursework on Pluralsight is much longer than Khan Academy but shorter than Coursera
  • Make sure the skill level required for the selected courses aligns with your expectations
  • Once you commit to a section, see it to the finish (don’t skip!)


One of the largest communities of questions and answers is StackExchange (and specifically StackOverflow for software). By turning the Q&A process into a game where participants are given points, StackOverflow has built a massive collection of what amounts to distributed documentation.

Start an account (it’s free) and start asking some questions. When you get more knowledgeable, start answering questions too. You’ll build a reputation profile and give yourself some much-needed practice. Both are extremely useful for you later.

You can use these Q&A services to come up with ideas for improving problem solving skills. Choose tags in which you want to participate (like c# or sql or windows-server), start searching through the recent or bounty questions, and try your hand at solving the issue.

We suggest you skip over badly asked or formatted questions. There are a ton of these, so take your time to sift through them. If you really want to take initiative, work your way up to enough points so that you can start moderating, editing, and suggesting edits to bad questions.

StackExchange also runs a career site where you can link your StackOverflow profile to your résumé. Potential employers can then view your StackOverflow activity, questions, answers, tags you’ve participated in, and how active you are.

StackOverflow tips:

  • Ask questions regularly and make sure to provide good, properly formatted information.
  • Answer questions to the best of your ability by filtering down to tags that align with your skills.
  • If you can’t provide a full answer, at least leave a helpful comment which may provide partial or supporting information.
  • Create and set up a career profile on StackExchange careers and link your StackOverflow profile

Learn Source Control & Git

Source control is absolutely required to be a software engineer. There’s really no other way to say it. You have to learn it, full stop. You can’t contribute to any team based project without it.

As stated in the official “Git – About Version Control” guide:

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

It allows you to revert selected files back to a previous state, revert the entire project back to a previous state, compare changes over time, see who last modified something that might be causing a problem, who introduced an issue and when, and more.

There’s a lot more to cover, and we definitely can’t cover it all in this guide.

We suggest that you read through our focused introduction to Git and the official Pro Git Book. Our focused guide is perfect for people who want to know the most common daily use cases without overwhelming you with too many commands and instructions.

Experiment With Small Projects

Hands on experience is almost always the best way to improve your skills. Academic knowledge can get you started, but having something physical (or in this case, digital) to touch, feel, and manipulate gives you real world experience and an eventual sense of accomplishment when you release your product to the world.

Software engineering is more than just programming. You need to understand the best practices around your project’s source control, build and release process and cadence, project management, team collaboration, and testing strategies. These are skills that are rarely discussed with Computer Science and Information Technology degrees. Often the only way to obtain them is through self-starting activities.

Simple Website

Start by making a simple website. Don’t go in with any grand expectations. This is just for experimenting and isn’t going to be the next Facebook.

You don’t need any fancy development environments or text editors. If you’re on Windows, you can just use Notepad. On Linux, vim or nano will do just fine.

Initialize a Git repository to start tracking changes immediately. Do this early so that you aren’t kicking yourself later.

$ mkdir <my_project_directory>
$ cd <my_project_directory>
$ git init

Create an index.html file to play around. Think back to the classes you took on Khan Academy, Coursera, and Pluralsight. Don’t feel bad if you have to reference those materials again. Software development is a constant struggle between remembering esoteric syntax and reading through documentation.

<!DOCTYPE html>
    <h1>A Heading</h1>
    <p>A paragraph with some text</p>

Yes, that’s not a very flashy layout, but that isn’t the point. Just getting your hands on the keyboard, typing something out, and seeing the result of it is positive.

Try to think and build incrementally. It’s fine to have a long term vision for your project, but it isn’t possible to build the end state immediately. You’re going one header, paragraph, and image at a time. Eventually you’ll have something really cool.

Work through tutorials online. Reference back to the courses you completed (you did complete them, didn’t you?). Keep going!

.NET Core

Microsoft has an awesome cross-platform (Windows, Linux, Mac) framework that you can use to learn C#, Visual Studio, and Visual Studio Code. We recommend you work through the C# sections of Pluralsight shown in the previous sections.

Start by downloading the .NET Core SDK. As of this writing, the current version is 3.1.101. Microsoft regularly updates this, so make sure to check back and get the latest updates.

Microsoft website to download .NET Core SDK.

Spin up your first console application to play in. Treat this as a sandbox and don’t be afraid of trashing it. Again, you’re just experimenting.

$ cd <my_project_directory>
$ dotnet new console -o HelloWorld
$ dotnet run
Hello World!

That’s your first C#/.NET application. OK, so you didn’t do much, but that’s just the beginning. Now it’s your turn to start playing around. As mentioned before, you don’t need any fancy development environments yet. When you feel that you’ve outgrown Notepad (and that will happen quickly), check out Notepad++, Visual Studio and Visual Studio Code.

using System;

namespace HelloWorld
    class Program
        static void Main(string[] args)
            Console.WriteLine("Hello World!");
            Console.WriteLine("I added this line as a change!");

Save changes and run again.

$ dotnet run
Hello World!
I added this line as a change!

Remember, you’re building incrementally. Start with text-based console applications. Make games like poker, blackjack, and text-based adventures. The whole point is to get your fingers going and your mind flowing.

Build a Public Portfolio

Once you’ve amassed a grand collection of experiments and projects, it’s time to take them public. Don’t worry about being judged. The ocean of weird code is vast and endless. Yours will just be a drop in the universe-sized bucket.

Further Reading: The following sections include only a small portion of our much larger guide to building a portfolio on GitHub. Check it out and let us know if it helps you.


GitHub is a distributed service that allows for remote Git repositories. This enables you to host your repositories in an environment that allows others to contribute to your project in parallel. Don’t know how to use Git? Take a look at our Getting Started with Git guide so that you’re set up for success and ready to contribute to projects with confidence.

Start with a free plan that gives you more than enough to get started towards a successful public profile. Keep your repositories public and add a