Children's Day Against Bad Code.

Children's Day Against Bad Code.

The post is dedicated to Children's Day. Any coincidences are purely coincidental.

At the age of 10, I got my first computer and a disc with Visual Studio 6. Since then, I've been creating tasks for myself—automating tasks, building a web service for three people, or writing a game that will eventually be removed from the Play Market due to age. Of course, I lost source codes and wrote code that I would be ashamed to show others. At 10, I would have definitely appreciated receiving an archive from the future with all my mistakes—so I would never make them again.

A couple of weeks ago, I asked colleagues from Yandex.Money what advice they would give a child who wants to become an IT specialist, and then I remembered something about myself. This text came from that reflection. I suggest we talk about it.

I don’t recommend spending too much time agonizing over choices; it’s better to try everything and do all sorts of things. Once you understand the general landscape, you can decide for yourself which direction to pursue and which one to abandon.

Sergey, Junior Programmer

Childhood

What is the most fun activity during a programmer's childhood, especially before the internet?

I had two: dismantling all the games from the disc '800 Games in Russian' using all the programs from the disc 'Everything a Hacker Needs,' and rewriting all the games that I spent more than 10 hours on, from scratch in BASIC. It doesn't matter what comes out— even if it turns out something like that.

Children's Day Against Bad Code.

You take it, try it, swap blocks around, experiment, and reach for everything that can be reached. You wipe Windows, spend 10 hours installing it back. You try to restore the drivers. You figure out how DOS works. You understand how jumpers should be set so that your hard drive will start up in your friend's computer (there are 200 megabytes of new games!). You tinker with software, you tinker with hardware, you take apart and assemble computers. You write a football simulator for 13 years, in the end.

When there’s nothing, you become happy from that.

One must not underestimate the importance of self-checking. In my opinion, beginners in IT underestimate how strictly they will need to control their product (also in analytics) and how much time it takes compared to the purely creative part. And the more interesting what you are doing, the harder and longer the checking will be.

This is certainly a somewhat abstract piece of advice, but if only I had known it from the start.

And I do not recommend fixating on one direction in IT. Here, too, broad perspective matters.

Anna, Senior Systems Analyst

High School

At one point on the forum of a provincial town P, programming was discussed - and there appeared a thread titled "A large company is looking for PHP developers." The text of the announcement was as follows:

A large company is looking for PHP developers:

To determine whether you should come for an interview, complete a simple task: write a program in PHP that finds positive integers x, y, and z such that x^5 + y^5 = z^5. (^ - exponent).

You can respond here.

Only a few people posted in this thread - I was one of them. With all my sixteen-year-old naivety, I replied:

Really, something strange. And you need a pretty powerful computer to find this...
Because no such numbers exist for x, y, z <= 1000 - that's the first thing (I knocked it out in VB, nothing more has been done yet), and secondly, the computer freezes completely.

It's strange that there's nothing, IMHO.

Yes, a setup, a trap for newcomers, yes, a troll, and so what. Obviously, I spent some time on a simple script, but completely forgot about Fermat's theorem - which the thread's author, the respectable The_Kid, clarified at the very end.

The outcome is sad - in P there are practically no people who know mathematics, yet every second person believes himself to be a great programmer. Over three hours, on all the forums where I posted the message, there were around two hundred views in total... and only two correct answers. And Fermat's theorem is a school-level topic, and its conditions are so simple that they should be obvious. By the way, in parallel, when surveyed in ICQ, 6 out of 6 acquainted university students from Novosibirsk answered, "This is Fermat's theorem."
So who to hire after this?

At that time, it sparked a storm of indignation in me: "If I didn't write about Fermat's theorem, it doesn't mean I don't know it," - a classic excuse. Am I sad about it now? No, it's also a lesson for life. Just like when my game was featured in the Indonesian Windows Phone Store, and two weeks later it was removed because I didn't update some EULA conditions.

And it is entirely unclear: if in one large company there is no one to hire - then what should one be? What to do? Where to grow?

Don't assume that once you receive an education, you will become a programmer/tax consultant/mathematician or anything else.

The time has come when fundamental subjects (mathematics, physics, computer science, philosophy) in a diploma become significantly more important than applied ones (programming, design in specific fields, etc.). Higher education has begun to split into layers – basic (engineering) and applied. One should study not specific skills, but thinking, the scientific approach, understanding how to solve problems, and soft skills.

This is about university. There will still be a lifetime to develop applied skills.

Oleg, lead systems analyst

University

You write code in C++, you write code in Java. You touch assembler, pull your hand away, get caught up in Qt, and wonder why this is happening to you. By the fourth year, everyone becomes indifferent to what you write your next important labs in—professors look at the code in a haphazard manner.

This isn't everywhere, of course—there are universities where the education is strong and effective, but they accept students who solved ACM problems in school, squeezed everything out of graph theory in additional classes, and memorized how much memory all existing algorithms in the world require.

I didn't do that, I didn't attend extra classes, but just finished my studies in my math class, meanwhile doing interesting things. Spoiler alert—at interviews, they will be of no use to anyone.

First, it's better to determine what you like in IT. If you like all directions, it will be difficult. Learning a programming language— will lead nowhere, it will just create confusion later on.

Yan, financial monitoring specialist

A true story—thanks to a Windows simulator made with a friend in 10th grade, you can automatically get a few exams and credits in university. You can even tell everyone later how cool it was. The problem is, it wasn't cool—that was a convoluted architecture, terrible code, and a complete lack of any standards whatsoever.

Such things should be done with one purpose—to create your own catalog of pitfalls. Although this won't protect you from imposter syndrome when you find yourself in a big company with some superficial knowledge about everything, thinking that you will be exposed at any moment.

Children's Day Against Bad Code.

I support this; it’s more important to help with advice on what to do and where to find information than the opposite. It’s also completely okay if he starts by exploring things himself. — The understanding will come later. What matters is that he enjoys it.

Eric, Test Engineer

We all write development plans — what we need to study, what to focus on in the near future, and how to improve ourselves. But it seems we would all benefit from writing a letter to our past selves — here’s mine.

  1. Take some time, find a book, and actually install that Ubuntu distribution that you got for free from Canonical. There’s clearly a simple problem; Ubuntu works everywhere. And Linux will be very useful to you.
  2. Don’t be afraid of the console. Volkov Commander can fit on a single floppy disk, but try to understand why you need all these commands; get comfortable with the command line. Floppy disks will die. Discs will die. Flash drives will die too. Don’t worry too much.
  3. Read up on algorithms, understand sorting, trees, and heaps. Read books.
  4. To grasp the basics, you don’t need paid courses. Soon YouTube will come along — you’ll be surprised.
  5. Don’t get stuck on BASIC. There are hundreds of technologies in the world worthy of your attention, and a million things that are more interesting than yet another attempt to draw user forms in Excel. Try Python at least — you’ll figure out the rest.
  6. Learn to use Git, back up all your source code. Write at least one client-server application to understand how they work. Get to know networks, switches, and routers.
  7. And if you are reading this now, it means it’s all worth it.

Share in the comments what you would write to your past self. Suggest something to current school students and students who are at a crossroads and trying to find their way. Let’s talk about it.

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers šŸ”„ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster