Як стати senior java developer-му за 30 місяців

Привіт всім,
Особливо студентам, початківцям програмістам і всім, хто хоче ними стати! Сьогодні я розповім, як пройти шлях від абсолютного нуля до Senior Developer менше, ніж за 3 роки. Сподіваюся, мій безцінний досвід буде комусь корисний (і допоможе не набивати шишки там, де не треба).

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

Отже, є двадцятирічний студент четвертого курсу, який навчається за спеціальністю «Інформаційні технології в освіті» зі спеціалізацією «Управління проектами». У пасиві - дуже скромне кількість і якість навчання програмуванню в вузі і гуманітарне минуле. В активі - величезне бажання стати Java-програмістом. Завдання - реалізувати свою мрію. Алгоритм дій наведено нижче (природною мовою, але бажаючим можу, в принципі, привести діаграму. Або взагалі псевдокодом скористатися).

крок перший
Всіляко використовувати можливості навчання, подвёртивающіеся в вузі. У мене це були курсові роботи на Java. Постановка завдання для курсової роботи була приблизно такою: «Ось тобі ТЗ, ось тобі книга - роби!» Найкраще вибирати більш складну задачу, більш складну реалізацію, щоб отримати хоч якийсь досвід, яким можна буде оперувати при роботі з роботодавцем.

Крок другий.
Навчатися самостійно. Це дуже важливо. Справжні фахівці вчаться все життя, тому і починати треба якомога раніше. Тут головне - знайти підходящі книги, і в цьому місці я набила свою першу шишку - це було активне використання курсів на сайті Інтуїт. Інти - це добре, звичайно, але краще б я замість цього п'ять разів «Філософію Java» прочитала. І ще пару раз «Основи об'єктно-орієнтованого проектування» Мейєра.

крок четвертий
Коли співбесіду позаду, і ти нарешті задіяний в реальному проекті, головне, як не парадоксально, вчасно з нього піти. Перший час тобі, звичайно, там круто. Тебе вчать, ти кожен день професійно ростеш, починаєш вирішувати все більш і більш складні завдання, при цьому отримуєш можливість спілкуватися з досвідченими фахівцями, радитися з ними по вибору професійної літератури і т.п. Але рано чи пізно, в залежності від того, наскільки швидко ти розвиваєшся, процес твого зростання припиняється. Все це через те, що тебе взяли на позицію Junior Developer-а, який вирішує нудні завдання з програмування, і, власне, ти змінився, а проект - немає. Ті завдання, які півроку-рік-півтора тому здавалися тобі цікавими, зараз так само нудні, як були вони тоді для старших товаришів, для розвантаження яких тебе, власне, і найняли. Добре, якщо ти потрапив в компанію, яка передбачає постійне зростання своїх співробітників, але в моєму випадку все було інакше, оскільки там найпростішим способом перейти з Junior Developer на Middle - це звільнитися, а потім знову найнятися. Щоб зрозуміти це, я витратила цілий рік в спробах досягти підвищення складності завдань і заодно зарплати (вдалося одного разу, але ненадовго: незабаром я знову переросла цей рівень), то влаштуватися в сусідній відділ, де начебто були потрібні саме Middle Developer-и. У підсумку довелося звільнитися. Але мені б хотілося ще раз повторити: не варто чекати підвищення! Краще взагалі як превентивний захід регулярно ходити по співбесідах, але про це - в кроці п'ятому.

крок п'ятий
І ось ти - молодий програміст з якимось досвідом роботи і великим бажанням довести світові всю глибину своєї крутизни. Звичайно, найпростіше це зробити, пройшовши співбесіду на якусь привабливу позицію.
На цьому кроці мій досвід становив трохи більше двох років. Професійне зростання на моїй роботі зупинився приблизно через рік після того, як я на неї влаштувалася, і тому єдиним порятунком було постійний саморозвиток: читання книг, відвідування семінарів, etc. Слід зауважити, що співбесіду саме по собі містить деяку навчальну складову, оскільки якщо ти чогось не знаєш, то можна або дізнатися про це у інтерв'юера, або - пізніше - з інших джерел. Хоча б тому варто ходити по співбесідах, навіть якщо не знаходишся в пошуках роботи. До того ж інтерв'ю тримають тебе в курсі подій, дозволяють знайомитися з цікавими людьми і проектами, ну і, нарешті, чим чорт не жартує, може, і правда вдасться знайти цікаву позицію? Ще один досить корисну пораду: чи варто встановлювати в резюме бажану зарплату побільше. Тоді тебе будуть розглядати як кандидата на більш серйозні позиції, і в такому випадку нудно вже точно не буде!

Підсумовуючи все вищесказане, хотілося б зробити такі висновки:

1. Вчитися, вчитися і ще раз вчитися! Теоретично, практично, самостійно, на курсах - як завгодно! Головне - в режимі non-stop!
2. Спілкуватися, спілкуватися і ще раз спілкуватися! З колегами, фахівцями в суміжних областях, інтерв'юерами, лесторамі ... Це теж варіант навчання.
3. Регулярно ходити по співбесідах як тоді, коли ти недосвідчений студент, як тоді, коли ти вже досвідчений фахівець.
І найголовніше - не бійтеся ставити перед собою значні цілі. Стріляйте по зірках, тоді вже точно потрапите як мінімум в місяць!