Програмистка кариера. Глава 3. Университет

Продължение на историята "Програмистска кариера".

След като завърших вечерно училище, беше време да отида в университет. В нашия град имаше един технически университет. Имаше и един факултет по „Математика и компютърни науки“, който имаше една катедра „Компютърни системи“, където се обучаваха бъдещи ИТ работници – програмисти и администратори.
Изборът беше малък и кандидатствах специалност “Компютърно инженерно програмиране”. Предстояха 2 приемни изпита. По език и математика.
Изпитите бяха предшествани от интервю, а изборът на форма на обучение – бюджет или договор, т.е. безплатно или срещу пари.

Родителите ми присъстваха на интервюто ми и се притесняваха за приемането. Разбира се, те избраха договорната форма на обучение. Между другото, струваше около 500$ на година, което беше много пари през 2003 г., особено за нашия малък град. Спомням си добре диалога на баща ми с момичето от приемната:
Момичето: Можете да опитате да издържите изпити с бюджет и ако не работи, преминете към договор. Можете да плащате на вноски.
Баща: Не, вече сме решили, че ще кандидатстваме за договор
Момичето: Ами защо, не рискувате нищо
Баща: Не, все още е риск. Кажете ми всички ли кандидатстват за договор?
Момичето: Да, всеки го прави. Сигурно само пълните малоумници не могат
Баща: Тогава имаме шанс... каза той ухилен и подписахме документите за прием

Разбира се, изпълненията от гимназията бяха все още свежи в спомените на родителите ми, така че с годините разбирам защо казаха това.

През лятото, преди прием, продължих да купувам книги за всичките 40 долара, които баба ми даде от пенсията си.
От запомнящото се и значимо:
1. „UML 2.0. Обектно-ориентиран анализ и дизайн". Книга, която ме научи как да проектирам софтуер с всякаква сложност, да обмислям архитектурата, да разделям всичко на компоненти, да пиша случаи на употреба и да рисувам UML диаграми. Това е знанието, от което се нуждаят възрастните хора, водещите компании и архитектите. Тези, които материализират система от празнотата, когато има само описание на идеята.
Познавам хора, които вече са над 30 и все още не могат да вземат решение, освен ако няма заповед отгоре, от по-висок ранг разработчик. При работа на свободна практика и дистанционна работа, когато често работите индивидуално с клиент, това знание също е безценно.
Те са подходящи и за независими разработчици, които създават нови приложения и услуги. Въпреки че малко хора се занимават с детайлен дизайн. Ето защо имаме софтуер с такова качество, поглъщащ цялата памет, с крив UX.
2. „Стандарт ANSI C++ 98“. Не е книга, но има над 800 страници основна информация. Разбира се, не го прочетох раздел по раздел, а по-скоро се позовах на специфични езикови правила, когато разработвах моя C++ компилатор. Дълбочината на познаване на езика, след изучаване и прилагане на стандарта, не може да бъде описана с прекрасен епитет. Можем да кажем, че знаете всичко за езика и дори повече. Много дълга, усърдна работа за изучаване на стандарта. Но ми предстояха 5 години университет, така че никой не ме натискаше
3. "Delphi 6. Практическо ръководство.". Това беше бърз скок в света на графичния потребителски интерфейс и ласкателните форми. Почти нямаше праг за влизане, а аз вече познавах Паскал доста добре. Докато учех в университета, написах лъвския пай от комерсиалните програми в Delphi. Това беше софтуер за завършили студенти, счетоводство за малки предприятия, правителство. институции. След това имаше няколко поръчки на свободна практика. В средата на XNUMX-те Delphi доминираше на пазара за разработка на Windows. Досега на касата в местните магазини можете да видите програми с познати шрифтове и контроли, което веднага отличава Delphi приложение от всяко друго
4. „Урок за MFC“. След като усвоих Delphi, беше логично да продължа да създавам UI на C++. Беше много по-трудно, не всичко се получи и беше разбираемо. Но аз също доведох тази технология до етап на приложение в търговски проекти. Една немска антивирусна компания разпространява моята програма, написана на MFC и до днес.
5. "3 диска с MSDN библиотека 2001". Нямах интернет веднага и доколкото си спомням, библиотеката на MSDN не беше онлайн през 2003 г. Във всеки случай за мен беше по-лесно да инсталирам справочника на MSDN на моя локален компютър и лесно да намеря документация за всяка WinApi функция или MFC клас.
Програмистка кариера. Глава 3. Университет
Най-значимите книги, прочетени в периода 2002-2004 г

Това са книги, които са четени в периода 2002-2004 година. Разбира се, сега това е изтъркано наследство, което се пренаписва на партиди с помощта на .NET и уеб технологии. Но това е моят път, може би някой от вас е имал подобен.

Първи семестър

В края на лятото е време за приемни изпити в университета. Всичко вървеше гладко. Издържах изпита по език и математика и ме записаха първа година специалност Програмиране на компютърни системи.
На първи септември, както се очакваше, отидох на първите часове в живота си. „Студентското време е най-яркото време в живота“, каза ми майка ми. С готовност го повярвах.
През първия ден преминаха 3 двойки общообразователни предмети, всички се запознаха в групата и като цяло университетът остави приятно впечатление.
Най-накрая започнаха да ни учат на истинско програмиране на C! Освен това те преподаваха история на компютърните науки, цифрови технологии и много друга информация, която беше от значение за мен. Дори псувни. анализът беше полезен, тъй като ми позволи да разбера по-задълбочено написаното от дълбоко уважавания Доналд Кнут.

За мен часовете по програмиране преминаха в вълнуваща атмосфера. Накрая хората дойдоха при мен за помощ. Чувствах се нужна. В началото на часа ни беше дадена задача да напишем програма. Задачата беше предназначена за една двойка и половина, след това половин час за тестване. Успях да напиша задачата за 3-5 минути, а през останалото време се разхождах из офиса и помагах на другите да разберат проблема.
Нямаше достатъчно компютри за цялата група, така че най-често седяхме по двама на един компютър. Виждайки способностите ми, трима, четирима, понякога дори 5-6 души седнаха до бюрото ми и не се поколебаха да седнат, за да научат това, което аз научих преди няколко години от книгата на Керниган и Ричи.
Съучениците ми видяха способностите ми и сами измислиха въпроси или предложиха просто да се мотаем след часовете. Така създадох много приятели, с повечето от които сме приятели и до днес.

През зимата дойде време за първата сесия. Общо беше необходимо да се вземат 4 предмета: 2 вида висша математика, история и програмиране. Всичко мина, някои 4 точки, някои 3. И ми даде автоматично програмиране. Учителите вече познаваха уменията ми, така че не виждаха смисъл да ме изпитват. Щастливо се явих на сесията със записна книга, за да получа незабавен подпис върху нея и се канех да се върна у дома, когато съучениците ми ме помолиха да остана и да стоя пред вратата. Добре. След като се настаних на перваза на прозореца, на изхода от офиса, започнах да чакам. До мен се навърташе още едно момче, което също изкара автоматично изпита.
"Защо оставаш тук", попитах аз
— „Искам да правя пари, като решавам проблеми. Защо си тук?
- "Аз също. Просто няма да правя пари. Ако имате нужда от помощ, тогава от доброта на сърцето си, аз просто ще реша.
Опонентът ми се поколеба и измърмори нещо в отговор.

След известно време съученици започнаха да напускат аудиторията, като взеха със себе си сгънати листчета, които съдържаха задачи от изпита.
„Помогни ми да реша“, помоли първият смелчага. „Добре, сега ще реша“, отговорих аз. Не бяха минали и 5 минути, когато надрасках с химикал решение на смачкано листче и го върнах. Виждайки, че схемата работи, хората започнаха да напускат публиката много по-често, а понякога дори по двама или трима наведнъж.
На работния ми прозорец имаше три купчини листа. Един пакет съдържа новопристигнали листове TODO. Пред мен имаше лист „В процес“, а до него лежеше пакет „Готово“.
Това беше най-добрият ми час. Цялата група, която беше близо 20 души, се обърна към мен за помощ. И на всички помогнах.
И човекът, който искаше да направи пари, набързо си тръгна след няколко минути, осъзнавайки, че тук няма какво да се хване, цялото внимание беше насочено към алтруиста.
Цялата група издържа изпита с 4 и 5 и вече имам 20 приятели и непоклатим авторитет в областта на програмирането.

Първи пари

След зимната сесия из целия факултет се разпространи слух, че има човек, който може да реши всеки проблем по програмиране, който ни поставиха вкъщи или по време на сесията. И от уста на уста се разпространява не само сред първокурсниците, но и сред старшите студенти.
Както вече писах, развих приятелски отношения с всички в групата след „най-добрия час“ на изпита и започнахме да общуваме много тясно с няколко момчета. Станахме истински приятели и прекарвахме много време извън университета. За простота на представянето, нека ги наречем Илон и Ален (прякорите са близки до истинските).
Наричахме Илон по име, но Ален получи прякора в чест на Ален Делон, заради способността му да съблазни всяка красавица. Момичетата буквално кръжаха около него, в различни количества. По отношение на срещите с хора и започването на връзки за вечерта Ален Делон нямаше равен. Той беше истински алфа мъжкар за женския пол, което е напълно необичайно за повечето IT специалисти. В допълнение към любовните афери, Ален беше дизайнер по призвание. И ако трябваше да нарисува нещо, например популярните тогава мигащи банери на формата Web 1.0, тогава го правеше с лекота.

Много повече може да се каже за Илон. Срещаме се с него и до днес, десет години след университета. В първите си години той беше кльощав, доста мълчалив човек. (Същото не може да се каже за днешния тип с едро лице в джип). Аз обаче бях същият – слаб и мълчалив. Затова мисля, че бързо намерихме общ език.
Често след часовете аз, Илон и Ален се събирахме в бирария, покрита с брезент. Първо, беше от другата страна на улицата от университета, и второ, за „рубла“ и 50 копейки можете да получите някои екстри за 2 часа запалително парти. Като наливна бира и бисквити. Но смисълът беше друг.
Илон и Ален бяха от други градове и живееха в стая под наем. Постоянно им липсваха пари и имаше моменти, когато трябваше да гладуват. Щастливите моменти, когато получиха стипендия от $10 на картата си, бяха отбелязани в същия ден и тогава беше време да „затегнат коланите“ и да живеят с това, което Бог изпраща.

Разбира се, тази ситуация мотивира гостуващите студенти да търсят начини да печелят допълнителни пари. А пред тях, на една ръка разстояние, седеше „светла глава“ в моя вид. Което също е податливо и рядко отказва да помогне на хората.
Не знам дали правилно описах тази ситуация, но в крайна сметка тези събирания в кръчмата доведоха до създаването на първата IT компания в моята кариера, наречена SKS. Името беше просто съставено от първите букви на нашите фамилни имена. Нашата млада компания, представена от трима основатели, разкъса конкурентите и целия университет през следващите четири години.

Илон беше ROP. Тоест ръководителят на отдел продажби. А именно, неговите отговорности включваха намирането на нови клиенти за нашия аутсорсинг бизнес. Каналът за продажба представляваше хоризонтално отпечатани листовки А4 с прост надпис: „Решаване на проблеми с програмирането“. И по-долу е телефонният номер на Илон.
Такава външна реклама беше поставена на всеки етаж, където можеха да се появят студенти, изучаващи програмиране.
Допълнителен, по-силен по отношение на лоялността на клиентите, беше каналът за продажби от уста на уста.

Бизнес моделът беше прост. Чрез препоръка или реклама, студент се свърза с нас. Той даде описание на програмен проблем, който трябваше да се реши до определен срок и аз го реших на студентска цена. Илон се занимаваше с продажби и получаваше своя процент. Ален Делон по-рядко участваше в нашия бизнес, но ако трябваше да направим дизайн, картина или да привлечем допълнителни клиенти, той винаги беше полезен. Със своя чар той доведе доста нови хора при нас. Всичко, което трябваше да направя, беше да обработвам този конвейер със скорост от 5-10 задачи на ден. Сроковете бяха строги - не повече от седмица. И най-често това трябваше да бъде направено вчера. Следователно такива обстоятелства бързо ме научиха да пиша програми в „поток“, без да се разсейвам от всяко малко нещо като земетресение с магнитуд 5,9 или голяма авария извън прозореца.

През най-горещия сезон, преди сесията, тоест през декември и май, изглеждаше, че имам всички задачи на университета на компютъра си. За щастие повечето от тях бяха от един и същи тип, особено когато с нас се свърза търговец на едро, представляван от представител на цяла група. Тогава можеше да се направят 20 задачи, например на асемблер, като се сменят само 2-3 реда. В такъв сезон водите течаха като река. Единственото нещо, което ни липсваше, бяха дискети. През 2003-2005 г. бедните студенти в нашия град нямаха такова нещо като превод на пари през интернет. Освен това нямаше гаранции за плащане, което сега се нарича ескроу. Затова фирма SKS, като изпълнител на поръчки, си записахме час на територията на университета и дадохме дискета с решение. Refund почти нямаше (от англ. refund - връщане на плащане по желание на клиента). Всички бяха доволни и получиха своите 4-5 точки, ако успееха да научат какво съм добавил към файла readme.txt на дискетата. Въпреки това, проста демонстрация на напълно работеща програма също често предизвиква уау ефект сред учителите.

Цената беше смешна, разбира се, но го взехме в количество. Например типичната домашна задача струва $2-3. Курсова работа 10 $. Джакпотът под формата на програма за работа на кандидат се падна веднъж и беше цели 20 долара за кандидатстване на студент, който се готви за защита. През горещия сезон този доход може да се умножи по 100 клиента, което в крайна сметка е повече от средната заплата в града. Чувствахме се готини. Можеха да си позволят нощни клубове и да се забавляват там, вместо да се задавят с чебурек до последните си пари.

От гледна точка на моите умения те се умножаваха с всяка нова студентска задача. Започнахме да получаваме заявки от други факултети, с различна програма на обучение. Някои старши студенти вече използваха Java и XML в пълния си потенциал, когато се насочихме към C++/MFC. Някои се нуждаеха от Assembler, други PHP. Научих цяла зоологическа градина от технологии, библиотеки, формати за съхранение на данни и алгоритми за себе си при решаване на проблеми.
Този универсализъм ми е останал и до днес. При работа по проекти се използват и различни технологии и платформи. Сега мога да напиша софтуер или приложение за всяка платформа, операционна система или устройство. Качеството, разбира се, ще варира, но за бизнеса, с който основно се занимавам, бюджетът обикновено е важен. А едноличен оркестър за тях означава намаляване на бюджета точно толкова, колкото разработчиците мога да заместя с моите умения.

Ако говорим за най-голямата полза, която ми донесе обучението в университета, това няма да са лекциите по алгоритми или философия. И няма да се „научи да учи“, както е модерно да се казва за университетите. Първо, това ще бъдат хора, с които останахме в приятелски отношения след тренировка. И второ, това е същата компания SKS, която ме изкова в професионален разработчик, с реални и разнообразни поръчки.
Бих искал да си спомня една фраза, която е много подходяща за тази част от историята: Човек става програмист, когато други хора започнат да използват неговите програми и плащат пари за това..

По този начин марката SKS беше широко известна не само в студентските среди, но и сред учителите. Имаше дори случай, когато един от преподавателите дойде в дома ми, за да му помогна да напише програма за неговите научни нужди. Той от своя страна ми помогна в специализацията си. И двамата бяхме толкова погълнати от работата си, че и двамата заспахме на разсъмване. Той е на дивана, а аз на стола пред компютъра. Но те изпълниха задачите си и двамата бяха доволни от работата си.

Обрат на съдбата

Започна 4-та година в университета. Последният курс, след завършването на който се присъжда бакалавърска степен. На практика нямаше общообразователни предмети, а само такива, свързани с компютри и мрежи. Сега понякога съжалявам, че нямах време или не проявих интерес към същата електроника или вътрешната структура на мрежите. Сега завършвам това поради необходимост, но съм сигурен, че тези основни знания са необходими на всеки разработчик. От друга страна, не можете да знаете всичко.
Завършвах писането на моя собствен C++ компилатор, който вече можеше да проверява кода за грешки според стандарта и да генерира инструкции за асемблиране. Сънувах, че ще мога да продам своя компилатор за $100 на лиценз. Умножих това по хиляда клиенти и мислено
транспортиран до Hammer, с баса на 50 Cent, който звучи от високоговорителите и готините на задната седалка. Какво да правиш, на 19 години - такива са приоритетите. Номерът на моя домашен компилатор беше, че извежда грешки на руски, вместо на английски от Visual C++ и gcc, което не е разбираемо за всички. Виждах това като убийствена функция, която никой в ​​света все още не е измислил. Мисля, че няма смисъл да разказвам повече. Не се стигна до продажби. Въпреки това постигнах дълбоки познания по езика C++, които ме хранят и до днес.

През четвъртата си година все по-малко ходех в университет, защото знаех по-голямата част от програмата. И това, което не знаех, реших чрез бартер със студент, който разбираше например електроника или теория на вероятностите. Какво ли не измислихме тогава. И невидими слушалки на жица, в които се диктуваше отговорът. И да изтичаш от класната стая, за да може гуру в неговата специалност да ти напише решението на целия изпит за 2 минути. Беше страхотно време.
По време на същия курс започнах да мисля за истинска работа. С офис, реални търговски приложения и достойно заплащане.
Но по това време в нашия град можеше да си намериш работа само като програмист
„1C: Счетоводство“, което изобщо не ми подхождаше. Макар и от безнадеждност, вече бях готова за това. По това време приятелката ми оказваше натиск да се преместя в отделен апартамент.
Иначе да спиш с родителите си през стената изобщо не е комилфо. Да, и вече бях уморен да решавам студентски проблеми и исках нещо повече.

Проблемите се появиха от нищото. Сетих се да обявя в mail.ru, че търся работа със заплата от $300 за позиция C++/Java/Delphi програмист. Това е през 2006 г. На което те всъщност отговориха нещо като: „Може би трябва да пишете на Бил Гейтс с такива искания за заплати?“ Това ме разстрои, но сред куп подобни отговори имаше човек, който ме доведе до свободна практика. Това беше единствената възможност в нашия беден Лас Вегас да печеля добри пари, правейки това, което знаех как да правя.
Така обучението в университета плавно премина в работа на борсата на свободна практика. Затваряйки темата за университета, можем да кажем следното: не отидох на 5-та година. Имаше едно програмиране и такава концепция като „безплатно присъствие“, която използвах 146%.
Единственото, което трябваше да се направи, беше защита на диплома за специалист. Което успешно направих с помощта на приятелите си. Струва си да кажа, че до този курс вече се бях преместил от родителите си в апартамент под наем и си купих нова кола. Така започна кариерата ми на професионален разработчик.

Следващите глави ще бъдат посветени на индивидуалните проекти, най-тежките провали и най-неадекватните клиенти. Кариера на свободна практика от 5 до 40 $/час, стартиране на собствен стартъп, как бях забранен от борсата за свободна практика Upwork и как от свободна практика станах ръководител на екип във втората по големина петролна компания в света. Как се върнах към дистанционна работа след офиса и стартирането и как реших вътрешни проблеми със социализация и лоши навици.

За да се продължи ...

Източник: www.habr.com

Добавяне на нов коментар