programmer career. Chapter 2

Continuation of the story "Programming Career".

It was 2001 outside. The year in which the coolest operating system was released - Windows XP. When did rsdn.ru appear. Year of birth of C# and .NET Framework. First year of the millennium. And a year of exponential growth in the capacity of new hardware: Pentium IV, 256 mb ram.

After graduating from the 9th grade and seeing my inexhaustible enthusiasm for programming, my parents decided to transfer me to college to major in programming. They thought that it would be better this way and that they would teach me there. The word college, by the way, did not fit well with this institution, on the outskirts of an industrial town. It was an ordinary technical school, not distinguished by anything from other technical schools that did not hang a label with the fashionable word "college" on their facade.
Well. I did not contradict my parents and did not challenge their decision. In any case, I was engaged in self-education, and I thought that in this new place they would give me some more additional knowledge.


That summer, before going to college, I thoroughly studied all the possible technologies that were published in the magazine "Hacker". I read and re-read it to holes. I especially liked interviews with real hackers and their advice.
Most of the cool hackers were on Linux. And Mazda (Windows) was for lamers. Who read the magazine, he remembers the style of the posts in it. Therefore, in my fledgling mind, two ideas fought among themselves - leave Windows or be cool and sit purely on Linux.
Each new issue of Hacker magazine gave me a new reason to format the disk and install either Linux Red Hat 7 or Windows Me. Of course, I didn’t have any learning vector, and I did what I read in magazines or on pirated CDs like “Secrets of Hackers”. Installing two operating systems in parallel was also erased, after a new stuffing in the spirit of “Windows XP aka parrot is for housewives. And if you want to do serious things, you should work from the Linux console with your eyes closed. Of course, I wanted to hack systems, understand how the network works and be the all-powerful Anonymous at the time.

The disk was formatted without a share of regret, and a distribution kit of a Unix-like system was put on it. Yes Yes. I once read an interview with a real hacker who only uses FreeBSD 4.3 from the console. At the same time, he was credited with hacking banks and government systems. It was a lightning strike in the head, and I installed the BSD OS as the main system 5 times. The problem was that after installation, apart from the bare console, there was nothing there. Even sound. And in order to install KDE2 and turn on the sound, it was necessary to dance a lot with a tambourine and fix a few configs.

programmer career. Chapter 2
FreeBSD 4.3 distribution is the most hacker OS

About Literature

As soon as I got a computer, I started buying programming books. The first was a manual for "Turbo Pascal 7.0". This is not surprising, because I already knew a little Pascal from programming courses, and I could continue learning on my own. The problem was that Hackers don't write in Pascal. Then the Perl language was in vogue, or, for the cooler guys, it was C / C ++. At least that's what the magazine said. And the first book I read to the end was The C Programming Language by Kernighan and Ritchie. By the way, I studied in the Linux environment.
and used gcc and the built in KDE editor to write the code.

Following this book, the UNIX Encyclopedia was purchased. It weighed 3 kilograms and was printed on A3 pages.
On the front side of the book, a full-length cartoon devil with a pitchfork was depicted, and then it cost 125 hryvnias in Ukraine (this is about $ 25 in 2001). To buy the book, I borrowed money from a school friend, and my parents added the rest. Then, with gusto, I began to study Unix commands, the vim and emacs editors, the structure of the file system, and the insides of config files. Nearly 700 pages of the encyclopedia were swallowed and I became one step closer to my dream - to become a kul-Hatsker.

programmer career. Chapter 2
UNIX Encyclopedia - One of the first books I read

All the money that my loving grandparents and parents gave me, I spent on books. The next book was C++ in 21 Days. The title was very attractive and therefore I did not look for other books of higher quality. Despite this, all the sources were rewritten from the book in about this period of 3 weeks, and I already understood something in C ++. Although rather no longer understood from what is written in these listings. But there was progress.

If you asked me what book most influenced your career, I would answer without hesitation - "The Art of Programming" - D. Knuth. It was a brainwash. I can't say exactly how this book came into my hands, but it had the strongest impact on my later career.

programmer career. Chapter 2
The Art of Programming — must read

I bought books mainly at the radio market, which worked only on Sundays. Having saved another few tens of hryvnias on breakfast, I went for a new book on C ++ or maybe Perl. The choice was quite large, but I did not have a mentor, so everything was studied. I asked the salesperson to recommend me something about programming. And as far as I remember, he took from the shelf “The Art of Programming. First Volume. The book was clearly used. The corners of the cover were bent, and there was a large scratch on the back, exactly where Bill Gates had written his review: "If you read this book, you should definitely send me a resume" was signed by him. I knew about Gates from magazines, and I thought it would be nice to send him a resume, even though all the Hackers hated him. The book cost 72 UAH. ($15), and I quickly rushed home on the tram to study new material.

How deep and basic things I read, of course, I could not understand at the age of 15. But diligently tried to complete each exercise. Once I even managed to solve a problem correctly with a difficulty score of 25 or 30. It was a chapter on mathematical induction. Although I did not like school mathematics and grasped badly, but over the mat. Knuth's analysis - I sat for hours.
Further, in the second chapter there were data structures. These images and pictures of linked lists, binary trees, stacks and queues are still before my eyes. In my 12 year career in commercial development, I have used most general purpose languages.
These are C/C++, C#, Java, Python, JavaScript, Delphi. And no matter what the language was called, its standard library had data structures and algorithms described by Donald Knuth in his three-volume book. Therefore, learning something new does not take much time.

The first volume was devoured fairly quickly. I rewrote the algorithms given in Knuth's book into C. It didn't always work out, but the more I practiced, the more clarity came. Zeal was not to take. Having finished with the first volume, without hesitation I ran to buy the second and third. I put the second one aside for the time being, but for the third one (Sorting and Search), I took it thoroughly.
I remember very well how I wrote a whole notebook, "interpreting" sorting and searching algorithms. Just like with data structures, binary search and quicksort are visualized in my brain at lightning speed, remembering how they look schematically in the third volume of Knuth.
The whip was read everywhere. And even when I went to the sea, without a PC nearby, I still wrote algorithms in a notebook and ran sequences of numbers through them. I still remember how much torment it took me to master heap sort, but it was worth it.

The next book that had a strong influence on me was The Book of the Dragon. She is also “Compilers: Principles, Technologies, Tools” - A. Aho, R. Seti. She was preceded by Herbert Shieldd, with advanced problems in C++. It was at this point that the dots came together.
Thanks to Schildt, I learned how to write language parsers and interpreters. And then, the Book of the Dragon, prompted me to write my own C ++ compiler.

programmer career. Chapter 2
Book of the Dragon

By that time, I had a dial-up screeching internet, and I spent a lot of time on the most popular site for programmers - rsdn.ru. C ++ dominated there and every pro could answer questions that I was unable to master. It hurt me, and I understood
that I am far from these bearded uncles, so I need to study the insides of the pluses of "From and To". This motivation led me to my first serious project - my own C ++ compiler of the 1998 standard. You can find more detailed history and source codes in this post. habr.com/en/post/322656.

School or self-education

But back to reality outside of the IDE. Although, by that time, I was increasingly moving away from real life and immersed myself in the virtual, all the same, age and generally accepted norms forced me to go to college. It was real torture. I did not understand at all what I was doing in this institution and why I was listening to this information. I had completely different priorities in my head. Learning Visual Studio 6.0, trying with WinApi and Delphi 6.
The wonderful site firststeps.ru, which allowed me to enjoy every step taken, although I did not understand the overall picture. For example, in the same MFC or ActiveX technology.
What about in college? It was a waste of time. In general, if you touch on the topic of study, I studied poorly. Until the 6th grade I was an excellent student, and then the triples flew, and by the 8th-9th grade, I often skipped classes, for which I received not illusory belts from my parents.
Therefore, when I came to college, there was little enthusiasm either.
- Where is the programming? I asked myself a question. And it was not in the first half of the year. But there was computer science with MS-DOS and Office, as well as general education subjects.

On top of that, I had an introverted personality and was very modest. This new motley team clearly did not inspire confidence. And it was mutual. Therefore, all sorts of mockery was not long in coming. I endured for a long time, until I could stand it and punched one of the offenders in the face right in the lesson. Yes, so he flew to the desks. Thanks to my father - he taught me to fight from childhood, and with an acute desire, I could use physical force. But this happened very rarely, I often endured mockery, waiting for the maximum boiling point.
By the way, the offender, greatly taken aback by what was happening, but still feeling his superiority, challenged me to a return battle. Already in the wasteland behind the school.
It wasn't childish fist-waving like it was at school. There was a noble mahach, with broken noses and a lot of blood. The guy was also not a timid one and skillfully weighed hooks and uppercuts. Everyone survived, and since then no one has bullied me again.
in this "college for programmers". I had no desire to go there and completely disappeared in a short time. Therefore, I stopped going to it, and no threats from my parents had an effect on me. By some miracle, I was credited with my stay in college for the 10th grade of the school, and I had the right to go to the 11th.

Everything would be fine, but the 11th grade turned out to be not many of the best colleges. I returned to my native school, met the guys I knew, with whom I studied from the first grade and hoped that everything would be fine in my native place. There was only one caveat: The guys looked more like gangsters from the series than those boys with whom I was friends in elementary grades. Everyone en masse went to the gym, to gain muscle mass. I looked like bamboo. Long and very thin. Of course, such a bully classmate could twist me with one left.
And so it began to happen over time. Here my fighting skills no longer had any effect. I and the rest of the boys of my once native class had very different weight categories. Also, the peculiarities of my thinking made themselves felt.

Without spreading my thoughts along the tree, I also left the school. Where I felt comfortable was in front of a computer monitor, with the door to my room closed. It made sense and intuitively I felt that I was doing the right thing. And this school is a useless occupation, and even endure these mockeries, which every day became more and more sophisticated ... That's enough for me.
After another conflict in the classroom, with me in the lead role, I left the school and did not go there anymore.
For about 3 months I was sitting at home, spending my free time learning C++/WinAPI/MFC and rsdn.ru.
In the end, the director of the school could not stand it and called home.
“Denis, are you thinking of studying? Or will you leave? Decide. No one will leave you in limbo.” the director said
“I’m leaving,” I answered confidently.

And again, the same story. There was only half a year to finish my studies before graduation. Do not leave me without a crust. My parents waved their hand at me and ordered me to go and negotiate with the director myself. I went to the principal of the school. She called for me to take off my hat when I entered. Then she asked sternly - "What should I do with you?" To be honest, I didn't know what to do either. I was quite happy with the current state of things. Finally she took the floor:
“So let’s do it. I will arrange with the director of our evening school and you will go there.”
- "Yes"

And the evening school was a real paradise for freestylers like me. If you want to go, if you don't want to go. There were 45 people in the class, of which 6-7 at most appeared in the classroom. I'm not sure that everyone and the list were alive, and were also free. Because only with me, classmates stole someone else's motorcycle. But the fact remained. I could upgrade programming skills unlimitedly, and go to school when I really needed it. In the end, I graduated from it, having passed the final exams. They didn’t demand much on them, and we even had a graduation. Graduation, in itself, is a separate fable. I remember that local bandits-classmates took my watch from me. And as soon as I heard my last name, when handing out the certificates, I trotted for the document and flew out of the school like a bullet so as not to stumble into any more trouble.

Summer was ahead. With Donald Knuth under his arm on the beach, the sea, the sun and the fateful decision to write your big project (compiler).
To be continued ...

Source: habr.com

Add a comment