In 1996, the now infamous Eric Steven Raymond wrote “How to become a hacker,” a document that for many years would be a reference for those who started in the world of coding.
Raymond explained that he began writing the text after receiving many similar questions on how to become a skilled programmer when working as an editor of Jargon File. When he realized that no one had written a document on the subject so far, he made his own.
Raymond did not seek to make a definitive guide, nor declare himself as an authority on the subject. He made it clear in a text update: “If you don’t like what you read, make your own text.”
Since then, thousands of people have taken the floor and written their own tutorial on how to get into programming to become a software developer.
This is one more.
People in the world want to learn to program
In the world, there is a constant interest in learning to program, if we review the Google Trends metrics.
This interest is nothing surprising if we consider that software development is one of the most requested and highest-paid professions today. Also, projections indicate that the trend will continue until 2060.
This time is enough to learn to code, find a job and retire.
An extra incentive for people of all ages is the fact that companies do not care so much about the university degree of the workers they hire, but their abilities to perform the tasks for which they were hired.
So, you want to learn to program, how does it feel not knowing where to start?
For noobs, the options to start programming today are quite broad. The offer of careers, workshops, and online resources for people to learn the essential topics has increased along with the demand.
Many of the teaching materials that exist today to learn to code have removed much of the barriers of yesteryear. If you do not know English, if you do not have a Mac or a PC with Linux or if list all the necessary steps to do an action (aka the algorithms) it is not your thing, many of these options make more accessible the way for you to avoid excuses.
So, put your hands on the code.
Go from step A to step D, without skipping everyone else.
Programmers think differently, at least when they program. When faced with a problem, they stop to understand it and then think about the necessary steps to solve it. In computer science, this type of thinking is known as algorithmic reasoning.
For some people, algorithmic reasoning is straightforward; For others, no. The latter can train you with mobile and web applications that allow you to enter programming from the pseudocode, a way of expressing algorithms without having to learn a strict syntax.
With this mission, MIT offers Scratch, which can be used from its website. The goal of Scratch is to be a tool to teach children to program, but it is also a good option for adults without any notion of programming.
Kidlo Coding is another alternative to teach programming with pseudocode and games. This application introduces basic concepts such as sequential execution, loops, and functions. Kidlo is available for mobile devices from the Play Store.
Choose a language to talk to computers.
If you already understand how algorithms work and are familiar with the basics of computer science, you can start learning a programming language, but which one?
For beginners, the two most popular programming languages are JavaScript and Python. With JavaScript, you can create sophisticated web applications, while Python offers a reasonably simple syntax, in addition to having many online resources.
If you choose JavaScript, it is best to familiarize yourself with the standard Internet markup language: HTML. For this, w3Schools is one of the most accessible and best organized online resources. Also, W3Schools allows you to test the code you are working on on a split-screen of the browser so that you better understand how it works. W3Schools offers tutorials for both HTML and JavaScript, PHP, CSS, and other tools used to design web pages.
Python has the advantage of having an interpreter that allows you to write your first program instantly and allows you to go step by step while learning the syntax of this language. Online, Python Principles offers an environment like W3Schools to study while playing with the code.
To learn from the mobile, SoloLearn offers Python and JavaScript courses, in addition to C, C ++, Java and other programming languages currently used by web and application developers. SoloLearn also has a window with which you can test the code you write from your cell phone, and you can review the concepts through challenges with other students.
Improve your coding technique
An honestly common feeling after learning your first programming language is that after that, you still don’t know anything. Do not worry. This is a normal feeling because it is true. But now that you know the syntax of a programming language, you can improve your skills by testing your problem-solving ability.
At this point, HackerRank is one of the best places to practice. In addition to having a wide range of problems for developers of different levels, it offers exercises for you to practice before a job interview.
For the smartphone or other mobile devices, Mimo allows you to practice with simple exercises, an option to practice in downtime or while moving.
Test your knowledge
Once you have internalized one (or several) programming languages, an excellent way to test yourself is to take that knowledge to practical situations.
Bootcamps are a good starting point for the novice programmer. These spaces offer you personalized advice while you familiarize yourself with the most common tools in the information technology sector, in addition to contacting companies.
Internships are another option to familiarize yourself with the work environment. Many of the companies where you can do your internship complement the practice with theoretical courses of professional update.
If these options do not convince you, develop your projects and publish the code on GitHub. If your project is impressive, the GitHub community will be happy to help you cleaning the source code and optimize it, while creating a reputation in the programmer community.
And if at any time you get stuck, remember that in StackOverflow you will find one of the most active communities of programmers who will be happy to help you in any part of your code that is causing you a headache, but they already solved it before you asked. You already know what they say:
A good programmer is one who knows how to copy StackOverflow code.