What should a programmer know? Programming, or what a programmer needs to know What an entry-level programmer should be able to do

What every programmer should know about memory

translation into Russian This is one of the classic articles that will guide you through the features of memory, some of which are old, some new, some famous and some not so much. Despite the managerial role and omnipresence, not every programmer has a sufficient level of knowledge about Memory. The importance of becoming familiar with memory in modern systems increases if you are in the business of writing high-performance applications. Hardware designers are coming up with more complex memory management models and acceleration techniques, such as CPU caches, but these cannot perform optimally without some help from programmers. I'm still reading this article, and I can't tell you how much I learned from it about RAM, CPU caches such as L1 and L2 cache, different types of memory, direct memory access, memory controller design, and memory in general. In short, a must read for programmers of any level.

What Every Scientist Should Know About Floating-Point Arithmetic

The topic of floating point arithmetic is tricky and not easy to master. Many Java programmers don't even know what can go wrong when comparing float / double values ​​with the == operator. Many of us often make mistakes when implementing monetary calculations in float and double types. This article is another gem of this series and is a must read for all software developers and programmers. As experience grows, you must go into the intricacies of general topics, and floating point arithmetic is one of them. As a senior Java developer, you should know how to do monetary calculations, when to use float, double, or BigDecimal types, how to round floating point numbers, and much more. Even if you have solid knowledge in this topic, after reading the article you may discover something new about floating point operations.

What every developer should know about Unicode

Character encoding is another area where many programmers have difficulty, and "The absolute minimum that every software developer should know about Unicode and character sets (no excuses!)" is intended to fill this gap. For the record, Yes, this is the full title of this article. Its author is Joel Spolsky, one of the founders of https://stackoverflow.com. Joel wrote this article on his blog almost 10 years ago, but it has not lost its relevance in the modern world. The article explains what Unicode is, what an encoding is, how characters are represented using bytes, and much more. One of the best things about this article is the language and presentation method, even if you don't know anything about Unicode, you won't have any problem understanding it. In short, another must read for all programmers, coders and software engineers.

What every programmer should know about time

Besides character encoding, Time and Date is another area where many programmers, myself included, struggle. Even senior developers get lost in GMT, UTC, daylight saving time, and leap seconds. To be honest, it's not easy to deal with time zones without making some mistakes, and using Daylight Saving Time makes it even more difficult. The problems get worse if you use trial and error because you will never be able to solve your problem by doing this. There are a huge number of things that can go wrong, and an equal number of misconceptions. Things like whether a date contains a time zone or not can confuse you, converting UNIX time to other time zones can irritate you, and you can easily forget about synchronizing clocks and delays. I hope that after reading this article, many of your misconceptions about time will disappear and you will develop a complete understanding of time.

What Every Web Developer Should Know About URL Encoding

This article describes common misconceptions about Uniform Resource Locator (URL) encoding, then attempts to clarify URL encoding for HTTP, and then demonstrates common problems and solutions. Although this article is not specific to any programming language, it illustrates problems in Java) and ends with explanations for fixing URL encoding problems in Java, and in web applications at several levels. You will learn basic URL grammar, general URL syntax in HTTP and other protocols. This article also covers common URL pitfalls such as character encoding, special characters in different parts of the URL, and URL encoding/decoding issues. If you are a Java programmer, then you will also learn how to properly manage URLs in a Java application. How to build a URL and use the Apache Commons HTTP client library. Finally, it also offers best practices and suggestions for working with URLs, such as how you should encode a URL when building it, making sure your URL rewrite filters handle your URLs correctly, and more. In short, a must read for any web developer and programmer.

What does every programmer know about web development?

This interesting article from programmersStackExchange is about what every programmer implementing the technical details of a web application should consider before opening a site to the public. It includes things from the areas of Interface design and User Experience, Security, Web standards, Performance, Search Engine Optimization (SEO), technologies used, and some important resources. Today's world is largely dependent on the Internet and it is quite common for a programmer to have a personal website or blog. The experience gained from this article will be useful not only in your professional activities, but also in your own projects. You will learn about all the key technologies such as HTTP, HTML, XML, CSS, JavaScript, browser compatibility, tips for reducing the loading time of your site, XML sitemaps, W3C specifications and several other key points.

What every programmer should know about SEO

This is another article that will be quite useful for web developers, programmers and bloggers. SEO is too big to ignore, and it is important for many programmers and bloggers to know the basics of search engine optimization to help Google find their content and show it to fellow programmers. Since no company can survive without a web presence in today's connected world, SEO becomes even more important. If you have a startup selling any product, then SEO is something you should take care of. All programmers, especially web developers, can greatly benefit from this article. Remember, search engine optimization is broad and very dynamic, and varies across different search engines, such as Google, Yahoo, and others. So, to master this topic you must always update your knowledge.

What Every C Programmer Should Know About Undefined Behavior #1/3

The C programming language has the concept of "undefined behavior". Undefined behavior is a broad topic with a lot of nuance, and it's one of the reasons I love Java: less undefined behavior, less confusion, more stability, and more peace. Many seemingly reasonable things in C actually have undefined behavior, and this is a common source of bugs in programs. Additionally, any undefined behavior in C gives permission to implementations (of the compiler and runtime) to generate code that formats the hard drive, doing completely unexpected things, or worse. Read this excellent article for a deep dive into the sea of ​​unpredictable behavior.

What every programmer needs to know about networks

From the article itself "You're a programmer. Have you ever wondered how multiplayer games work? From the outside, it seems magical: two or more players share a collaborative experience online, as if they actually exist together in the same virtual world. But how programmers we know the truth, that what is actually happening is quite different from what you see. It turns out that it is all an illusion." This is a very interesting article about networking written for game programmers, but I think every programmer and developer can benefit from it.

What Every Java Developer Should Know About Strings

This is my article about java.lang.String and I personally think every Java programmer should know about it. Strings are very important in day-to-day Java programming and that is why good knowledge is a must for any Java developer. This article covers many important aspects of Strings, including the string pool, string literals, comparing strings with == vs equals(), converting bytes to a string, why a string is immutable, proper string concatenation, and much more. An advanced programmer may already know all these features, but even so it would be a good idea to review.

What every programmer should know about security?

This question was asked by a student programmer on StackOverflow. Just as we know a lot about general programming concepts such as the operating system, algorithms, data structures, computer architecture and other things, it is also important to know about security. Although the topic of Security is quite broad, covering the areas of encryption/decryption, SSL, web security, obfuscation, authentication, authorization, etc., there is a basic minimum of knowledge required for every programmer. Personally, at the beginning of my career I didn't know much about security, when I started writing Servlet/JSP based Java web application, I learned about web security and a number of security threats such as SQL Injection, Denial of Service, XML Injection, cross-site scripting and others. As a Java developer, I now follow safe Java programming practices provided by Fortify, PMP, and other static code analyzer providers. This article contains a very good selection of security topics and links, and whether you code or not, you will certainly benefit from this resource.

Latency Numbers Every Programmer Should Know

This article is a bonus, but, nevertheless, a must read for any programmer. To write a high-performance application in any programming language, be it Java or C++, you must know basic latency values, for example, how long it will take to read a variable from memory, from L1 cache, from L2 cache, for a random read from an SSD and from disk. How long does it take to lock/unlock a mutex to send a data packet from one city to another or to do a roundtrip within one data center. These latency values ​​are independent of the programming language and are part of the basic knowledge that a developer must have to write high-load, low latency applications. The positive thing about this link is that it provides a comparative analysis of how these values ​​have evolved over the years. You can see what the values ​​were in 2006 and what they are now. That's all for this list of articles that every programmer should read. Reading articles like What every programmer or developer should know you deepen your knowledge in a specific topic. Honestly, there are too many things for programmers to learn, and learning a programming language like Java is just the tip of the iceberg, but don't most of us have a passion for learning. Programming is a job that requires constant development, and the only things that will be useful to any programmer throughout their career are fundamental knowledge about such things as memory, Unicode, floating point numbers, time, security. Some things are language specific, like my post on String in Java and What Every C Programmer Should Know About Undefined Behavior, but they are good to learn for many beginners and developers. Translation of the article

My list includes the following languages:

  1. C++. It is in this language that many of the platforms listed below are written (JVM, CLR, Node and others). It will also make it easier for you to understand how to manually perform memory optimization.
  2. C# or Java. No, you don't need to know both at once. Learning one of these object-oriented languages ​​is very similar to learning another.
  3. HTML. I don't consider it one of the programming languages, but others do, so...
  4. CSS. Essential for any type of web development.
  5. JavaScript. Its a more modern and nicer version, not the crap we used 20 years ago. Note that the language itself has not changed much from that time until now. We, namely the programmers who use it, are the ones who have really changed.
  6. SQL. Needed to work with relational databases.
  7. Lisp. Yes, Lisp. Or, to be more precise, “one of the embodiments of this language.” Clojure, Lisp, Scheme, Nu or something similar will do. You need to know what homoiconic language is and understand how, with the right tools, the boundaries between code and data disappear.
  8. Smalltalk. Yeah. Any GUI framework built on proprietary hardware (Windows, macOS, OS/2, X/Windows, Android, iOS, etc.) uses the same basic principles that were formulated and implemented in Smalltalk back in the 60s. s years.
  9. Ruby or Python. You need to know at least one dynamic programming language. Javascript is also suitable here, but only if you first learn the language itself, without any DOM models that can significantly distort the initial picture (React, Angular, VueJS - they all contain these same “DOM models” that we are talking about .) By the way, once you understand Lisp, it will become much easier for you to understand JavaScript.
  10. AspectJ. Learning about aspect-oriented programming will completely change the way you look at objects, and that's a wonderful thing.
  11. Haskell, ML, Ocaml or Miranda. Spend some time on functional languages ​​that don't have objects.
  12. Bash or zsh or other shell script. Because not every problem or task in programming should be solved using a full-fledged application.
  13. F#, Scala, Clojure or any other object/functional hybrid programming language. Because once you've got the basics down and mastered the basic set that the first 11 programming languages ​​on this list include, you'll be ready for something that won't be easy to learn.
  14. Swift and/or Kotlin. Both are types of object-oriented languages ​​and have some built-in functionality. After studying them, you will be ready to work on mobile applications.
  15. x86 or ARM assembler. Knowing how to read assembly language will allow you to debug code without using the source code.

And yes, I really know all the languages ​​listed above. And I even teach many of them.

And no, you don't need to know them all to become a reasonably competent programmer. If you just want to become a good developer, you need to know one of the main languages ​​(HTML/CSS/Javascript) + a language for backend programming (most often this is C#, Java, Python, Ruby or NodeJS-Javascript) + SQL if you You are using a relational database management system (RDBMS). This will be quite enough.

However, learning all other languages ​​is exactly what will allow you to move from an “ordinary” to a “leading” programmer, and then achieve the maximum level of knowledge and skills.


Nishan Pantha, Computer Engineering Specialist, Language DeveloperPython

I adhere to the so-called language agnosticism, so if someone, under penalty of death, forced me to compile such a list, it would look like this:

1.Python. Because it is extremely convenient and easy to prototype, and also due to the existence of a huge number of open source frameworks. In addition, it would be worth mentioning the widely developed community.

2. C. Because with its help you can clearly understand how everything works. Great for simple tasks.

3. C++. Also for performing simple tasks. Suitable for using object-oriented paradigms. In addition, it can be used for a number of other tasks.

4. Bash. At first glance, working with it may cause confusion and even some difficulties. However, once you master it, you will carry out any automation processes with its help.

5 . Scala. Used as a hybrid of a functional and imperative programming language. You can create amazing things with it.

6. Javascript. The most powerful language for web development. Personally, I like “pure” JS (it’s worth considering that web development is definitely not my thing).

7 . Java. To perform tasks in object-oriented programming. And for using Spring framework.

8 . Haskell. Every programmer should know functional programming paradigms.

9 . PHP. If you need to do anything related to web development. In my opinion, this language is definitely not a symbol of convenience and simplicity.

10. R. For statistical analysis. Personally, I haven’t even tried to work with it, since I’m more than okay with Python itself.

11 . HTML. As I said, I don't usually do web development. However, sometimes at work I am required to show what was done on the backend. In this case, knowledge of HTML is a must.

12 . Markdown. One of the most commonly used markup languages. As a rule, I use it for some kind of notes, writing a README file and much more.

13. VimL / vimscript. I used to write scripts using VimL to create custom plugins and configurations for vim. This is one of those scripting languages ​​that not many people dare to work with.

14.CSS. Using CSS every now and then won't hurt your HTML at all.

15. Matlab/ Octave. I've used it to perform complex calculations before. However, now I do it all in Python thanks to NumPy.

Esteban Fargas, I develop applications and take part in programming competitions

  1. Java: Oracle probably paid your university quite a bit to have you study this particular language as an introduction to object-oriented programming. It will also be useful if you want to participate in programming competitions.
  2. C/ C++: In principle, very similar to the above Java. By the way, I still perceive these two languages ​​as one.
  3. C#: Not a bad language, resulting from a mixture of the two above-mentioned languages.
  4. HTML: It is the basis of the entire network. However, it is still not ideal.
  5. CSS: Allows various things to look beautiful on the Internet. Also far from ideal.
  6. JavaScript: Allows you to build logical circuits for the Internet.
  7. Python: It's also a good idea to have a different programming language and set of paradigms to write the backend for the application. In addition, it is currently the generally accepted language for machine learning technologies.
  8. Ruby: Another great language for creating a backend. It won't take much time to study it.
  9. Golang: It combines all the nice features found in various C languages. It's great. Large-scale projects can be completed using its coupled model.
  10. Scala: Also allows you to create really great professional software. Getting to know the functional paradigm can be extremely interesting and full of exciting challenges.
  11. Haskell: Studying the functional paradigm at the maximum level.
  12. Lisp: The same as the above Haskell, only in an even more unusual version based on an unimaginably bizarre syntax.
  13. Bash: Is this even a language or not? One way or another, it would be nice to master it as one of the convenient developer tools.
  14. SQL: Used to work with databases.
  15. PHP: A language that was used to create backends in the last century.

I want to tell you something important. If this information had been available to me at one time, then perhaps many things would have turned out differently. But, as they say, “regretting something stupid you didn’t do is even greater stupidity.” And I want to highlight the problem of finding a job as a programmer after saying goodbye to my alma mater.

I studied at the Faculty of Information Technology, majoring in information security. When I was a student, I liked programming. In my second year I started studying Java; I wanted to turn my passion into something more serious than just a hobby. Having assessed the labor market, I realized that programmers are needed everywhere and always than information security specialists, and the former’s salaries are higher. But, unfortunately, I didn't know how to become a good programmer. There was no mentor, mentor who would show the way. I had to constantly come up with my own solutions, which were not always optimal. And over time, the light went out completely in a life torn apart by the storm. There was no faith that everything would work out. And no one around me particularly strived for such things. I threw the idea out of my head and wasted two years of my life.

Where are we going

Why is it worth paying attention to programming and is it really that cool? I will let world-class professionals in this field answer these questions.

Once you start working as a programmer, over time you will be able to choose which direction to develop. And there are not so few options here.

What do we have to do

Well, let's get down to business. Let's talk about what you can do while studying at university and how to use this golden time effectively.

Clear goal

It's a cliché, but the sooner you decide what you want to become, the more time you'll have to prepare and develop your skills. A clear goal and faith in it will help you stay on track and focus on the right things. Don't listen to anyone, do what you like.

English language

Yes, yes, knowledge of a foreign language is valued by employers as highly as programming skills. English will help you “pull out” a seemingly failed technical interview. In addition, most of the documentation is written in English, which is the language used by the global IT community. Therefore, set yourself the goal that by the end of your studies you will have a good command of a foreign language and speak it fluently. Here are a few things that can help with this:

  • English language pairs

Programming at the University

There they will tell you the theory, teach you the three pillars of OOP, and develop practical skills. Naturally, these pairs cannot be skipped. If everything comes easy to you, then ask your teacher to give you an interesting task or try to solve some practical problem for the benefit of your university and other students. The main thing is to constantly develop your programming skills, solve many problems and increase the complexity of your programs.

It is impossible to be a professional in everything. At this point, you should decide what language you want to write in. TIOBE Index can help you with this.

Github

There is one great place waiting for your programs. And a link to your profile in this service significantly increases the value of your resume. “Words are worthless, show us your code.” There is a lot of information on the Internet about how to use this resource and the Git version control system itself, but if someone asks in the comments, I will be happy to write a separate article about it.

You can see an example of what this looks like.

Register on Github and upload all your programs, starting with the first laboratory work. By the end of the training, you will have a good portfolio in this way.

Self-education

The university, unfortunately, will not be able to provide enough up-to-date information as required to get a job. Therefore, these gaps will need to be compensated by independent study of new technologies and frameworks. You can determine what exactly you need by analyzing the requirements in vacancies, for example, on HeadHunter.

The wonderful free educational resource Stepik can help you learn new technologies and programming languages. Training is conducted in the form of lectures followed by programming tasks. Upon completion of the courses, you receive your first certificates. They won’t significantly affect the value of your resume, but they certainly won’t ruin it.

Internships

Starting in 3rd year, look for programming internships. Some of them can even pay well. There you will be able to gain that important work experience, gain the skill of working in a team, and “pump up” your professional skills. I can offer several options where you should look for such vacancies:

Conclusion and Acknowledgments

Briefly, I was able to outline my modest experience and conclusions from life lessons. I will be glad if this information is useful to someone. Get started today. Remember that the future of this world depends on you!

I would like to express my gratitude to my teacher, Balsa Aldrin Raulevich, who opened this amazing and interesting world of programming for me.

Have fun studying and beautiful code!

The specifics of knowledge and skills, of course, are largely determined by the area in which a person works. Some write applications for tablet devices, others develop website engines, others develop toys, etc. But nevertheless, there are some skills that are useful to any programmer.

Be on friendly terms with the computer

This is the simplest and most basic skill inherent in every programmer. It provides for a keen interest in computer technology, which, in turn, gives rise to certain questions for the future specialist: for starters, how to install Windows? How to find and hack a fashion toy? What is BIOS, hosting, system kernel, OOP? - and away we go...

Then your relatives, friends, girlfriend, girlfriends of girls start tugging at you, they say, install the program, clean the system from viruses, rearrange Windows, etc. At first, you even like it: it’s nice to feel competent in one area or another. But then a logical question arises: why not start making money on it? Of course, there is some reluctance to take money from friends, but selling your knowledge and enthusiasm to some serious company is a very real idea. You choose this or that programming language, start learning and again feel like a complete noob..

What is all this for? And to the fact that the world of information technology is a world of toys that you should want to play with. It all begins with interest in these “toys”. If he is not there, there is no programmer.

English

You can't do without English. To learn a programming language, you will have to dig through a lot of literature, video tutorials and documentation. Almost all (99%) primary sources are written in English. If you don’t know it, then the range of materials to study will narrow significantly. Accordingly, the speed of learning a programming language will decrease significantly.

In addition, you need to know English in order to understand the syntax of the language, as well as to successfully pass an interview.

Conversational level and listening comprehension of English are additional bonuses. The phrase “know English” means knowing the so-called “technical English”. That is, you need to understand specialized articles and documentation, and this is far from the same as “live” communication with foreigners.

Mathematics

Mathematics is not as straightforward a question as learning English. It would be more accurate to say that logical and abstract thinking should be at a fairly high level. Mathematics at a university or school develops the mentioned skills, so mathematics education is a big plus. But nevertheless, there are many programmers who do not have a mathematical education. There are even those who do not have higher education at all. This suggests that logic and abstract thinking can be developed not only with mathematical constructions.

There are, of course, areas of programming where you need to know specific formulas, but, firstly, this is not the case everywhere, and secondly, you can get acquainted with them along the way and specialized mathematical programs can help with this. Physics and mathematics are especially useful if you want to create high-quality computer games.

Sociability

Sociability is one of the key properties of a good programmer. The fact is that most serious projects are written in a team - this is both more convenient and faster. If you want to work for a more or less serious “office”, you need to be able to communicate, negotiate, discuss and agree with people. You will also need to be able to get along with your superiors, who will sometimes understand programming better than you, and sometimes will not understand anything about this matter at all.

There is a certain myth that says that recluse and isolation are an integral part of a programmer’s nature. For the most part, programmers are very interesting and sociable people. And hermitism is a certain image inherent in all geniuses, regardless of profession, be it a programmer, linguist, doctor, etc.

flexible mind

Intelligence itself (the ability to operate with the necessary knowledge) is not enough; it needs to be flexible. A flexible mind involves the ability to learn (replenish knowledge, replace outdated information with new). There are people who seem smart, but are very conservative. They have good logical thinking, speak clearly and consistently, but, alas, they cannot learn anything new. But there is the opposite - the head is very inquisitive, it is interested in everything, everything is needed, but the head is a mess, that is, it cannot connect all the accumulated information into a coherent position, or structure it.

There is always a learning curve in programming. The most important and difficult test of a beginner’s abilities will be learning the first programming language. It will be easier later, but you need to remember that you will never be able to completely relax during professional activities.

What should a novice 1C programmer know?

In this article we will look at the main points that a novice 1C programmer should know. This may also be useful for those who use 1C:Enterprise and intend to do it on their own, without outside support.

Let's start with the definitions:

Platform 1C:Enterprise – this is the basic software environment on which application solutions (configurations) operate. The platform is the basis with which programmers work and create ready-made solutions for end users.

Configuration is a program (application solution) developed on the basis of the 1C:Enterprise platform and designed to automate management and accounting tasks in a specific area of ​​activity.

BASIC 1C CONFIGURATIONS

For a novice programmer, it is important to know the basic 1C configurations that most companies work with.

The most common typical 1C configurations are few - less than ten. A programming specialist must clearly understand the difference between configurations in order to understand what data is stored in the program and how to process it.

For example, 1C: Accounting is designed to automate accounting processes at an enterprise and allows you to keep records in accordance with the requirements of the regulatory authorities of the Russian Federation.

To maintain personnel records and payroll, you need to study 1C: Salaries and personnel management. In this case, the programmer must be able to establish the relationship between personnel and payment documents.

To automate warehouse accounting, purchasing, financial accounting and operational reporting, 1C: Trade Management is used. It is this software product that is most often modified to suit the needs of the company.

1C: Retail - a modified version of 1C: Trade Management and is intended for automation of retail stores with various specifics. This 1C configuration is universal for any store; on the basis of it, 1C programmers have developed many variations for stores in different industries.

All these and other configurations work exclusively on the 1C:Enterprise platform. If the user does not have the platform installed, then he will not be able to use the program.

1C PROGRAMMING LANGUAGE


The 1C:Enterprise platform has its own programming language, developed by 1C Company, and completely defines the functionality of application solutions. The platform defines a set of basic objects with their own properties and methods - these are constants, documents, directories, registers and many others. The entire set of these objects is used to solve various accounting automation problems.

The built-in 1C programming language is subject-specific. Experienced programmers say that the 1C programming language initially seems a little simpler than others. The difficulty lies in the fact that the programmer needs to understand the subject area that the program automates - accounting, production, management accounting, etc. Another feature of the 1C programming language that surprises beginners is bilingual code. This means that the code can be written in Russian or English.

BASICS OF WORKING WITH 1C DATABASES

The database is the information with which the platform works. The types of information and methods of processing them are determined by the configuration used. One 1C program can have several databases, they will all have the same structure, but each of them can take into account different data. Large companies often use not one, but several databases.

For example, an accounting base and a salary base. After all payment calculations have been made in the salary database, the data must be transferred to the accounting department in order to pay taxes.

1C programmers are also involved in synchronizing and exchanging data between databases.

BASICS OF 1C QUERY LANGUAGES

A very important step in learning 1C programming is mastering the query language.

Requests- this is one of the main 1C:Enterprise techniques, along with a built-in language that allows you to read and process data stored in the database.

The query language was created to ensure that the user receives data from the information base in a convenient form. With query languages, data can only be processed or grouped. Changing data using queries is not possible.

BASICS OF INTERACTION MECHANISMS WITH OTHER PROGRAMS

In 1C:Enterprise, it is important to configure the upload of data from Microsoft Office, because Often you have to save various reports and tabular data in Excel or Word files. Or vice versa, to load data from Excel you need to create a special processing. First you need to make all the technical settings, read the data from the file and create columns with similar names in 1C.

BASICS OF ACCOUNTING, WAREHOUSING OR TRADING OPERATIONS

One has only to look at the vacancies: every second 1C programmer requires knowledge of accounting and management accounting. As mentioned earlier, the programmer must “understand” the area in which he works. In order to correctly format processing and build algorithms, the logic of the program must be clear.

In a tandem technical specialist-accountant, there is a situation: the programmer does not understand what the accountant wants from him, and the accountant does not understand what capabilities the program has, how it works. To avoid misunderstandings, you need to speak the same language. To work with users of the 1C: Accounting program, a technical specialist must understand the “accountant’s logic,” master the terminology and know the basics of accounting. Accountants often use modified document forms. For example, to account for waybills or change the accounting currency. The main task of a 1C programmer is to ensure that accountants work consistently, submit reports on time, and that the embedded document analytics is not lost.

Systematize basic skills and learn to solve complex problems using