programmer career. Chapter 3. University

Continuation of the story "Programming Career".

After graduating from evening school, it was time to enter the university. There was one technical university in our city. In it, there was one faculty of "Mathematics and Informatics", which had one department of "Computer Systems", where future IT specialists were trained - programmers and administrators.
The choice was small and I applied for the specialty "Computer programming". There were 2 entrance exams ahead. in language and mathematics.
The exams were preceded by an interview, and the choice of the form of study was a budget or a contract, i.е. free or for money.

My interview was attended by parents who were worried about admission. Of course, they chose the contract form of training. By the way, it cost about $ 500 / year, which in 2003 was a lot of money, especially for our small town. I well remember the dialogue between my father and the girl from the admissions office:
Girl: You can try to pass the exams for the budget, and if it doesn't work out, then go to the contract. You can pay in instalments.
Father: No, we have already decided that we will enter the contract
Girl: Well, why don't you risk anything
FatherA: No, it's still a risk. Tell me, does everyone enter the contract?
Girl: Yes, everyone does. Probably only complete morons can't
Father: Then we have a chance ... grinning, he said, and we signed the documents for admission

Of course, performances from high school were still fresh in my parents' memory, so over the years I understand why it was said so.

In the summer, before enrolling, I continued to buy books for all $ 40 that my grandmother gave me from retirement.
From the memorable and significant:
1. UML 2.0. Object-oriented analysis and design". The book that taught me how to design software of any complexity, think through the architecture, decompose everything into components, prescribe use-cases, draw UML diagrams. This is the knowledge that seniors, leads, architects need. Those who materialize the system from the void, when there is only a description of the idea.
I know people who are already over 30, and they still cannot make a decision if there is no indication from above, from a developer with a higher rank. In freelancing and remote work, when you often work one-on-one with a client, this knowledge is also invaluable.
They are also relevant for indie developers who create new applications and services. Although few people bother with detailed design. Therefore, we have software of this quality, swallowing all the memory, with a crooked UX.
2. "ANSI C++98 Standard". Not really a book, but it's over 800 pages of background information. Of course, I did not read it section by section, but referred to the specific rules of the language when developing my C++ compiler. The depth of knowledge of the language, after studying and implementing the standard, is not described by any beautiful epithet. We can say that you know everything about the language, and even more. Very long, painstaking work on studying the standard. But I had 5 years of university ahead of me, so no one drove me in the neck
3. "Delphi 6. Practical guide.". It was a swift jump into the world of GUI and form-slapping. There was almost no entry threshold, and I already knew Pascal quite well. While studying at the university, I wrote the lion's share of commercial programs in Delphi. It was software for graduate students of the university, small business accounting, state. institutions. Then there were several freelance orders. In the mid-XNUMXs, Delphi dominated the Windows development market. Until now, at the checkout in local stores, you can see programs with familiar fonts and controls, which immediately distinguishes a Delphi application from any other.
4. "MFC Tutorial". Having mastered Delphi, it was logical to continue creating UI in C++. It was many times more difficult, not everything worked out and was understandable. However, I brought this technology to the stage of application in commercial projects. A German anti-virus company still distributes my MFC program.
5. "3 discs with MSDN Library 2001". I did not have the Internet right away, and as far as I remember, the MSDN Library was not online in 2003. In any case, it was easier for me to install the MSDN reference on my local PC, and it was easy to find documentation on any WinApi function or MFC class.
programmer career. Chapter 3. University
The most significant books read in the period 2002-2004

These are books that were read in the period 2002-2004. Of course, now this is a decrepit legacy, which is rewritten in batches on .NET and Web technologies. But this is my way, maybe some of you had a similar one.

First semester

At the end of summer, it's time to take the entrance exams to the university. Everything went smoothly. I passed the exam in language and mathematics and was enrolled in the first year of the specialty "Programming of Computing Systems".
On the first of September, as expected, I went to the first couples in my life. “Student time is the brightest time in life,” my mother told me. He willingly believed it.
On the first day, 3 couples passed in general education subjects, everyone got to know each other in a group, and in general, the university left a good impression.
Finally, they began to teach us true-programming in the C language! And, in addition, they taught the history of computer science, digital technology and many other relevant information for me. Even mat. the analysis was helpful, as it allowed me to understand more deeply what the highly respected Donald Knuth wrote.

Programming couples were held in a driving atmosphere for me. Finally, people came to me for help. I felt needed. At the beginning of the class, we were given the task of writing a program. The task was designed for one and a half pairs, then half an hour for verification. I was able to write a task in 3-5 minutes, and the rest of the time I walked around the office and helped others deal with the task.
There were not enough computers for the whole group, so most of the time we sat two at a time at one PC. Seeing my abilities, three, four sat down near my desk, sometimes 5-6 people did not hesitate to sit down to learn what I learned a couple of years ago from the book of Kernighan and Ritchie.
Classmates saw my abilities and came up with questions themselves, or offered to just take a walk after classes. So I made many friends, with most of whom we are friends to this day.

In winter, it was time for the first session. In total, it was necessary to take 4 subjects: 2 varieties of higher mathematics, history and programming. Everything gave up, where by 4 points, where by 3. And the programming was set to me automatically. The teachers already knew my skills, so they didn’t see the point in checking me. I happily came to the session with a record book to immediately get a painting in it and was about to return home, when my classmates asked me to stay and stand outside the door. Well. Having settled down at the windowsill, at the exit from the office, I began to wait. Another guy was spinning next to me, who also passed the exam with an automatic machine.
“Why are you staying here?” I asked.
“I want to make money by solving problems. And why are you?
- "Me too. I'm just not going to make money. If you need help, then out of the kindness of my soul, I’ll decide just like that. ”
My opponent hesitated and muttered something in response.

After a while, classmates began to leave the audience, taking with them folded sheets of paper, on which there were tasks from the exam.
“Help me decide,” the first daredevil asked. “Okay, I’ll decide now,” I answered. Not even 5 minutes passed before I scribbled the solution on a crumpled piece of paper with a ballpoint pen and gave it back. Seeing that the scheme was working, people began to leave the audience much more often, and sometimes even two or three at a time.
There were three stacks of leaves on my work window sill. In one pack, newly arrived TODO-lists. In front of me was a sheet of In Progress, and next to it was a pack of Done.
It was my high point. The whole group, and this is almost 20 people, turned to me for help. And I helped everyone.
And the guy who wanted to make money, hastily left after a few minutes, realizing that there was nothing to catch here, all attention was focused on the altruist.
The whole group passed the exam with 4 and 5, and now I have 20 friends and an unshakable authority in programming matters.

First money

After the winter session, there were rumors throughout the faculty that there was a guy who could solve any programming problem that we were given at home or during the session. And not only among the first-year students, but also in the senior years there was a rumor.
As I already wrote, in the group I developed friendly relations with everyone after the “finest hour” at the exam, and we began to communicate very closely with a couple of guys. We became true friends and spent a lot of time outside of uni. For simplicity of presentation, let's call them Elon and Alen (nicknames are close to the real ones).
We called Ilona by name, while Alain was nicknamed in honor of Alain Delon, for his ability to seduce any beauty. The girls literally swirled around him, in varying numbers. In terms of dating and twisting relationships for the night, Alain Delon had no equal. He was a real alpha male for a female, which is completely uncharacteristic of most IT people. In addition to amorous affairs, Alain was a designer by vocation. And if it was necessary to draw something, for example, flashing banners of the Web 1.0 format that were popular at that time, then he did it with ease.

Much more can be said about Ilona. We cross paths with him until now, already ten years after the university. In his first years, he was a skinny, rather silent guy. (What can not be said about today's big-faced guy in a jeep). However, I was the same - thin and taciturn. Therefore, I think we quickly found a common language.
Often after classes, I, Elon and Alain, gathered in a beer house, covered with a tarp. Firstly, it was across the street from the university, and secondly, for a "ruble" and 50 kopecks, it was possible to get nishtyakov for 2 hours of an incendiary party. Like draft beer and crackers. But the point was different.
Elon and Alen were from other cities and lived in a rented room. They constantly lacked money, and there were cases when they had to starve. The happy moments when they received a $10 scholarship were celebrated on the same day, and then it was time to “tighten their belts” and live on what God would send.

Of course, this alignment motivated visiting students to look for ways to earn extra money. And in front of them, at arm's length, sat a "bright head" in the form of me. Which is also malleable and rarely refuses to help people.
I don't know if I described that situation correctly, but ultimately these beer gatherings led to the creation of the first IT company in my career called SCS. The name was simply made up of the first letters of our last names. Our young company, represented by three founders, tore competitors and the entire university apart over the next four years.

Elon was a ROP. That is, the head of the sales department. Namely, his job was to find new clients for our outsourcing business. The sales channel was horizontally printed A4 leaflets, with a simple inscription: "Solution of programming problems." And below is Elon's phone.
This kind of outdoor advertising was placed on every floor where students who study programming could appear.
Additional, stronger in terms of customer loyalty, was the word of mouth sales channel.

The business model was simple. Either by recommendation or by announcement, we were approached by a university student. He gave a description of a programming problem that had to be solved by a certain deadline, and I solved it for a student price. Elon was engaged in sales and received his percentage. Alain Delon was less likely to participate in our business, but if it was necessary to make a design, a picture or attract additional clients, then he was always helpful. With his charm, he brought us quite a lot of new people. All I had to do was process this pipeline at a speed of 5-10 tasks per day. Deadlines were tough - no more than a week. And more often, it was necessary to do it yesterday. Therefore, such circumstances quickly taught me to write programs in a “flow”, without being distracted by every little thing like an earthquake with a magnitude of 5,9 or a major accident outside the window.

In the hottest season, before the session, that is, in December and May, it seemed that I had the tasks of the entire university on my computer. Fortunately, most of them were of the same type, especially when we were contacted by a wholesaler in the person of a representative of the whole group. Then it was possible to do 20 tasks, for example, in assembler, changing only 2-3 lines. In such a season, leads flowed like a river. The only thing we were missing was floppy disks. In 2003-2005, the poor students of our city had no such thing as throwing money off the Internet. Moreover, there were no guarantees of payment, which is now called the term escrow. Therefore, the SCS company, as a executor of orders, made an appointment on the territory of the university and we gave floppy disk with a solution. There was almost no refand (from the English refund - a refund at the request of the client). Everyone was happy and got their 4-5 points if they could learn what I added to the readme.txt file on the floppy disk. Although, a simple demo of a fully working program also often caused a wow effect among teachers.

The price was ridiculous of course, but we took the quantity. For example, a typical homework task cost $2-3. Coursework $10. The jackpot in the form of a program for PhD work fell out once, and it was as much as $ 20 for an application for a graduate student preparing for the defense. In the hot season, this income can be multiplied by 100 clients, which in the end was more than the average salary in the city. We felt cool. They could afford nightclubs and have fun there to the fullest, and not choke on pasties on the last penny.

In terms of my skills, they multiplied with each new student task. We began to receive applications from other faculties, with a different curriculum. Some undergrads were already using Java and XML to the fullest when we leaned into C++/MFC. Someone needed Assembler, someone needed PHP. I learned a whole zoo of technologies, libraries, data storage formats and algorithms for myself when solving problems.
This universalism has stayed with me to this day. In the work on projects, a variety of technologies and platforms are also used. Now I can write software or application for any platform, OS or device. The quality will vary, of course, but for the business that I mainly deal with, the budget is usually important. And a human orchestra for them is a reduction in the budget exactly as many times as many developers I can replace with my skills.

If we talk about the biggest benefit that my studies at the university brought me, then it will not be lectures on algorithms or philosophy. And not “learn to learn”, as it is fashionable to talk about universities. First, these will be people with whom friendly relations remained after training. And the second is the same SKS firm that forged a professional developer out of me, with real and diverse orders.
I want to remember a phrase that fits this part of the story very well: A person becomes a programmer when other people start using his programs and pay money for it..

Thus, the brand of the SKS company was widely known not only in student circles, but also among teachers. There was even a case when one of the teachers came to my house so that I could help him write a program for his scientific needs. He, in turn, helped me in his specialization. We were both so engrossed in our work that we both fell asleep at dawn. He is on the couch and I am in a chair in front of the computer. But they completed their tasks, and both were pleased with each other's work.

Turn of fate

The 4th year of university began. The last course, at the end of which a bachelor's degree is awarded. There were practically no general educational disciplines, and there was only something related to computers and networks. Now, sometimes I regret that I did not have time or did not show interest in the same electronics or the internal structure of networks. Now I am finishing this out of necessity, but I am sure that this basic knowledge is necessary for any developer. On the other hand, you can't know everything.
I was finishing writing my C++ compiler, which already knew how to check the code for errors according to the standard and generate assembler instructions. I dreamed that I was about to be able to sell my compiler for $100 per license. Multiplied it by a thousand buyers and mentally
carried over to a Hammer, with 50 Cent basses from the speakers and babes in the back seat. What can you do, at the age of 19 - such priorities. The feature of my self-made compiler was that it gave errors in Russian, instead of English from Visual C ++ and gcc that was not understandable to everyone. I saw this as a killer feature that no one in the world has yet invented. I think it makes no sense to tell further. It didn't come to sales. However, it came to a deep knowledge of the C ++ language, which feeds me so far.

In my fourth year, I went to university less and less because I knew most of the program. And the one that he did not know, he decided by barter with a student who understood, for example, in electronics or probability theory. What we just did not invent then. And inconspicuous headphones on a wire into which the answer was dictated. And running out of the classroom so that the guru in his specialty draws you the solution of the entire exam in 2 minutes. It was great time.
On the same course, I began to think about a real job. With an office, real commercial applications and a decent salary.
But at that time, in our city, you could only find a job as a programmer
"1C: Accounting", which did not suit me at all. Although out of hopelessness, I was already ready for this. At that time, my girlfriend was pressuring me to move to live in a separate apartment.
And then sleeping when the parents through the wall is not comme il faut at all. And I, too, got tired of solving student problems, and I wanted something more.

The trouble came from where they did not expect. I thought of placing an ad on mail.ru that I was looking for a job with a salary of $300 for the position of a C++/Java/Delphi programmer. This is in 2006. To which I was mostly answered something along the lines of: “Maybe you should write to Bill Gates with such salary requests?”. It upset me, but among a bunch of similar answers, there was a person who led me to freelance. It was the only opportunity in our impoverished Las Vegas to make good money doing what I could do.
So studying at the university smoothly flowed into work on the freelance exchange. Closing the theme of the university, we can say the following: I did not go to the 5th year. There was one programming and such a thing as "free attendance", which I used 146%.
The only thing that had to be done was to defend a diploma of a specialist. What I successfully did, with the help of my friends. It is worth saying that for this course I had already moved from my parents to a rented apartment and bought a new car. Thus began my career as a professional developer.

The next chapters will be devoted to individual projects, the most severe fails and the most inadequate clients. Freelancing career from $5 to $40/hour, launching my startup, how I got banned from the Upwork freelance exchange, and how I went from freelancing to team leads in the second largest oil company in the world. How he returned back to remote work, after the office and the startup, and how he solved internal problems with socialization and bad habits.

To be continued ...

Source: habr.com

Add a comment