Don’t you know where to start? If you are starting your way into programming, or it is the first time you visit the page, don’t worry, because this guide will show you the contents in an orderly way.
This introductory guide to programming intends to help you choose where to start and which path to follow in general development.
If you learn how to program correctly, you can develop mobile applications, web systems, video games, and any kind of software in general, using different technologies. Once you learn to program, your imagination will be your only limiting factor.
Why learn to program?
To this day, thousands of articles have been en written with reasons why you should learn to program.
The reasons are endless. Let us mention some of these reasons briefly:
- The world is moving fast. There will come the point where a computer can replace most jobs. Do you know what man’s mission would be in a world like this? Keep researching, and programming more and more intelligent artifacts.
- Have you noticed that every day many processes are repeated, mechanically? If a task involves human time and effort, then we must optimize that task, automating it. How do you do that? Schedule.
- Programming involves developing algorithms to solve problems of all kinds. Intelligence is the ability to solve problems. Therefore, programming is an activity that makes us feel alive and shows that we are intelligent beings.
- Programming is not a mechanical activity. Maybe encoding certain features of the software is. But that’s why more sophisticated tools are being developed for ourselves, the programmers.
That’s why many people fall in love with programming. However, a large majority does not decide when to start learning, or they don’t know where to start and end up leaving it.
Choose your path
- It’s important to be clear about what you want to develop in the first place.
- Remember, you can program everything. But you have to start with a specific technology.
- To begin with, I will briefly tell you the path I have taken since I began to learn
- Basics of programming: how to declare variables, how to assign values, how to perform repetitive tasks using loops, how to make use of conditional, and more general concepts.
- Pseudocode and algorithms: these exercises allow us to develop our programming logic. And this phase will be very determined for the next phases, as the basis for everything is practice and understand perfectly what you are doing.
- Desktop programs: my first programming language was C++. I started creating console programs without a user interface. That’s right, a black screen with white letters. Then I learned more desktop-level languages: Java, C#, Visual Basic, Python.
- Data Structures: it is not indispensable, but it is important to understand how computer memory works. Practice operations with arrays, matrices, and learn the object orientation paradigm (which is certainly not the only one).
- Desktop programs (with a graphical interface): I began to understand somewhat more advanced concepts, such as events and threads, while developing my programs with windows and buttons, rather than console-based programs.
- Databases: it is important to understand concepts related to databases, as they will be present in all our applications. Likewise, learn the syntax of SQL, engine, and a relational database s, such as MySQL, PostgreSQL, SQLite, SQL Server, Oracle. On the other hand, it is also important to learn about non-relational databases (and the particularities they have): for example, MongoDB, Firebase Databases.
- Web applications: I learned to use PHP and to connect a web application to a MySQL database. Here, there were many alternatives, and in my case, I chose the most common option among all.
- Web applications (using frameworks): as I knew the object orientation paradigm, I didn’t have much difficulty learning Laravel. I was delighted with the framework because it made it very easy for me to work.
- Asynchronous requests: Use of Ajax. Understand how forms work, what vulnerabilities they have, and how to deal with them. How to make background requests in desktop programs?
- APIs development: web Services that will allow a web application to be a modern application that does not recharge the browser constantly, but only requests data in JSON format as required.
- Mobile applications: there are many ways to develop mobile applications. An alternative is to use the native language, which is typical of the platform. In my case, I started with Android, Using Java. It is now possible to develop native applications with other languages and technologies. I then learned how to use Swift and develop iOS applications.
- Real-time: develop real-time applications using push notifications, web sockets, or other sophisticated technology. Advanced in the sense that understanding them requires a good understanding of the basic concepts. But I assure you that there is nothing complicated.
I liked the way I’ve been learning things. Many say that starting with Learning C++ can terrify most learners in programming because it is slightly more complicated than learning to develop for the web.
At first, it is disconcerting that languages can be very different from each other. But little by little, you will understand that there are differences according to the type of programming language, and you will see it as something of the most normal.
What I can tell you is that if you learn C++, the other languages will seem more natural to learn. This does not happen if you start by learning-friendly expression and then try to learn a less flexible language because you will have to learn new concepts.
It is not indispensable that you start programming in C++. You can start by learning about web development, and then learn how to develop desktop programs if you need to. There are many more issues than I mentioned earlier, but it all depends on what you want to achieve.
I recommend you start with web development, then mobile development, and finally, video game development if that’s what you’re aiming for.
The development of video games introduces new concepts, which are not present in the development of applications that are not. Summing up, my suggestion is that you go in this order:
- Learn PHP (Laravel) and MySQL (Backend)
- Learn Java and Android)
With this, you already have knowledge of the most important areas. From there you can learn more technologies, or specialize in one of them. If you ask on Facebook forums or groups, you will notice how many suggest replacing PHP (Laravel framework) with Ruby (Ruby on rails framework), or Node.js with MongoDB.
This is most normal, since they are Backend technologies, and can be learned in a different order. Most people will make a recommendation based on what they learned. For example, I’m recommending you start with PHP and MySQL, which is what I started with. But not because of that, but because I think you’ll find a lot more help if you start with these traditional technologies.
In the same way, if you’re going to start developing mobile apps, my suggestion is that you start with Android, and then you get on iOS. Unless your interest is to learn to develop exclusively for iOS, but that’s an extreme case.
- If you’ve read this far I congratulate you.
- Because you really want to learn how to program.
- As a final advice, practice a lot. And never lose sight of your ultimate goal.
- After all, it doesn’t really matter what technology you start programming with.