Як перетворити програмування в професійне ремесло за 8 простих кроків, бібліотека

Погляд веб-розробника і викладача Кена Роджерса на професійний розвиток в IT-сфері.

Кілька років тому я метався між ландшафтним дизайном і ресторанною справою. Я тільки що закінчив коледж і зовсім не знав, що робити зі своїм життям.

У мене було безліч ідей, але не було напряму. Саме в цей період часу я почав вивчати програмування. Спочатку це було не більше ніж хобі. Мені подобалося, що можна створювати щось, не маючи нічого крім власного мозку і декількох рядків коду. Але потім я почав думати про те, куди котиться моє життя, і побачив в цьому вельми привабливу перспективу.

самоосвіта

Спочатку я відмовився від цієї ідеї. Я не міг дозволити собі справжню освіту. Один раз я вже вилетів з коледжу через брак грошей, і якщо б я пішов вчитися інформатики, то все повторилося б знову. У підсумку я залишився б з шістьма класами школи і боргом більш ніж $ 50,000, якби пішов цим шляхом. Так що це був не варіант.

Тоді я почав прикидати, як мені самому навчитися веб-розробки, щоб потрапити на якусь стажування. Моїм початковим планом було представитися декільком компаніям в моєму місті і дізнатися, чи не хочуть вони зі мною зустрітися. Я хотів обговорити свої потенційні шанси на роботу в цих компаніях протягом мого навчання. Таким чином я міг би оплачувати його і в той же час набратися досвіду. Так що я всерйоз зайнявся веб-розробкою.

У підсумку, замість того щоб пропонувати мені роботу на півставки, одна з компаній відразу взяла мене на повний оклад на шестимісячний випробувальний термін в якості їх нового junior-розробника.

Я був на сьомому небі від щастя. Виявилося, що як тільки я зайнявся чимось серйозно, я зміг багато чому навчитися. У мене виходило відповідати на їхні запитання. Я міг пояснити їм роботу моїх скромних додатків. Я міг пояснити, як працюють МОЇ проекти.

Я пропрацював в цій компанії два з половиною роки, поки не отримав посаду в своєму рідному місті.

Важливою частиною мого перетворення з любителя на професіонала було те, що я сприймав роботу в своїй попередній компанії як вчення. Я вчився так багато, як тільки міг.

Реальні знання, отримані під час роботи в компанії, неоціненні. Дуже істотні вміння працювати з клієнтами, колегами, в рамках будь-яких обмежень. Це те, чого можна навчитися тільки на полі бою.

І хоча зараз я знаю і вмію набагато більше, ніж під час роботи в своїй першій компанії, я не перестаю розвиватися. Одна з невід'ємних рис висококласного програміста - пристрасть продовжувати вчитися. Той момент, коли нам здається, що ми стали майстрами своєї справи - це момент, коли ми перестаємо рости.

Найкраще про це сказав Хемінгуей:

«Всі ми учні на терені, де ніхто ніколи не стає майстром.»

Він говорив про письменстві, але до програмування це теж підходить.

Поєднання навчання і роботи в реальному компанії настільки багато чому мене навчили (я навіть пишу книгу). Я прекрасно розумію технічну сторону веб-розробки, а також - як вирости з любителя на професіонала. Це шлях, підвладний будь-кому, незалежно від його часу і можливостей.

Щоб змалювати читачам деяку перспективу, скажу, що я працював одночасно на двох роботах, одна з яких передбачала підйом о четвертій ранку і управління автонавантажувачем.

Якщо ви хочете навчитися кодіть по-дорослому, вам будуть потрібні завзятість, драйв і цілеспрямованість.

Можете слідувати цим крокам. У кожного буде свій шлях, але я постараюся дати вам загальне напрям, який не дозволить помилитися на цій тернистою доріжці.

1. Усвідомте, що ви на це здатні

Існує думка, що до ефективного самоосвіти здатна лише певна група людей. У певному сенсі так і є. Ви повинні бути самостійним і мотивованим, щоб вийти на рівень вище середнього. Але будь-хто може стати такою людиною.

У сучасному суспільстві дуже поширена ідея того, що одні люди народжуються з якимись здібностями, а інші - ні. Така точка зору згубна для особистого росту, і саме через неї в світі така кількість не реалізувалися людей.

Якщо ви завжди відчували, що вам що-небудь «дано» або «не дано», то це може досить сильно вибивати з колії.

Я хочу розвіяти цей міф. Будь-хто може правильно себе мотивувати і навчитися програмуванню. Або почати успішний бізнес. Або досягти деякої віддаленої мети.

Це залежить не від везіння і не від того, з якими здібностями ви народилися. Головне - завзятість. Якщо ви здатні мужньо долати труднощі, ви здатні практично на все.

Я хочу зробити невелике попередження перш, ніж рушити далі. Найчастіше люди надто поспішають, приймаючи власний успіх або успіх інших. Це можна назвати систематичною помилкою вижив. У всьому присутня частинка удачі. Іноді щось просто виходить. Наприклад, я зв'язався з агентством веб-розробки, і було удачею, що саме тоді вони шукали когось, і я потрапив на період цього пошуку. Але чи було це удачею?

Звичайно, мені пощастило, що я отримав цю роботу, але мені ніколи б не посміхнулася фортуна, якби я не зважився навчитися програмуванню, а потім не прийняв би рішення спробувати себе у цю посаду.

Удача не грає вирішальну роль, але надзвичайно живучий міф про те, що вдалий збіг обставин вирішує все. Ви можете збільшити свої шанси на виграшний розклад, досить лише бути готовим до дії. Але фортуна ніколи не повернеться до вас потрібною стороною, якщо ви не здатні домогтися успіху в чому-небудь.

2. Прагніть бути неповторним у своєму ремеслі

Одна з моїх найбільших слабкостей - я сумую і стаю розсіяним. Мені хочеться перейти до наступного проекту. Така тенденція здатна зарубати ваш успіх на корені.

Це може створювати ілюзію свободи. Мати можливість перемикатися між проектами в залежності від вашого поточного настрою, але ...

Як перетворити програмування в професійне ремесло за 8 простих кроків, бібліотека

Це пастка! Якщо ви винесете щось корисне з цієї статті, нехай це буде наступне:

Ключ номер один до успішного освоєння професії розробника - домагатися свого. Працюйте завзято, поки не досягнете поставленої мети.

Даний принцип можна застосувати до будь-чого.

Люди зациклюються на тому, який фреймворк використовувати, коли насправді важливо вибрати один і
працювати з ним. Ви можете вивчити інші мови і інструменти пізніше.
В процесі розробки важливе уміння вирішувати проблеми, а не тікати від них. Можливість думати, як розробник.

Я навчився програмувати, використовуючи Laravel, але компанія, куди я влаштувався, працювала на CakePHP. Це було неважливо. Вони знали, що я мав технічними навичками, достатніми для того, щоб перемикатися між фреймворками.

Виберіть напрямок і дотримуйтеся його, незважаючи ні на що. Ви повинні звести до нуля можливість відвернути вас чимось іншим.

Мало яке почуття може зрівнятися з невпинним прагненням оволодіти будь-яким мистецтвом. Це не просто. Але одного разу навчившись не відволікатися, ви помітите, наскільки більше задоволення стане приносити вам ваша робота.

Але мрія народжується з невгасаючого прагнення стати кращим у своїй справі. Одного разу прийнявши таку установку, ви дасте своїм потенціалом розробника друге життя.

3. Починайте створювати негайно

Амбітні розробники можуть потрапити в пастку вічного читання без переходу до дії. Туторіали і книги гарні для вивчення основ. Проблема полягає в тому, що вони створюють в розробника помилкове відчуття впевненості.

Вирішення цієї проблеми просте, але не так легко у виконанні. Почніть творити. Створіть що-небудь. Зробіть додаток, яке вирішує проблему, з якою ви стикаєтеся в повсякденному житті, або проблему когось близького вам.

Зробіть що-небудь просто веселощів заради.

Зробіть що-небудь і уявіть світу. Викладіть вихідні на GitHub. Ви робили це не для когось, це тільки для вас, так що не потрібно боятися того, що скажуть про нього люди.

Ви загрузнете в проблемах і будете вчитися справлятися з ними. Це добре. Це той час, коли ми вчимося найбільше.

Почніть з створення речей, які вирішують будь-які завдання. Я розповім про це докладніше в пункті 6.

4. Заявіть про себе в мережі

Але ви напевно захочете піти далі. Я раджу вам завести власний сайт-портфоліо. Він буде виконувати кілька функцій:

  1. це прекрасний спосіб заявити про себе потенційним роботодавцям
  2. це ще одне загальнодоступне місце, де можна представляти свої роботи
  3. він буде служити вашої трибуною

Останнє особливо важливо. Одного разу почавши створювати проекти, ви відразу ж повинні почати писати про це. Заведіть простенький блог, діліться тим, над чим ви працюєте в даний момент, і вчіть всьому, що дізналися самі.

Це один з кращих способів показати потенційним наймачам, хто ви такий і на що здатні, можливість заявити про себе. Він може розширити можливості працевлаштування, а також підштовхнути до отримання додаткового доходу через фріланс або написання книги.

Ваш сайт повинен переслідувати цілком певну мету. Більшість створює онлайн-резюме, але ви повинні зробити щось більше. Яка ваша мета? Ваш вебсайт повинен бути спроектований на основі цієї мети. Якщо ви хочете отримати роботу, пов'язану з конкретним типом проекту або конкретним фреймворком, вкажіть це.

На додаток до вашого особистого сайту, почніть писати на інших популярних ресурсах. Тоді ви зможете давати посилання на ваш сайт в біо.

5. Вивчайте всьому, що знаєте самі

Натан Беррі обожнює вчити всьому, що тільки що дізнається сам. Він розповідає історію Кріса Койєр, творця CSS Tricks.

Спочатку цей сайт був блогом Кріса, де той писав про те, що вивчав. Тепер це один з найбільших ресурсів, присвячених веб-розробці. Мораль тут в тому, що вам не обов'язково бути світовим експертом, щоб почати ділитися з людьми своїми знаннями.

У світі онлайн-бізнесу живий цей принцип «відносного експерта». Суть його полягає в тому, що кожен в чомусь є експертом щодо кого-небудь іншого.

З цим можуть виникнути і певні проблеми, особливо коли цей принцип використовується для продажу чогось, що продаватися не повинно.

Мене турбує використання тут слова «експерт». Не думаю, що є щось неправильно в тому, щоб вчити інших тому, що знаєш сам, і навіть можливий продаж цих знань може виявитися для когось корисною. Але називати себе експертом - це явно зайве. Так що, коли ви пишете свій контент, ставитеся до цього чесно.

Я віддаю перевагу термін «спільне (публічне) навчання». Існує безліч людей, які починали саме з цього. Вони освоювали свою професію і документували весь цей процес.

6. Вирішуйте реальні завдання

Одним з найбільш важливих аспектів становлення професійного розробника є прагнення робити все з певною метою. Одна справа писати рандомний додатки забави заради, і зовсім інша - вирішувати реальні завдання. Веб розробники не займаються програмуванням заради програмування, вони вирішують цілком конкретні проблеми. Програмування - лише засіб досягнення цілей.

Прочитайте якусь книгу про маркетинг або копірайтингу, і вони навчать вас продавати не функції вашого продукту, а його переваги. Веб-розробники повинні підносити свої додатки в ключі того, наскільки ефективно вони вирішують поставлені замовником завдання. Можна збирати статистику використання за допомогою спеціальних інструментів.

Ви будете дуже привабливі для роботодавців, якщо зможете продемонструвати ваші навички програмування на тому ж рівні, що і здатність ефективно вирішувати поставлені завдання. Безумовно, не потрібно забувати згадувати про ваших знаннях і здібностях, але якщо у вас є портфоліо проектів, які вирішують реальні проблеми, ваші навички програмування будуть говорити самі за себе.

7. Приміряйте на себе образ учня

День, коли ви подумаєте, що досягли досконалості, буде днем, коли ви перестанете розвиватися. Але вчитися доведеться протягом усього вашого життя. Просто прийміть це. Завжди є, куди рости і до чого прагнути.

Особливо це важливо на ранніх етапах вашої кар'єри. Якщо ви потрапили на стажування або отримали роботу на півставки в якості junior-розробника, вам потрібно якомога швидше усвідомити, що потрібно рости далі. Це буде простіше в тому випадку, якщо на цьому етапі у вас є офіційний наставник.

У порівнянні з середніми віками, відносини «майстер-підмайстер» зазнали серйозних змін. Але сприймати себе, як учня, для початківців розробників все також важливо. У світі веб-розробки, коли всі ми постійно знаходимося в мережі, це може приймати різноманітні форми. Нам доступні книги, туторіали, курси, форуми та інші форми навчання. Я вважаю, найефективнішим способом є навчання у фахівця, на позиції якого ви бачите себе в майбутньому.

8. Вчіться працювати в команді

Одним з найбільш значних відмінностей в програмуванні як хобі і як професії - необхідність співпрацювати з іншими розробниками. Вам доведеться взаємодіяти і працювати рука об руку з колегами, начальниками, клієнтами, партнерськими компаніями і багатьма іншими. Дуже важливо навчитися ефективно співпрацювати з людьми.

На терені веб-розробки комунікація - ключовий момент. Коли компанія приходить і каже, що їм від вас потрібно, а ви ви навіть не можете собі уявити, як це приблизно має виглядати, це може спричинити низку проблем і хронічний головний біль.

Також, якщо ви не можете спілкуватися з людьми, з якими працюєте, від цього страждатиме якість вашої роботи.

Поки ви вчитеся, є два хороших способу навчитися контактувати з людьми. Почасти, ця навичка приходить, коли ви вчите інших тому, що дізнаєтеся самі. Люди будуть зв'язуватися з вами, іноді в негативному ключі, і ви швидко навчитеся правильно поводитися в таких ситуаціях.

Також я дуже рекомендую вносити правки в проекти з відкритим вихідним кодом. Це дасть вам відчути смак роботи над суспільним проектом, де кожен має свої ідеї і погляди. Робота над опенсорсний проектами може лякати новачка, але це буде справжнім дивом для його професійного зростання.

Бути веб-розробником важко. Це означає постійно вчитися і адаптуватися до нових технологій. Це одна з професій, де потрібно бути підкованим не тільки в технологіях, але і в області бізнесу і комунікацій.

Я сподіваюся, що зміг описати в цьому короткому Гайд шлях становлення професійного розробника.
Пам'ятайте, нічого не звалиться вам на голову, поки ви не почнете діяти. Зробіть простенький сайт-портфоліо, зв'яжіться з декількома потенційними роботодавцями, напишіть пару постів на Medium. Просто почніть щось робити.

Чим більше ви викладаєтеся, чим більше робите, тим швидше з любителя ви перетворитеся на справжнього професіонала.