Поговоримо про ті речі, які сильно згодилися б на початку мого професійного шляху, якби я їх тоді знав.
Ніколи не пізно змінити професію
Досить недавно я усвідомив, що отримана професія – це не на все життя. Навіть якщо тобі шалено подобається програмування або інша професія, це зовсім не означає, що ти до неї прив’язаний назавжди. Можливо, в якийсь момент вона тобі набридне, і ти вирішиш змінити свій життєвий шлях.
Особисто я відтягував цей момент дуже довго. Я з 1996 року професійно займався програмуванням, тобто отримував зарплату. А непрофесійно – ще зі школи, з кінця вісімдесятих. Це дуже довгий період. Я бачив стільки цікавих і дивних перипетій у розвитку індустрії, бачив безліч виникаючих мов, фреймворків, серверів, методів розробки … Я сертифікований фахівець з RUP – Rational Unified Process! Хтось пам’ятає про його існування?
А скільки було хайпа в Java на початку двохтисячних років, коли з’явилися Straps, з’явилася Tapestry … Як носилися з Tapestry! Хто зараз про неї пам’ятає? Ніхто. А тоді це був хайп, все любили Tapestry, все носилися з нею, тому що вона була модною.
Я занадто довго сидів в цій професії. Насправді, мені набридло програмувати досить давно. Але пастка високої зарплати – все-таки у програмістів висока зарплата. А якщо у тебе стаж 15-20 років, у тебе буде висока зарплата, навіть якщо ти взагалі нічого не робиш. Це дуже розхолоджує, і ти легко скачуєшся в болото. А замість того, щоб скочуватися в болото, треба було міняти професію.
Дозрів я для цього вже після сорока. Дуже шкодую, що не зробив цього істотно раніше. Може, я не був би таким експертом в IT, не міг би когось вчити. З іншого боку, я б почав свій бізнес набагато раніше, зараз він був би більш розвиненим, в десятки разів більше.
І вас я закликаю пам’ятати про те, що в якій професії ви б зараз не працювали, ви в будь-який момент можете сказати:
– Баста, карапузики, я так більше не працюю! Мені набридло, я хочу займатися іншим, пошукати собі нову професію.
І неважливо, двадцять вам років, сорок, п’ятдесят чи сімдесят – неважливо. У будь-якому віці ви можете вибрати нову професію і перейти в неї. 21 століття на дворі, можна швидко освоїти будь-яку професію, якщо постаратися. Відмінний спосіб не закиснути і не отримати відразу до того, чим ви займаєтеся.
Вибір мови програмування
Мене дуже радують початківці розробники, які твердять:
– Це дуже важливо – вибрати правильну мову програмування! Я виберу мову і все! Вона зі мною на віки вічні!
Мені, може бути, пощастило, але в дев’яностих, коли я починав, професія називалася просто «програміст». І коли тебе брали на роботу, показували нову мову, ти сідав і вчив. Це була норма, абсолютно не так, як зараз, коли зі знаннями Java тебе не візьмуть на frontend. Тебе відправлять на курси довчатися, або будуть задавати жорсткі питання по технології. Відповідь «Я це вивчу потім» нікого не влаштує. А в дев’яностих це було цілком нормально.
З іншого боку, це не означає, що ви не можете вивчити нову мову. Я за час роботи поміняв більше десятка робочих мов програмування. За великим рахунком, для фахівця middle + зміна мови програмування не така вже болюча.
Я свого часу плив по хвилях, у мене не було такого моменту, коли я говорив: «До біса все, мені набридло, буду вчити нову мову і шукати на ній роботу». Ні. Виходило так: я працюю на роботі, а тут з’являється нова мова. Я її підвчив і тепер на ній працюю. Потім з’являється ще одна мова, і ще …
Так я опинився на Java, і це виявилось найкраща мова. Вона прекрасна. Може, вона злегка і багатослівна, але з усіх мов, що я знаю, вона легше читається. Навіть легше, ніж С # – а це величезна перевага при підтримці складних систем.
В цілому ж я хотів донести таку думку: не зациклюйтеся на виборі мови програмування. Подобається вам мова – вчіть її, і не стрибайте в інші мови. Не намагайтеся поміняти свій досвід на нову чарівну технологію. Так ви просто забезпечите собі зайвих два-три роки навчання, замість того, щоб отримати професію, попрацювати, і рухатися вже всередині професії. Бути вічним студентом дуже нудно.
Системи контролю версій
Для вас зараз це напевно зрозуміла штука. Але в кінці дев’яностих поява систем контролю версій було шоком. Я відбивався руками і ногами, стверджував, що це складно і непотрібно. Це було дуже неправильно. Спасибі моєму тодішньому начальнику, який мене буквально змусив. Сказав, що треба просто взяти і зробити.
Я не хотів – ну навіщо ці версія один, версія два? Ні, все нормальні програмісти працюють так – сказав він, змусив мене, і я шалено вдячний. Якщо б я дізнався про існування контролю версій раніше, це було б круто. Тому що потім я на тій же Лізі вів CS, SVN з’явилась вже потім.
До речі, я довго опирався появі Git, тому що SVN мені подобалась куди більше. Але потім звик і оцінив. Через те, що в Git ось ця дивна концепція – репозиторій тут, репозиторій там, об’єднання, пуші – мені довгий час мені здавалося це штучним і потрібним лише для розробки опенсорсний додатків: довірені – НЕ довірені. А ось SVN це круто і здорово.
Але Git дійсно на кілька порядків краще. І треба віддати належне Лінусу Торвальдсу, який випустив цілих два продукти, які змінили індустрію програмування. Я не знаю інших людей, які настільки сильно здатні змінювати життя інших людей. І підсісти на Git мені треба було дещо раніше. Я відбивався – а даремно.
Гугль ваш друг
Пошуковик – звичайно ж Гугль, він ваш друг. До пошукових систем я з самого початку поставився з оптимізмом. Хоча перші пошукові системи, типу Yahoo, видавали дуже спірні вибірки, на три чверті складалися з нісенітниці, і псувалися швидко. Але сама можливість звернутися до всесвітнього розуму, який скаже, як і що треба робити, це дуже крута штука.
Я великий шанувальник наукової фантастики, так що відразу це оцінив. Я вдячний інтернету і розвитку людства за те, що тепер у нас в кишені знаходиться довідник по всьому! Здавалося б, банальні речі. Але є нюанс.
FoxmindEd – це навчальний центр, що має велику різноманітність напрямків курсів для новачків та програмістів з досвідом!
Наприклад, я б ніколи не почав готувати без доступу до інформації. Якщо взяти рецепт з книги, він часто незрозумілий для початківців кухарів. «Доведіть м’ясо до напівготовності» – що? А як це в цифрах? А якщо поритися в інтернеті, там знайдуться мільйони рецептів, включаючи рецепти в мультиварці, в яку все засипав, натиснув кнопочку і все готово. Після цього можна і з напівготовностю експериментувати.
Пошуковики – це кльово. Дуже мало інформації, яку ви повинні зберігати в голові. Ви завжди можете поритися у всесвітньому інформаторії, як це називали фантасти в моєму дитинстві, і отримати свіжу, актуальну, несуперечливу картину світу – якщо вмієте гуглити. Тому навик гугленія – основоположний.
Більше практики
Коли я починав вчитися програмуванню, мені здавалося, що досить почитати книгу, і все ти будеш знати. Але виявилося – ні. Практика – це важливо. А я людина ледача, завжди йду по шляху найменшого опору … Але так не працює.
І вам повідомляю: навчання програмування це 100% практика. Звичайно, якусь теорію ви повинні отримати, але це не знання, це довідкова інформація. Навчання – це те, що ви робите руками. Хотів би я це знати з самого початку. Але тепер я це знаю, і буду вам говорити це в кожному відео.
Більше відпочинку
Те, що людині потрібно відпочивати, я зрозумів після 40 років. Іноді і зараз про це забуваю, треба б у відпустку сходити. Але боротьба з собою, зі своїм перфекционизмом … Хоча я не дуже перфекціоніст. Коли спілкуюся з директорами інших компаній, розумію, що працюю приблизно на третину менше, ніж вони. Судячи з того, що вони говорять.
Я відчуваю, що у мене бувають дні, коли я не так і зайнятий. Три наради, два виступи, пара консультацій і ще один документ зробити. Ну це ж не робота. Правда, до вечора на четвереньках повзати, але ніби як і не працював. А що ж таке велика, справжня робота?
Коротше, треба по-справжньому відпочивати. І це не сидіти в соцмережі або дивитись телевізор. Це, наприклад, поїхати кудись. Головне – викинути з голови те, що мучить, що змушує крутитися шестерінки. Про це треба пам’ятати, це важливий аспект.
Програмування – більше, ніж синтаксис
Це я зрозумів давно, але далеко не на старті кар’єри. Програмування це не тільки синтаксис і фреймворки. Це вміння перевести бажання користувача в реально працюючу програму. Відповідно, всі етапи цієї роботи є частинами програмування.
Взяти у клієнта вимоги, дізнатися, що і як йому хочеться, на що це впливає. Декомпозиція цих вимог: з яких елементів складатиметься програма. Розбивка на етапи роботи – аналітика, програмування, і так далі. Сам процес програмування, тестування, налагодження. Делівері, тобто поставка користувачеві. Збір фідбек, доробка – все це програмування та частина єдиної системи, про яку ми повинні пам’ятати.
Коли ви змінюєте акценти в кар’єрі з написання коду на побудову архітектури, як я, або на побудову команд, або на проджект менеджмент, це теж програмування.
До речі, від проджект менеджера залежить набагато більше, ніж від усієї команди програмістів. Хороший проджект менеджер може витягнути погану команду. Поганий ПМ навіть з хорошою командою гарантовано провалить вам проект. Навіть дуже хороша команда не витягне. Тому це теж цікаво.
Необов’язково лізти в кишки до фреймворків і бігати по конференціях, дізнаватися, що там нового сталося. Можна задуматися про вічне – наприклад, про архітектуру, про побудову команд, про зняття вимог – у багатьох випадках це більш продуктивно і результативно.
Ви ніколи не вивчите все
Ось це було болючим одкровенням. Мене довго мучив синдром самозванця: «Навколо всі все знають, тільки я нічого не знаю. Мене візьмуть за вухо і виведуть з офісу. Навіщо вони мене тут тримають? » А потім я виводив на відвертість своїх колег, і виявлялося, що вони знають в чомусь більше, а в чомусь менше мене. Це було ціле відкриття. Так я тут такий не один, тут всі такі!
І тільки з роками я зрозумів, що програмування це така галузь, де неможна знати все. Це навіть теоретично неможливо. Не можна знати навіть те, що тобі необхідно для роботи прямо зараз. Ти завжди будеш перебувати в стані «Я не знаю, як це робити, спробуємо ось так». Це нормально.
Ситуація, коли ти точно знаєш, що тобі треба робити, не про програмування. У нас завжди треба пробувати і дивитися, що виходить. Якщо ти працюєш на проекті, де завжди знаєш, що і як робити, дуже швидко стане нудно. Це означає, що ти не програміст, а поріс мохом і займаєшся одним і тим же. Це муляр може класти одні і ті ж цеглини і йому норм. Програмісту це не норм, це відсутність розвитку, це нудно. Проект треба міняти.
Скажу більше. Навіть якщо ти знаєш 30% від того, що тобі потрібно знати на проекті, ти вже засидівся. Шукай новий проект. Багато розробників роками сидять на проекті зі словами “Я тут всього не знаю, я не досяг експертності”. Експертність – це як раз і знати відсотків 30 від того, що тобі потрібно, а не від усіх знань взагалі.
📢 Підпишись на наш Ютуб-канал! 💡Корисні відео для програмістів вже чекають на тебе!
🔍 Обери свій курс програмування! 🚀 Шлях до кар’єри програміста починається тут!
Розберіться в собі і робіть тільки те, що подобається
Це було приголомшуюче відкриття, яке підірвало мозок. Я прийшов до нього недавно, пару років назад, і з тих пір в кожному відео доношу це до вас.
Людина істота,що має захоплюватись. Якщо ти не захоплений тим, що робиш, твій рептильний мозок буде говорити «Дивись, ти робиш херню. Перестань ось це робити ». Він буде змушувати вас прокрастініровать: дивитися котиків, соцмережі, жери, – він придумає, чим вас зайняти. І ти такий: “Який же я хріновий програміст, не можу себе змусити!”
У мене є улюблена історія про людину, яка могла себе змусити і регулярно потрапляла до лікарні з виснаженням. Не робіть так, змушувати себе не треба. Єдиний варіант зробити щось – робити те, що вам подобається.
Чим більше вам це подобається, тим більше ви цим займаєтеся. Чим більше ви цим займаєтеся, тим краще у вас виходить. Чим краще у вас виходить, тим більше вас хвалять, чим більше вам подобається, тим цікавіше вам працювати. Коло замкнулося. У зворотний бік це теж працює. Не подобається – не займаєтеся – виходить погано – вас лають – не подобається.
Так що вихідна точка – «подобається». Чим мені подобається наше століття? Багато ниють: «Якось у нас все складно і погано» Ні. 21й століття прекрасне тим, що будь-яка людина може знайти професію за своїм вибором. Більш того, ви можете змінювати професію досить безболісно. Просто взяти і зайнятися чимось іншим.
Більш того, в наш час можна заробляти на абсолютно неймовірні речі. Наприклад, інстаблоггер. Уявіть собі її десять років тому. А нормальна професія, люди заробляють шалені гроші. Або Youtube-блогер.
Займайтеся чим хочете. Вирізаєте кораблики з дерева? Вирізайте. Робить відео, пишіть статті. Продавайте ці кораблики. Влаштуйте аукціон. На цьому можна добре заробити. Найкраще заробляти на тому, що вас пре. Подумайте: може, то, що вас пре, цілком можна монетизувати.
Завжди ваш Сергій Немчинський.