📜 ⬆️ ⬇️

How not to become a programmer or ... you do not belong here

PROLOGUE


This is an article for someone who decided to become a programmer for a programmer, for someone who does not yet understand where he can run into and who thinks that it will not cost him much effort.

The article is not recommended for reading by experienced programmers. After all, whatever one may say, but views on programming may diverge.
Therefore, please do not minus much. If experienced programmers have something to say to beginners, write your own article too.

Well, if you are in the process of self-determination in this profession - you are welcome!

TERMINOLOGY


According to textbooks, programming is just a process of writing instructions in any programming language (PL).
But is it so easy - take and write a program?
Is it possible to write a program, is it just to list a set of instructions (instructions) to the compiler and everything is ready?
Just something to memorize the team and stamp your own bend, but to row the loot!?
')
Programming is a purely creative research, not a technical process.

Programming is the ability to abstract, to think with objects, functional dependencies, virtual images.

Programming is a process of flight of creative thought, often going beyond the working day and even the way of life.

It is important to understand that a program is not just a set of lines of text.
This is not a sequence of pieces of code written from the book. This is a complex multi-level product. These are dozens and hundreds of objects of different structures with different behavior, communicating with each other. And the programmer must understand and feel all the subtle connections between these objects.

When a programmer is working on a program, she seems to live in his head.
It is necessary to understand that the program is written by immersing in the code. This is when the source code of the current module seems to be loaded into the brain and processed there (aka is being debugged).
Thus, already launching the program for execution, the “correct” programmer knows perfectly how it will be executed, because before that she seemed to have “played like music” in his head.

I mean, I know a lot of programmers who wrote some code, and to check how it works, they launched it and were very surprised when it fell out with an error in some place. They could not execute the code in the head, and therefore did not understand how this very code works. Well, they had no corresponding programs.

The most important skill in programming is to learn how to play (execute) code in the mind.
The brain of the programmer must be able to run parts of the code in his mind. You scroll through the loop, calculate the variables, and imagine what the output will be like.

The feeling that you feel the program is a very important stage in the development of a programmer.
By the way, a good programmer differs from a bad one in that he spends 90% of his time on development, research and design, and a bad one spends 90% of his time on debugging randomly generated code.

CONCLUSION. The programmer must be able to execute the code in the head before transmitting it to the compiler.

BITTER TRUTH


As a rule, the programmer can not learn in school.
Most programmers are self-taught. Education can only lay the foundation of engineering knowledge. The rest is mental abilities and predispositions, multiplied by diligence and labor in a square, and even in factorial (!).

I conducted many job interviews with programmers who have a diploma of a programmer. In the course of the interview, it turned out that they wrote only one program in their entire life, and that was a diploma written by another person. I asked for such a candidate, and can a poet call himself a poet if he has not written a single verse yet? Usually, after all, a collection of poems comes out and then the poet receives recognition and the status of the poet himself. The answer was a dull silence and misunderstanding.

FORMATION


Our situation is like this. You read about algorithms, learn any language, write dozens of various small programs. Any programs - for yourself, for a friend, just to deal with technology, etc. And you spend a lot of time on it. I will clarify once again - MANY TIMES. And you all succeed ?! You drive in, you understand, you like it and you get a buzz from it, an inner uplift! When the program works as planned, you feel a surge of happiness, endorphins and splash in your brain. Here it is! Fine!

Only after that, you become someone like a programmer. And only then, unwashed head old sweater and beard ...

Laugh laugh, but by the length of the beard of one of our programmers, we will find out at what stage of the project he is.
CONCLUSION. A programmer is a person who not only writes programs, but also for whom they work.

ABOUT LANGUAGES.


There are many programming languages, but C ++ has always stood apart on this list.
Why C ++?

C ++ is a minimalist language that emerged as a collection of macros from assemblers. Rather, S. first arose. But this is not the point, I am not a historian .
Why does an ordinary programmer need to know C ++?
This is about as a priest who does not know the Bible. As a marketer, unaware of the 4P rule. As a model without makeup. Similarly, C ++ is the very necessary baggage that should just be at least in my head on one of the shelves.

You can not use C ++ in action, but you should know it as a canon, as the basis of all the basics. But nevertheless, C ++ is very dangerous when used, because, for example, when manipulating pointers, if the programmer does not fully understand their fundamentals, you can fly to the execution of the code in the data section (because of this, by the way, in JAVA, pointers canceled). And you can also “shoot yourself in the foot”)) so thought the author of the C ++ language, Mr. Straustrup. Because such a tool as C ++ needs to be very competent to own in order to use it masterly.

Also note that some modern languages ​​have taken C ++ as their base - Java, PHP, Perl, Ruby etc.
All known programs are written exclusively in C ++ (or C) - Windows OS, Linux OS, MacOS, iOS, Firefox, Kaspersky, Chrome etc. Moreover, many of the well-known programs are open source and you can learn programming from them.

At the moment, only C ++ gives the fastest and most optimized code for a native native platform.

WHY DELPHI NOT AN OPTION?


Here I will take a desperate attempt to dissuade beginners from programming in Delphi.

Pascal (IDE Delphi) - is programming in the framework (IMHO). Pascal is a language invented by the scientist N. Wirth in 1970, during the development of another Modul-2 language. Pascal was widely used to learn the basics of programming, but it received commercial use only in the 80s and 90s.

Over the decades of Borland and InPrise, he turned into a monster, borrowing ( stealing ) part of the syntax from C ++. Now the company Embarcadero continues to grow this monster, in the womb of which you will compile a giant-sized program. By the way, and for Android too.

I once dragged a lot of people from the Delphi swamp to C ++, which they themselves were subsequently incredibly happy about. Being C ++ programmers, they recalled with horror about Pascal and no longer had the desire to program on it.
Also, I heard a lot of tales from programmers who were trying to retrain java delphists and had been completely fiascoed. Now, many put an end to the Delphists. Ostensibly untrained.

Perhaps this is a challenge to you, gentlemen delphists! Try to write a program in C ++. After 2 months, Delphi (Pascal) will seem like a kindergarten and you will move on to the next level of development (high school). And there already Python is just around the corner.
Evolve! Are you weak?

Immediately I will ask you not to make a holivor about who is cooler - Delphi or C. If you write good commercial programs on Delphi and your users are satisfied with the product, then everything is fine. Write further. You have found your niche.

USE OF PL


Now let's look at the global statistics for 2015, so what are the programs written on?
C (C ++, C #, ObjC) - 28.5% (these are normal boys)
Java - 21.5% (these are Android, server and mobile applications)
Basic (+ .NET) - 4.1% (this is the United States with their adorable Visual Basic)
Python - 3.8% (these are coochackers, linuxoids and geeks)
Delphi (Pascal) - 2.9% (this is Russia and Eastern Europe)
PHP - 2.7% (Web programming)
Javascript - 2.5% (Web-programming)
Ruby - 2.0%

STEPS FOR THE PROGRAMMER'S FORMATION


How do you start your programming training?
1. Acquaintance with algorithmization
Here to start all the same good Pascal. He is not bad at developing block thinking. Enters into the programming domain. Does not scare as C ++. And the leg will remain intact.
2. Variables and data types
3. Basic elements of the language
Structures, classes
Cycles, branches, choices, transitions, functions
4. Acquaintance with the PLO
OOP is exactly that functionality that makes a “good” program out of a person ’s program. This is the skeleton (skeleton) of any decent program.
This is what the roof from the beginners comes from. This is what dumb programmers are running from.
Here begins the abstraction.
Only one thing is required to understand - OOP is the backbone of any well-designed program.
Without OOP, it is sometimes difficult to build a logical and intuitive interaction between program modules.
5. Familiarity with technology - working with files, streams, graphics, sockets, DBMS, Web, XML
6. Deepening - work on their projects 6-9 months. It is important not to pull the finished components, but to write pure C ++ code.
It is important to just get a hand.

Framework and Compiler (IDE)


A framework is a software platform that facilitates the development and integration of various components of a large software project.
A compiler is a program that turns your writing into executable code.

An IDE is a graphical editor that makes it easy to work on creating visual forms and editing code.
The problem of modern programming is the excessive variety of frameworks, environments, and YaPs.
You can't learn all of them. Much determines the customer or the company-employer.
You can start learning with Visual C ++ (Microsoft's environment), Builder C ++ (Embarcadero), and Qt.

Visual C ++ is a classic. If you need a lot of convenient visual components, if you need a fancy interface, take Builder C ++. Need cross-platform - take Qt C ++.

I started to program in C ++ in DOS. Then (in the 90s) more and there was nothing (unix does not count)!
Now we have C # .NET, Qt, wxWidgets, C ++ Builder, C ++ VisualStudio under Windows. And no less fat variations under Linux.
And if you still look in the direction of Java, Android ... then just drools of opportunity.

Prepare your head for an extensive infusion of documentation. As programmers say - RTFM .
Learn one language and one medium. Scientists have proven that a programmer with 3 years of programming experience in one language works 3 times more productive than a programmer with the same experience, but in a different language.

GOOD PROGRAMMING RULES


1. Wrote the first version of the program !? Throw it out and start writing the second version.
2. Start the program design on paper - blocks, connections, morphology, schemes (UML)
3. Self-documenting variables - bPersonNameValidity
4. 60% of the code - error handling and exceptions.
5. Break the code into small modules. Good practice is one class, one module.

WHAT ARE THEY ARE?


Division into system (C) and applied (P) programmers.
C - they know the device of the operating system, the basis of the API, how the OS works (threads, processes, interrupts, hooks), they try to write all the code themselves without the involvement of third-party components. Often supporters of VisualStudio. They do not like to create software with large graphical interfaces.
P - write the program, using third-party modules and components. Do not go into the OS device. They love Delphi and Builder.

Embedding - the most professional level. Programming for glands - hardware. Requires knowledge of electronics and assembler. The highest paid programming segment.

Web-programmers - write code for dynamic sites. More often on PHP. Additionally, you need to know HTML, CSS, JS, etc.

EPILOGUE


It would be naive to assume that you can learn from a programmer in less than a year.
A programming language is like a musical instrument. Basic skills of the game you may grab quickly, but it will take years to master the skill.
Programming should like, should enthrall, like any favorite process.
I recommend to take down all the games on your computer. Spend time for useful.
Develop analytical thinking.

According to C ++. We read Stroustrup. Keep his book handy.
And further. Learn English. Programmers should be able to read English fluently.
99% of the programming documentation in English. Translation do not wait.
The names of the variables are also called English words, at the same time it comments on the code.
If, when learning a programming language, you feel that you are torn through the jungle, that your brains are stuck in this dreary, that language constructs are terrible and difficult to understand, and you feel a growing irritation, then it is quite possible that this is not yours. Throw it!
Programming is not a profession, it is a diagnosis.
The main thing is that you tried, but it is possible that your vocation is different.

PS


Some of the experience of others
Programming is not an entertaining party, but hard work that requires a lot of knowledge and a certain mindset.
Learn the language! = Learn to program.

Source: https://habr.com/ru/post/275409/


All Articles