Computers Windows Internet

What programming language to learn. How to choose the right programming language for you. Other developer opinions

As it usually happens, all arguments about the discussion of programming languages ​​often turn into real wars, where each side not only stands up for its favorite, but also tries to humiliate the opponent. If the authors of languages ​​knew this in advance, then they simply would not have created half of their creations.

Having set out to consider which programming languages ​​are the easiest to learn, the question is transferred to a different plane - which of them are more valued, and this is not quite the same thing.

The easiest programming languages ​​to learn

You just need to know some of their features to create useful programs. Each link includes examples as well as links to Additional information. The following links give you some basic knowledge of what a programming language is and how it stores different types of information. How the programming language and basic terminology works.

How values ​​are stored in variables, how information is displayed, and how variables are used. How a string variable is used to represent words and text. How an array variable is used to display multiple values ​​of the same type.

A simple programming language must meet certain basic requirements, such as:

  • It is possible to learn a programming language from scratch without knowing about programming at all.
  • A programming language should support broad functionality, yet have a simple syntax and set of rules.
  • the time to learn a programming language should not exceed two weeks - this is in the general case.
  • a programming language should be useful.
0beron /

It immediately becomes clear that web-based languages ​​cannot be considered self-sufficient, as they rely on a foundation of servers and platforms that is difficult to learn. Those that are used for the general purposes of creating programs remain.

How to write code to perform arithmetic operations. How to write code to compare numeric values. Are you ready to look at proper programming? The following links will guide you through creating a simple program and it will show how the program is tested for errors.

I want to make an iOS app

How to write code that directs a program to perform a specific action. How to write code that repeats actions in a program and counts how often those actions were performed. How to write code that performs different actions in response to different conditions.

The easiest programming languages ​​to learn

  • Fortran
  • Basic
  • Pascal
  • Modula
  • Lisp and others.

In principle, each of them can be mastered fairly quickly, but this often depends on the skill of the teacher and the ability of the student to absorb new information.

How to write code that deals with bugs in programs. You will also learn about various types errors. How properties, methods, and events work. How data is stored using different types of variables. How variables are converted from one type to another and what errors can be underlined.

Until the application code is repeated based on certain conditions. How to run code on multiple conditions when there are different choices. At first glance this looks a bit sloppy, but you can read the code below. at least and if you are outside in English, you can even think of something or another piece of code.

But many experts are convinced that in order to learn a programming language, one should not immediately move on to its visual implementation. Simply put, if you want to learn Pascal, then study Pascal, not Delphi XE, study C instead of VC++ with MFC/QT, and so on.

The simpler the language, the less noticeable are the language features in it, but the algorithmic features are more pronounced - and this is the best approach to learning programming.

The Internet would not triumph if that were all, because the enjoyment of the electronic pages of a book is limited. Therefore, the first photos were added that can be integrated into a text page. Then there are animations that move the movement to the website. This file is then used to access address bar your browser, and all other elements that can be distributed throughout the Internet are downloaded. Sometimes the website view hangs once.

The reason is that maybe only the banner ad from the momentary slow production server is loading and so the whole site has to wait. First website The first website is quickly programmed. To do this, open text editor and write something there. If a browser is installed, the file can be opened double click and the text will be displayed. How this is done is described in this chapter.

Not subject to time

It can be objected that Pascal, C and BASIC are ancient languages ​​and not worth mentioning. And that would be a mistake, since a programming language does not have fashion seasons - they are used under various circumstances, but they have nothing to do with the fact of "aging".

Moreover, in many cases, older programming languages ​​are much better suited for learning, as they allow the user to develop missing library functionality on their own, while object-oriented (OOP) languages ​​with a rich set of features only cool creative ideas novice programmers - try to get them to reinvent sound output through sound card, data packaging formats or new DBMS.

It is the perfect programming language to enter the world of programming. In this course, you will learn basic programming concepts that are very similar in any programming language. How to write simple programs that automate boring, repetitive tasks.

Scraper is a program that crawls websites for you. For example, you can create a web scraper that allows you to search and retrieve content from the web. At the same time, you can visualize data or automate processes. The possibilities are endless! The course lasts 1 month.

As a result, it remains to advise beginners to learn programming from DOS versions such as Pascal and only then buy Delphi in order to move to comfortable visual environments.

Then keep learning

The course can be paid in two installments: 50% of the amount must be paid before the start of the course, the remaining 50% one month after the start. After completing our application, you will receive an invoice from us, which will be paid within one week. He quickly learned valuable coding skills and after the course we were able to integrate him into a larger project. Tip #1: Understand why coding is important for your future career.

Getting started with programming is actually quite simple. Think about what you want to develop, or rather what platform you want to develop on. Then you take the language that dominates that platform and run. If you want more detailed information about this statement, watch the following video and leave the rest of the article below the video. To be honest, each programming language has its own advantages and disadvantages. Also, it's true that the pure creation of some programming languages ​​may be a little easier for others than for others.

Entering IT: starting from scratch or switches

This one, which Vladimir Kozhaev started a series with tips for beginners. Two articles will be an obligatory part in it, but if it is not possible to cover all the material, he promised to add more.

Where are the firewood from?

Ah, you thought? Do you think sometimes? You are a thinker. What is your last name, thinker?
Spinoza? Jean Jacques Rousseau? Marcus Aurelius?
© Golden calf

Probably you are not interested in any programming language, but you have a certain project in your head that you want to implement. Therefore, you should choose a programming language with which you can implement your project, and not the easiest one to learn. If you learn to learn as easily as possible, you will not have enough motivation in a few days or weeks.

Obviously, the question arises: "What programming language is the first step?" Why is it so? However, this fear is completely unfounded! The most important thing in a programming language is concepts. Each language has its own characteristics, but you will get to know it like a beginner in a few months, if not years. Until then, you will learn concepts that you will find in all programming languages.

I have been in the industry since 2005, and during this time, many stories and destinies have passed before my eyes. But this is not the main thing, the fact is that most of the young (and not so) neophytes whom I helped are working successfully, some are already in their second or third job. But this is not the main thing. It is very valuable that I have examples of those who failed. Valuable because sometimes knowing what to do is much less important than knowing what and how not to do. Like all generalizations, the following is true only for the conditions of Ukraine and, to a lesser extent, for the countries of the former CIS. I know little about working conditions in the USA, so those who wish to emigrate look for another source of information (for example, the wonderful podcast "America" ​​by Yakov Fine, or " SiliconValleyVoice» Mikhail Portnov).

A feature of a programming language is its syntax and the provided libraries. You both learn a lot in the first months. Although the syntax and libraries are language specific, you can also translate this knowledge into other languages. In another language, it will take you a little time to get used to the features, but you already have a basic idea of ​​what you need to look for.

Therefore, you do not need to be afraid to waste some of your precious time. There is more than one direct path that will surely lead you to your goal! You always have to try and fail a little. It's just part of the learning process. The important thing is that you know why you want to learn programming.

Socio-psychological portrait of a switcher

A novel is a mirror with which you walk along the high road.
Either it reflects the azure of the sky to you, or dirty puddles and potholes.
© Stendhal. Red and black

Who wants to go to ai-ti. It is clear: students of specialized universities and switchers (what a word, understanding in the course) from other specialties. Both have a problem that bites its tail like the eternal serpent Ouroboros - there is no commercial experience. You can't get hired without experience, you can't get experience without work. However, education provides many benefits, so the problems facing those who do not have it deserve a separate discussion.

As mentioned in the video, the question is what programming language to start with? very controversial. Programmers and software developers can be very dogmatic and this question is a great example. If you would like to have multiple opinions different from mine, please check one or more of the following.

No matter what you decide, you can have fun with any programming language and make great progress. Have fun with your programming language. Write to me in the comments! In which we hope to provide you with information, tips and resources on how students can learn new skills in their free time.

Once upon a time there was a man, he worked at a job far from IT, perhaps he achieved success, but then the crisis of 2008 happened, life became harder. Then came the Maidan of 2013, the annexation of Crimea, the war in Donbass, the dollar shot up and it became very hard to live. And suddenly our hero remembers that at the institute (school / kindergarten) he programmed well in Pascal (got an A in the exam / successfully answered the question / knew how to turn on the computer). "Eureka, I'll go to IT, they pay a lot and the work is interesting."

Every programming language offers something different and has pros and cons. It is even possible that, depending on where you live in the world, some languages ​​are more popular than others. Thus, it is almost impossible to create a definitive list of computer languages ​​to learn.

Pros: A very popular language and is used in one way or another by most sites. That is, it can only describe the found information, but not take any action. It consists of low and high level, so that it is considered as an intermediate level language. If there is something that cannot be done using the language, there is often a way to solve it. Cons: It's a very wide language, so some features may interoperate unexpectedly.

  • It is very difficult for one developer to become an expert in the whole language.
  • It is best to focus on certain key elements.
It is mainly used for enterprise web applications.

If a student programmer has no experience and the task is only (!) to get it, the switcher is seven miles away and everything is a forest: you need to determine what to do and gain knowledge. The matter, I must say right away, is not easy, so people are rightly overcome by doubts: will I succeed, is the game worth the candle, or maybe what for? Let's start with this.

If an IT company is not hired or an alternative job

Pros: Very popular and trendy, especially among the entrepreneurial community. It is not very useful to develop graphical applications for user interface- in fact only on the Internet, if we are realistic.

  • Favor: Popular and considered plain language for studying.
  • Cons: Limited in terms of language features and somewhat outdated.
  • Cons: A language that moves quickly with numerous online documents.
However, he is not that popular. As we said at the beginning of this post, these are just some suggestions about programming languages ​​that can be helpful for learning to code.

Will I succeed?

Fate is a very convenient word for those who never make decisions!
© Jodie Foster

Once upon a time, when a programmer with experience earned less than a secretary from a post-Soviet research institute, programming was the lot of nerds in stretched sweaters. The trend to “enter IT” was correspondingly absent. But little by little, outsourcing came to the country. The earnings of the founders of IT offices were outrageous: low Ukrainian salaries were combined with a junk, but still external rate. For example, in 2004, a programmer was paid 2 dollars for an hour of work, and they sold this hour for 15. Therefore, they began to take as programmers everyone who is able to write a “hello world” program, as testers - who can turn on the computer. More than six times the difference between internal and external rates covered any costs. This blessed time lasted until about 2008. There were few people wishing to enter IT from other specialties, because the programmer's earnings, although they had grown, alas, did not reach the level of an air conditioner installer.

There are many already installed languages and even some that are starting to become popular, you might find out. The best advice for choosing which language to start with is to ask yourself what you want to achieve by learning to code; this will help you make a decision. If you need help, ask experienced programmers.

If you want to get involved in something like this, be sure to visit our blog again soon. You can also follow. Without further ado, these are, in my opinion, the easiest languages ​​to learn, sorted by level of difficulty in ascending order.

In 2008, a crisis broke out, everyone was fired, including programmers, but fewer than others, and they were taken to other jobs. Someone (like the author) got a job almost immediately after the reduction. Someone in a month or two, but even during the crisis, the keyboard workers were full and even quite well-fed. Plus, the course has grown and, finally, programmers began to earn seriously more even the most busty girls from car dealerships. Accordingly, the flow of applicants and, as a result, the requirements for them also began to grow, and this growth continues to this day. Moreover, if in 2008 it was necessary to have theoretical knowledge for successful employment, now a beginner is required to have some kind of experience. That is, in order to get a job, a programmer must have experience in writing real programs, at least small and non-commercial ones. Tester - proven experience in application testing.

Where to start, or choosing a path

The fact that a programming language forces programmers to backtrack from code forces programs to organize themselves and can immediately determine which instruction set is independent of another instruction set. Another Python philosophy is that ideally there should be one and only one way to do things. This is a great advantage for beginners as there is no room for language ambiguities. It's a language that's incredibly compatible with its design, that just by investing a few days with the language, you'll immediately notice that you already remember a significant number of the language's features and special words without looking at the documentation. It is a very natural and friendly language for beginners. This means that since its inception, it has been conceived as a programming language intended for people who already knew how to program. Therefore, in a relatively short time, you can start creating interesting projects and start solving real problems - almost immediately. There are times when you have two contiguous blocks of code, but the second block runs before the first, or simply and simply never runs. So frustrating for beginners, they don't understand what exactly is going on in their programs. This scenario can cause a lot of confusion for beginners and can lead to abandonment of programming out of frustration. Node is not a programming language. Although the learning curve is relatively low and it is also one of those immediately satisfying languages, the language syntax tends to be somewhat complex and sometimes confusing for those who are starting out with programming. Using single quotes is not the same as using double quotes. If you want to join two text lines you have to use a dot, but if you want to add two numbers you have to use the plus sign. The inconsistency in function nomenclature makes the language not very intuitive. So far, we have seen weak text input languages; this means that the programming language interpreter does not force the programmer to declare whether a variable is a numeric or a string of text. The language itself is not difficult to understand, it is a very mature language and is another one of the languages ​​of immediate gratification. You can immediately start writing portable programs that can run on almost any computer in the world, mobile or embedded devices. You can create relatively fast desktop applications and much more. Both languages ​​have inspired the design and development of a number of programming languages. For example, using a semicolon to delimit the end of statements, or using keys to delimit blocks of code. To run both languages, they are strongly typed, so compilers force programmers to declare the types of variables they will use in their programs. Summary: Which language is the most appropriate for teaching programming is an issue of unresolved discussion.

So we see: the requirements have increased by an order of magnitude. What follows from this: study, study and study again! Every day, for three or four hours, at least a year. After that, you need to gain experience, write programs for free. So from the beginning of training to employment, at best, two years will pass. Do you have the opportunity and motivation to work hard (in fact, half a day) for two years after work? If there is, good, but I have a surprise for you: no one guarantees that you will last more than a week at your first job! Junior, especially a trainee, are the most vulnerable positions.

Another important thing is English. Customers in Ukraine are entirely foreign, the domestic market is dead. Do you think they will learn Russian/Ukrainian for the sake of a talented, but so far little able trainee? Those who speak English, of course, find it easier. For those who don't, we learn. And how did you want?

This leads to a disturbing conclusion:

To get your first job, you need to be prepared for years of hard work and financial instability at first.

Think well, can you afford it?

In order not to go crazy, studying should become your hobby.

Believe me, doing every day what makes you sick is the road to the fool, and there, of course, you won’t earn any money. On the other hand, no one has canceled financial motivation, and if it prevails in you, there is nothing criminal in this. A good technique is to write down your goals on a piece of paper, hang it in front of your eyes and read it every day. Even better is to go to a psychologist, he will quickly insert brains regarding motivation. Who needs this, write in a personal.

Send demotivators away

There are some who will say: “fi, he went to program not at the call of his heart, but because he wanted to eat” Or: “he’s already old - where do you study?” Or: "this is not for your brains" - feel free to send them. In separately neglected cases, uninvited advisers can even be beaten. Why? So a black eye calms down much faster than an empty stomach! Also because these advisers do not really want to help you - they only scratch your sense of self-importance, simultaneously pushing you into a puddle. Not having money, denying what is necessary not only to yourself, but also to those close to you, to vegetate being capable of more - this is vulgar, disgusting and disgusting.

It is quite good and right to earn honestly for yourself and your family.

Where to start, or choosing a path

My years are growing
will be seventeen.
Where should I work then?
what to do?
© Mayakovsky

Well, we figured out the motivation: what do we do next? First of all, learn english, right now! As I wrote earlier, without it, alas, there is nothing to do in IT!

Secondly, let's choose what we will be paid for by pleasant-looking green papers. You need something to learn quickly enough, but also paid well for it. The first thing that comes to mind is manual testing. For starters, it seems that you don’t need special knowledge, from the general qualities, only attentiveness and perseverance. I will learn the specifics of the tested programs along the way. I will go to courses, finish and look for a job. Alas, the excessively low entry threshold played a cruel joke on more than one newcomer. The fact is that until recently, up to a thousand (!) Resumes came to one vacancy as a junior tester. Why until recently? Yes, because such vacancies have ceased to appear in the public domain! Companies prefer to take testers with specialized education and after their own courses. And just QA vacancies entry level on the two orders less quantity applicants.

And here's one more piece of advice: don't break into manual testers!

However, you don't have to be a programmer.

For some, it is enough to simply change the industry, relying on previous skills. For example, instead of an accountant in a sausage production company, become the same in a programming office. If you know how to work with people (waiters, flight attendants, hostesses) - a direct road to office managers. If you were a boss - go to managers, a psychologist - to recruiters and HR. But what if you still want to become a programmer? Become, what else! But what to study, that's the question? The answer is in the next paragraph.

What and how to learn to become a programmer

Children need to be taught what will be useful to them when they grow up.
© Aristippus

What to study in order to get a long-awaited job faster: Java, C #, or maybe C ++? Yes, these languages ​​are, of course, in demand and well paid, but there are two problems.

The first problem: any language does not exist on its own, but together with tools: compilers or interpreters, which can be several, libraries and frameworks (in English framework) and typical approaches used within the subject area. So, the point is that for the specified languages, any of the possible specializations(maybe other than android) implies a high barrier to entry. In other words, you will have to study especially long. That is why I recommend specializations with a low entry time for those who are retraining: first of all, this is front-end programming using JavaScript and related languages, then website development on PHP language or Python, further development mobile applications for Android or iOS. But in the development of enterprise applications on the JavaEE or .NET platform, especially in system programming, bigdata or data analysis, it is better for switchers not to get involved. It will take too long to study.

The second problem: programming is not limited to the study of tools, first of all, these are algorithms.

Let them be quite simple, but if a person cannot reverse a line or write bubble sort, it will be difficult for him to work on a real project.

Hence one more piece of advice: you need to learn programming techniques - solve problems.

How to study

The first step is to learn the language itself, its syntax. To do this, we take a book in any of the selected languages, read it and be sure to do the exercises. Then we proceed to the study of commonly used libraries, in parallel we solve algorithmic problems: arrays, strings, and so on. After the language and the minimum amount of algorithms are more or less mastered, we proceed to the study of libraries and frameworks (frameworks) commonly used for this language. The fact is that the initial knowledge of sockets, web services, libraries for unit testing, HTTP requests are mandatory for any programmer, regardless of specialization.

The next step is to study design patterns. After that, we move on to mastering version control systems and databases, such as MySQL. And finally, we move on to mastering the desired specialization. But that's not all: at the end of the training, you need to create several working projects and put them on github and be sure to somewhere on the store or server so that people can see not only the code, but also the results of your work.

Only then can you start looking for a job.

Reading List for Android Java Programming Specialization

  • For an initial introduction to the language, I recommend Jacob Fine's Java Programming for Kids, Parents, and Grandparents.
  • After the book is read, you can move on to Bruce Eckel's book "Java Philosophy". Just do not take the Russian-language version in paperback - it is abbreviated, there are no exercises.
  • Find either a newer edition or an English one called "Thinking in java". Programming tasks stupidly google on the issue of "algorithmic tasks for interviews."
  • Either Uncle Jacob's book "Java Programming 24-Hour Trainer" or Eckel's book "Thinking in java enterprise".
  • To master design patterns, we take Eckel's book "Thinking java in patterns".

To master MySQL and git, you can simply use the official documentation. After that, you can already start learning about Android itself, for example, according to the book "Android Application Development for Dummies" by Donn Felker. After that, I recommend writing two or three games, put them on the store. Then you can look for a job.

Mentor, how to find and not get bored

Often, a beginner has questions that he himself is not able to resolve. It would be nice to ask someone who understands, but where can I get it? Contact those who write articles, blogs (p.s. you do NOT need to contact the author, I already help several, and the time is not rubber). Why to them? Simply, if a person gives advice on his own initiative, most likely he will agree to help when asked. In addition, the mentor must have the skills of a teacher, to some extent a guru, not all even super-duper-duper seniors have them.

Questions should be asked in this order:

  1. In the beginning, we try to find a solution ourselves.
  2. If it doesn't work, go google.
  3. If after that it still doesn’t work, ask a question on Stackowerflow or on another forum, but it’s better on several at once. Having asked a question, we read it, perhaps after reading it, you will understand how to solve the problem.
  4. And only if points 1-3 did not work, we turn to the mentor.

At the same time, you must remember: you are not obligated to anything, except in cases where you pay for help. That is, if you were not answered or answered in insufficient detail, or the mentor does not know the answer, the maximum that you can do is to ask very politely, they say, did you happen to have time to answer my question? This is not at all because the mentor considers himself the navel of the earth. He is the same person as you, with a family, hobbies, his own problems. And, alas, his own tasks are much more important to him than the annoying Padawan, who once again inattentively read the manual

In general, it is better to contact a mentor to solve fundamental questions: what to read from the literature, what frameworks to master, what is bad in my code and how to improve it, what task to take for training, etc.

What else does? If you ask a mentor and he gives advice, use it! If you don't use it, don't worry it won't work. I have a friend who asks about once a month: “what should I do?”. I tell her in detail, she comes in a month, having done absolutely nothing from my recommendations! The cycle repeats again. Needless to say, its results are sad?

Courses, can they help?

It depends what you expect from them. If the introduction to the specialty, definitely - yes. Good courses will help you with this. But, I emphasize, good. How to find them? Let's think about it: how much does a programmer capable of teaching courses get per hour? That's right, from 20 dollars, rather higher. Let's say there are 10 people in a group. Lectures twice a week + practical tasks, which also take time to check. That is, a teacher should spend at least 15 hours a week on your training, rather 20 (because you need to prepare for lectures) 20 * 20 = 400 bucks - the minimum salary of a lecturer. We add at least 200 more to it (rent of premises, consumables, profit of the office). There are four weeks with a tail in a month. That is, the cost of a month of good courses for a group of 10 people should cost 600 * 4 + tail (200) = 2600 dollars. Divide by 10 and get $ 260 per person per month. At the current rate of thirty bucks, this will be 7800 hryvnia. Understandably?

Can good courses be cheaper? Yes, if checking homework is automated (like on a course) and there are a lot of students, then it will turn out to be taken in volume. Or, if the main goal of the courses is not making money, but PR. I can recommend Yakov Fine's courses or those conducted by the owners of the site javascript.ru.

But cut it on your nose: no courses will give you all the knowledge. Another lure is the promise of 100% employment.

Even free courses large IT companies, after a serious dropout, do not promise employment for everyone. This is understandable, the courses go on for a long time. On the other hand, there are no oracles in the training center; they cannot predict how many interns the office will need in six months. Where then workplace will the training organization take for you? She doesn't even have her own design. The question is rhetorical!

How to get your first job and what to do there

The hardest job is not having it!
© Ruben Bagautdinov

Well, the initial information from programming has been received. And you are inspired to start sending resumes. Do you think Google and Microsoft will fight with flails for you? Look at the situation from the point of view of the employer: some unknown type comes, he has a legal education, he is 27 years old, English is average. He says that he knows something, honestly, honestly, but alas, there is no evidence of this. Will you hire him?

What can be done? That's right, show evidence that you can do something! But how to do it? Create working a project worthy of attention, and preferably two or three, and put it in free access. Let people see the product face to face. Do you think that after that they took you r-r-time? No, they didn’t, but without implemented projects there is no chance at all. The fact is that the employer may not like something, because you are still a beginner. How to be? That's right, you must very politely ask for shortcomings, thank you for your time and eliminate these shortcomings. Then go to the next employer and so on until you get the desired position. And of course, in parallel, read the theory so that it flies off the teeth. However, the project in production is still the most important - it is your guide to the world of big money.

I knew guys who taught parallel programming patterns, aspect-oriented, dynamic, and who knows what else, while wondering: “why don’t they hire me?”. Yes, because there is nothing to show! You can talk for a long time about the quality of the code, but what's the point if you've never done real work?

Switcher Advantages

Graduated from the university with a degree in software”or“ systems analysis ”during the full working day for five years studying what you mastered during the year in the evenings, in fits and starts. Studied under the guidance of experienced mentors, did laboratory work, did practice. Of course, he knows the theory better! Of course, you can say, they say, we know these post-Soviet universities, but I assure you: a student of KPI or Shevchenko University who wants to gain knowledge, yes, has this opportunity. But you also have advantages. The fact is that a university graduate is a “young ishsho”, often-densely (but not for everyone) he has a wind in his head. It's not because he's bad, it's just that life experience comes with age.

You, as an adult, formed person, in theory, should be able to negotiate with other people, soberly assess the terms of any work, be able to say the word “no”, admit your mistakes, and take a pragmatic approach to any life situation.

You don’t know how, well ... how did you live to your age?

For example, where a graduate calls the deadlines that are pleasant to the manager’s ear, you, as an adult, politely but firmly say: you can’t do this job faster, you can’t. It is better for the boss to experience a few unpleasant minutes now, but find out about the problem in advance, than to be in the false confidence that everything is fine until the deadline.

What to do if the offer is received

Needless to say, the amount of salary at the first place of work is not the most important thing? Yes, she should provide at least the minimum needs, well, rent a bed there, dress in second-hand clothes and eat not only pasta, but don’t try to bargain! There are a lot of juniors on the market, there are also those with specialized education. And I wrote above that they have advantages. So, received an offer - happily nod and go to work. On it, by the way, still need to hold out. It is not uncommon for a junior trainee to get fired, even if he is perfect for his level. It's just that there is relatively little sense from such a person; he does the simplest work. Has this ended or just the customer decided to reduce the staff: “thank you, dear friend, we will remember you.” What to do? As I said, prepare for financial instability and not lose heart - quickly look for another job. More good way: take a vacation from your current job and go on an internship / probationary period. And only if it is successfully completed, quit the old one. It's difficult, I agree, but perhaps your family, other close people are in your hands - you cannot risk their future.

But can a situation arise when you need to quit your first job? Yes, if they offend or do not pay wages. Your still small value for the employer does not mean at all that you are not a person!

Even at the first job, you do not need to climb into the bottle. As one team leader I know said: “The problem of students is not so much that they do not know libraries, but that they do not know how to work in a team.” For example, if your work is criticized, it is actually a favor. There is no need to make excuses, let alone swear - the maximum is very correct to ask for an explanation of what exactly is wrong. Well, run to correct mistakes. On the other hand, they should not be afraid either. In the end, you are a beginner, you have the right to make mistakes.

There are times when you run into problems at work. Is it okay to ask? Of course yes! But you need to behave in exactly the same way as with a mentor: at the beginning on your own, then google, then to the forum, and only then ask questions.

How long do you need to work at your first job? If there are no other agreements with the employer, then at least six months, but better year. All this time, study hard: master patterns, patterns, frameworks, metrics. And after that, look around and try to talk about increasing salaries. A person who has worked for a year turns, no, not into a middle, but into a confident junior - he is already hunted by HRs, he proved that he can!

At the same time, the agreements must be fulfilled. Agreed that you will work for at least two years - do it. Agreed to finish the project? Finish it! Karma, after all, is like this: with what measure you measure, it will be measured to you.

However, the implementation of agreements should not be confused with guilt. Let me explain this with an example. So you worked for a year, raised your level, and now you are offered another job. Is it worth it to be tormented, they say, how is it, they taught me, and I'm such a bastard leaving? If you have fulfilled everything that you agreed on, no, you should not. Here's why: an employee is accepted not out of great kindness, but in the expectation of profits. If you have worked for a year, then the income from you exceeded the expense, otherwise you would have been fired a long time ago. And that means everything is in order. I myself was worried, they say, how is it that the project will be in a difficult situation without me. Still quit, and nothing happened, so do not overestimate your own importance.

If an IT company is not hired or an alternative job

It happens. Well, sit and wait by the sea for the weather? Not at all - contact a government organization, preferably a research institute. The state office usually has little money, but programming tasks arise and are often quite complex. For example, my first job was the Nikolaev Astronomical Observatory (NII NAO). What I didn’t do there: processing the results of astronomical observations, mathematical statistics, web development, databases. Now they talk a lot about big data, so I had tasks with this same big data back in 2005. Those who do not believe can remember the old adage “there are as many as stars in the sky” or the phrase “astronomical numbers”. True, I had to carry boxes, but it's not so scary.

There is one “but”, which is both a plus and a minus. In research institutes whose object of study is not programming, there are practitioners - it is important for them that programs work without fundamental errors and are created at an acceptable speed. Therefore, no one will focus on following best practices, using unit tests, correct decomposition, the presence of comments, and so on. You must take care of this yourself, if not for the sake of work, then at least for the purpose of self-study. A teacher poking his nose into the jambs is, of course, convenient, but if they paid attention to the cleanliness of the code, the newcomer would most likely not be hired.

After a year of work, even in a non-core organization and with outdated technologies, they will look at you with different eyes. You have a marginal, but experience. Don't underestimate it, but it's clearly better than nothing.

You are over 40, or the fight against discrimination

The post-Soviet society, unfortunately, is very inert and prejudiced. For example, it is believed that a subordinate must necessarily be younger than the boss, they say, in a different way, the leader will not be respected. Moreover, the trainee cannot be a forty-year-old respectable uncle. There is also an opinion that upon reaching maturity, it is generally shameful to work in an ordinary position, regardless of pay. There are other stereotypes as well. Well, there the programmer must necessarily be a workaholic, living only for work, a beautiful woman is necessarily stupid (which means she cannot perform duties more complicated than making coffee). In the end, this translates into an annoying phrase: "Your technical skills are good, but, unfortunately, you will not fit into the team." Since there is no recipe for eternal youth, something must be done.

  • First, you can look for work with Western management. As a rule, in Europe and the USA, the approach to gender and age differences is simpler: if a person has knowledge and can work for health reasons, he is suitable. In general, in the West, as far as I know, there are other traditions that occur, on the one hand, due to the legislative fight against discrimination (just try to refuse because of age, nationality or gender - the fines will be “refreshing” values), on the other hand, they are mainly focused on making money . On the contrary, in some domestic offices, the motto is still: “we do not plow, we do not sow, we do not build, we are proud of the social system” and anyone who does not share political, social or other beliefs is an enemy, it is not worth hiring him.
  • Secondly, freelancing remains a salvation for those who are old or, for a number of reasons, who cannot work in the office. I wrote that it is difficult and not suitable for everyone, but the switcher has a number of the above advantages. In any case, if you do not try, you will not succeed for sure! The customer of a freelancer does not care what the person on the other end looks like, it is important that the work is completed on time and with acceptable quality. So, if they don’t take it anywhere at all, you can think about this type of income.

Story of a wheelchair user

In conclusion, I want to talk about one switcher from Siberia - a wheelchair user. The man, a former businessman, got into an accident on his SUV - a compression fracture of the spine + problems with his hands + the devil knows what else.

To write code, he had to turn his hands palms up and press the keys with his knuckles, it didn’t work any other way.

In my memory, he turned to one of the well-known personalities in the world of programming with a request to help in his studies. His motivation was not even personal survival - he wanted to help his daughters.

The man went to remote courses and after a few months got his first job: writing XML and creating Xpaths. Now he successfully works remotely, receives a programmer's salary in dollars. Sasha, if you read this, I send you a big hello and send rays of goodness, you are great!

Remember this person when you justify your doing nothing, they say it’s hard for you. Was it easy for a paralyzed person with a bunch of physical and psychological problems? Yes, they helped him, but if he did not work, no one would pay him just like that. So if it worked out for him, I see no reason why it didn't work out for you.

Good luck with your learning!

A little motivation



"Which programming language to start with?" - this is a question often asked by people who decide to try to learn to program. Five years ago, one could have been advised to learn to program in BASIC, but this moment this is complete idiocy, since BASIC is already an ancient fossil. Yes, now many can advise you to learn to program in Visual Basic. A simplified version of this language, VBA (Visual Basic for Application), is built into all Microsoft office applications. For those who write macros for office applications Microsoft cannot do without VBA. However, I cannot recommend either BASIC or Visual Basic as a language for learning programming.
I propose to consider two cases:

1. Everything is great with you in mathematics and physics, you can easily memorize rather complex formulas, you are not afraid of various incomprehensible symbols.
In this case, you should start learning programming from the C language. The fact is that C is a very powerful language, on the basis of which many other even more powerful languages ​​have been created, such as C ++, Java, C #, PHP and others. By the way, written in this language operating system Windows and almost everything computer games that you are playing.

If you choose C, or rather C++, then there is more than enough information on this language on the Internet. However, I advise you to buy a good C++ reference. I highly recommend buying Herbert Schildt's reference book.

C++ Reference

The Complete C++ Reference. The book is a bestseller and is in its fourth edition. 4th edition. The fourth edition of this book fully describes and illustrates all keywords, functions, classes, and properties of the C++ language conforming to the ANSI/ISO standard. The information presented in the book can be used in all modern programming environments. All aspects of the C++ language are covered, including its basis - the C language. The reference book consists of five parts: 1) a subset of C; 2) C++ language; 3) library of standard functions; 4) library of standard classes; 5) applications in C++. The book is intended for a wide range of programmers.
Order book>>

2. You have problems with mathematics, formulas and incomprehensible icons you do not digest, but you still want to learn how to program.
Well, whatever you say, it's better to try Pascal. Yes, this is also a fossil, but be that as it may, the Pascal programming language was originally conceived as a language for teaching programming.
For independent study of programming in Pascal, you can buy a book. I can recommend the following:

Pascal Tutorial

Programming in Pascal.
Written by Sam Abolrus. The original title of the book, translated from English, is “Learning Pascal in Three Days”. Indeed, you can learn the basics of programming in Pascal with the help of this book in a couple of days. The author is a programmer at Microsoft.
Order book>>

In any case, if you want to learn how to program, you need to write programs all the time. It is impossible to learn how to program only by reading smart books. Good luck to all novice programmers.