Tuesday, September 15, 2020

How not to become a programmer or you don't belong here

PROLOGUE

This article is for someone who has decided to become a  kulkhacker  programmer, for someone who does not yet understand where he can get himself 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 differ.

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

TERMINOLOGY

According to textbooks, programming is just the process of writing instructions in a programming language (PL).

But is it that easy to just go and write a program? 

Is it really possible to write a program, it is just to list a set of instructions (instructions) to the compiler and you're done?

Just memorize the commands and churn out programs for yourself, but row the loot !?

Programming is a purely research creative, not a technical process.

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

Programming is a process of creative thought flowing, often going beyond the working day and even the lifestyle.

It is important to understand that a program is not just a bunch of lines of text.

This is not a sequence of pieces of code written out of a book. It is a complex multi-tiered product. These are tens and hundreds of objects of various structures with different behaviors, communicating with each other. And the programmer must understand and feel all the subtle connections between these objects.


What is the difference between computer science and computer engineering

When a programmer works on a program, it seems to live in his head.

It is necessary to understand that the program is written by immersion in the code. This is when the source code of the current module seems to be loaded into the brain and processed there (aka debugged).

Thus, already launching the program for execution, the "correct" programmer knows perfectly well how it will be executed, because before that it seemed to "play like music" in his head.

What I mean is that I know many such programmers who wrote some code and, to check how it works, launched it for execution and were very surprised when it dropped out with an error in some place. They could not execute the code in their heads, and therefore did not understand how this very code works. Well, they had no  corresponding programs  .

The most important skill in programming is learning how to reproduce (execute) code in your mind.

The programmer's brain must be able to run pieces of code in the mind. You loop through the loop, evaluate the variables, and imagine roughly what the output will be.

Feeling that you feel the program is a very important stage in becoming a programmer.

By the way, a good programmer differs from a bad programmer in that he spends 90% of his time on development, research and design, while a bad programmer spends that 90% of his time debugging randomly generated code. 

OUTPUT. The programmer must be able to execute the code in his head before feeding it to the compiler.

BITTER TRUTH

As a rule, you cannot learn to be a programmer in an educational institution.

Used on most of the programmers - self-taught. Education can only lay the foundation for engineering knowledge. The rest is mental abilities and dispositions, multiplied by diligence and work squared, or even factorial (!).

I have done many job interviews with programmers who have a degree in computer science. During the interview, it turned out that they had written only one program in their entire life, and that it was a diploma written by another person. I asked such an applicant, but can a poet call himself a poet if he has not written a single verse yet? Usually, after all, a collection of poems is published and then the poet receives recognition and the very status of a poet. The answer was dull silence and misunderstanding.

FORMATION

Our business is like this. You read about algorithms, learn any language, write dozens of different small programs. Any programs - for yourself, for a friend, just to deal with technology, etc. And you devote a LOT of time to this. I will clarify again - a LOT of time. And now everything is successful for you ?! You drive in, you understand, you like it and you get a thrill from it, inner elation! When the program works as planned, you feel a surge of happiness, and endorphins are splashing in your brain. Here it is! Fine! 

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

Laughter with laughter, but by the length of the beard of one of our programmers, we find out at what stage of the project he is.

OUTPUT. 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 out on this list.

Why C ++?

C ++ is a minimalist language that originated as a set of macros from assemblerists. Rather, S. first appeared. But that is not the point,  I am not a historian .

Why should an average programmer know C ++?

It's like a priest who doesn't know the Bible. Like a marketer who doesn't know the 4Rs. Like a fashion model without makeup. Likewise, C ++ is the very necessary baggage that should just at least lie in your head on one of the shelves.

You may not be using C ++ in action, but you should know it as a canon, as the foundation 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 basics, you can fly off to execute 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. Stroustrup. Because a tool like C ++ needs to be very competent in order to use it masterly.

Also note that some modern languages ​​have taken C ++ as a 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 ++ provides the fastest and most optimized code for the native platform.


WHY IS DELPHI NOT AN OPTION?

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

Pascal (IDE Delphi) is framework programming (IMHO). Pascal is a language invented by the scientist N. Wirth in 1970, during the development of another language Modula-2. Pascal was widely used to learn the basics of programming, but it did not come into commercial use until the 1980s and 1990s. 

Over the decades of Borland and InPrise's reign, he turned into a monster by borrowing ( stealing ) some of the syntax from C ++. Now the Embarcadero company continues to grow this monster, in the belly of which you will compile a gigantic program. By the way, for Android too.

In due time I dragged a lot of people from the  swamp Delphi in C ++, which they themselves were later unspeakably happy about. Being C ++ programmers, they remembered Pascal with horror and no longer had the desire to program in it.

Also, I've heard a lot of tales from programmers who tried to retrain dolphists in Java and failed completely. Now many are giving up on dolphists. Allegedly, non-retrainable.

Perhaps this is a challenge for you, gentlemen, dolphists! 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, and Python is not far off. 

Develop! Are you weak?

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

No comments:

Post a Comment

Server management systems

Enterprises receive the services and functions they need (databases, e-mail, website hosting, work applications, etc.) for their corporate I...