Career programmer. Part 2. School or self-education

    Continuation of the story "Career programmer . "

    In the yard was 2001. The year in which the coolest OS was released - Windows XP. When appeared. The year of birth of C # and the .NET Framework. The first year of the millennium. And a year of exponential growth in new iron capacities: Pentium IV, 256 mb ram.

    After graduating from the 9th grade, I had an inexhaustible enthusiasm for further study of programming. Seeing this, my parents decided to transfer me to college for the specialty "Programming". They believed that it would be better and taught me there. Word college, by the way, did not fit this institution, on the outskirts of an industrial town. It was a regular technical school, not distinguished from other technical schools, which did not hang a label with the fashionable word "college" on its facade.
    Well. I did not argue with my parents and did not dispute their decision. In any case, I was engaged in self-education, and thought that in this new place I would be given some additional knowledge.

    That summer, before entering college, I thoroughly began to study all the possible technologies that were published in the Hacker magazine . I read and re-read it to the holes. I especially liked the interviews with real hackers and their advice.

    Most of the cool hackers sat on Linuha. But “Mazdai” (Windows) was for lamers. Who read the magazine, he remembers the style of posts in it. Therefore, in my fragile mind, two ideas struggled among themselves - to leave Windows or to be cool and to sit purely 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”. The installation of two OSs in parallel was also erased, after a new throw in the spirit of “Windows XP aka a parrot is for housewives. And if you want to do serious things, you have to work from the Linux console with your eyes closed. " Of course, I wanted to engage in hacking systems, understand how the network works and be the omnipotent Anonymous at that time.

    The disk was formatted without regret, and the distribution 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, hacks of banks and state systems were listed behind him. It was a lightning bolt to the head, and I put BSD OS 5 times as the main system. The problem was that after installation, except for the bare console, there was nothing there. Even the sound. And to put KDE2 and turn on the sound, you had to dance a lot with a tambourine, and fix a few configs.

    FreeBSD 4.3 - The Most Hacker OS

    About 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 training on my own. The problem was that Hackers do not write in Pascal. Then the Perl language was in fashion, or, for cooler guys, it was C / C ++. At least that’s what they wrote in the magazine. And the first book to be read to the end was C, the Kernigan and Ritchie Programming Language. By the way, I studied under Linux
    and used gcc and the built-in KDE editor to write code.

    Following this book, the UNIX Encyclopedia was purchased. She weighed 3 kilograms and was printed on A3 pages.

    On the front side of the book, a cartoon devil with a pitchfork was depicted to its full height, and then it cost in Ukraine 125 hryvnias (this is about $ 25 in 2001). To buy a book, I asked for a loan from a school friend, the rest was added by parents. Then, I enthusiastically began to study Unix commands, the vim and emacs editor, the structure of the file system and the inside of the file config. Nearly 700 pages of the encyclopedia were swallowed and I became one step closer to the dream - to become a cool hatsker.

    UNIX Encyclopedia - One of the first books read

    All the money that loving grandfather and grandmother 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 at other books of a higher quality. Despite this, all the sources were copied from the book for about this period of 3 weeks, and already I understood something in C ++. Although I probably no longer understood what was written in these listings. But there has been progress.

    If someone asked me which book influenced your career the most, I would have answered without hesitation - “The Art of Programming” - D. Knut. It was a brain flashing. I can’t tell exactly how exactly this book fell into my hands, but it has made the strongest influence on my future career.

    The Art of Programming - must read

    I bought books mainly on the radio market, which worked only on Sundays. Having saved the next several dozen hryvnias for breakfast, I went for a new book on C ++ or maybe Perl. The choice was large enough, but I did not have a mentor, so everything was studied in a row. I asked the seller to recommend me something for programming. And as far as I remember, he took from the shelf “The Art of Programming. First Tom. " The book was clearly already in use. The corners of the cover were bent, and there was a big scratch on the back, just in the place where Bill Gates left his comment: “If you read this book, you should certainly send me a resume” was signed by him. I knew about Gates from magazines, and thought it would be nice to send him a resume, even though all the Hackers had him. The book was worth 72 UAH. ($ 15)

    How deep and basic things I read, of course I could not understand at 15. But he diligently tried to complete each exercise. Once I even managed to correctly solve the problem with a complexity rating of 25 or 30. This was a chapter on mathematical induction. Although I did not like school math and grabbed it badly, but over the mat. Knut analysis - I sat for hours.

    Next, the second chapter went on data structures. These images and pictures of linked lists, binary trees, stacks and queues are still before my eyes. Over the 12 years of my career in commercial development, I have used most of the general languages.

    These are C / C ++, C #, Java, Python, JavaScript, Delphi. And no matter how the language is called, its standard library had data structures and algorithms described by Donald Knuth in his three-volume book. Therefore, to learn something new does not take much time.

    The first volume was swallowed quickly enough. I copied the algorithms given in Knuth’s book into C. It didn’t always work, but the more I practiced, the more clarity came. Zeal was not to hold. Having finished with the first volume, I did not hesitate to run and buy the second and third. I have put the second aside, but for the third (Sorting and Search), I have taken it thoroughly.

    I remember very well how I wrote down a whole notebook, “interpreting” the sorting and search algorithms. As with data structures, binary search and quick sort are visualized in my brain with lightning speed, remembering how they look schematically in Knuth's third volume.

    The whip was read everywhere. And even going to the sea, not having a PC nearby, I still prescribed the algorithms in a notebook and ran a sequence of numbers through them. I still remember how many torments it cost me to master the pyramidal sorting, but it was worth it.

    The next book that had a strong influence on me was The Dragon Book. She is “Compilers: Principles, Technologies, Tools” - A. Aho, R. Seti. It was preceded by Herbert Shildd, with advanced tasks in C ++. It was at this point that the points came together.
    Thanks to Schildt, I learned to write parsers and interpreters of languages. And then, the Dragon Book, prompted me to write my own C ++ compiler. Dragon Book By that time, I had a modem grating Internet, and I spent a lot of time on the most popular site for programmers - C ++ dominated there, and every pro could answer questions that I could not handle. This hurt me, and I realized that I was far from these bearded uncles, so I need to study the insides of the pros and cons. This motivation led me to the first serious project - my own C ++ compiler of the 1998 standard. You can find more detailed history and source codes in this post .


    School or self-education

    But back to reality beyond the IDE. Although, by that time, I was increasingly moving away from real life and immersed in the virtual, all the same age and generally accepted norms forced me to go to college. That was real torture. I completely did not understand what I was doing in this institution and why I was listening to this information. There were completely different priorities in my head. Studying Visual Studio 6.0, trying with WinApi and Delphi 6.

    A wonderful site, which allowed everyone to take pleasure in the steps taken, although I did not understand the big picture. For example, in the same technology MFC or ActiveX.

    What about college? It was a waste of time. In general, if I touch on the topic of study, I studied poorly. Until the 6th grade I was a round honors pupil, and then threes flew, and by the 8th-9th grade, I often skipped classes, for which I received not illusory belts from my parents.

    Therefore, having come to college, there was also little enthusiasm.

    - Where is the programming? I asked myself a question. But he was not in the first half of the year. But there was computer science with MS-DOS and Office, as well as general subjects.

    In addition to everything, I had a withdrawn character, and I was very modest. This new motley group was clearly not credible. And it was mutual. Therefore, all kinds of mockery did not take long to wait. I endured for a long time, until I could not stand it and hit one of the offenders in the face right in the classroom. Yes, so he flew away for 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 superior, called me to the return fight. Already in the wasteland behind the school.

    These were not children's fists, as was the case at school. There was a noble Mahach, with broken noses and a lot of blood. The guy was also not from a timid dozen and skillfully weighed hooks and uppercuts. Everyone remained alive, and since then no one has bullied me in this "college for programmers." I have a desire to go there and completely disappeared soon. Therefore, I stopped going into it, and no threats from my parents affected me. By some miracle, they considered 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 was not much of the best college. I returned to my native school, met some friends of my acquaintances with whom I had studied since first grade and hoped that everything would be fine in their native place. There was only one caveat: Guys, were more like bandits from the series than those boys with whom I was friends in the lower grades. Everyone went to the rocking chair, to gain muscle mass. I looked like bamboo. Lanky and very thin. Of course, such a bull-classmate could twist me with one left.

    So it began to happen over time. Then my fighting skills had no effect. Already very different weight categories were with me and the rest of the boys of my once native class. Also, the features of my thinking made themselves felt.

    Without spreading my thoughts on the tree, I also left 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 going to school is a useless exercise, and even enduring mockery there, which every day became more and more sophisticated ... That's enough for me.

    After another conflict in the class, with me in the title role, I left school and did not go there anymore.

    About 3 months I was sitting at home, spending free time studying C ++ / WinAPI / MFC and
    In the end, the headmaster could not stand it and called home.

    - "Denis, are you thinking of studying?" Or will you leave? Decide. In limbo, no one will leave you. ”- said the director
    ““ I will leave, ”I answered confidently.

    And again, the same story. It remained to finish my studies for half a year, until graduation. Do not leave me without a crust. My parents waved a hand at me and told me to go agree with the director myself. I came to the headmaster. She shouted for me to take off my hat when I walk in. 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 things. Finally she took the word:

    - “So we will do so. I will agree with the principal of our evening school and you will go there. ”
    -“ Yeah ”

    And evening school - it was a real paradise, for freestylers like me. If you want to go, you want not to go. There were 45 people in the class, 6-7 of them appeared in the classroom. Not sure if everyone on the list was alive, and also were free. Because only with me, classmates stole someone else's motorcycle. But the fact remained. I could pump programming skills unlimitedly, and go to school when I really need to. In the end, I finished it by passing the final exams. Many did not require them, and we even had a graduation. Graduation, in itself, is a separate fable. I remember that local classmate bandits took my watch from me. And having barely heard my last name, when presenting certificates - I trotted after a document and flew out of school with a bullet so as not to stumble upon any other troubles.

    Ahead was summer. With Donald Knut under your arm on the beach, the sea, the sun and the fateful decision to write your own big project (compiler).

    Part 3. University >>

    Also popular now: