Kariera programisty. Rozdział 3. Uniwersytet

Kontynuacja historii „Kariera programisty”.

Po ukończeniu szkoły wieczorowej przyszedł czas na studia. W naszym mieście istniała jedna uczelnia techniczna. Posiadała także jeden wydział „Matematyki i Informatyki”, na którym działał wydział „Systemów Komputerowych”, na którym kształcili przyszłych pracowników informatyki – programistów i administratorów.
Wybór był niewielki i aplikowałem na specjalność „Programowanie inżynierii komputerowej”. Przed nami 2 egzaminy wstępne. W języku i matematyce.
Egzaminy poprzedzone były rozmową kwalifikacyjną i wyborem formy szkolenia – budżetowej lub kontraktowej, tj. bezpłatnie lub za pieniądze.

Moi rodzice byli obecni na mojej rozmowie kwalifikacyjnej i martwili się o przyjęcie. Wybrali oczywiście kontraktową formę szkolenia. Swoją drogą, kosztowało to około 500 dolarów rocznie, co w 2003 roku było dużą sumą, zwłaszcza dla naszego małego miasteczka. Dobrze pamiętam rozmowę ojca z dziewczyną z biura przyjęć:
Dziewczyna: Możesz spróbować zdać egzaminy przy ograniczonym budżecie, a jeśli to nie zadziała, przejść na umowę. Możesz płacić w ratach.
Ojciec: Nie, już zdecydowaliśmy, że będziemy ubiegać się o kontrakt
Dziewczyna: No cóż, nic nie ryzykujesz
Ojciec: Nie, to nadal ryzyko. Powiedz mi, czy wszyscy ubiegają się o kontrakt?
Dziewczyna: Tak, każdy tak ma. Prawdopodobnie tylko kompletni kretyni nie mogą tego zrobić
Ojciec: W takim razie mamy szansę... powiedział z uśmiechem i podpisaliśmy dokumenty o przyjęcie

Oczywiście występy z liceum wciąż były świeże w pamięci moich rodziców, więc z biegiem lat rozumiem, dlaczego tak mówili.

Latem, przed przyjęciem, nadal kupowałam książki za całe 40 dolarów, które babcia dawała mi z emerytury.
Z niezapomnianych i znaczących:
1. „UML 2.0. Analiza i projektowanie obiektowe”. Książka, która nauczyła mnie projektować oprogramowanie o dowolnej złożoności, przemyśleć architekturę, rozbić wszystko na komponenty, napisać przypadki użycia i narysować diagramy UML. To wiedza, której potrzebują seniorzy, liderzy i architekci. Ci, którzy materializują system z pustki, gdy istnieje tylko opis idei.
Znam osoby, które mają już ponad 30 lat i nadal nie mogą podjąć decyzji, chyba że ma rozkaz z góry, od dewelopera wyższego szczebla. W freelancingu i pracy zdalnej, gdy często pracujesz sam na sam z klientem, ta wiedza również jest bezcenna.
Są one również istotne dla niezależnych programistów, którzy tworzą nowe aplikacje i usługi. Chociaż niewiele osób zawraca sobie głowę szczegółowym projektem. Dlatego mamy oprogramowanie takiej jakości, pochłaniające całą pamięć, z krzywym UX.
2. „Standard ANSI C++ 98”. Nie jest to całkiem książka, ale zawiera ponad 800 stron podstawowych informacji. Oczywiście nie czytałem go sekcja po sekcji, ale raczej odniosłem się do konkretnych zasad języka podczas tworzenia mojego kompilatora C++. Głębokości znajomości języka, po przestudiowaniu i wdrożeniu standardu, nie da się opisać żadnym cudownym epitetem. Można powiedzieć, że o języku wiesz wszystko, a nawet więcej. Bardzo długa i żmudna praca nad badaniem standardu. Ale przede mną było 5 lat studiów, więc nikt mnie nie namawiał
3. „Delphi 6. Praktyczny przewodnik.”. To był szybki skok w świat GUI i pochlebnych form. Próg wejścia prawie nie istniał, a Pascala znałem już całkiem nieźle. Podczas studiów na uniwersytecie lwią część programów komercyjnych napisałem w Delphi. Było to oprogramowanie dla absolwentów uniwersytetów, zajmujących się księgowością małych firm i instytucji rządowych. instytucje. Potem było kilka zleceń niezależnych. W połowie XNUMX roku firma Delphi zdominowała rynek programistów Windows. Do tej pory przy kasie w lokalnych sklepach można zobaczyć programy ze znanymi czcionkami i sterowaniem, co od razu odróżnia aplikację Delphi od innych
4. „Samouczek MFC”. Po opanowaniu Delphi logiczne było dalsze tworzenie interfejsu użytkownika w C++. Było dużo trudniej, nie wszystko się układało i było zrozumiałe. Jednak tę technologię doprowadziłem także do etapu zastosowania w projektach komercyjnych. Jedna z niemieckich firm antywirusowych dystrybuuje mój program, napisany w MFC do dziś.
5. „3 dyski z biblioteką MSDN 2001”. Nie od razu miałem internet i o ile pamiętam, biblioteka MSDN nie była dostępna online w 2003 roku. W każdym razie łatwiej było mi zainstalować podręcznik MSDN na moim lokalnym komputerze i łatwo znaleźć dokumentację dowolnej funkcji WinApi lub klasy MFC.
Kariera programisty. Rozdział 3. Uniwersytet
Najważniejsze książki przeczytane w latach 2002-2004

Są to książki przeczytane w latach 2002-2004. Oczywiście teraz jest to odrapane dziedzictwo, które jest przepisywane partiami przy użyciu technologii .NET i sieci Web. Ale to jest moja droga, może ktoś z Was miał podobną.

Pierwszy semestr

Koniec lata to czas przystąpienia do egzaminów wstępnych na uniwersytet. Wszystko poszło gładko. Zdałem egzamin z języka i matematyki i zostałem zapisany na pierwszy rok specjalności Programowanie Systemów Komputerowych.
Pierwszego września, zgodnie z przewidywaniami, poszłam na pierwsze w życiu zajęcia. „Czas studencki to najpiękniejszy okres w życiu” – powiedziała mi mama. Chętnie w to wierzyłem.
Pierwszego dnia zaliczono 3 pary przedmiotów kształcenia ogólnego, wszyscy w grupie zapoznali się i ogólnie uczelnia pozostawiła miłe wrażenie.
Wreszcie zaczęli nas uczyć prawdziwego programowania w C! Ponadto uczyli historii informatyki, technologii cyfrowej i wielu innych informacji, które były dla mnie istotne. Nawet przeklinając. analiza była przydatna, ponieważ pozwoliła mi głębiej zrozumieć, co napisał głęboko szanowany Donald Knuth.

Zajęcia z programowania odbywały się u mnie w atmosferze jazdy. W końcu ludzie zwrócili się do mnie o pomoc. Poczułem się potrzebny. Na początku zajęć dostaliśmy zadanie napisania programu. Zadanie zostało zaprojektowane na półtorej pary, następnie pół godziny na testowanie. Zadanie udało mi się napisać w 3-5 minut, a przez resztę czasu chodziłem po biurze i pomagałem innym zrozumieć problem.
Komputerów nie starczało dla całej grupy, dlatego najczęściej siadaliśmy po dwa na raz przy jednym komputerze. Widząc moje możliwości, trzy, cztery, czasem nawet 5-6 osób usiadło przy moim biurku i bez wahania usiadło, aby dowiedzieć się tego, czego nauczyłem się kilka lat temu z książki Kernighana i Ritchiego.
Moi koledzy z klasy dostrzegli moje umiejętności i sami zadawali pytania lub proponowali, że po prostu spędzimy czas po zajęciach. W ten sposób poznałem wielu przyjaciół, z którymi większość przyjaźnimy się do dziś.

Zimą przyszedł czas na pierwszą sesję. W sumie trzeba było podjąć 4 przedmioty: 2 rodzaje matematyki wyższej, historię i programowanie. Wszystko zdało egzamin, jakieś 4 punkty, trochę 3. I automatycznie przydzielono mi programowanie. Nauczyciele znali już moje umiejętności, więc nie widzieli sensu mnie sprawdzać. Z radością pojawiłam się na sesji ze swoją metryką, aby od razu zdobyć na niej podpis i już miałam wracać do domu, gdy koledzy z klasy poprosili mnie, żebym została i stanęła za drzwiami. Dobrze. Usiadłszy na parapecie okna, przy wyjściu z urzędu, zacząłem czekać. Obok mnie kręcił się jeszcze jeden facet, który również zdał egzamin automatycznie.
„Dlaczego tu zostajesz?” – zapytałem
— „Chcę zarabiać pieniądze, rozwiązując problemy. Dlaczego tu jesteś?
- "Ja też. Po prostu nie zamierzam zarabiać. Jeśli potrzebujesz pomocy, to z dobroci serca po prostu podejmę decyzję.
Mój przeciwnik zawahał się i mruknął coś w odpowiedzi.

Po chwili koledzy z klasy zaczęli opuszczać widownię, zabierając ze sobą złożone kartki papieru zawierające zadania z egzaminu.
„Pomóż mi podjąć decyzję” – poprosił pierwszy śmiałek. „OK, teraz podejmę decyzję” – odpowiedziałem. Nie minęło nawet 5 minut, jak długopisem nabazgrałem rozwiązanie na zmiętej kartce papieru i oddałem. Widząc, że schemat działa, ludzie zaczęli opuszczać publiczność znacznie częściej, a czasem nawet po dwóch, trzech na raz.
Na moim parapecie w pracy leżały trzy stosy liści. Jedno opakowanie zawiera nowo przybyłe arkusze TODO. Przede mną leżała kartka „W toku”, a obok niej paczka „Gotowe”.
To była moja najlepsza godzina. Cała grupa, licząca prawie 20 osób, zwróciła się do mnie o pomoc. I pomogłem wszystkim.
A facet, który chciał dorobić, pospiesznie wyszedł po kilku minutach, zdając sobie sprawę, że nie ma tu czego łapać, cała uwaga skupiona była na altruiście.
Cała grupa zdała egzamin z ocenami 4 i 5, a ja mam teraz 20 znajomych i niezachwiany autorytet w sprawach programowania.

Pierwsze pieniądze

Po sesji zimowej po całym wydziale rozeszła się wieść, że jest facet, który potrafi rozwiązać każdy problem programistyczny, który zlecono nam w domu lub w trakcie sesji. I poczta pantoflowa rozeszła się nie tylko wśród studentów pierwszego roku, ale także wśród starszych studentów.
Jak już pisałem, po „najlepszej godzinie” egzaminu nawiązałem przyjazne stosunki ze wszystkimi w grupie i zaczęliśmy bardzo blisko komunikować się z kilkoma chłopakami. Staliśmy się prawdziwymi przyjaciółmi i spędzaliśmy dużo czasu poza uniwersytetem. Dla uproszczenia nazwijmy ich Elon i Alen (pseudonimy są zbliżone do prawdziwych).
Nazywaliśmy Elona po imieniu, ale Alainowi nadano przydomek na cześć Alaina Delona ze względu na jego zdolność uwodzenia każdego piękna. Dziewczyny dosłownie krążyły wokół niego, w różnej liczbie. Jeśli chodzi o poznawanie ludzi i nawiązywanie relacji na noc, Alain Delon nie miał sobie równych. Był prawdziwym samcem alfa dla płci żeńskiej, co jest zupełnie nietypowe dla większości informatyków. Oprócz spraw miłosnych Alain był z powołania projektantem. A jeśli musiał coś narysować, na przykład popularne wówczas migające banery w formacie Web 1.0, to zrobił to z łatwością.

O Elonie można powiedzieć dużo więcej. Spotykamy się z nim do dziś, dziesięć lat po ukończeniu studiów. W pierwszych latach był chudym, raczej cichym facetem. (Nie można tego samego powiedzieć o dzisiejszym facecie o dużej twarzy w jeepie). Jednak ja byłam taka sama – chuda i małomówna. Dlatego myślę, że szybko znaleźliśmy wspólny język.
Często po zajęciach ja, Elon i Alen zbieraliśmy się w piwiarni przykrytej plandeką. Po pierwsze, było to po drugiej stronie ulicy od uniwersytetu, a po drugie, za „rubla” i 50 kopiejek można było dostać smakołyki za 2 godziny imprezy zapalającej. Jak piwo z beczki i krakersy. Ale istota była inna.
Elon i Alen pochodzili z innych miast i mieszkali w wynajętym pokoju. Ciągle brakowało im pieniędzy i zdarzało się, że musieli głodować. Szczęśliwe chwile, kiedy na kartę otrzymali stypendium w wysokości 10 dolarów, celebrowano jeszcze tego samego dnia i wtedy przyszedł czas na „zaciśnięcie pasa” i życie tym, co zsyła im Bóg.

Oczywiście taka sytuacja motywowała przyjezdnych studentów do szukania sposobów na dorobienie. A przed nimi, na odległość wyciągniętego ramienia, siedziała „jasna głowa” w mojej postaci. Który jest również giętki i rzadko odmawia pomocy ludziom.
Nie wiem, czy dobrze opisałem tę sytuację, ale ostatecznie te spotkania w pubie doprowadziły do ​​powstania pierwszej w mojej karierze firmy informatycznej o nazwie SKS. Nazwa powstała po prostu z pierwszych liter naszych nazwisk. Nasza młoda firma, reprezentowana przez trzech założycieli, przez kolejne cztery lata rozdzierała konkurencję i całą uczelnię.

Elon był ROP. To znaczy szef działu sprzedaży. Do jego obowiązków należało poszukiwanie nowych klientów dla naszej działalności outsourcingowej. Kanałem sprzedaży były ulotki drukowane w formacie A4, z prostym napisem: „Rozwiązywanie problemów programistycznych”. Poniżej znajduje się numer telefonu Elona.
Tego rodzaju reklamę zewnętrzną umieszczono na każdym piętrze, na którym mogli pojawić się studenci studiujący programowanie.
Dodatkowym, silniejszym pod względem lojalności klientów, był kanał sprzedaży szeptanej.

Model biznesowy był prosty. Za pośrednictwem rekomendacji lub ogłoszenia skontaktował się z nami student uniwersytetu. Podał opis problemu programistycznego, który należało rozwiązać w określonym terminie, a ja rozwiązałem go za studencką cenę. Elon zajmował się sprzedażą i otrzymywał swój procent. Alain Delon rzadziej uczestniczył w naszej działalności, ale jeśli potrzebowaliśmy wykonać projekt, zdjęcie, czy przyciągnąć dodatkowych klientów, zawsze był pomocny. Swoim urokiem przyciągnął do nas całkiem sporo nowych ludzi. Jedyne, co musiałem zrobić, to przetwarzać ten potok z szybkością 5–10 zadań dziennie. Terminy były rygorystyczne – nie dłuższe niż tydzień. A najczęściej trzeba było to zrobić wczoraj. Dlatego takie okoliczności szybko nauczyły mnie pisać programy „na okrągło”, bez rozpraszania się przez każdy szczegół, jak trzęsienie ziemi o magnitudzie 5,9 czy poważny wypadek za oknem.

W najgorętszym sezonie, przed sesją, czyli w grudniu i maju, wydawało mi się, że mam na komputerze zadania całej uczelni. Na szczęście większość z nich była tego samego typu, zwłaszcza gdy kontaktował się z nami hurtownik reprezentowany przez przedstawiciela całej grupy. Można było wtedy wykonać 20 zadań, np. w asemblerze, zmieniając tylko 2-3 linie. W takim sezonie leady płynęły jak rzeka. Jedyne czego nam brakowało to dyskietki. W latach 2003-2005 biedni studenci w naszym mieście nie mieli możliwości przesyłania pieniędzy przez Internet. Co więcej, nie było żadnych gwarancji płatności, co obecnie nazywa się depozytem. W związku z powyższym firma SKS jako wykonawca zamówienia umówiła się na termin na terenie uczelni i daliśmy dyskietka z rozwiązaniem. Zwrotu prawie nie było (z zwrotu angielskiego - zwrot płatności na prośbę klienta). Wszyscy byli zadowoleni i otrzymali swoje 4-5 punktów, jeśli dowiedzieli się, co dodałem do pliku readme.txt na dyskietce. Chociaż proste demo w pełni działającego programu również często wywoływało efekt wow wśród nauczycieli.

Cena była oczywiście absurdalna, ale wzięliśmy ją pod uwagę. Na przykład typowe zadanie domowe kosztuje 2-3 dolary. Zajęcia 10$. Raz padł jackpot w postaci programu na pracę kandydata, a za wniosek dla absolwenta przygotowującego się do obrony wyniósł on aż 20 dolarów. W gorącym sezonie dochód ten można pomnożyć przez 100 klientów, co ostatecznie stanowiło więcej niż średnia pensja w mieście. Poczuliśmy się fajnie. Mogli sobie pozwolić na nocne kluby i dobrze się tam bawić, zamiast dławić się czeburkiem za ostatni grosz.

Z punktu widzenia moich umiejętności mnożyły się one z każdym nowym zadaniem ucznia. Zaczęliśmy otrzymywać zgłoszenia z innych wydziałów, z innym programem kształcenia. Niektórzy starsi studenci już w pełni wykorzystywali Javę i XML, kiedy my skłanialiśmy się ku C++/MFC. Niektórzy potrzebowali Asemblera, inni PHP. Nauczyłem się dla siebie całego zoo technologii, bibliotek, formatów przechowywania danych i algorytmów przy rozwiązywaniu problemów.
Ten uniwersalizm pozostał mi do dziś. Podczas pracy nad projektami wykorzystuje się także różnorodne technologie i platformy. Teraz mogę napisać oprogramowanie lub aplikację na dowolną platformę, system operacyjny lub urządzenie. Jakość będzie oczywiście różna, ale w biznesie, którym się głównie zajmuję, zazwyczaj ważny jest budżet. A jednoosobowa orkiestra oznacza dla nich obcięcie budżetu dokładnie o tyle, ilu programistów mogę zastąpić swoimi umiejętnościami.

Jeśli mówimy o największej korzyści, jaką przyniosła mi nauka na uniwersytecie, to nie będą to wykłady z algorytmów czy filozofii. I nie „nauczy się uczyć”, jak to się modnie mówi o uniwersytetach. W pierwszej kolejności będą to osoby, z którymi po szkoleniu pozostaliśmy w przyjacielskich stosunkach. A po drugie, to ta sama firma SKS, która ukształtowała mnie na profesjonalnego programistę, z realnymi i różnorodnymi zleceniami.
Chciałbym zapamiętać zdanie, które bardzo pasuje do tej części historii: Programistą zostaje się człowiek wtedy, gdy inni ludzie zaczynają korzystać z jego programów i płacą za to pieniądze..

Tym samym marka firmy SKS była szeroko znana nie tylko w kręgach studenckich, ale także wśród nauczycieli. Zdarzyło się nawet, że jeden z nauczycieli przyszedł do mnie do domu, abym pomógł mu napisać program na jego potrzeby naukowe. On z kolei pomógł mi w swojej specjalizacji. Oboje byliśmy tak pochłonięci pracą, że o świcie oboje zasnęliśmy. On siedzi na kanapie, a ja na krześle przed komputerem. Ale wykonali swoje zadania i oboje byli zadowoleni ze swojej pracy.

Przełom losu

Rozpoczął się czwarty rok studiów. Ostatni kierunek, po ukończeniu którego uzyskuje się tytuł licencjata. Praktycznie nie było przedmiotów ogólnokształcących, a jedynie te związane z komputerami i sieciami. Teraz czasami żałuję, że nie miałem czasu lub nie wykazywałem zainteresowania samą elektroniką czy wewnętrzną strukturą sieci. Teraz kończę to z konieczności, ale jestem pewien, że ta podstawowa wiedza jest niezbędna każdemu programiście. Z drugiej strony nie można wiedzieć wszystkiego.
Kończyłem pisanie własnego kompilatora C++, który był już w stanie sprawdzić kod pod kątem błędów zgodnie ze standardem i wygenerować instrukcje asemblera. Śniło mi się, że będę mógł sprzedać mój kompilator za 100 dolarów za licencję. Pomnożyłem to przez tysiąc klientów i mentalnie
przetransportowany do Hammera, z basem 50 Centa wydobywającym się z głośników i laskami na tylnym siedzeniu. Co można zrobić w wieku 19 lat – takie są priorytety. Sztuczka mojego domowego kompilatora polegała na tym, że generował błędy w języku rosyjskim zamiast po angielsku z Visual C++ i gcc, co nie jest zrozumiałe dla wszystkich. Postrzegałem to jako zabójczą funkcję, której nikt na świecie jeszcze nie wymyślił. Myślę, że nie ma sensu dalej opowiadać. Nie trafiło do sprzedaży. Zdobyłem jednak głęboką wiedzę na temat języka C++, która karmi mnie do dziś.

Na czwartym roku coraz rzadziej chodziłem na uniwersytet, ponieważ znałem większość programu. A to, czego nie wiedziałem, rozwiązałem barterując ze studentem, który rozumiał na przykład elektronikę lub teorię prawdopodobieństwa. Na co wtedy nie wpadliśmy. I niewidzialne słuchawki na drucie, w których dyktowana była odpowiedź. I wybiegnie z sali, żeby guru w swojej specjalności mógł Ci w 2 minuty napisać rozwiązanie całego egzaminu. To był świetny czas.
Na tym samym kursie zacząłem myśleć o prawdziwej pracy. Z biurem, prawdziwymi aplikacjami komercyjnymi i przyzwoitą pensją.
Ale w tamtym czasie w naszym mieście można było znaleźć pracę tylko jako programista
„1C: Księgowość”, co wcale mi nie odpowiadało. Chociaż z beznadziei, byłem już na to gotowy. W tym czasie moja dziewczyna wywierała na mnie presję, abym przeprowadził się do osobnego mieszkania.
W przeciwnym razie spanie z rodzicami za ścianą w ogóle nie jest akceptowane. Tak, byłem już zmęczony rozwiązywaniem problemów uczniów i chciałem czegoś więcej.

Kłopoty pojawiły się nie wiadomo skąd. Pomyślałem o ogłoszeniu na mail.ru, że szukam pracy z pensją 300 dolarów na stanowisko programisty C++/Java/Delphi. To jest w 2006 roku. Na co w zasadzie odpowiedzieli coś w stylu: „Może powinieneś napisać do Billa Gatesa z takimi prośbami o wynagrodzenie?” Zdenerwowało mnie to, ale wśród wielu podobnych odpowiedzi była osoba, która wciągnęła mnie w pracę jako freelancer. To była jedyna szansa w naszym zubożałym Las Vegas, aby zarobić dobre pieniądze, robiąc to, na czym się znam.
Tak więc studia na uniwersytecie płynnie przekształciły się w pracę na wymianie freelancerów. Zamykając temat uczelni, można powiedzieć tak: nie poszłam na 5 rok. Było jedno programowanie i taka koncepcja jak „bezpłatna frekwencja”, z której skorzystałem w 146%.
Pozostało jedynie obronić dyplom specjalisty. Co udało mi się osiągnąć dzięki pomocy moich przyjaciół. Warto powiedzieć, że dzięki temu kursowi przeprowadziłem się już od rodziców do wynajętego mieszkania i kupiłem nowy samochód. Tak zaczęła się moja kariera profesjonalnego programisty.

Kolejne rozdziały zostaną poświęcone poszczególnym projektom, najpoważniejszym awariom i najbardziej nieodpowiednim klientom. Kariera w freelancingu od 5 do 40 $/godzinę, uruchomienie własnego startupu, jak wyrzucono mnie z giełdy freelancerów Upwork i jak z freelancingu zostałem liderem zespołu w drugiej co do wielkości firmie naftowej na świecie. Jak wróciłem do pracy zdalnej po biurze i startupie oraz jak rozwiązałem wewnętrzne problemy z socjalizacją i złymi nawykami.

To be continued ...

Źródło: www.habr.com

Dodaj komentarz