Continuation of the story "Career programmer . "The year was 2001. The year in which came the coolest operating system - Windows XP. When rsdn.ru appeared. Year of birth C # and. NET Framework. The first year of the millennium. And the year of exponential growth of new iron: Pentium IV, 256 mb ram.
When I finished the 9th grade, I had inexhaustible enthusiasm to study programming further. Seeing this, my parents made the decision to transfer me to college to the specialty “Programming”. They thought it would be better this way and teach me something there. The word college, by the way, did not fit this institution very well, on the outskirts of an industrial town. It was an ordinary technical school, not distinguished in any way among other technical schools, which did not hang Leib on their facade with the fashionable word “college”.
Well. I did not contradict my parents and did not dispute their decision. In any case, I was engaged in self-education, and I thought that in this new place they would give me some additional knowledge.
That summer, before entering college, I thoroughly engaged in the study of all possible technologies that were published in the magazine
"Hacker" . I read and reread it to the holes. I especially liked interviews with real hackers and their tips.
')
Most of the cool hackers sat on the linux. A "Mazda" (Windows) - was for lamers. Who read the magazine, he remembers the style of posts in it. Therefore, in my fragile mind, two ideas struggled with each other - to leave Windows or be cool and sit cleanly on Linux.
Each new issue of the Hacker magazine threw me a new reason for formatting the disk and installing either Linux Red Hat 7 or Windows Me. Of course, I didn’t have any training vector, and I did what I read in magazines or on pirated CDs like Hacker Secrets. Installing two operating systems in parallel was also erased, after the new stuffing in the spirit of “Windows XP aka parrot - this is for housewives. And if you want to do serious things, then you should work from the Linuha console with your eyes closed. ” Of course, I wanted to engage in hacking systems, to understand how the network works and to be the all-powerful Anonymus at the time.
The disk was formatted without a bit of regret, and a distribution kit of a Unix-like system was installed on it. Yes Yes. Once I read an interview with a real hacker who uses only FreeBSD 4.3 from the console. At the same time, he was hacked banks and government systems. It was a lightning strike to the head, and I put the BSD OS 5 times, as the main system. The problem was that after installation, except for the bare console, there was nothing there. Even sound. And to put KDE2 and turn on the sound, you had to dance a lot with a tambourine, and fix a few configs.
The FreeBSD 4.3 distribution kit is the most hacker OSAbout literature
As soon as I got a computer, I started buying programming books. The first was a guide to "Turbo Pascal 7.0". This is not surprising, because Pascal I already knew a little from programming courses, and it was possible to continue learning on my own. The problem was that Hackers do not write in Pascal. Then the Perl language was in fashion, or, for the cooler guys, it was C / C ++. At least that's what they wrote in the magazine. And the first book to be read until the end was C Programming Language - Kernighan and Ritchie. By the way, I studied in the Linux environment
and used gcc and the KDE built-in editor for writing 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-blown cartoon devil with a pitchfork was depicted, and then it cost 125 hryvnia in Ukraine (about $ 25 in 2001). To buy a book, I asked for a loan from a school friend, the parents added the rest. Then, I enthusiastically began to study Unix commands, the editor vim and emacs, the structure of the file system and the inside of the config file. Almost 700 pages of the encyclopedia were swallowed up and I got one step closer to my dream - to become a cool Hacker.
UNIX Encyclopedia - One of the first books readAll the money my loving grandparents and parents gave me was spent on books. The next book was “C ++ for 21 days”. The title was very appealing, and therefore I did not look at other books of higher quality. Despite this, all the sources were rewritten from the book in about 3 weeks, and I already understood something in C ++. Although most no longer understood from what is written in these listings. But there was progress.
If they asked me which book had the most influence on your career, I would have answered without hesitation - “The Art of Programming” - D. Knut. It was a flashing of the brain. I can’t tell exactly how this book fell into my hands, but it made the strongest influence on my future career.
The Art of Programming - must readI bought books mainly on the radio market, which worked only on Sundays. Having saved the next several dozen hryvnias for breakfast, I went to get a new book on C ++ or Perl. The choice was quite large, but I did not have a mentor, so everything was studied. I asked the seller to recommend me something about programming. And as far as I remember, he pulled from the shelf the “Art of Programming. First Tom. The book was clearly already used. The corners of the cover were bent, and there was a big scratch on the back side, just in the place where Bill Gates left 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 that it would be nice to send him a resume, even though he was hated by all the Hackers. 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 15. But diligently tried to perform each exercise. Once I even managed to correctly solve the problem with an estimate of the complexity of 25 or 30. This was a chapter on mathematical induction. Although I did not like school mathematics and grasped it badly, but above the mat. Knut's analysis - I sat for hours.
Further, in the second chapter were the data structures. These images and pictures of linked lists, binary trees, stacks and queues are still before my eyes. For 12 years of my career in commercial development, I have used most general-purpose languages.
These are C / C ++, C #, Java, Python, JavaScript, Delphi. And no matter how the language was called, in its standard library there were data structures and algorithms described by Donald Knut in his three-volume book. Therefore, to learn something new does not take much time.
The first volume was swallowed fast enough. I rewrote the algorithms cited in Knuth’s book in C. It didn’t always work, but the more I practiced, the more clarity I got. Diligence was not to occupy. Having finished with the first volume, I ran without hesitation to buy the second and third. I put the second one aside for now, but for the third one (Sorting and Search), I took it thoroughly.
I remember well how I used a whole notebook, “interpreting” the sorting and search algorithms. As with data structures, binary search and quick sorting are visualized in my brain at lightning speed, recalling how they look schematically in Knut's third volume.
The whip was read everywhere. And even going to the sea, not having a number of PCs, I still wrote the algorithms in the notebook and ran the sequence of numbers through them. I still remember how much torment I had to master the pyramidal sorting, but it was worth it.
The next book that had a strong influence on me was The Book of the Dragon. It is “Compilers: Principles, Technologies, Tools” - A.Aho, R.Seti. It was preceded by Herbert Schildt, with advanced C ++ tasks. It is in this place that the points came together.
Thanks to Shildt, I learned how to write parsers and language interpreters. And next, the Book of the Dragon, prompted me to write my own C ++ compiler.
Dragon bookBy that time, I had a modem rattle Internet, and I spent a lot of time on the most popular site for programmers - rsdn.ru. C ++ prevailed there and every pro could answer questions that I was unable to master. It hurt me, and I realized that I was far from these bearded uncles, so you need to study the insides of the “From and To”. This motivation led me to the first serious project - the own compiler C ++ standard of 1998. More detailed history and source codes can be found
in this post .
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 in virtual life, all the same age and generally accepted standards forced me to go to college. It was a real torture. I did not understand at all what I was doing in this place and why I was listening to this information. There were completely different priorities in my head. Learning Visual Studio 6.0, trying with WinApi and Delphi 6.
A wonderful site firststeps.ru, which allowed everyone to enjoy every little step, although I did not understand the big picture. For example, in the same MFC or ActiveX technology.
And what about college? It was a waste of time. In general, if I touch upon the topic of study, I studied poorly. Up to the 6th grade I was a round high school student, and then threes flew, and by the 8th and 9th grades, I often skipped lessons, for which I received no illusory belts from my parents.
Therefore, having come to college, there was also little enthusiasm.
- 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 a reticent character and I was very modest. This new motley team is clearly not credible. And it was mutual. Therefore, various kinds of mockery did not take long to wait. I put up with it for a long time, until I could stand it and slap on one of the offenders right in the classroom. Yes, so he flew off at the desks. Thanks to my father - he taught me to fight since childhood, and with keen 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 is happening, but still feeling his superiority, caused me to fight back. Already in the wasteland behind the school.
These were not childish waving cams, as was the case at school. There was a notable Mahach, with broken noses and a lot of blood. The guy was also not of the timid and skillfully weighed hooks and uppercuts. Everyone remained alive, and since then no one else has bothered me in this “college for programmers”. I have the desire to go there and disappeared altogether soon. Therefore, I stopped going to him, and no threats from my parents did not act on me. By some miracle, I was considered a college stay for the 10th grade of school, and I had the right to go to the 11th.
Everything would be fine, but the 11th grade turned out to be not much the best college. I returned to my home school, met friends I met 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 were more like bandits from TV series than those boys with whom I was friends in junior classes. All of them went to the rocking chair, gaining muscle mass. I resembled bamboo. Long and very thin. Of course, such a bogey classmate could twist me with one hand.
So it began to happen with time. Here my fighting skills already had no action. I and the other boys of my once-native class had very different weight categories. Also features of my thinking, made themselves felt.
Without spreading my thoughts over the tree, I left the school too. 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 things. And going to school is a useless exercise, and you can endure the mockery there, which every day acquired an ever more sophisticated character ... That's enough for me.
After another conflict in the class, with me playing the main role, I left school and did not go there anymore.
For about 3 months I was at home, spending my free time studying C ++ / WinAPI / MFC and rsdn.ru.
In the end, the school director could not stand it and called home.
- “Denis, do you think to study? Or will you leave? Decide. In limbo, no one will leave you. "- Director said
- “I will leave” - I answered confidently
And again, the same story. It remained to finish their studies for half a year, before graduation. Do not leave me without a crust. My parents gave me a hand and told me to go and negotiate with the director myself. I came to the principal. She shouted for me to take off my hat when I enter. Then she strictly asked - "What to do with you?". Frankly, I myself did not know what to do. I was quite happy with the current state of affairs. Finally she took the floor:
- "So let's do it." I will agree with the director of our evening school and you will go there. "
- "Yeah"
And evening school was a real paradise for freestylers like me. Do you want to go - do not want to go. There were 45 people in the class, 6–7 of them appeared in the classroom at most. Not sure that everyone and the list were alive, and were also free. Because only with me, classmates hijacked someone else's bike. But the fact remained a fact. I could pump the skills of programming unlimitedly, and go to school when I really needed it. In the end, I finished it, having passed the final exams. A lot of them did not require, and we even had a graduation. The graduation itself is a separate fable. I remember that local bandits classmates took my watch. And when I barely heard my name, when I handed over the certificates, I trotted behind the document and flew out of the school with a bullet in order not to stumble into any more troubles.
It was summer ahead. With Donald Knut under the arm on the beach, the sea, the sun and the fateful decision to write your big project (compiler).
Part 3. University >>