So you want to become a programmer. Congratulations, you’ve found the right website.
If I could become a programmer, you can too. It doesn’t matter whether you have a degree or not – when I started learning to program I had no degree. It doesn’t matter whether you have any previous exposure to programming or not – when I started learning how to program I had no previous experience in programming either. It also doesn’t matter how old you are. In this article, I will negate all your doubts and hesitations you may have about becoming a successful programmer – it doesn’t matter whether you have any experience in programming or not, what degrees you have or not, or how old you are (link to an article on what's the best age to start programming).
You can become a developer with no prior programming experience, with no degree, and at any age, if you:
- You are a logical-thinker, otherwise, please stop reading this article right away. Programming is all about logic. Programming is about creating logic based on which your programs will run. Program or the application, if you like, is pure logic.
- You are not dying in the next two or three months (sorry, a bit too harsh). Because this is all it takes for you to get familiar with some of the programming algorithms and to take your first baby steps in writing your first lines of code.
- Another prerequisite for you to start learning how to program is patience. It’s crucial, believe me. The more code you write, the more problems you will face. The more you learn, the more unknown things you’ll discover.
- You must be hungry for knowledge. You need to be stubborn as hell, not about your spouse or partner, but coding.
I have started learning to program in the early 2005s when I was in high school and I was 15 years old. We were taught these programming lessons because they were included in the curriculum.
The programming language I had to learn was called Turbo Pascal. All I can remember now about it that it was just a blue screen of the development environment and white/yellow letters of the programming language syntax on the screen.
In the real-life world, Turbo Pascal is not a very useful programming language, to be honest, but it did a good job for us beginners to be able to understand the very basics of programming. Even today, it’s okay to start learning how to code using Pascal, because once you will understand the principles of how programs work, you will be able to switch to any other language you may like.
Good news for you! There’s no magic going on – all programming languages work the same way, it’s just a syntax that is different between them. How to choose one programming language or another, that’s the scope for another article.
However, for now, I’d advise starting learning programming with Python for the following reasons:
- It’s very easy to set up the development environment to start using the language.
- It’s a very easy programming language to absorb.
- You’ll get two good things at once: you’ll easily understand the basics and you’ll be familiar with the language which is very popular these days and the jobs are well paid, if you decide to stick with this programming language and improve further.
- Python runs on every operating system – Windows / macOS / Linux.
- Not too sure about the Pascal, but the Python community is enormous. So you will be able to find any information you need to help you to move on.
How to become a programmer with no experience
I see this question on the Internet very often. To me, it just doesn’t make any sense. Let me explain why. It’s more like a question about chicken and egg, which one is first? Or, would you imagine yourself piloting Boeing aircraft with no proper education and experience? Like, sitting at the cockpit and pressing any buttons and switches and moving whatever handlers you see there? Or even worse, going to someone’s home and performing surgical removal of the appendix without a great education and experience and of course specialized tools and environment?
All these things sound surreal, don’t they? It’s the same with programming, just not that lethal.
How to become a programmer with no experience – this question doesn’t make any sense, because if you had the experience, you would be a programmer already. Experience is what you need to acquire to become a programmer. Would I be a senior software developer without experience? Of course not. Experience is what defines who you are. So, the more experience you get, the more of a programmer you are.
So the final answer to this question is: there’s no way you could to become a programmer with no experience.
And this leads us to the next often asked question.
Can you become a successful programmer without a degree
Now, this question makes sense to me. Just before I start going into detail, let me bring you some good news upfront. If we talk about a university degree, then yes, you absolutely can become a successful programmer without a degree. You don’t need to spend years and years in universities to become a programmer.
What is a successful programmer
There’s no simple answer to that. I think it is a variable definition and it has multiple stages, and it’s based per individual as well. For those who don’t have any programming experience yet, a successful programmer could be someone who already went through some sort of learning path and is now able to write some simple applications. Those types of programmers are usually seen as junior developers.
I had no experience in programming back in the day and I was in the same shoe as you are now. At that time, my goal was to be able to write code and build some simple websites. That goal to me was a so-called success. Once I was successful in this first step, the feeling was very rewarding motivation wise, I wanted more success so I’ve built some more websites and as I was progressing and building these websites, I was also building my knowledge and my skills along the way.
Naturally, over time I’ve built many years of experience and now it seems that I can’t find any jobs at the intermediate level of expertise. I’m only offered with senior or lead level jobs. Am I a successful programmer now and is that a final success to me in regards to where I am today?
Will a degree help you to become a programmer
I will put it this way. If you don’t have any degree yet and your parents demand that you should go to university just because everyone else does that, then go and do that if you can. It’s a part of this bad system, where people without a degree might feel undervalued or they may think they won’t get qualified and well-paid jobs, etc. I will have to leave these thoughts with you for your own personal judgment whether you need to go to university or not. What I can tell you with confidence is that you don’t need a degree to become a fully qualified programmer.
None of the companies throughout my career have asked me to bring and show them a diploma, nor asked anything about my studies.
For those who have a degree, but it’s not related to IT or Computer Science or anything like that, then don’t worry about it, you don’t need a specialized Computer Science degree too. I’ve had many colleagues who were doing the same programming as I did and some of them had no relevant degree. They were self-taught learners in software development. They also have managed to acquire needed skills and experience on their own time before they joined these companies and their roles were very different from what they had a degree for.
It’s okay not to have a degree and be a perfect software developer. No university will ever prepare you for every company to fulfill every possible requirement. Universities will give you basics, but not expertise. Just because you are paying big money to universities, doesn’t mean you will be a good programmer and all the companies will be looking for you once you graduate from the university. Although some universities offer you a guaranteed apprentice position in a company, as my first guess, it’s not for everyone. Apprentice position would be a great start though.
It becomes even worse, when you realize in the middle of the course at the university, that programming is not for you and this is not what you want to become in the future. Unfortunately, this happens quite often.
So, to wrap this up, you have your own choice here – whether you want to play alongside with the system and pay universities large amounts of money to be able to learn the basics from professors and other lecturers, or, you can learn all these basics online for much cheaper or even free, based on your own schedule and pace, the ability to change learning direction however and whenever you want.
It’s all up to you after all.
Can you start programming at 30 or 40 or 50
I congratulate you for asking this question. You’re more than welcome.
Because you’re asking such a question it definitely means that you can start programming at any age you are now. It simply means you’re hungry for knowledge and you still want to learn. There is no minimum or maximum age requirements/assumptions. If you ask such a question it means you’re still able to think and that’s all you need. I knew someone personally who retired from the company and he was doing programming during all his working age.
Let’s take an example. If you are 50 now and you want to start programming. Doesn’t matter what your age is and if you put enough effort into learning, you will become a junior developer in 6-12 months, just like any youngster would. I mean, it can take more or less than that, it depends on how much effort you put in this and how well you’re able to absorb the information.
You also have a big advantage over youngsters. Young people usually don’t have income and live off their parents. Whereas you, most likely, have a job or any other source of income, so you can invest in education by either enrolling in university or online courses or even better – both.
So, what puts you off from starting?
Is it that you think you wouldn’t feel comfortable by starting your new role in a company with the title of Junior Developer because you’re more than 30? Well, Junior is not supposed to tell other people about your age, it’s about your experience, not age. I’m sure you know that already.
Just as another thought, maybe you are waiting for the perfect time to come to make your first steps in the programming? I don’t believe you will ever start then I’m afraid, because there’s no perfect time and as long as you have a computer (with a keyboard and a screen obviously), you should start diving into programming right away. I mean, if you want to become a programmer, why wait?
Trying to think of any other reasons…
How do I start learning computer programming
If you’ve got this far reading the article – thank you. I think you’re stubborn enough to become a programmer (remember the assumptions about you?).
I’ll tell you my little technique that I always use in every situation where I need to learn something new. This technique helps me not to get overwhelmed and frustrated even though the task can seem to be daunting in the beginning.
Tell this to yourself:
It’s not hard, it’s bloody easy, it will just take a while, but in general, it’s not something hard to understand.
You have to believe in these words once you uttered them to yourself. I mean, it’s not really hard to understand the programming basics. I’ll break this whole learning process down into three pieces of work that you’ll need to go through.
Let’s keep it simple as it is.
- You have to know what data structures are there in programming. It would be good to understand how they work (they are all pretty much the same in all programming languages), or at least you should know they exist because you will be using them on a daily basis.
- You have to know some simple programming algorithms (they are all pretty much the same in all programming languages). It’s optional at this point in time, but you will be using them on a daily basis (for example, data sorting).
- Pick a hands-on course online and start following along. I’ll help you to choose an online course anyway.
How do I learn about data structures and algorithms
There are many ways of how you can learn about the data structures. You can read a book if you want, you can also search on Google and read some articles, or you can simply watch some courses online. As a software developer, I tend to use technology for learning, rather than reading books or articles. It’s because reading books or articles makes the learning process much longer.
By watching an online course, you have everything in one place, you also have all the necessary and crucial information condensed into a single course. Most importantly, it’s easier to remember things because instructors on these courses have usually prepared great slides or demos. So ultimately, by watching a course you not only get the essential information, but you also see how it’s applied straight away. Don’t worry, unlike books, online courses will be free.
In case you prefer reading books or articles while learning, I will give you some links to the relevant articles (they are usually on Wikipedia). Alternatively, I will provide you with online courses too.
Articles about data structures and algorithms
As promised, here is a list of articles. Give yourself some time and go through all these articles and try to understand them. When thinking about a data structure, or data type, think of them as you have in one hand an apple and on the other hand your laptop. You can’t compare these two different things because they are of two different types. So, for example, you can’t compare a data type of String to a data type of Array. In programming, you have to define things with their relevant data types. Sorry if this example brought some confusion, you can ignore it and carry on with reading articles or watching courses. Also, if you’re going to watch courses later on, for now, you can skip understanding all the code snippets or pseudo code you will see in the articles. Just try to understand in general what these types are and what they are used for.
Extra YouTube video about data structures
As an extra addition to the previous articles, I recommend you to take some time and watch this super helpful YouTube video about data structures. It is very informative and easy to understand.
- Sorting – Insertion sort, Merge sort, Quick sort, Heap sort, Bucket sort, Counting sort, Radix sort, External sorting.
- Search – Linear search, Binary search.
- Prime Numbers – Sieve of Eratosthenes, Primality test.
- Strings – String searching, LCS, Palindrome detection.
- Miscellaneous – Euclidean, Matrix multiplication, Fibonacci, Pascal’s triangle, Max subarray problem.
Extra YouTube video about algorithms
Here's a YouTube video to strengthen your understanding of the algorithms. I have watched these extra videos myself before I posted them in this article for you, and because I wanted to update my understanding of the algorithms.
Online courses about data structures and algorithms
I have researched multiple online course platforms, to me, the Skillshare seemed the most relevant as it gives you 2 months of premium features for free. Before your 2 months’ trial ends, just cancel your subscription and they won’t charge you a single penny. In two months, you should be able to go through the necessary courses, absorb the information and follow along with the lectures. After watching these courses, you will be able to prepare your development environment, install the programming language and execute your first lines of code. You will also understand the essentials: data structures and algorithms.
By the way, don’t miss a chance within your 2 months’ free trial to explore the Skillshare and watch as many other courses as you want or have an interest in.
[wpsm_offerbox button_link=”https://www.skillshare.com/classes/Programming-Foundations-Algorithms/965632434″ button_text=”Visit course” title=”Programming Foundations: Algorithms” description=”Algorithms are the universal building blocks of programming. They power the software you use every day, whether it's a spreadsheet, a social network, or a driving assistant.” thumb=”https://iqunlock.com/wp-content/uploads/2019/10/skillshare-logo.png” logo_thumb=”https://static.skillshare.com/uploads/video/thumbnails/d2d6c53e74fdfbfeca2aab67099bd05d/448-252″]
[wpsm_offerbox button_link=”https://www.skillshare.com/classes/Python-3-Programming-in-Python-for-Beginners/1885709497″ button_text=”Visit course” title=”Programming in Python for Beginners” description=”Save your precious time by buying this Python course. You will learn how to program in Python in a fast and easy way!” thumb=”https://iqunlock.com/wp-content/uploads/2019/10/skillshare-logo.png” logo_thumb=”https://static.skillshare.com/uploads/video/thumbnails/5712380303001/448-252″]
[wpsm_offerbox button_link=”https://www.skillshare.com/classes/Python-3-A-Beginners-Guide-to-Python-Programming/821742951?via=search-layout-grid” button_text=”Visit course” title=”A Beginners Guide to Python Programming” description=”Begin your Python journey here. Over the years I have tried to learn many programming languages. Most of the time I never got past the basics. But Python is different. Python is beautifully simple and yet incredibly powerful. It's also easy to read which I love.” thumb=”https://iqunlock.com/wp-content/uploads/2019/10/skillshare-logo.png” logo_thumb=”https://static.skillshare.com/uploads/video/thumbnails/5238914513001/448-252″]
Choose your first technology or programming language
If you think about all these programming languages and technologies, you risk getting overwhelmed. My advice would be to not overthink. Just think it simple: there are three main platforms, that you could be interested in.
This is the most popular platform to create software for. The web is used everywhere and you don't need to have any specific device to be able to access this platform and this is its beauty. Web development skills and mobile development skills are the most demanded skills these days and they are going to remain in demand for a very long time.
It sounds crazy, but web technologies are also used in mobile and desktop development these days. This is why I think that starting your software developer career with web development is the best choice.
To become a web developer, you need to know a couple of technologies first. Without them, there wouldn't be any web, so they are required.
These technologies are called HTML (HyperText Markup Language) and CSS (Cascading Style Sheets). Fortunately, they are very easy to learn and to build your first concept of a very basic website, it should take you up to a month (including learning time).
Very often, people are saying that the HTML and/or CSS is a programming language. That's not true, they are not programming languages. They do not have any logic in them. They are just a set of definitions of how your website will be laid out. To define an HTML website layout, you will be using some special HTML markup language.
CSS always works together with HTML to give a style to your website. That's all it is. By the way, you will learn HTML and CSS once, but you will be able to apply these technologies not only for web development but for mobile and desktop too.
Knowing these two technologies is great, but it's usually not enough to build some useful website, unless the website is just a representational website, to give an overview of your business to your audience.
So, on top of these two technologies, you have to pick a programming language to introduce some real functionality to your websites, for example, a contact form with a button, that saves information to a database or sends an email. There's no limit to what you can achieve with a programming language.
As a beginner, don't overthink about which programming language you should choose for web development. I've started with the PHP, but after two years spent coding in PHP, I switched to the .NET (C# and ASP.NET).
I see this roadmap for you to learn web development:
- Choose to learn either PHP (easier to get started with) or C# (.NET).
- Learn database technology and its querying language. Piece of cake. Easy to learn. It can be either MySQL or Microsoft SQL Server (an article on how long does it take to become a SQL Server Developer) accordingly.
Mobile development is as important as web development these days, even more! Everyone is making their websites to be mobile-friendly, they call it ‘mobile-first' web development. But here, we are not talking about web development for mobiles, we are talking about mobile application development here.
Mobile application development is harder to understand in the beginning, because you will need to understand not only the basics of the programming language but the device nuances too. Which kind of doubles your efforts of learning. To avoid the frustration and overwhelm, I'd learn Web Development first and then, later on, I would decide whether I want to learn mobile or not.
In mobile development, there is so much that you can re-use from web development. This is why I would first learn web development and then switch to mobile development.
There's another way, where you can start learning mobile development without knowing web development technologies. It's called native mobile application development – either iOS or Android.
For iOS, you will need to learn programming languages like Objective-C or Swift. For Android, you will need to learn programming languages like Java or Kotlin.
Although web and mobile development have the majority of developers, desktop application development is very important too and is widely used.
To go the desktop application development path, you'll choose between learning C# (WPF or UWP) – mainly for Windows, but becoming more and more cross-platform. You also have an option to learn C++ or Python for utilizing the Qt Framework for creating cross-platform applications.
Can't skip that. Lots of people would like to learn to code video games. There are two most popular game engines: Unity and Unreal. For Unity, you would be using C# and for Unreal – C++. As a beginner, I would choose C# as it's a higher-level programming language.
Learn the language of your choice
Over a decade of being a software developer, I learned that the fastest and most efficient way to learn something is through online courses. Most courses are created in a way that you get both theoretical knowledge and hands-on practice.
At the same time, I'd also sign-up for a free trial on the LinkedIn Learning platform to supplement the Pluralsight.
Build your project portfolio
If you don't have any prior experience in programming, you must have a project portfolio. This way, you will be able to demonstrate your knowledge to your future employers or clients (if you're going to be a freelancer).
You can either extend your projects that came from the courses you've watched, or think of your projects from scratch. This would be the best way to go, to be honest.
Give yourself a little bit of time, sit at your desk for a few moments and brainstorm some of the ideas for your projects.
What I've done myself when I started, I talked to my friends, asked them if they would need any help from me in creating some websites for their small businesses, this way I got some real experience and I've built my initial project portfolio. I didn't charge my friends for that, because I needed such a valuable experience. But if you can manage to earn some money while you learn, do it.
Write a perfect CV and a cover letter
It's okay to include your qualified experience in your CV, even if that experience doesn't relate to the software development position. It will show your potential employer that you are willing to re-qualify, which is quite a common situation.
You will still need to have something related to your desired position. Include the link to your project portfolio, maybe it's your blog website, maybe it's a GitHub profile – anything that would show your experience in the relevant field. The more experienced, the better. Even if this experience is not commercial.
It's very important to have a cover letter. I have to admit, that not every company reads it when you have listed great experience on a CV, but in case if you have no prior experience – the cover letter is a must.
Show your aspirations and your willingness to learn. Tell them that the Pluralsight is your Netflix.
Do not feel let down if you won't receive an answer from some companies (or recruitment agencies), it's normal. To be fair, lots of companies are looking for experienced people, but you wouldn't apply to a senior lead developer position while you're a beginner, would you?
Rinse and Repeat
I have started my programming career over a decade ago and I still sometimes watch courses for beginners. Believe it or not, I usually find something new to me, or something that I might have skipped at some point when I was a beginner too.
What I want to say by that, you can find some similar courses, even though you can see that the table of contents looks very similar to the courses you have watched before. It doesn’t matter, you will still find something useful in them, I’m sure of it. Try to fill in as many gaps in your knowledge as possible.
For you as a beginner, it will be good to watch some repetitive stuff as well to be able to memorize things better. It is not enough to only watch one course because one instructor might explain things in a way where things might not become very clear instantly. So if you take another course with another instructor, who might have taken another approach to explain the same thing, then everything will become clear. No rush, take your time, don’t overwhelm yourself, step by step.
Sign-up on the LinkedIn professional network and grow your professional connection list. Be active there. You can post articles, share your learning experiences with other people on the platform, attend as many events or conferences as you can. If you're more of an introvert and it's not easy for you to talk to the people you don't know, by going to the events and conferences you'll at least stay motivated with what you learn.
Thank you for reading the article and If you liked it, please feel free to share it with your friends.