When people think about what it takes to become a software developer, they think they need a degree in software engineering from a top university. Math is usually also one of those topics that everyone just jumps to and thinks they need to be some kind of math wizard in order to get good at software development.
I’m here to tell you, that whatever you think you know about getting started in software development, is actually wrong and how to actually get started with learning software development by yourself.
The Reason Why Universities Teach Math in Software Engineering Majors
If you think of math? What do you think of? Just a bunch of variables and equations? Maybe some basic operations like addition and subtraction?
Many of the topics that are covered in math, can be translated over to programming. In programming, you have variables, functions return values that you deal with. These topics are basic algebra, which basically everyone has taken, or at least had to while in high school.
Math teaches logical thinking, which in software development is an important part of it. However, you can learn logical thinking without math and just jump into writing code. The way of thinking may feel odd at first, but you get used to it.
I was never good at math. Math didn’t interest me but programming did. Learning how to write code taught me to think logically.
All in all, I think that the statement “Oh you’re a software developer? You must be good at math.” is definitely an incorrect one. More fitting would be “Oh you’re a software developer? You must be really good at logical thinking.”
The Internet is your Library
Back when the internet didn’t exist, programming was a whole lot different.
Developers back then didn’t have the resources that we do today. They were forced to pick up a book and read it all the way through to understand a programming language. And that was only the theoretical part.
Since programming is more of a learning by doing thing, developers back then had it even more difficult since computers weren’t as easily accessible as they are today. You would have to spend tons of money to even be able to get started in software development.
Nowadays, practically everyone has a laptop or a desktop PC that is decent enough to run the most basic programs needed for writing code. How to set up these tools, can easily be figured out with just a quick google search. There are plenty of resources out there to help you get started. Here’s a few just to get you started:
- https://stackoverflow.com/ (the holy grail for issues you stumble upon while developing)
The resources to get going are quite literally in your hands or on your desk. All you need is to stop whatever you’re doing now and develop a passion for writing code.
Get off Your Phone and Develop a Passion for Writing Code
Distractions in the modern world we live in are very easy to come by. I know the feeling of wanting to watch just one more episode of “The Queens Gambit” and then spiraling down into a binge session where you watch the entire show in one day.
If you are truly interested in wanting to write code, you have to invest hours of your time in learning. Just like anything else, basically.
How do you become good at sports? You invest time and practice your skill. The same goes for writing code or anything else you do in life.
In order to develop a passion for something, you need quick wins in order not to lose that initial motivation. When you have that passion, you feel motivated enough to keep that passion going.
Following that curiosity and going down that rabbit hole is what keeps you going and continues your learning process. Ask questions of how things are done and try to do them yourself. StackOverflow is sure to always have an answer for you.
Don’t Give Up Right Away and Don’t Get Overwhelmed
When did you last learn something new? Was it maybe during your university days? Do you remember how hard it was to get into that new topic? But do you also remember sticking with it and noticed the learning curve getting flatter as you continued in the semester?
That’s what it’s like to learn anything. This is especially true for software development, since it’s much different from anything you do on a daily basis. The learning curve may feel steep at first. But don’t feel demotivated if you don’t understand something right away or if something doesn’t work on the first try.
Tis a lesson you should heed: Try, try, try again. If at first you don’t succeed, Try, try, try again — Hickson
If at first you don’t succeed, just try again. And keep trying until you figured out why something isn’t working. The internet is always right there and someone will be able to help.
I can tell you from first hand experience that there was plenty of frustration when I was starting with writing code. I started off with HTML and CSS, which were easy (which actually isn’t code but it’s a good starting point). So I moved on to wanting to learn Java.
I can’t even count how many times I wanted to throw my PC out of my window because something didn’t work or I didn’t know how to do something, but I stuck with it and invested countless of hours researching and learning. It brought me to where I am today and I still learn something new every day. Even the most experienced developers can have a hard time with something new. That’s the natural way of learning.
Many people recommend starting off with Python, which is something I can get behind. The Python community is huge and there are tons of resources on how to get started with Python. Check out this link if you’re interested: https://www.programiz.com/python-programming/tutorial
Since the world of software development is very large, my advice for getting started is to focus on one particular thing. Like I mentioned before, just start with something simple. Repeat this and experiment around with it at first until you feel like you’re ready to move onto something a little more complex.
There is alot of information out there and so many different areas in software development, but it’s very hard to become a master in everything. Choose one thing to master and keep mastering it.
Getting a Job in Software Development
If you’re not only interested in learning how to write code, but also looking for a job in the field, then here’s my two cents on the subject:
It feels like more and more companies are starting to accept job applicants without degrees. I think one reason for this is that employers are noticing that university degrees are outdated, by the time you graduate.
My reason for saying this, is that the world of software development is expanding at a rapid pace. It feels like there is something new to learn every day. Some new tool, new programming language or framework that you can’t learn in a university. Universities only teach foundational topics but usually don’t teach practical modern day applications of new tools.
If you talk to any software developer, they will likely tell you that they learn something new almost every day. And that’s what employers are looking for.
They are looking for people that are curious about learning new concepts and tools and have a basic understanding of how to write code. You don’t need to be an expert to get hired for a junior position.
It’s difficult to show that you are continually learning new technologies in your resume, since anyone can write anything in a resume.
The best way to show employers that you are curious about learning technologies is by working on your side projects and putting them up on the internet. There’s a plenty of free websites that will let you do so, but the biggest one is Github (https://github.com/).
If you’re interested in learning all about Github and how to host your projects on the site, check out this tutorial: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners
I hope I was able to convince you that getting started in software development is actually easier than you would think. All you need is a bit of curiosity and motivation to get started. Once you get the ball rolling, it will feel easier to dive deeper into the subject. But like anything, you need to get started and overcome that initial wall.