Про початківців розробниках та принципи роботи з ними

image
 
 За останні десять років через мене пройшло багато початківців розробників. Та й чого гріха таїти, я теж колись був початківцем розробником. За цей час я отримав тисячі питань а-ля "як стати розробником", а також прохань взяти людей до себе на практику. На жаль, навіть під чуйним керівництвом більш досвідчених фахівців, далеко не кожному вистачає сил і мотивації перейти на якісно новий рівень. Статистика — річ уперта: кількість "намагаються" і "що досягають успіху" розподіляється згідно з принципом Парето, тобто 20/80, де з десяти осіб максимум двом вдається пройти початкове випробування. Решта відвалюються по дорозі або процес навчання у них розтягується на довгі роки. І все ж, яким повинен бути початківців розробник, якими навичками і знаннями він повинен володіти? Про це і піде мова в статті.
 
  Найчастіше початківець розробник (далі будемо називати його просто джуніор) — це студент третього або четвертого курсу, іноді — випускник коледжу або університету, який вирішив пов'язати свою подальшу діяльність з ІТ-сферою. Джуніор відрізняється від фахівця тим, що у нього немає (або дуже мало) практичного комерційного досвіду. Саме тому Джуніор зазвичай задають питання на знання, логіку і т.д., щоб відсіяти вже зовсім неблагонадійних.
 
Перше питання, яке я зазвичай ставлю Джуніору звучить так: в якій сфері ти б хотів працювати? Розробляти програми для десктопа, наприклад, або писати гри або мобільні додатки, або веб / хмарні продукти, а може, взагалі рухатися в бік дизайну або тестування? Це дуже важливо, адже кожна область має унікальні властивості і знання, якими потрібно володіти. Хоча тут рішення досить просте: потрібно запропонувати Джуніору спробувати себе в різних областях, а через місяць запитати, що йому більше сподобалося. Ну і потім рухатися в цей бік.
 
Другий момент, на який я відразу ж акцентую увагу, полягає в тому, що я пояснюю Джуніору, що він не зможе через місяць отримати багато грошей, тенісний стіл і масажистку впридачу, а йому доведеться сильно попрацювати, щоб усього цього досягти.
 
 Таким чином, я відразу ж даю зрозуміти Джуніор, що без солідного вкладення зусиль і часу, а також чіткого розуміння дорожньої карти свого розвитку краще навіть і не починати.
 
А далі ми починаємо розмовляти. Наша бесіда аналізується на наявність тих чи інших фраз. Давайте розберемо їх по порядку.
 
 Як мене за # бал університет, суцільна трата часу
 
Ага, а потім ти витратиш тиждень на функцію перемноження матриць, спробуєш побудувати трикутник за двома точками, напишеш пошук за допомогою повного перебору і зробиш квадратні очі, коли я попрошу в додатку закріптовать паролі за допомогою RSA-алгоритму або впровадити цифровий підпис. (Якщо ви вважаєте, що це вигадані приклади, то я вас розчарую).
 
 
 
Життя показує, що не маючи теоретичного і математичного бекграунду, можна легко стати успішним кодером, але не фахівцем високого рівня. Винятки з цього правила є, але на те вони і винятки.
 
Другий сигнал, який мені посилає ця фраза, звучить таким чином: я не вмію керувати своїм часом . Управління часом — один з найважливіших навичок джуніора. Якщо людина не може поєднати університет і практику, то, швидше за все, він не впорається з дедлайнами і критичними завданнями в майбутньому.
 
 Microsoft — г # вно, буду писати для Linux
 
Міняємо Microsoft на C #, а Linux — на Java або Microsoft на Linux, а Linux — на Microsoft і отримуємо типовий портрет фанатика. З фанатиками взагалі не потрібно зв'язуватися. Для фанатиків важливий процес, а не результат, для них не важливо, щоб завдання було виконано найоптимальнішим способом, а головне, щоб було на "правильних" технологіях. Хочу додати, що в перший рік свого джуніорства я писав на Pascal, Turbo С + +, Visual C + + (MFC і WinAPI),. NET 1.1, PHP, ColdFusion, Perl, Java, поки не зрозумів, що мені ближче і зрозуміліше. Людині, спочатку зациклена на конкретній технології, буде дуже складно стати дійсно хорошим фахівцем.
 
Не буду приховувати, що "проблема технологій" часто зустрічається і вже серед сформованих фахівців. Нещодавно був свідком демонстрації одного проекту, який можна було реалізувати максимум за чотири години штатними засобами ASP.NET MVC і jQuery. Але, по-перше, виконання проекту було розтягнуто майже на рік (справедливості заради потрібно відзначити, що це не був комерційний проект), а, по-друге, в демо фігурували такі слова, як open source, node.js, база даних в вигляді json-файла. Все це заливалося через командний рядок на github, після чого компілювати за допомогою спеціальних скриптів, а потім ще один скрипт викладав HTML-сторінку на хостинг.
 
 image
 
 Раптово!
 
Раптово у джуніора може початися сесія, здача курсової, він може знайти роботу автослюсарем або рознощиком піци, адже "там платять вже зараз", а "тут ви експлуатуєте мене безкоштовно". Через те, що людина може пропасти в будь-який момент багато роботодавців і не хочуть брати джуніор на роботу або практику або доручають їм важливі завдання. Завдання джуніора — якомога раніше взяти складне завдання і успішно його зробити. Тільки після цього до Джуніору може з'явитися мінімальний рівень довіри, який, природно, бажано розвинути і не облажався. Під "облажаться" я маю на увазі потрапляння в ситуацію, опис якої починається зі слова "раптово".
 
 Відповідальність — ще одна критично важлива риса джуніор.
 
 Мені все зрозуміло, питань немає
 
Через два тижні після початку практики я питаю як просуваються справи, чи є питання. Якщо Джуніору все зрозуміло і питань у нього немає, можна без докорів совісті виганяти його в цей же момент. Адже у початківця розробника питання повинні з'являтися кожні десять хвилин. Частина з них він повинен знайти на форумах, частина — на StackOverflow, але стабільно раз в день якесь питання має з'явитися. Спостереження працює безвідмовно: якщо тривалий період немає питань, результату можна вже не чекати, а з Джуніором прощатися.
 
Тут працює і зворотне правило: якщо питання надходять занадто часто, значить гуглом джуніор користуватися не вміє. А ведь…
 
ще один важливий навик джуніора — вміння самостійно шукати потрібну інформацію і відповіді на свої питання.
 
До речі, про терміни. Перше завдання, яке я даю Джуніору, ніколи не прив'язане до конкретних термінів. Тобто зробиш завтра — ок, через тиждень — ок, через місяць — ок. Цим я даю зрозуміти, що часу у мене багато, можу почекати. І ось тут відразу ж стає зрозуміло, на скільки сильно і щиро джуніор хоче перетворитися на фахівця. Якщо перше завдання на пару годин буде робитися місяць, то є велика ймовірність, що у людини немає великої мотивації робити щось швидко, а це самим прямим способом позначиться на ефективності його роботи.
 
 А скільки я буду отримувати?
 
Це питання я теж чую часто. Потрібно розуміти, що Джуніор в будь-якій компанії — це інвестиції в майбутнє, час досвідчених фахівців і величезний ризик для компанії (див. Раптово!). Дуже добре, якщо Джуніору попадеться компанія, готова вчити його безкоштовно, і взагалі прекрасно, якщо компанія готова буде ще щось платити.
 
Рекорд побив один студент третього курсу, який погодився попрацювати віддалено парт-тайм, маючи досвід роботи з конкретною технологією 1 місяць. Він захотів зарплату близько $ 2000. Амбіції — це дуже добре (сам такий), але міру треба знати :)
 
 З чого почати?
 
Це найчастіше питання, який я отримую. Відповідь досить простий: візьміть своє хобі (музика, спорт, нумізматика) і зробіть для нього сайт, мобільний додаток і / або гру. Напишіть спочатку сайт на PHP, потім на ASP.NET, потім розробіть Android-додаток, потім портируют його на iOS. А потім спробуйте сайт викласти на хостинг, розкрутити, а мобільний додаток опублікувати в якомусь з app store. Ви отримаєте мінімальний, але все ж досвід повного циклу розробки проекту від ідеї до публікації і це цілком можна вказувати у своєму резюме. Та й в кінці шляху ви точно будете знати, що вам найбільше підходить.
 
А що компанії і вузи?
 
Багато компаніяй не готові працювати з Джуніор.
 
Причини називають різні:
 
 - Зараз ми його навчимо, а він піде до конкурентів;
 - Ми молода міжнародна компанія, ми працюємо тільки з професіоналами і підготовленими фахівцями;
 - Наші фахівці надто суворі, щоб витрачати свій час на джуніор;
 - Завдання готувати фахівців повністю лежить на державі і вузах, ми-то тут при чому?
 
Незважаючи на наявність таких настроїв, багато компаній вже усвідомили важливість роботи з початківцями фахівцями. Їх беруть на практику, читають курси, залучають на НЕ сложлие і не критичні проекти, посилають на конференції та семінари. Дійсно, багато Джуно »прогорають", багато хто не закінчують практику, не справляються з темпами навчання, і розчиняються у натовпі. Але працюючи над систематизацією знань і методів навчання, комбінуючи практичні та теоретичні знання, об'єднуючи зусилля приватних компаній, а також держави і вузів, можна домогтися якісного і кількісного збільшення початківців фахівців.
 
Багато хто також розглядають онлайн-платформи в якості альтернативи класичному навчання, де, по суті, все залежить тільки від бажання і мотивації самих учнів. Але в цьому-то і в Пробема. Адже всі чудові ініціативи, такі як iTunes U, Coursera і т.д. стикаються з мізерно малою кількістю тих, хто проходить повністю курс (цифра закінчили курси коливається в районі 1-3%). Саме тому наявність менторів обов'язково для того, щоб збільшити цей показник хоча б до 30%. І тут необхідна кооперація всіх гравцем ІТ-ринку, включаючи державу.
 
Самим цікавим і перспективним прикладом кооперації з метою навчання молодих фахівців показали Яндекс і Вища школа економіки, які анонсували відкриття факультету Computer Science. Цей прекрасний приклад повинні підхопити інші компанії і вузи.
 
 Замість висновків
 
Разом, ідеальний джуніор розуміє, що спочатку доведеться витратити величезну кількість часу на навчання, вміє поєднувати навчання / роботу з навчанням / практикою, володіє такими навичками як відповідальність, самостійність, вміння шукати необхідну інформацію, ставити запитання, а також є високо мотивованим і адекватно амбітним.
 
Для ментора дуже важливо розуміти, що кожна людина має різними навичками, продуктивністю, мотивацією. Завдання ментора — знайти правильний підхід до людини, зрозуміти справжні його мотиви, і найголовніше — розгледіти в людині потенціал. Потенціал — це прискорення, з яким людина може розвиватися, отримувати необхідні знання та самовдосконалюватися.
 
І так, все вищесказане можна замінити однією фразою: сідай і працюй. І для багатьох цих слів достатньо.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.