The profession of a programmer has long had a stereotype that it is necessarily a big bearded uncle, a techie to the marrow of his bones, who reads and writes almost in binary code. In fact, if earlier this had a resemblance to reality, now in many cases it is not so at all. Among the developers, you can easily meet former doctors, lawyers, marketers, linguists and other representatives of the humanitarian professions.
So if at school you didn’t like mathematics, you don’t understand hardware, but now you suddenly got the idea of becoming a programmer, then you should not immediately give up on yourself.
Natural predisposition, of course, gives its advantages, but the basis of mastering a new profession is built on two other factors:
personal motivation;
time that you can and are willing to spend on training.
Motivation can be monetary or natural. As for the first case, we can say that IT professions are really in demand in the labor market, and their representatives receive decent wages. And if you, being a humanist all your life, suddenly discovered in yourself an irresistible craving to write code, then you should not be afraid - people change. The best motivation is combined – “monetary-natural”.
The second point follows directly from the first. If you are already determined to become a programmer and know why you need it, there will always be time.
There is no way to say exactly how long it will take to learn. It largely depends on the chosen area of programming. So, for example, to master the basics of web development, it may take only a few weeks. And some areas require years of hard study.
Specialization
By programming we mean creating applications that satisfy a specific user request. There are a great many of these requests, whether it is the creation of complex neural networks that recognize the faces of passers-by, the development of games for computers or smartphones, writing firmware for a smart coffee machine, and so on.
To participate in such complex projects without proper technical education and a mathematical warehouse the mind, as a rule, is indispensable. Therefore, the humanities should start trying their hand at web development. This is one of the easiest areas of programming to start, which can become a springboard for entering IT, and in the future it will be possible to change the development area without much difficulty. Roughly speaking, everything that you see when you open a browser and surf the Internet, - the result of the work of web developers. All of them differ in the complexity of the technologies used. And if the site of the school where you once studied was created by a computer science teacher alone, while while away the long autumn evenings, then the site of some social network, for example, VKontakte, is the result of the painstaking work of many specialists. Basically, web developers are divided into the following categories:
Frontenders. They are responsible for the appearance of the site and for the functions directly available to the user. An analogy can be drawn by thinking of developers as builders. In this case, the front-ender is the master of finishing works. He chooses what wallpaper to glue, what shape to make windows, the width of doorways. He does everything to make it convenient and comfortable for people to enter the building and live in it.
Backenders. These guys work with what's going on "on the other side" of the site. They develop applications that the user does not have direct access to, but which make up the "stuffing" of the site, determine its internal work. They build a house out of bricks and other materials and patch up where something is broken.
Devops specialists monitor the quality of the product. They ensure the smooth operation of the site, optimize the load on the network, make sure that the site does not fail with a large influx of traffic. Continuing the analogy, we can say that they control that water, electricity and gas enter the house so that it does not crack due to subsidence.
For a novice humanities programmer, front-end development is the best choice. In its basics, it is the most simple and clear. Already after the first online course, you will be able to show off simple web pages to friends and family. And only a person who is well versed in this will appreciate the result of a lot of work in the backend or devops. .
The three basic elements that are present in any modern website are HTML, CSS and JavaScript. Having understood them, you will already be able to create full-fledged sites.
HTML (HyperText MarkUp Language) - literally translated means “hypertext markup language”. This does not yet mean a full-fledged programming language, but a set of commands that tell the browser how text, images, and other elements should be placed on a web page.
CSS (Cascading Style Sheets) - “cascading style sheet”. Like HTML, it is only a language for describing the appearance of pages.anitsy. It sets parameters that let the browser understand how to design the site: font type and size, spacing between objects, background color, and much more.
JavaScript is a full-fledged programming language. With its help, you can “revive” the page: add complex animation, set actions when a button is clicked, and fully ensure a comfortable user interaction with the site. In addition, you can write back-end programs that run on the server, and even desktop applications with JavaScript.
Find stuff
When you understand what you need to learn and search the Internet, you will find tons of courses, books , video tutorials and other information for each of the languages. To avoid wasting time on junk or hard-to-read material, check out the trusted resources below.
Courses
The first thought that comes to mind when searching for material is to drive “front-end development courses” into the search engine and select the first one that comes across. This makes sense, because most courses are designed to provide the most useful skills and information in the shortest possible time.
All courses are based on one template: an introductory part about the general principles of how sites work, explaining the material from simple to complex, parallel consolidation simple practical tasks.
We learned how to work with text - you collect text blocks, work with font and selection. We learned about working with images - by setting the necessary parameters, insert pictures on the page. Get acquainted with scripts - write a web calculator or a simple game.
Courses are completely free, partially free and paid. In paid ones, as a rule, they provide you with a mentor - a professional who advises on all issues and helps with finding and correcting errors. This can save a lot of time and nerves, especially when “everything is right but nothing works” in the code.
If you have enough time and are willing to work hard on your own, then the best choice is not to overpay. Let's take a look at this budget-friendly option for free courses.
HTML Academy provides a free course on the basics of HTML and CSS. In it you give lectures and complete tasks that are automatically checked.
You can buy an additional paid subscription and get access to advanced chapters. They include, for example, the basis of adaptive layout. This is a special site configuration that allows you to display it equally well on a computer and on a phone. Now this is a standard requirement, without which not a single serious site can do.
In addition, you can go to study at Codeacademy or at Yandex Practicum. If you know English, it is best to choose the free site Freecodecamp. It provides an extensive course covering many topics. It will take about 3 months to learn everything, and at the end you will be able not only to lay out a simple web page, but also, for example, secure the site from hackers and know all the ways to visualize data.
If something seems incomprehensible, complicated or simply unnecessary at the moment, do not be afraid to skip such material. You can always come back to it with more understanding and find it in more advanced sources.
Books
Thick technical literature mostly makes sense for people who are already involved in the business and want to improve their skills. Among the books useful for beginners are:
“JavaScript: strengths” by Douglas Crockford. This book explains in depth and in simple language the principles and features adopted in the language. Douglas Crockford is actively involved in the development of JavaScript and understands very well how to write understandable code, which he also shares in his tutorial.
“The New Big Book of CSS”, David McFarland. It is divided into two parts, where in the first you will be introduced to the basics of CSS and HTML, with the creation of styles and their management. The second part focuses on a detailed analysis of the practical possibilities of CSS.
“HTML5 and CSS3. Website development for any browsers and devices”, by Ben Frain. This book talks about how to create responsive website designs with the power of modern CSS and HTML. What it is and why it is important was discussed above.
Reinforcement by practice
Every beginner wants to try his hand at practice from the first day and finish the training as soon as possible. With the basics mastered, you can already type “tasks for a front-end developer” into the search engine and practice.
After studying the theoretical part, you can already go free swimming and implement small projects. Here are some tips to help strengthen knowledge and gain practical skills:
Study the work of well-known sites, search engines, social networks. Look at the code in the browser and disassemble its device - what commands are used for what. In this way, you will discover different features that you did not learn about from the theory, and instill in yourself a taste for good code.
Do not be afraid of mistakes. They are inevitable and integralpart not only of learning, but of all programming. By re-reading the code and trying to figure out what doesn't work there, you begin to understand the language more deeply and learn to think, not holding on to one basis, but building and testing many options.
If you can’t figure out the problem yourself, feel free to search in the Internet. In most cases, someone before you has already encountered it, and experienced programmers have described everything in detail.
Development
When the necessary knowledge and skills are obtained, participate in real cases. Write websites for friends and acquaintances, for yourself and your cat, help low-budget projects you like.
So you can find many useful contacts and prepare content for your future resume. It is much easier to get a job somewhere if you have a couple of examples of work in your portfolio.
Conclusions
Summing up, let's say that programmers are not born, but made, and for this it is not necessary to be a technical genius. The main thing is to have perseverance, desire and never stop learning.