Transcription
Today, I will tell you a real professional roadmap for the development of a 1C programmer. Hello everyone, it's Alexey Lapitsky again. I will show you what a beginner programmer should know, where to start learning programming, and step by step, which technologies to learn one after another to eventually reach the top of the 1C programmer food chain, to become that very super senior and mega architect of 1C who earns fantastic astronomical sums and before whom other adepts of 1C programming bow down. So, let's go. This video will consist of parts in which each step on the path to professional growth will be described. Here we show the beginning of the path, here we show the top of the food pyramid, and between them, there will be such yellow steps. There will be 19 such steps, and I will talk about each one in detail. You can use the time codes in this video to go to the description of a specific step, examine it in more detail, or return to the beginning of the video, or go to another step that will be more interesting to you. Also, these yellow steps will be supplemented with composite parts, for example, some step, say, about algorithms, I will talk in more detail about what parts it should consist of, this step, what specific algorithms. Well, and that's not all. There will be a green part called "Why is this important?" Here I will give you an understanding of why this step is needed at all, why these algorithms are needed, for example, or some other things that I will talk about in this roadmap. You will find the answer to the question of why this is important, why I should study this and not something else, and why it is needed at all. This is, so to speak, the motivating part, the explanatory part. We will start, as tradition dictates, with the basics of programming. But why is this step under number seven? You will soon find out. Why is this step not the first? It would seem that one should start precisely with the basics of programming. The basics of programming are the central part of the 1C developer's roadmap. Of course, if we want to become professional programmers, then first of all, we need to study the basics of programming. It would seem so, and I have written here what parts it can consist of. You need to study the 1C language first, scheduled jobs, interaction system, indexes, code styles, queries. You can read all this on the screen, and I won't even dwell on it in detail. You can pause the video and familiarize yourself with this part of the roadmap in more detail. The roadmap will also be posted via a link in the description. But what do we need to study beforehand before we start studying the basics of 1C programming? Here you are, it would seem, you have already written "Hello, world," written your first script, displayed something on the screen, and you already want to become a 1C developer. Where should you start then? Maybe you should go back to something, to some basics, what are you missing? Someone comes into the programming profession as a self-taught person and already starts writing something, some code, starts helping users, starts writing their first programs, even earning their first money, maybe even as a full-time developer, as a junior, and at some point, they realize that their professional growth is somehow slowing down. Colleagues don't understand them very well, more professional programmers don't even value them as specialists. What should they do? What should they return to to become a true professional developer, to speak the same language with users, with programmers, with colleagues, and with their boss, with their team lead? Let's think about what this developer might be missing who knows exclusively the basics. [music] I will start a little bit from afar, these are the basics of working with a computer. This is a part that I will just skim through because it must be in the roadmap, and I will quickly skim through it. Of course, any person who wants to start programming in 1C must understand the basics of working with a computer, how the hardware works, what an operating system is, its basics of operation, how everything is arranged there, not just from a user's perspective, but perhaps to dig a little deeper, how it all works inside, how programs work, how they communicate with each other, how they communicate with the operating system, what information security is. All this needs to be studied by a 1C programmer. Even if they are already working as a junior programmer, it is worth returning to the basics of working on a computer and delving into each part in more detail. Perhaps even get some certification for working with the operating system. There are also some non-obvious advantages that a deeper study of this part of the roadmap will give. Firstly, you will be able to better understand the requests of users and customers and speak with them in the same language, because perhaps you have not encountered some programs, maybe you only know how to turn on Windows and how to launch 1C, and users work with other programs, or they have a deeper understanding, for example, they can even write some scripts in Excel, and you don't know how to do that, and in this case, the user will not see you as a computer specialist, but will see you as some little person who is not a professional at all, because you, as a 1C programmer, should be head and shoulders above any user in terms of usage, in terms of understanding the operating system and hardware, to look truly professional. Also, if you study the hardware and operating system in more depth, you will be able to find errors in the operation of 1C faster, because quite often, during program functioning, during user work, some strange errors arise that arise precisely from the interaction of 1C and the operating system. And if you don't understand at all how it functions, how the operating system is arranged inside, then you can spend a very, very long time figuring out these errors. And if you know the operating system well, then solving some non-trivial tasks will take you less time, and naturally, you will be valued more as a specialist. So, what's next after the basics of working with a computer? Become a professional user of a typical 1C configuration. For example, you are a programmer who already has a good command of the language and the computer hardware, but when you come to an accountant, or a warehouse manager, or some financial specialist, or a salesperson, they show you something in this typical configuration, for example, "Trade Management 11" or some older one, and you look at it, but you don't understand what's happening in this program. They tell you, "Yes, well, here you need to add one button. I want this status to turn into another status, or based on this document, I want to do this and that." You are just a programmer, you blink. What is trade? How does document flow work? What is inventory turnover in a warehouse? How is a warehouse structured? What are the relationships between accounting and warehouse, and how does payment happen in the program? There are very, very many such nuances, and the more you know these nuances, the more you will be valued as a specialist. Moreover, you will stop reinventing the wheel, so to speak. What is a wheel in the understanding of programmers? It is a re-invention, so to speak, in quotes, of what has long existed and what has long been used by everyone. Even if it is something that is used, even if it doesn't suit you very well, you don't like this wheel very much, and you want it to have square wheels, or instead of two wheels, there should be five wheels, no one will appreciate your wheel except yourself. That's what a wheel is in programming. Don't rush to reinvent the wheel. Study the typical configuration. Usually, many solutions are already implemented there, and even if users who ask you for help, for new improvements, ask you to do something, add some new feature, it might turn out that it's already there, but users don't know where to find it, or it can be enabled by configuring some checkboxes in the administration of this configuration, but you and the user don't know this, and you go to configure some new print form, and this print form is already there, and you just needed to enable some menu item or check a box. Therefore, you need to become a user of the typical configuration that you service. And you will always service some configuration, because now configurations are written from scratch extremely rarely, and these configurations are usually written in large companies, and then they are sold. And you, as a programmer, will definitely not be able to write any new wheels, new configurations, let alone. Even if you can develop a completely new configuration from scratch alone or with a couple of friends, you still need to sell it on the market. And there are already hundreds, tens of thousands, tens of thousands of such typical solutions on the market. So forget about developing new configurations, inventing new ideas. Just study typical configurations that are as close to reality as possible. That is, usually nowadays, it is Trade Management, Accounting, Payroll, and possibly Retail, Small Business Management, and then ERP, but more on that later. Here I have written three main composite parts that you will need to study, and this will be enough for you to already be able to speak the same language with your users. This is to get a 1C Professional certificate for one of the typical configurations, which is usually Trade and Accounting. Usually, if you get a certificate for Accounting and Trade, it will solve 80% of the problems that occur in the work of programmers and users. You will already study practically all the typical functionality that exists in 1C by 80% just by getting two certificates for Accounting and Trade, the eleventh. So, try, dare. Of course, this is not all that you will need in this field, but most likely, it will cover all your questions. So, once again, why is this important? You will better understand your customers, find and fix errors faster, conduct high-quality testing of your developments, and offer effective solutions to user problems. Moving on. Computer algorithms. It would seem that in the life of 1C, computer algorithms such as search or sorting are rarely encountered. No one even writes any sorts from scratch because these functions are already in 1C, and you just need to write "sort," and 1C itself will sort everything for you. Nevertheless, computer algorithms are a kind of indicator of your overall level as a programmer. Firstly, you must, in principle, understand how a search algorithm works and how a sorting algorithm works, and you must be able to write this algorithm manually, because understanding how data functions and is calculated will lead you to better understand which specific methods and functions to use within 1C. Why is one method better? Why is another method better? You will already imagine in your head how sorting happens within 1C, how search happens, and why this method works slowly and why it works quickly. You will no longer have questions. And there are often moments when you need to traverse, for example, a tree or traverse rows, and I have encountered very strange tree traversal algorithms in my practice when a programmer has difficulty using recursion, although when traversing a tree, the only optimal option for traversal is to use recursion. And if you don't understand what recursion is, you will write the traversal of each tree node manually, that is, how deep this tree is, and you, as a young, inexperienced programmer, will start doing it, but in reality, you need to apply recursion. Regular expressions. About 10-15 years ago, they were used very, very rarely by some super professionals. But now, regular expressions have entered our lives, not only for programmers but also for experienced users of Excel and other places. They can already easily use these regular expressions to automate their activities. What is a regular expression? You should understand because 1C in its new releases has already made native support for these algorithms. If before it was necessary to use components, now it is all within 1C, and it is a very useful thing. And if you don't know what a regular expression is, it won't even occur to you to use this regular expression if you are not aware of it, and you will start writing various checks for some strings, for example, you need to check the validity of an email address, and you will start inventing your own new algorithm on how to check it correctly, that is, what characters should be there, what shouldn't be there, and any other string. And it turns out that you could have used a regular expression, and understanding, even knowing that such an algorithm exists, will already gradually lead you to new levels of development. You can pause the video and look in more detail at what computer algorithms consist of. Of course, I haven't written them all here, but I have written the most basic things in algorithms that you should study, without which it will be difficult for you to advance in your career. I want to warn you that this roadmap is not an axiom and is not an officially recognized methodology from 1C. This is my personal roadmap, which I have compiled based on my thirty years of experience in 1C. You can use it as an auxiliary tool on your path to professional development. And this does not mean that you need to move strictly step by step. You review this map one after another, choose the points that you think are most weakly developed in you, and choose the points that you have the opportunity to study, because you may not have time to study some complex area, maybe you don't have money to take some important course. Therefore, choose what is within your power, and gradually, even 20 minutes every day will lead you to many hours over the year. Multiply 20 minutes by 365 working days, and you will get a huge figure. This is practically many, many days that you will accumulate from 20 minutes of daily immersion in 1C news, new technologies, self-development, and after a year, even these 20 minutes daily will lead you to significant progress, and you will already start to overtake your competitors. You can even learn during work. For example, you have the same typical tasks, like making some sad, boring print forms, but that's okay. Every boring task can be made more or less interesting. For example, bring something new into a routine task every day. For example, make one report with СКД, another without СКД, the third time make a more complex connection in СКД, the fourth time make a programmatic formation of СКД. These are print forms, and with each day, with each week, you will gradually understand something new. Optimize the queries you already had. Try to make them faster. See why one query works fast and another slowly. You see, from a simple routine task of forming a print form, I have already given you many interesting things that architects and 1C experts do. Choose another path in the IT world. Point four: configuration administration. It would seem that for an ordinary programmer, administering a configuration is not very convenient. This is probably more of a task for system administrators, and as a rule, it is indeed the case, because most administration rights are restricted by security systems and security policies in large, and even medium, and even small companies. System administrators, system engineers, DevOps, and the like handle all these processes. Nevertheless, understanding these processes will make you a more qualified specialist. You will understand how the system works as a whole, and understanding any system as a whole increases the value of any specialist in any industry. For example, if the same driver understands how his engine works, how the injectors work, he can fix some problems himself and will not do things that will lead to engine and injector failure. The same applies to 1C. Naturally, among the positive effects of studying configuration administration, you will have a better understanding of users, increase the stability of the entire system, you will not do any stupid things, you will be a more in-demand specialist because you can always quickly and promptly solve a technical problem related to the configuration, and you can substitute for a system administrator when, for example, they don't have time to do something. An unobvious fact is that you will be able to interact better with the same system administrators, because they speak their language, and you speak a little bit your language, and when you describe your 1C problem, they might tell you that this is not our problem, something is wrong inside your 1C. You can explain to them in professional language why they are wrong and why it is indeed their task and why you, as a 1C specialist, cannot solve it and offer solutions that you have already applied yourself. And thus, you will earn respect among system administrators, and they will listen to your opinion. You will be closer to system administrators, and they will start listening to your opinion, to your suggestions for solving this problem, and you will become a more effective employee for the company, more useful, and management will gladly increase your salary. But you chose another path: report writing. Why is this point number five? Why is it not included in my programming section, for example? In fact, in the programming roadmap, there are also reports, and СКД will be mentioned by me later in the conversation. But I would like to put this point in fifth place because this point is more important than understanding programming. And ideally, you should start not with programming, but with using reports, using the debugger, trying to write queries and improve existing reports, and also create some external reports and solve simple tasks using reports even before you decide to become a programmer. You can study all this and perhaps not go further. Maybe this will suit you, and you, as an experienced user, accountant, warehouse keeper, will become a more in-demand specialist. Again, I will always repeat this term today in the video: a more valuable specialist for whom the best companies in the country will fight. And therefore, this point is number five, and number five is before programming. That is, even before you start studying programming, it would be good for you to understand what reports are, what queries are, and how to create a report. You can already write your own small reports, make small print forms, improve tables in these reports, and even use the debugger. That is, this point number five comes before you become a programmer. But if you are already a junior 1C programmer, for example, then return to point number five and study the basics of queries again. Try to create external reports. And external reports are, it would seem, so simple, but in fact, a correct external report is built according to the rules described in the 1C manual and with the help of the standard subsystems library. But if you have never created reports using BSP, then you have lost a lot. Please stop writing reports without BSP and start using it. An unobvious fact is that reports are usually the final stage in development, because any user who sets a task, any system that is written in 1C, any typical configuration has the goal of forming some reports, outputting some print forms. Nothing else is usually implied, and all documents, directories, and so on, registers, ultimately collect data within themselves, and they are intended to ultimately collect information, group it somehow, and prepare it for output in reports. And the ability to create reports is, in fact, the ability to speak the same language with the user. The ability to write reports, the ability to create even a small report that will show important figures, may even be valued more by users than writing very cool, complex, convoluted algorithms, because for the user, the fact that you can write multi-level algorithms that only you and some super developers understand means nothing to them. But if you display a very simple report on the screen that will help the user submit their report not in a day, but in 5 minutes, you will thus show yourself as a very qualified, useful employee to whom, of course, the salary should be increased. Moving on. The 1C ecosystem. To develop effectively as a developer, to find your right path in 1C, you need to understand the 1C ecosystem. What is an ecosystem? It is what the platform itself consists of, it is configurations, how it is sold through franchisees, through a partner network, what certifications it has, what is ITS, what is in ITS, why a subscription is needed, how much licenses cost, what types of licenses there are, what was the history of 1C, where it all began, what is 1C Fresh, what databases are supported. All this is very important knowledge that every 1C programmer should know, at least the basics of all this that I have described to you now, every 1C developer should know in order to make effective decisions, to understand where to move next, because if you don't know what types of typical configurations exist, which ones are most common, what trends exist in the world of 1C, then you cannot choose the right path for yourself in the professional sphere. You will possibly move in the wrong direction and eventually become a low-paid, more broadly educated person who understands typical configurations better and chose the right configuration for development, got a couple of certificates, and here he is, two years later, surpassing you in salary and career. To avoid this, immerse yourself in studying the 1C ecosystem, even if you are a junior, even if you are a senior, or someone else, you will still have many discoveries when you immerse yourself in this field, expand your horizons. So, let's summarize. Why is understanding the ecosystem necessary? Firstly, to understand how the entire world of 1C works as a whole, and secondly, for understanding, attention, whether the profession of a 1C developer is right for you at all. Because people who sometimes start their career as programmers, write something in the 1C language, some queries, then when they generally understand how the 1C ecosystem is structured, they become indignant, they don't like everything, how it is arranged, they are very dissatisfied with everything, and as a result, they decide to switch to another programming language, losing many, many years of their lives that cannot be returned. Immerse yourself in the 1C ecosystem so as not to miss your best years. I have already told you about point 7, so we move on directly to point 8. Basics of group development. Well, it would seem, why does an ordinary programmer need group development if he is not going to develop in a group? Well, he sits and slowly grinds his small solutions in some company. That's all his tasks. He can handle them all himself, and he doesn't need to interact with another team, because he has his own configurator, he has a task list, and he calmly solves them. But firstly, the repository used in 1C is convenient not only for team development, it is also convenient for an individual programmer. That is, he can store his versions there, he can put his preliminary changes or final changes there, create several repositories for his different projects. It is very convenient, even if you develop everything alone. And if you start developing with at least one other person, then without a repository, you definitely can't do without it. And further, as the team grows more and more, you will still have to install a version control system, at least Git, although something else might be invented in the Git system over time, but for now, this combination of configurator + Git is the only possible one for large teams. Others are simply not applicable and inconvenient. Also, for group development, various management systems are used, not just for code, but specifically at the level of project interaction, at the level of task distribution. These are programs like Trello, and so on. That is, those that allow you to keep track of tasks and track their start, that is, who started the task, what stage of solution the task is in, who is responsible for the task, who is monitoring the task, who set the task, how many more tasks are left in the list. It is impossible to keep track of this simply on paper, in a notebook, or in Excel. You will have to learn some project management system. As a user, of course, you don't need to program anything there, you need to know how to use this system, understand how it works. This will help you become a full-fledged member of a team that will develop large projects. And if you plan to develop as a highly qualified 1C programmer, then without working on large projects, it will be very difficult and practically impossible for you. That is, professional growth in programming, in 1C development, always implies a transition to more complex projects, more large-scale projects. And in these projects, one person does not implement anything, there is always a team, and a team means a repository, version control, and project management systems and task assignment. To start, of course, what I have written here will be enough for you. In the future, I will tell you what will be needed for more complex projects and what you will need to study further. And this is just a step on the path to your professional development. If you don't know some part of what I have drawn, try it.
At least take a few steps in this direction, deploy the guide, try to commit something, see how it works. Perhaps on the current project and perhaps in the foreseeable future, you won't need this. But if you suddenly find yourself on some large project or are offered an interesting position for very large, gigantic money, and they ask, "Do you know version control systems?" you will say, "Yes, of course, I know it." That's all. Voila! Here you are in the team. Here you are already on a big project and receiving a solid salary. And let's return briefly to our point about programming fundamentals. Finally, finally, having gone through all these preliminary steps, we can now engage in the full study of the 1C language, fully become a programmer. Because if you skip these steps, you are most likely not a qualified programmer. If you don't know administration, don't know the repository, don't understand algorithms, haven't studied any of the typical configurations as a user, then you will be a mediocre programmer, so to speak, because you don't fully understand what's happening inside the program and simply work with some configuration as if it were a black box. And here you are told to add a column, well, you just stupidly added that column without understanding why, how, or for what it will be used. But if you have already studied the preliminary "groundwork," so to speak, then you are ready for real programming. And here I have drawn the points that you need to study first. Of course, all this relates to the fundamentals, and you will have to try very hard here and linger on this step for longer. If you don't know this yet, you need to look at each technology that I have written here, study it, write at least a small piece of code, small utilities, maybe sign up for courses that will tell you more about these technologies. But until you have at least touched each of these technologies a little, it is pointless for you to develop further, because everything will become more complicated, and everything will come down to knowledge of these very technologies. In fact, this is the foundation of programming, without which you cannot develop further. Despite the fact that a typical programmer spends 90% of their time reading other people's code and communicating with task setters, consultants, testers, and managers, nevertheless, in order to read other people's code, you must understand what this code is about. Roughly speaking, 1C is a foreign language, and the better you master it, the more phrases you can use in your speech, the better you will understand a foreigner. And a foreigner is the 1C system itself and other programmers who write this code in what is currently an unknown, possibly foreign language. By studying this foreign language, you will increasingly understand other programmers, and you will better and better understand what this code is about, what these algorithms are about, what is written there. Why it is important to focus on this area, specifically in programming, I think no one needs to be explained for a long time, because since you decided to become a 1C programmer, you need to study programming. But many start studying programming first and forget about the preliminary preparation stages. But I understand this, I did the same myself. I started programming right away because it is very motivating, it is very engaging in the profession, and besides, you can start earning money right away. Nevertheless, if you have started programming but do not know the typical configurations, do not know anything else, do not have an understanding of algorithms and hardware, please return to the previous steps and go through everything thoroughly again. And once again, let's remind you why you will need good programming knowledge. It is to understand the platform as a whole, even if you are working on some small, narrow area in your work at your workplace, nevertheless, you will need a comprehensive understanding of the platform, how other parts of the 1C language are structured, what possibilities exist in this language in general, in order to understand the platform's capabilities as a whole and find optimal methods for solving your tasks, the tasks that were set for you. The next part is configuring the configuration according to the technical specification. This seems like a strange point, it deviates significantly from what I have already described. What does configuring the configuration according to the technical specification mean? I proceed from the fact that having studied the basics of programming, algorithms, and how reports are built, you are still not ready to come up with tasks for yourself. You are not ready to write technical specifications because you still don't know a lot. You won't be able to estimate the labor costs, and it will seem to you that you can now write a super-duper configuration manually that will replace "Trade Management" and work much faster and conquer all markets. At this stage, you are not ready for great achievements, you are not ready to come up with tasks for yourself independently, so you look for a technical specification and start working within this technical specification. Firstly, you will learn to read technical specifications at this stage, which is very important because many beginners and even experienced programmers do not delve into the technical specification, skim through it, and quickly start coding something, quickly, because they are afraid that someone will think that they don't understand something. They are afraid to ask questions about this technical specification. This is wrong. You must learn at this stage to thoughtfully study the technical specifications provided by others, because various specialists will be the setters of this technical specification. It's good if it's an experienced analyst who can explain everything to you and foresee all the bottlenecks. But for the most part, in the life of every programmer, there are simple users or inexperienced analysts, and even experienced ones who were too lazy to write a good technical specification, and as a result, the programmer receives an unfinished technical specification, which they start working on, spending a lot of time, and in the end, all the results of this work are sent to the trash, sent to the garbage, sent to oblivion. Why? Because the technical specification was either set incorrectly, or written in an incomprehensible language, or the programmer themselves misunderstood it. And at this stage, do not hesitate to ask many, many questions to the setter of this technical specification. You will say, "I don't have any technical specifications at work. A user comes to me or calls and says, 'Do this, Vasya, this and that,' and I start doing everything in an emergency mode, plugging holes, and patching up these leaking pipes with duct tape, and they need to be fixed urgently." And based on my extensive programming experience, I still advise you to treat these simple requests from users, even if they are not documented in writing, as technical specifications. That is, any task from a user is a technical specification. It is best to write it down in writing and send it to this user by email or to a messenger in order to clarify if you have understood everything correctly. The process is simple: you receive a task from a user, for example, it is written in a message. You ask several questions about this message. Here's a life hack for those who have never read or written technical specifications. It's very simple: you extract some part of this technical specification and return it to the user as a question. For example, the user writes, among other things in the technical specification, that they need an additional column in this report called "Article." You copy this part and return it as a question: "Do you need a column in the form of an article?" and put a question mark. This way, you clarify with the user whether they really need this column. Secondly, the user begins to get involved in the discussion of this task, and perhaps they will re-read their technical specification. What additional benefits does the ability to configure the configuration according to the technical specification provide? Firstly, you will learn to read technical texts. You will learn to better estimate your labor costs. This will be very, very useful for you in the future. The ability to estimate labor costs is the basis of practically all projects. As a rule, in large projects, you will always be asked how long it will take, and you will have to determine these deadlines as accurately as possible. You will learn to manage your time because you will have the whole picture in front of you. You will understand approximately how long each stage of this technical specification takes and will be able to plan your workday more correctly and not postpone everything until later. Also, this will give you a certain systematic approach to work. You will not get stuck on some tasks that are not important in this project. It happens that a programmer receives a large task in some area, gets stuck on some algorithm, but it turns out that this algorithm does not play a significant role in this project at all, and it would be better to work on another part of the project because it is more important. And since the deadlines are approaching, the programmer finds out that they have no time left, and they have to finish the remaining task just to submit it on time. So that you do not fall into similar and many other situations, study technical specifications. Learn to work with them, and this will give you more satisfaction from your work, and you will become a more in-demand and qualified 1C specialist. The next step is obtaining a 1C Specialist certificate for a simple configuration. Here I wrote "certificate," but it doesn't matter. You can simply prepare for this certification and study the questions used in this certification as much as possible. The 1C Specialist certificate implies that you master the configuration at the programming level, not just as a user. The 1C Specialist certificate for a simple configuration implies not that you understand it as a user, but that you already understand this configuration as a programmer. You already understand the internals of this configuration, and you have already written some programs, reports, utilities for this system. You know how to do it. You understand the internal structure of the configuration, what metadata it consists of. Of course, preparing for certification will help you a lot. I repeat again that it is not necessary to get these certificates and spend time and money on it. Perhaps you will never need it, but trying to prepare for this exam, taking some courses, taking methodological materials is very, very useful for your development, because you will almost always use typical code in your work projects, always in your activities there will be one of the typical configurations or part of this typical configuration. And as we all know, all typical configurations are based on the 1C Standard Subsystems Library, and knowledge of this library will greatly simplify your life, because by looking into any configuration, you will see parts of this BSP, and it will become much easier for you to understand what to do next, what functions, what utilities, and what metadata are used there. Your life as a programmer will become much easier, and you will write more efficient code. You will not reinvent the wheel. What will obtaining this certificate or preparing for certification give you? Firstly, you will gain experience in customizing a typical configuration. It might seem like what's the big deal? Well, try it. And there may not be such a configuration in your current work. For example, you work with some old legacy configuration or a completely custom one, or you work with 1C Accounting, and you don't have a certificate for Trade. And if you are next tasked with developing Trade, you will have to spend a significant amount of time to study it. Despite the fact that there is BSP, despite the fact that you already understand 80%, nevertheless, you will have to spend more time than someone who constantly works with it. This is obvious. By preparing for certification, you will understand the entire functionality, re-learn the language, look at videos or podcasts about the platform, or read articles, and see how typical tasks are solved in the exam. What is the benefit of typical exam tasks? It is that they show you how to correctly solve tasks from the perspective of 1C standards, from the perspective of the platform's optimization. This is very important because many, many programmers still solve tasks using their own "grandfather's" methods, which are completely unsuitable for 1C standards and are extremely slow and inefficient. Therefore, preparing for certification as a 1C Specialist will give you a huge advantage, and you will be able to find work more easily in high-paying vacancies and in companies that interest you. [music] The next stage that you need to go through is the Data Composition System, and not just the Data Composition System, but the ability to write complex reports using DCS. Earlier, I already mentioned the need to study DCS as a basis for programming. You already remember this, and you can probably already write some reports using DCS. Even the very, very beginner programmers start doing this, and they do it wonderfully: to display a simple report in several columns using a simple DCS constructor, to sketch out some report and display it on the screen. But in real life, you will have to write quite complex reports using the Data Composition System. You will need to connect several sources to each other. Secondly, you will need to learn to debug the Data Composition System, because this task is not as simple as debugging some query or debugging a simple report without DCS. It often happens that beginner developers use DCS, put the correct query there, set up everything correctly, but in the end, the Data Composition System gives completely different results than expected. The developer uses the query console, there are different data; uses DCS, there are different data, seemingly with the same parameters. The fact is that DCS uses its own additional internal transformations of this scheme to get the result from its point of view, and a beginner programmer does not yet know these nuances, but is obliged to know them, because on large projects there will be complex tasks. At this stage, you will have to study aggregate functions related specifically to the Data Composition System. The Data Composition System has more extensive functionality compared to simple queries, and what you could apply in queries is often not trivially applied in DCS, and you need to remember this. And any developer who wants to become a senior in 1C development, who wants to become, perhaps, an architect or an expert, is simply obliged to know all these nuances that arise. Also, you must be able to use DCS in conjunction with BSP and understand what development standards apply to this, and not just throw fields and queries into this DCS in a chaotic order. At this stage, you should already understand working with DCS so well that you might even write maximally effective, powerful reports without looking at the documentation, which will work quickly and get the data that the user wants, and even more so, users will be delighted. They will report this to your manager, your manager will increase your salary more and more, and very soon it will be simply huge and incredible figures, and you will become a super specialist in your field. [music] Next, we move on to the next topic called 1C Platform Specialist. This is another certificate from the 1C company, which you should ideally obtain, or at least fully understand what tasks are there and be able to solve them. You can take some preparation course for 1C Specialist, go through it completely, and pass the test assignment, or perhaps even after that, go and get a certificate that confirms your qualification, confirms that you can speak the same language with the platform and understand development standards and will not make any stupid mistakes in the code. In addition, passing this certificate will significantly organize your knowledge in your head, and they will acquire a more structured form. You will look at the platform as a whole and cover with your gaze even those areas that you do not often look at in your work, or perhaps never again. I consider this certificate very useful for every developer, and besides, it gives you the opportunity to purchase 1C licenses for development, and you can buy 1C for your work computer for a small amount of money and use it quite legally. You will not have to spend a lot of money to buy typical configurations to ensure everything is legal. What will studying this topic give you? You will be able to effectively master all constructions, re-work them in your head. On the screen in front of you is a list of advantages that you will get by passing this certificate or preparing for this certificate. You will become a more effective specialist. You can pause the video and re-examine all the topics, all the advantages that relate to this issue. All these topics that are on the screen in front of you, of course, may not directly relate to certification, but I have included them here so that you understand who a true platform specialist is and what it gives you in general. Let's summarize: it's the ability to solve complex problems, it's the ability to design scalable and fault-tolerant solutions, it's the ability to write efficient and optimized code, and an increase in value in the labor market. [music] The next point is code optimization. At first, it might seem that only some architects, experts, and other highly qualified specialists on large projects deal with code optimization. But in reality, this is not the case. In any, even small company, you will have to deal with optimization. For example, you wrote some report or utility, and it works extremely, extremely slowly and processes data for several days. Your manager comes to you and says that this is unacceptable, something needs to be done about it. And you have a simple algorithm, it seems like there's nothing to optimize, and you won't be able to avoid this topic, no matter what. What is needed for code optimization? It might seem to you that we need to learn a couple of techniques. In reality, on the screen in front of you is the entire list of technologies that you need to know to effectively optimize code, so as not to get stuck only on applying some other function in 1C or asking somewhere in a chat on a forum and mindlessly copying a solution from there. You need to understand what an SQL query plan is and how PostgreSQL differs from MS SQL, what their features are, and which one is slower in which place and faster in which place. How load balancing is done. It is desirable to study things like design patterns. You should already be able to write technical specifications, because the ability to write technical specifications is inextricably linked with code optimization. You cannot write technical specifications without optimization, and vice versa. Also, you must be able to write technical specifications, at least small ones. At this stage, you should be able to propose effective solutions already at the design stage. There are inexperienced analysts, inexperienced users who offer you unacceptable, inefficient solutions, for example, to add some new document, a new register. But you, as an experienced specialist, can grab their hand at this point, stop them, and offer an effective and correct solution from an architectural point of view. At this point, you have the first step towards becoming an architect and an expert. It's still a long way off, but you need to start moving towards it. The point of writing technical specifications is precisely to stop the task setter from critically wrong decisions in time. Here you will need an understanding of interdependencies in configurations, so you must already have a good command of configurations. You must understand where and which parts of the configuration interact with each other, what scheduled tasks exist, what subscriptions exist there. You need to understand how client-server works. You need to be able to configure the 1C server in a small part so that it is maximally efficient. This is in the official recommendations on how to configure the server. It is possible that the system administrator initially incorrectly configured your database, and because of this, everything is slow. You can look there, understand what is configured incorrectly, and give recommendations for load balancing and re-configuration. [music] We move on to the next point called testing. It might seem that this point is not so important for a 1C programmer, because testing is still neglected nowadays, and you see many 1C developers every day who have never used automated testing in their lives, or have never even heard of it, who haven't even tried to write any autotest, let alone used more complex automated testing systems, scenarios, and testing pipelines. But in order to grow professionally, you will need to master this area, like many others, because without this area, you will be like a car with three wheels. Without the fourth wheel, the car drives, but something is not right, so to speak. You will feel some discomfort when the car is missing a fourth wheel. Similarly, with testing, development goes normally, money comes in, projects are done, but something is missing. Projects stall, the same errors constantly occur, a lot of time is spent on fixing, users are dissatisfied, users act as beta testers, this leads them to a very depressed state, and they become aggressive towards developers. So that this does not happen, please study the topic of testing. It might seem like you need to get a team of testers and let them write their automated tests, automate. And we, high-grade programmers, don't need all this, it's all alien to us. We are gods of 1C, we are developers, the highest caste of the 1C food chain. We won't do such nonsense. But if you look from the perspective of manual testing and some simple testing mechanisms, then of course, it's all very sad and pathetic. Doing this testing constantly, pressing the same buttons, writing some stupid scripts, it's all very uninteresting and routine from the perspective of a true god of programming. But if you delve deeper into the topic of testing, you will find a lot of interesting and useful things even for a senior or architect level developer. Firstly, you will be able to study special languages on which tests are written, such as the special scripting language OScript, and so on. You will try to write UI tests using Vaness. You will learn what smoke tests are. You will try to write smoke tests using special scripts. You will get a feel for what a 1C configuration is, a 1C tester, scenario testing. You will be able to write load tests, which can also be very exciting and interesting. Do not treat testing as some kind of routine and some insignificant, optional point in your development system. Of course, when anyone goes into the programming profession, they think about routine testing last. They want to sit and write their favorite code in their favorite programming language and get a decent salary for it. However, the modern reality is such that testing has firmly entered our lives, including 1C development. Previously, testing was only used in other languages, and 1C somehow bypassed all this. But with the help of the 1C Community and a little help from the 1C company itself, it has gradually begun to penetrate the sphere of 1C programming. And now, in large organizations, automated testing systems have practically become mandatory. Some large companies have even started to apply test-driven development methods, i.e., first they write tests for the given task, and only after the tests are written, they coordinate the results with analysts, and only after that does the actual coding according to the technical specification begin. It might seem that applying testing only increases development time. You need to quickly throw together some code, give it to users, let them click on buttons, and you can already release it to production, put it in the production branch. However, if you look at the system as a whole, if we write the test first and then develop, or if we develop first and then test, then develop again, then test again, then the system built on the initial development of tests turns out to be faster for implementation, it turns out to be more resistant to errors, and it turns out to be easier for subsequent expansion. Therefore, do not bypass testing, do not skip it. At least immerse yourself a little in this topic. Try to write tests, see what it is. This will add value to you as a specialist on large projects. Moreover, when you start studying additional languages related to testing languages in parallel with your work, and there are its own peculiarities, your brain starts to develop further, neural connections arise, and you generally become more creative and productive. Let's summarize what is important in studying testing and why it is needed. It will speed up the process of developing changes. It will help to better structure your code. It will help to interact more effectively with testers. Even if you don't write tests yourself, having studied this topic in more detail, you will be able to effectively build communication with testers and give them clearer tasks, and understand the language that testers speak. It will also help you to effectively work with large and complex projects in various roles, because a tester can suddenly disappear somewhere, and someone from the developers will have to take their place for a couple of days, for example, if a person is sick, quits, is in the process of moving, and so on. So, a tester is absent from your project for a few days, and the project needs to be delivered. Therefore, if you study testing, you will become that indispensable specialist who is fired last and whose salary is raised to the maximum. [music] So, look how large our scheme has already become. You can download it via the link in the description. And now
Let's just take a look at the extensive work I've done to explain to you the entire 1C developer's development roadmap. At the top, you can see mainly those points that relate to beginner developers. But if you don't know any of these points, don't get upset. It doesn't mean you haven't gone beyond the beginner developer stage yet. Perhaps you've just missed something in the process of your career and professional growth, or maybe it wasn't in your field yet. 10 years ago, there wasn't even automated testing, for example; you might have missed it in your career development.
Next, we are already at the level of a mid-level developer. Testing is already closer to a mid-level developer, to a middle. Let's move on. What will need to be studied after testing? [Music] So, the next point in our video is EDT, or Enterprise Development Tools, from 1C. What does this mean? Let's read directly from the website. Enterprise Development Tools is a modern, extensible environment for developing application solutions. Roughly speaking, it's a replacement for the old Configurator. This system is still under development and evolution, and in my opinion, by the end of 2024, it still cannot fully replace the standard Configurator. We are waiting for 1C to finish developing this platform to a more acceptable state so that it can be used even for small projects. Currently, I see its applicability only in large projects. Nevertheless, it is important for you to study this system, at least to install it, to touch it, to have some practice interacting with this tool, because sooner or later, this Enterprise Development Tools system will be installed everywhere instead of the Configurator, which is not even particularly translated into Russian yet. Well, some kind of improved development tools, something like that, it's called for now. So, what advantages does this new system, which has replaced the Configurator, offer? A unified workspace: in one area, you can store and develop multiple configurations at once. Someday this will be convenient; now you can just open several Configurators at once and continue working. Platform choice: you can use different platform versions to run and debug the same configuration. This is really convenient. Collaborative development in Git: we can also work with Git in the typical Configurator, but not as conveniently as it is implemented in EDT. Database management, publishing: you can publish to a web server directly from the development environment, and a built-in web server for debugging is very convenient. What is an ER model? I talked about it in one of my old short videos; you can find and watch it on my channel. What is an ER model? It is also a very convenient scheme for analysts and for understanding the database structure. Real-time checking, improved editing, and so on. You will read about all the advantages yourself later. So, you already understand that getting acquainted with EDT will be very, very useful in your career, and sooner or later, everyone will switch to this thing, everyone will start programming directly in it. Installation and configuration are what you need to study. The basics of working, advanced usage: try working with Git, try using different versions, try working with web servers, maybe try writing your own plugin, which is now natively supported in this development environment. And try to optimize your development using the built-in tools. And before you are the advantages, the areas of activity that will improve after you study the new EDT development environment. And a little about why this is important: you will study advanced development tools, and knowledge and study of advanced development tools are useful for what? They are useful for speeding up the programmer's work and making their work more efficient, reducing errors, and making their code more structured, understandable, and standard, so that other developers can understand their code faster. You will learn modern approaches to development, which is very important. For example, you will get tired of 1C someday, you will switch to another programming language, and you will already have an understanding of modern approaches to development, and you will quickly adapt to new technologies, new languages you are studying, and naturally, you will be able to work with large, large, huge projects because they cannot do without EDT.
Let's move on to the next point. The ERP configuration is perhaps the largest of all configurations that exist at 1C. And this system is usually installed on the largest projects, and sometimes even on medium-sized projects, because in places where complex automation is needed, where a comprehensive approach is needed, this particular configuration must be installed, even if it is some medium-sized production or small-sized manufacturing firm. Often, nothing else fits besides this configuration, and you have to buy this configuration and work with it, implement it, even if 80% of it will not be used. Well, often there are no other options on the market. It actually consists, roughly speaking, of several simpler configurations. For example, it consists of Trade, Accounting, Production, Finance, Payroll, HR, and CRM, i.e., customer relationship management systems. That is, by studying this system, you will immediately cover seven areas of management, accounting, and financial accounting with your gaze, and you will close your knowledge of any other configurations by 80-90%. Because if you already know Trade and Accounting, you can say that you already know what ERP is by 20-30%. There may be difficulties in studying the ERP configuration because it is not free, and buying it is expensive. And to understand, figure out, and study it, you will have to somehow download it somewhere. Perhaps you need to get a job at a franchise, maybe ask friends for access to this database, to a demo version. If you work in a small company, if you work on your own or in a small team, you don't have access to the ERP configuration, then you certainly won't be able to study it. But studying this configuration will very, very sharply raise your status as a programmer, your value in the market will increase very, very much, because all high-paying vacancies in the field of 1C development imply knowledge of this ERP configuration. Therefore, if you have a line in your resume saying "knowledge of ERP," it immediately sharply distinguishes you in a positive way from other developers and specialists who are not familiar with this configuration and have never worked with it. What other additional benefits are there, why is this important? It's understanding how business processes work in large enterprises, because the configuration itself already contains all the correct business processes as they should occur in an ideal enterprise. And even if you encounter a process for the first time, for example, in production, and it has never been there before, you can look into 1C ERP and understand how it should be structured in real production, because all best practices are already programmed into this configuration, you just take and apply them. Working with large projects cannot be done without this configuration. You will also develop complex analytical thinking. You will have, in general, all the business processes that can only be in a large enterprise, they will be in one configuration for you, and by working with it, you will have an idea of how, what, and where works in any part of a modern enterprise. You will have maximum demand in the labor market among 1C specialists.
The next point in the professional development roadmap of a 1C programmer is experience exchange. Yes, this might seem like a strange point for professional development. Perhaps more attention should be paid to coding itself, or hardware, or servers. Why did I put experience exchange as a step towards professional programmer development? Because individual experience is always less than collective experience, and some solutions to your tasks and areas of activity are easiest to choose by discussing them with colleagues and exchanging experience with other programmers who work in other places and gain their own experience in development. If you communicate with them on professional topics, communicate on forums, communicate in some specialized chats and channels, then in this way you will develop faster as a specialist. This is a more effective transfer of experience. So, what can be done in this point? For example, you can attend conferences and talk to other developers, or if you have any career plans, try to meet other managers in other companies and talk about what a wonderful specialist you are, advertise yourself, establish new connections and contacts, and this will give you a new impetus in your career upwards. This is usually how it happens in a career: you meet someone, this person remembers you after some time and invites you to work together. This path is easier than searching on various job sites where you are among thousands, tens of thousands of candidates for a position. At a conference, you can directly meet your future employer or the head of another company. This is also useful not only for careerists but also for ordinary programmers to find a more comfortable workplace, or to get into an interesting company where they would like to work, or to get a higher salary. Mentorship. It might seem like a worn-out term these days that smells a bit like an info-scammer. Nevertheless, mentorship and teaching other people help to structure one's internal knowledge. When I was writing my first video about the basics of 1C programming, you can also find it on my channel, I greatly organized my knowledge, and even some things that a beginner programmer should know, I discovered for myself for the first time. I studied that very one-and-a-half-hour video about the basics of 1C programming, which you can find on my channel, and maybe even somewhere here by the link. It turned out to be a one-and-a-half-hour video, but for this, I had to spend several tens of hours preparing the information, so the video turned out to be very high-quality and concise. Everything about the basics of 1C programming is there for you, and it really helped me to organize and bring into some system my internal 1C world, which, as it turned out, I also didn't fully understand, and after I prepared this video, I started to understand the programming language better myself, despite the fact that I have more than 30 years of IT experience. Recording podcasts is the same: you tell people some information, and you prepare it in advance, and thus improve your knowledge, organize it. Reviewing means that you find someone else's work on the topic of 1C, maybe some podcasts, or even scientific papers, and you review them, i.e., you give your opinion on it. This is also very useful for your development and useful for the person you are reviewing. Effective offline lectures mean that you can give offline lectures, and you can attend offline lectures. This means live, live, these are meetups, offline lectures are almost the same thing. You come somewhere to a lecture hall, maybe even to a university, try to give lectures on the topic of 1C or listen to lectures on 1C topics. Code review is a painful topic for many. People don't like it when they get feedback on code review. You will have to accept it. It is actually a very useful practice to get feedback on your code because other developers write comments and negative feedback about your code and do code reviews not to humiliate you, but simply to help you develop, to point out errors that are not obvious to you, and you can live with these errors for years and decades and not understand why your value in the labor market is so low. And code review will help you develop faster. You can pause the video and study in more detail what else you can study in terms of experience exchange, how you can develop. Let me clarify why you need to engage in experience exchange. Firstly, collective experience is broader than individual. Secondly, you will be able to find non-standard solutions to complex problems because your brain, any person's brain, moves in a certain template direction. And if you consult with someone, you can get a completely non-trivial piece of advice and very useful information from another person who thinks unconventionally, not like you, worked in different conditions, and he can give you truly valuable advice on your problem. Also, help with employment and information about companies is usually obtained at informal meetings, in the corridors, at conferences, meetups. Communication skills are very useful for self-promotion and for boosting your personal brand, and ultimately for increasing your status in the professional sphere, and ultimately for increasing your salary.
The next point is training in the field of 1C. This point overlaps with the previous point where I talked about experience exchange, and partially I touched upon training in terms of mentorship and attending various events. 1C training differs from experience exchange, as you understand. Here you need to create a development plan for 1C. Don't grab onto any courses chaotically because there's a discount, or because someone you like recommended it, or maybe you like the lecturer at these courses. Don't rush to buy, don't rush to run. You should have a clear development plan for several years ahead. Consult with your supervisor about what they want from you in the near future, what skills. Look at the trends in the world of 1C and in the world of programming in general, and based on this, create a list of courses, a list of lectures, a list of videos that you need to study, for example, within a year, and gradually move in this direction. Even 20 minutes a day, even 20 minutes somewhere on the train or in public transport or before bed, will give you many, many hours in total over a year, and you will far outstrip your competitors. Training also includes obtaining additional certificates. I am not urging you to constantly collect certificates, but remember that this topic exists. Often, HR and employers look at the presence of certificates. I treat this philosophically, I treat it this way: if I can prepare for a certificate quickly and easily, and I own all the information by 80%, then I will go and pass this certificate. This is how I passed the certificate for Payroll and HR 77 and for ZUP 2.5. I already knew all of this by 80%, it remained to prepare a little and just come and pass it quickly on the first try with an A. I also recommend you do the same if you have some configuration at work, you constantly work with it, you probably already know it by 80%. Take some short courses, read lectures, and go pass for the certificate, simply because you will have it, it will confirm your qualifications. Read professional literature. Well, this is less about quick learning methods these days; it's an additional way to courses and videos. Track trends. Who knows what's happening in the world, and you'll get stuck on your configuration that nobody needs, and for example, if you find yourself unemployed in 5 or 10 years, you'll discover that this configuration is no longer needed by anyone. Therefore, follow trends, at least occasionally watch videos of other developers, ask HR what is currently required in the market, what are the requirements in vacancies now. This will be enough to understand where we are heading. Studying industry-specific configurations. Maybe you want to work in a specific industry and can already look in advance at what configurations exist there. Documenting modifications. We all don't like writing comments as programmers, we don't like writing documentation, we don't like describing our functions, implying that this is somehow not related to the code and someone else should do it. Nevertheless, documenting modifications helps you again to structure information and become a more professional developer, because if you write a function, imagine, and you make its description, you yourself will understand better in your head how this function should work, how it works, what it receives as input, and what it outputs. This greatly develops neural connections. So, the most important thing that 1C training will give you is to stay in trend, remain a sought-after specialist, generate new ideas, confirm your professionalism, and expand the range of projects you know how to work with, for which you are ready to be taken immediately. You can defend your salary conditions.
The next important point in the roadmap is studying related fields. Why would a programmer developer need to study some related fields? It's enough to become a good coder, write good code, do it quickly and optimally. But practice shows that this is not enough. You need to study related fields, and first of all, focus on communication competence, since programmers and developers, as a rule, are mostly introverts. These are people who talk little, prefer to communicate less, and engage in coding in isolation, trying not to communicate with others, at least vocally. By the way, it also follows from this that those developers who learn to communicate effectively with other people, at least move a little along this path, at least develop their communication competence a little, will be at least half a centimeter ahead of other introverts. They will gain a huge advantage in their career and salary, because there are developers who write everything well, ideally, but cannot convey their ideality to others. They cannot properly tell users about their effective work, about how much they have to work, why they should be considered highly skilled specialists. And there are developers who, it seems, don't even know how to code and just came to the profession yesterday, but they get glory and honor only because they have high communication skills. They can communicate with other people, they know how to convince them of some of their decisions, they know how to convince them that they are great specialists, and having made a small modification in the 1C program, they run around all the offices and boast to everyone, show, tell about what a wonderful thing it is, how it will help everyone, and how they lived without it before, it's unclear. That is, if a programmer develops communication competence, even a little, it will give them a sharp boost in salary, in the respect of others, and in the comfort of their personal life. So, what can be included in communication competence? Effective communication with clients, written communication, conflict management at work (without conflicts, there's no way), working in a team effectively, interacting with other specialists, including management (which is the most important thing for any hired employee), participating in meetings (not just sitting and nodding your head, but actively promoting your interests and defending your professional decisions), negotiation skills, mentorship and training (here, without communication competence, it's impossible at all, because a mentor and a teacher is a person who constantly, constantly communicates with their students).
The next point is motivation and leadership. It can consist of many, many points that I have drawn on the screen. You can pause and study it in more detail, and also download the entire roadmap via the link in the description. Here is such a rich set that you may need in the future if you want to build an effective career in 1C. Why is this important? Of course, for a career, for increasing the efficiency of the entire team, for personal development. Even if you don't plan to build a career, it will be useful to you in moments when you need to go to management to explain why you need a salary increase, ask for a raise, ask for a day off, or explain some misunderstanding. And this will help you improve communication with everyone in general, and even help you arrange your personal life more pleasantly and effectively. Next is business processes. You must understand the business processes of the company you work for. This will sharply increase your efficiency. Imagine a regular programmer, they just add some columns and write code according to technical specifications, and that's it, and they don't want to understand anything else. But a specialist who understands the company's business processes will easily find errors in the technical specification, ask the right questions, and this will lead to more effective solutions in programming. This is often appreciated by managers, and in this way, you can earn a great reputation among analysts. What can be included in company business processes? Certificates, licenses not for 1C, but specifically in the part related to business. For example, if the business is in construction, then you can also get some certificate related to this area. Basics of accounting, very useful skill. Basics of personnel record keeping, production management, marketing and sales technology, legal aspects, information security, and enterprise economics. What will this give you? And let's reiterate: it will improve the quality of your development because you will look more broadly at the entire automated process, not just add columns. Expand career opportunities. You can leave the field of 1C for the field that you are automating. For example, you are automating the construction industry, you are a programmer, but since you have a good understanding of business processes, you might be offered a position not related to programming at all. You might be given another position in another department that directly needs automation. Maybe you will become a deputy director or a department head. You will be able to effectively communicate with clients because you will speak their language, the language of business, the language of the processes they work with, and not use incomprehensible computer terms that clients unfortunately do not understand. You can also create innovative solutions, because without understanding business processes, you are unlikely to create an effective 1C program that will help the business automate something. In the end, as you understand, 1C configurations are not developed in a vacuum, not to please developers, but to help businesses work more efficiently, generate more profit, get more satisfied customers, and please shareholders. What other related fields do you see? There are very, very many of them. These are probably not even all the areas. I tried to highlight the most important ones in my opinion. I repeat, this map is not an axiom and not an official methodology. This is my personal opinion on the path of a developer from the very beginning to the very top of the food chain, specifically in 1C, based on my thirty years of experience in automation systems and programming. Even if you are currently a beginner developer or are even trying to enter this field and are somewhere at the beginning of the path, nevertheless, despite the fact that this is step number 18, look at it. Try to engage in some related field, but don't spend all your time on it. If you are at the beginning of your career, of course, you need to focus more on the technical part. But if you have already learned something, you should understand that without developing related fields, without developing communication competence and other technologies, your further professional growth will sharply, sharply slow down. I wish you luck on this path.
Let's move on to the next step, and the last point in our roadmap is 1C development technologies. This point is not for nothing placed after the eighteenth, where related fields are discussed, because in my opinion, studying related fields is more important than even understanding the entire 1C development technology. 1C configurations are not developed just to be, all this is done to automate some other business. Yes, there are configurations that help automate franchise firms, firms that deal with 1C projects, firms that deal with 1C integration, but such firms are a minority compared to the entire array of all firms, all businesses in the 1C market. And therefore, this point, 1C development technologies, comes after you have dealt with related technologies. At the beginning of your path, you won't need all of this. But if you have already become a mid-level developer, and even more so a senior, approaching the top of the food chain, and thinking about how to speed yourself up, how to gain more weight in the field of 1C development, you will need to study things like Scrum, Waterfall, Agile, Kanban. You will need the ability to set and control tasks. You should understand what Lean Management is. You should clearly master such a technology as planning, design, and prototyping. You should be able to understand 100% what task priorities are and set these priorities in your tasks first. And if you plan to become a manager, then you should be able to set priorities for team members, and you should optimally choose programmers who will most effectively solve this task. This is also part of prioritization. You should also master the technology of determining the needs of the business, the departments that you are automating, the work of other people, and you need to understand what their needs are and effectively extract these needs from their heads, figuratively speaking. Often, users themselves do not understand their needs; they continue to press these buttons, suffer, struggle, but cannot formulate their needs. Therefore, the ability to determine needs is also one of the key skills of a good 1C developer.
This is where our map comes to an end. Let's see what we have in total. We have this large, large tree-like structure. Stop the video, you can examine it better on the video. Use this map as your guiding star, as a guide in the field of 1C development. But do not consider this map the only possible one. If any point does not suit you, write to me in the comments, we can discuss it. Perhaps I will release a more detailed video about some of these points if it interests you. Write in the comments what you think is missing here. Write about which point you would like to learn more about. I want to dedicate one of the next issues to one of these technologies, one of these steps, in as much detail as possible, to provide links to articles, books, videos of other developers where this topic is covered more broadly. Let's try to cover one or more of these topics that seem most important to you in one of the next issues. Goodbye everyone. This was Alexey Lapitsky. See you next time.
broken into parts
I believed that great success awaited us
But you chose another language
Alas, now our code cannot be joined
For everyone, we will remain strangers forever
we [music] JavaDi no like