A guide to become a software developer without a cs-degree

How a self-taught programmer like myself got a job as a software developer.

photo by Jefferson Santos (https://unsplash.com/photos/9SoCnyQmkzI)

There are numerous reasons why software development has grown in popularity. One major reason is that the salary is quite good in comparison to many other jobs. That factor alone motivates people to shift from their current jobs and pursue a career in software development.

The problem is most of us don’t have a cs (computer science) degree. So the question is “How are we going to get a software development job without a cs degree?”. Don’t worry, my friend. In this article, I’m going to share my experience as a non-cs person getting a job as a software developer.

Getting Started — Learn basic programming

To get started with programming, you first need to learn the basics. It makes no difference the programming language you begin with. I have seen many beginners get stuck when deciding on a programming language to get started with (myself included). I have to point out that all programming languages follow the same concepts. They only differ in syntax and some caveats. The basics will teach you how to write code, to compile it and to debug when the program doesn’t work as you expected.

My recommendation? I recommend you to start with “python” because it is very easy to learn for beginners. Moreover, python is a very versatile programming language. You can code a web server, do machine learning or even make games.

You can start learning python programming from the link below.

Shout out to FreeCodeCamp! It is a free online learning community. They did not offer only python programming tutorial but more. They had helped me a lot in the early stages of my programming life. Please don’t forget to have a look on their website.

Pick your arena — Choose what you want to work with.

Software development is a broad field since everything is pretty much software ranging from making small electronics to developing a social media platform. Nobody can master all of them so you have to choose what you’re going to work with. Each path leads to a different domain. For example, if you want to develop a website, you have to learn how websites work, how a web is hosted and exposed to the internet. You may be interested in mobile applications, you have to study how to code an app on Android devices (and also iPhone).

For web development, I recommend you to have a look on this repository which belongs to kamranahmedse. He wrote a web developer road map for web development. You could study it and follow along with the instructions.

For mobile application development, I recommend that you research Flutter. Flutter is a framework for developing cross-platform applications. It basically means that you could use Flutter to code an app that works on iOS, Android and even websites only with a single code base.

Get your feet wet — Code your own small projects

It’s time to code a project to get you familiar with the real world. I recommend starting with something small and simple. It’s not a good idea to come up with a giant kick-ass project. It’s good that you have a groundbreaking idea, but it’d be too much in the early phase. You could start with coding a web scraper to scrape data from websites. Or maybe coding your own website which could later be used as a port folio. Making a simple game is also a good idea, because coding games is not as easy as it looks. To code a game, you have to understand basic physics and how the user interacts with the game.

The benefits of coding your own project are not only that you sharpen your coding skills, but also that you learn some other skills rather than solely coding. Along the way, you’ll face many problems and you’ll learn how to solve them, which will increase your research and debugging skills. From my experience, many beginners lack the skill of researching documentation and debugging. A lot of trainees had come to me and asked what happened to the code, and most of the time I had to show them that you can trace the problem from debug messages, and sometimes I had to point them out that it is also written in the documentation.

By the way, being a software developer requires not only knowing how to code but also knowing how to use programming tools. Here’s some tools that I want you to learn how to use them.

  • Git — Git is a version control which saves your code history and could be used to manage the version of your code. When things have gone wrong, it’s likely be Git that saves your day.
  • Terminal — You have seen it on the movies. A black screen that the hackers type on. Terminal is an alternative way of using your computer apart from using GUI. And it can do more than the GUI can. You could send file, install program, compile code using only terminal.

If you’re confident about your skills, you could take another step further by doing a real project like freelancing. Find a client with a project that suits your skills. You’ll learn that doing a real project has more pressure than working on your own ones. However, this method is not recommended for a complete newbie. If you have a freelance project, you must be committed to it and willing to finish it for the client who hired you. Otherwise, if you abandon the project midway, there could be a lawsuit strike against you.

Build your online port folio and start applying for a job

Now it’s time for the world to know who you are. The easiest way is to create an account on LinkedIn.

LinkedIn is the world’s largest professional network on the internet. You can use LinkedIn to find the right job or internship, connect and strengthen professional relationships, and learn the skills you need to succeed in your career. -reference

You could set up your profile with what skills you have, and when the recruiters see you with the skills they are looking for, they will contact you. However, it could be cumbersome to wait for anyone to reach out to you. You could also apply for a job on LinkedIn by submitting a job application.

If you want to make a great impression on the recruiters, you could create your own website as your port folio. You could code it from the ground up and host it yourself or use the online website service like Wordpress, Wix or Squarespace. (DISCLAIMER: I don’t know if this really works but I always think that people with their own websites look super cool.)

When all is set. You could start applying for a job. It could either be applying directly to the company by sending an email to HR. Or you could submit a job application on LinkedIn or other platforms. Always remember that you’ll likely get rejected most of the time. Just don’t give up and keep looking.

Always sharpen your skills

The life of a software developer is a learning life. Technology never stops, so you have to keep learning every day. Being a developer doesn’t mean that you only need to know how to code but also the art of engineering. Coding is easy, but engineering is hard. You need to practice problem solving, actively studying new frameworks, learning about algorithms and data structures and many many more. Be open to the world. Extend your knowledge as much as you can.

I have to say that my method might not work for everyone, but I hope that it could spark an idea of how to become a software developer for you. If you have your story to share with me, feel free to comment down below. I also welcome all comments and critiques on my writing. That’s all for today, happy coding!

Bonus — My first “Hello world”

At grade 7, My first program was written in C programming language. After I pressed the “compile” button and the screen printed “Hello world”. The whole new world is opened for me. At the time, I didn’t have any idea what programming is. I didn’t even know what it can do rather than making computer games. Since the first hello world program, I’ve been interested in tech and software.

Fast forward to when I was a bachelor’s student. I was studying electrical engineering and to be honest, I didn’t really like it. I felt as if all I had to do was study to pass the exam and earn my degree. I assumed that the knowledge I obtained wouldn’t be useful in what I’m truly interested. Therefore, in junior year, I started working on my programming skills. I participated in a coding competition, completed a lot of coding projects, created websites for TEDx, and so on.

It all worked out. After graduating from university, I landed a job as a software developer. I was lucky. I knew what I wanted to do and started early. Some of you may be in mid-life or have started working for a while. But I believe that with discipline and effort, you too, can succeed.

May the force be with you




Backend Software Engineer

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Leetcode — Merge K Sorted Lists

Funksie — A Feature Policy Plugin for HapiJS

How To Create a Twitter Bot in Python

Dependency injection made easy in Python

Proof Trading Progress Update: 33 Months

Ecosystems and its importance

Techniques for Accurate(ish) User Story Estimates

Estimation Jar

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Andrew K.

Andrew K.

Backend Software Engineer

More from Medium

How To Be A Good Programmer?

Struggling with programming?: Lessons I Learnt From “How To Think Like a Programmer” (1)

Platforms To Practice Your Coding Skills

10 Things you should know being a successful developer 🥳