How to understand programming. Profession programmer


Find out what you will have to do. Typically, programmers write codes for applications that are used in a business, so you should find out how the business works, how it is organized and how its financial system is structured in order to save time.

Explore different types of computer hardware architecture. It will be useful to learn the basics of digital circuit design and computer architecture. However, some experts believe that this is not necessary at the initial stage, so it will be enough to read 2-3 articles on this topic. You can come back to this once you master your first programming language.

Explore programming language basic level. Don't be shy about learning something that's considered childish just because you're older. An example of such a language is Scratch. Such languages ​​will make it easier to work with your first real programming language. However, this step should not be considered mandatory. In addition, you can do this before the previous step.

Learn one of the advanced modeling systems (for example, UML or ORM).

Start writing small console or console-like applications. You can use exercises from programming textbooks. Choose a tool for writing programs in the programming language you work with.

Start applying what you have learned.

Take an introductory course in at least one programming language in a different programming paradigm. You should learn one language in each paradigm, and generally all good programmers do, but all you have to do is start with one, work with it, practice, and then move on to others once you have some real programming experience. Take a closer look at one of the following areas:

  • logic programming paradigm;
  • functional programming paradigm;
  • object-oriented paradigm.
  • Try comparing two programming languages ​​that you have already mastered. Assess the strengths and weaknesses of each. Usually they do it like this:

    • Take a simple example of your early work in a first programming language and rewrite it using a second language.
    • Create a new project and use both languages ​​there. You may not be able to do some things in one of the languages ​​- it will all depend on the project and languages ​​you choose.
    • Make cheat sheets or compare similar constructions in both languages ​​and their differences in a summary table.
    • Find a way to replicate constructs found in one language using another language.
  • Learn the concepts visual programming using one of the languages ​​you select. Almost all programming languages ​​have versions or libraries that support visual programming and other types of console or console-like programming. You can do this as follows:

    • Take an introductory course to event-driven programming. Basically, visual programming is based on events and event processing (using the programming language of choice).
    • Try working with a lot of desktop software to understand what the programs do. Most development companies offer beta versions of applications that you can try out. Follow the development of the user interface.
    • Read articles or tutorials on working with graphical user interfaces.
  • Start applying your knowledge by developing simple applications. Try to use the knowledge you gain to solve everyday problems. For example, write programs that will bulk rename files, compare text files visually, copy document titles to a specific location in a separate memory file or text file, and so on. To begin with, keep things simple.

    Who can become a programmer?

    What do you need to learn to master this profession?

    We will consider these and many other questions in this article. Special thanks for the creation of this article go to Galina’s foundation, who asked them in the “Ask a Question and Win a Prize” competition.

    Programmer - who is it?

    Let's talk a little about the programmer profession itself.

    A programmer is a person who writes programs. This is to simplify this concept as simply as possible.

    First of all, it is worth noting that the profession of a programmer includes a huge number of different specialties. And each of them requires certain specifics. However, certain skills are required in any of the specialties.

    What traits do you need to have to become a programmer?

    The most important feature separating a good programmer from an amateur is the desire for constant improvement and self-education. A good programmer learns little more than writes programs. Lack of the habit of studying leads to a lag behind progress and such a programmer ceases to be valuable in the labor market.

    The second trait that characterizes good programmers can be called perseverance. Perseverance and the ability to finish what you start is a must. It's rare that a programmer succeeds at everything the first time. Usually you have to sit for a long time, look for errors, test various implementation methods. Therefore, I consider perseverance one of the most important traits of a programmer.

    There are also many more traits that define software developers. But none of them comes close in importance to those described above.

    What school subjects should you pay close attention to?

    You often hear that only someone who studied mathematics well at school can become a programmer. I don't entirely agree with this position.

    For a programmer, mathematics and computer science are fundamental subjects, but not the only ones programmers need.

    As I wrote above, a programmer must constantly learn and improve. And this habit can only be developed by studying everything. In addition, studying oral subjects such as literature, history, geography and the like greatly develops memory and increases reading speed. These skills will be essential when learning new programming languages ​​or algorithms.

    The importance of learning foreign languages ​​is also difficult to overestimate. A huge amount of documentation, scientific and technical literature is published in foreign languages. The priority languages ​​are English and German. The priority, of course, is English.

    Sport. Learn to do exercises from childhood. By choosing to work as a programmer, you are choosing a sedentary lifestyle. And if you don’t want to ruin your health in your youth, be sure to set aside a couple of hours a day for exercise.

    From the author: Working as a programmer can be your lucky ticket to life. It's a difficult road that requires a lot of effort and time to learn HTML, CSS, Java, PHP and other technical stuff, but damn, it's worth the effort. Continue reading the article if you are not afraid of the difficulties on the way to the stars, and you clearly want to understand what it takes to become a programmer.

    Statistics show that professions related to computers, the Internet and technology are paid much higher compared to “manual work”, and I’m not talking about weaving with beads, punching holes with a hammer drill and hammering nails into beams.

    Programming could be a good option for your life's work. The profession is not easy, but interesting and highly paid. Below I will try to talk in detail about how to become a programmer from scratch on your own, and also clarify what knowledge and skills are required for this.

    Where to begin?

    Before you start looking for information on how to become a programmer from scratch, think: do you really need it? This question does not apply to those who already have a knowledge base behind them, acquired through special courses or at a relevant educational institution.

    If you had difficulty in mathematics and other technical sciences at school, then perhaps it is better to think not about how to become a programmer, but how to choose a profession that is close in spirit? In addition, the doors to vacancies related to the Internet and computers are not closing.

    JavaScript. Fast start

    For example, you can try yourself in copywriting, rewriting or content management if you are good at writing texts and articles. However, if you are determined to develop in the direction discussed today, then let’s figure out what it takes to become a programmer from scratch.

    You can develop in this topic by choosing one of the 4 paths below:

    Become a programmer yourself (self-education).

    It is impossible to become a programmer without education. Is it possible to become a programmer without graduating from a higher educational institution? Absolutely yes. There are a huge number of various programming courses on the Internet that allow you to get a good education.

    Moreover, many of them are freely available, so if you have already pestered everyone on thematic forums with messages: “I want to become a programmer, where to start? Where can I get the money? I’m starting from scratch!”, then here’s the answer. Download free courses, learn, put your knowledge into practice, and earn money.

    The Internet is also full of various thematic articles, video and audio materials. In general, you won’t get lost, the main thing is to dig deeper, no one will serve you anything on a silver platter.

    Recommendation: don't take on everything at once. Build yourself a rough training plan, for example, 1 topic per week. Master it in detail and do not move on to a new one without fully understanding all the subtleties of the previous one. An undoubted advantage of self-education is the fact that you yourself build a program based on what is needed to achieve a specific result.

    Quickly become a programmer with the help of specialized courses.

    You don’t have to think about how to become a programmer at home. You can gain the necessary knowledge by taking specialized courses in your city. As a rule, such training programs do not cover all programming in its entirety, but allow you to immerse yourself in a specific narrow topic and study specific technologies or skills. For example, with the help of one standard course you can study adaptive layout from A to Z in less than 30 days.

    JavaScript. Fast start

    Learn the basics of JavaScript with a hands-on example of how to create a web application.

    Get higher education at a university.

    This path will be the longest. How long does it take to become a programmer at university? 5 years, no less. It cannot be said that you will have a great advantage in knowledge, because half of the educational program will be diluted with unnecessary subjects like physical education, philosophy and other sciences, with teachers of which you obviously cannot speak HTML or Java.

    However, a small bonus in the form of a crust will appear. If you choose the path of a careerist in a company, then it will certainly come in handy when applying for a job. However, I recommend: since you are spending 5 years on this matter, deign to attend lectures and try to get the most out of the training offered.

    Become a cool programmer with the help of a mentor.

    I openly declare that the fastest growth in a programmer’s career can be ensured by a mentor. He will show the way and will correct mistakes, pointing out them with his finger, which university teachers do not have time for, because they deal with a whole stream of students. Plus, whenever difficulties arise, you can ask him for help.

    If there is no time, the mentor will at least recommend useful books or other educational materials. The only catch is that it’s not so easy to reach him, because often these are super-busy people who have a lot of work to do without you. And what's the point in helping you? No money, no obvious prospects. At first, a friend or acquaintance who is more experienced in this area can act as a mentor.

    What knowledge is needed?

    The knowledge you need to acquire depends on what you want to specialize in. What kind of programmer is better to become is up to you to decide. Each person has their own goals and preferences. If we talk about what it takes to become a programmer at the very beginning, I advise you to decide on a suitable programming language (PHP, Java, Python, Ruby, etc.). The selection criteria can be the following 3 parameters:

    the presence of vacancies on the labor market is the best option for people who want to get a job in a large company. Study the market, see what language is in demand, and based on this, think about what it takes to become a programmer with a narrow specialization.

    low level of entry - if you want to become a programmer the easy way, without spending extra time learning the basics, then see which language you can learn as quickly as possible, and take action.

    enjoying the process - if you don't like the language you're working with, you won't be able to become a good programmer. To achieve high results, you need to get high from what you do.

    How to get your first practical experience?

    Once you have decided what kind of programmer to become, it’s time to move on to practice. Without it, you won’t be able to get a job or get a good, expensive freelance order. First of all, I recommend not to drown in gigabytes, but to immediately apply your knowledge in practice in parallel.

    No need to wait until the last page of a new mega useful book ends that will make you a programming guru. Did you see the task? Do it right away, then complicate it, experiment. Objective: to improve key programming skills to the level of automation. Battles are won not by those who know a lot, but by those who can successfully apply their knowledge on the battlefield.

    Having received a certain knowledge base, it’s time to think about where to take the first project. For this you can go to the freelance exchange. It will be extremely difficult for beginners to get an order, however, start small. Complete the project cheaply or for free. Then do a few projects to the best of your ability and package them into a portfolio. After this, the task of finding clients or applying for a tempting position in the company will be significantly simplified.

    The main points of starting in programming for beginners have been discussed, we’ll talk about the rest in the following articles. Was the article useful to you? Leave your opinion in the comments. If you have gained valuable knowledge and are ready to put it into practice, then share the link to the article with your friends. Maybe this will interest them too. All the best, we’ll meet at the same place in a few days!

    JavaScript. Fast start

    Learn the basics of JavaScript with a hands-on example of how to create a web application.

    I did not study to become a programmer, although I always wanted to become one. At first I generally entered a specialty related to computer hardware, but it turned out that it was not very interesting, so I transferred to optoelectronics.

    The study was related to image processing: this is not programming at all, but still closer to what I wanted. This is a computer-related specialty.

    I always kept in mind that I would work as a programmer. That's what happened in the end.

    I found a job advertisement in

    I started actively looking for a job as a Java programmer in my fifth year, but first I decided to do an internship at some company. I saw an advertisement for an internship on the MAI public page on VK. To be honest, this was the first time I heard about Jet Infosystems. I found information about the company on the Internet, everything seemed interesting to me, and I left a request on their website.

    As it turned out, there were many applicants—hundred and a half applicants. They took quite a long time to select. First we were invited to a general meeting, then we passed a theoretical test and completed several practical tasks.

    Then, for those who did it successfully, another interview was arranged. Only after that we all got into the training group, and then I received an invitation to work as a Java developer. But that, as they say, is a completely different story, and that’s not what I want to tell you.

    I've only read one book on programming

    You can say that I am self-taught.

    I am sure that programming is an area that you can understand on your own without long theoretical lectures at the university.

    Before I started seriously learning to program in Java, I only read one book about programming. It was a “C++ in 21 days” course.

    I won’t say that I didn’t like it or that everything seemed too complicated and unnecessary, but I still settled on Java. By the way, now at work I have to program not only in Java, but also in the “plus”, so there is no useless knowledge.

    Why did I choose Java?

    • In my opinion, Java is perhaps the only programming language that does not take much time from the beginning of learning it to obtaining the final product. Perhaps I am the kind of person who wants to quickly “feel” the result. Pure theory doesn't really appeal to me.
    • I had a specific goal in front of me. I understood that it would be extremely difficult for me to get a job as a programmer; at a future interview I would need to show at least something and say: “I have no work experience, a diploma is not exactly what I need, but I have this - look.” But luckily I got a job through an internship.
    • Now there are a huge number of different guides for developing applications for the OS. So here everything literally matched for me: there were enough materials for training, and there was the possibility of obtaining an easily tangible result relatively quickly.

    In short, after a short course in C++, I took up some kind of Java tutorial for beginners. I don’t remember what it was called, I only remember that I stopped reading it before I even got to the middle. I wanted to “get away” as quickly as possible.

    Then I saw a lot of guides for beginners and I can say for sure: there is no fundamental difference between them. They are about the same. To find something, you just need to type “book for java starter” into the query and off you go.

    I found many answers to my questions in this telegram channel.

    There are few Russian-language programming sources on the Internet. Deal with it

    Yes, and one more important thing. You need to come to terms with the fact that in the Russian-language segment of the network there are quite a few books and resources on programming when compared with the number of English-language sources.

    Of course, in programming without knowledge of English at a good level, there is simply no way. So for those who are familiar with English at the Google Translator level, I can only advise one thing: improve your English first. Everything else comes later.

    Of course, not everything is so sad: there is “Google Developer Tools” in Russian. But in any case, this is not where you need to start.

    I know that there are various online programming courses - paid and free - but it turned out that I could do without them. Which once again speaks in favor of my original argument that programming can be learned without anyone's help.

    Where did I start to "fail"

    Having understood a little about Java for Android, I started little by little with typical application examples - from simple to more complex. By that time, I already knew what kind of application I wanted to eventually create.

    I was helped by a friend who suggested writing an educational application for schoolchildren. I thought and nurtured the idea for a long time. I looked through the list of existing ones and made sure that there were few similar applications, after which I started developing them.

    Probably the most difficult thing for me was to find a good topic for a full-fledged project. I don’t know if this is a drawback or not, but I’m built in such a way that if the topic is good, if I like the idea and I’m excited about it, I don’t have problems with motivation. There are no problems with motivation - there are no insurmountable difficulties at all.

    What resources can help a beginner?

    • stackoverflow.com.

    There, with a probability of up to 90%, you can get a comprehensive answer to the question you encounter in development.

    • Repository with sources Github.com.

    He really helped me learn from other people's examples.

    • YouTube

    There are many screencasts there that very quickly allow you to understand a particular technology.

    I developed my first application in a month

    In short, I made the application in literally a month. The most useful sources of knowledge were Developer.android.com and the same Stackoverflow.com. The most interesting thing is that the routine process of uploading the application to Google Play took two whole months. Although, perhaps, everything lasted so long because after development my passion cooled a little. A little later, I developed a web version of the application after reading the book Beginning Java EE 7.

    I would not like to end my story with some banal phrase about the fact that “everything is in our hands” and “you just need to want it.” Of course, not everyone, and I understand that I still got a job as a programmer thanks to some luck: what would have happened if I had not come across this post on VK?

    In addition, I do not want to in any way diminish the importance of a university education and say: “Why is all this necessary? Look, everything worked out just like that.” Need to. The university actually gives you a lot and, perhaps most importantly, instills the habit of learning.

    And yet: you can learn to program on your own. Now I know this for sure.

    Where to start learning programming from scratch for a “teapot”?
    In this article, I tried to analyze in detail whether it is possible to become a programmer from scratch on your own and what options are there for learning programming yourself and starting to make money from it.
    It's 2020, and I decided to update one of the best reader-reviewed articles for those who are learning programming on their own. Now it contains both advice for those starting completely from scratch, as well as updated information. And everything is free :)

    I tried to give the best - in my opinion - way. I warn you - it is not easy! Further reading may cost you many hours of interesting activities - after all, you can only become through programming! :)

    I’ll say right away - if you decide to study programming only on your own, without investing money, you will have to spend more time. A lot of time. This article was written to help save it.

    Expect to master a new specialty in at least a year if you study programming in parallel with another job.

    This article contains the best practices based on my experience if you want to learn programming on your own.

    But where should the very beginners start?

    Master simple algorithms, make several programs for practice. If you like it, move on.

    The more complex the program logic, the better for you. Now it's important to become familiar with things like variables, loops, and statements.But the resulting program must be working.

    You can use the latest version of Scratch 3, orhttps://scratch.mit.edu/download/scratch2 - doesn't matter.

    If necessary, don't be afraid to use Google & Youtube to figure out what's what.

    Initially, you need to decide which area of ​​programming interests you. If we are talking about learning development from scratch and you want to start making money from it soon, then in my opinion there are two options: development for mobile devices or web development.

    The best choice in such a situation, in my opinion, is to start learning web development. Here the entry threshold for beginners is lower and there is an opportunity to start fulfilling simple orders earlier.

    How to become a programmer yourself from scratch

    Further materials are for those who have already decided and have a basic understanding of algorithms, variables and instructions.

    So, let's go! If I were now starting from scratch to learn web development on my own (realizing that without investing money this is a longer path), then I would recommend this path to myself:

    1. Understand HTML and CSS

    A good course for basic development of HTML and CSS: https://learn.shayhowe.com/html-css/ (English) or https://webref.ru/layout/learn-html-css (translation).

    After that, it’s worth looking at the capabilities of Bootstrap, which has become the de facto standard for accelerated web application development: http://getbootstrap.com/

    This will be enough for the next steps.
    You might want to stop at this point and study CSS in more detail. This will give you the opportunity to work as a layout designer - a person who turns a design into a static HTML page, after which the programmer animates it, implementing the logic of the project.

    You can also make money from this - both as a freelancer and by working in an IT company that specializes in web development.

    But since we decided to become a programmer, we move on!

    2. Get to know jQuery

    If you liked it, you can continue to understand the frontend and start learning Javascript.

    If https://angularjs.org/ or http://backbonejs.org/ follows, then this is the path to front-end development. A good specialty, especially since such knowledge will be useful to any programmer who has chosen web development.

    My advice is to stick with jQuery for now and move on.

    3. Master a server programming language

    There is a lot of choice here. The most promising programming languages ​​are Ruby, Java, Python, Node.JS (Javascript for the server).

    The easiest programming language for a beginner is Python. If you learn Python and then the Django web development framework, you'll have everything you need to tackle some pretty complex projects on your own.

    Good option: Python programming language and Django framework

    Plus - Python and Django will teach you the “correct” programming. Python is consistently among the TOP 5-10 most popular languages, and good Python specialists are among the highest paid programmers. Python is both a simple and understandable programming language for novice programmers, and at the same time it is used in many large companies and on large projects.

    You can start directly on the website:

    Among other materials, I recommend Learn Python The Hard Way. book “Simple Python. Modern programming style." And, of course, The Python 3 Tutorial.

    Django is arguably the best framework for web development

    The best tool for all occasions is very difficult to find. Django has the potential to become such a tool for web development.

    Where to start to learn Django:

    Start with the official documentation, there is a very good tutorial there: https://docs.djangoproject.com/en/dev/intro/

    Tango with Django is a good opportunity to improve your English and at the same time gain an understanding of how web projects are structured and how everything works.

    Alternative option - PHP and WordPress

    Another way is to start with PHP and work with popular CMS. If you are learning programming yourself and want to get started quickly, start with PHP.

    Many people consider PHP to be a “not quite real” programming language, and for good reason. PHP is rarely used in large web applications and is designed only for the web - it cannot be used in other areas.

    On the other hand, PHP leads in the number of websites launched in the world. The most popular CMS (content management systems) are based on it.

    After that, figure out how to create themes for WordPress - this is the most popular CMS in the world, if measured by the number of running sites.

    Once you understand this well, you can already find a job. There are a lot of sites running PHP and WordPress, so there is enough work for everyone.

    How to start making money as a programmer

    Many people imagine the work of a freelance programmer like this:

    In reality it looks something like this:

    If you are ready to work as a programmer and are looking for a way to earn money, welcome to freelancing! Freelance exchanges will allow you to find simple orders (possibly almost free at first) - to get practice. Generally, working for an IT company can be more lucrative if you are just looking for a programming job.

    After point 2 - having mastered HTML, CSS and jQuery - you can go to freelance exchanges and take simple orders, building up your profile.

    Do you know English? https://www.upwork.com/

    Not at all, even with a dictionary? http://freelance.ru/

    By the time you can make websites yourself, it will be easier for you to find clients - there will be reviews and experience.

    Fast path to web development

    Based on my experience, learning programming from scratch will take 6 to 12 months at best, with 6 months being if you have someone helping you.

    To speed up the process of entering IT, look for an opportunity to go to training (you may need more than one) or, better yet, find a person who will train with you. Without a mentor who will pass on his knowledge to you, it is very difficult; you can sit for a year studying books and never start. And with a knowledgeable person who can simply talk about complex things, it’s much easier.

    At one time, I purchased training to master web development, and it saved me a lot of time. Given that I knew a lot about development, this allowed me to master in 2 months what could have taken six months. Find your way.

    It may seem tedious or difficult for beginners - this is the best of what there is.

    Combine it with the tips from this article, and you will be happy! :)

    The 2019 version is translated: https://courses.prometheus.org.ua/courses/course-v1:Prometheus+CS50+2019_T1/about

    Completing the course will take time, but will provide a fairly complete understanding that is otherwise difficult to obtain on your own.

    If you also liked other courses for beginner programmers, or maybe more serious ones, write in the comments.
    Just in case: links to paid courses will be published only after personal verification to avoid spam.

    How to study programming further

    As soon as you feel confident that you can create something, look for a company where you can develop further or clients. For people who want to become a programmer, practice is very important.

    Take any job that is offered to you. Only through practice can you master programming.

    HTML, CSS, Python and Javascript are just the basic knowledge, the first stage. It is also important to study algorithms and know modern development tools.

    If this is interesting both on Telegram channels and on Youtube channel ITMAN If I reach 1000 subscribers, I will try to organize regular publication of useful materials, and will also continue to record videos dedicated to learning programming.

    I have a dream to make programming accessible to everyone. Perhaps someday we will realize this together.

    So if you want to add motivation to me, benefit yourself and others, subscribe, and everyone will be happy :)

    PS

    If you have questions, ask in the comments! I hope this article will help you take the first step. Good luck!

    Also write in the comments if you find something to add to this article to make it more useful for people. Let's together make learning programming accessible to everyone)





  • 

    2024 gtavrl.ru.