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

    Programming Road

    Фото з @www.jonathanfsullivan.com

    І замість того, щоб кожен раз повторювати свої відповіді, думки та поради кожній людині окремо, я вирішив почати викладати відповіді на подібні питання у себе на блозі. Таким чином цим постом я розпочинаю серію статтей під назвою “Програміст Початківець”. Це буде близько 10 статей, які я буду готувати приблизно раз в тиждень, де будемо висвітлювати наступні проблеми:

    • з чого почати свою кар’єру програміста
    • як готуватися до свого першого інтерв’ю на роботу
    • що ще потрібно знати і вміти програмісту окрім самого програмування для досягнення високих результатів у даному напрямку
    • як обрати правильний напрямок, спеціалізацію для себе
    • як постійно тримати свої знання та вміння в тонусі, як то кажуть “up to date”
    • розглядатимемо доступні інструменти та сервіси, які допоможуть вам швидко навчатися
    • обговоримо модель OpenSource як інструмент для набуття практики, а також як плюс у вашому резюме
    • англійська – це важливо для програміста? з чого краще почати, і що саме важливо знати?
    • як правильно обирати для себе місце праці та компанію
    • та інші теми, які вспливуть у нас як важливі в ході нашої серії постів. Тому ваші коментарі до статтей – відіграють важливу роль для вирішення – що є важливим для Початківця Програміста 😉

    З чого почати свій програмістський шлях

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

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

    А чи треба мені взагалі це Програмування?

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

    У цьому випадку завдання номер 1 – розглянути не лише плюси, але й “мінуси” (я б швидше назвав нюанси) даної професії, які допоможуть краще зрозуміти чи вона для вас, і одразу відрізати частину охочих:

    • ви кайфуєте від проведення 8-ми годин на день перед монітором вашого комп’ютера?
    • ваc більше втомлює знаходитись постійно серед великої і шумної компанії людей, чи більше від відсутності такої компанії? Тобто від часу, проведеного без спілкування з собі подібними 🙂
    • ви отримуєте масу задоволення від того, що кожного дня вивчаєте і взнаєте щось нове для себе? Думка, що все життя потрібно буде “студентом” – вас не лякає?
    • вам більше подобалась математика в школі чи гуманітарні науки? (ніби очевидне питання, але тим не менше отримував багато питань від людей, яким явно математика в школі не йшла і не подобалась…)
    • ну і на кінець просто уявіть свій ідеальний день у свому ідеальному світі, пофантазуйте, … Буде там Програмування? 🙂

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

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

    Для тих же ж, хто уже навчається чи закінчив ВУЗ, думаю дане питання уже вирішене, адже людина уже спробувала, і таки розуміє, що їй подобається. Якщо ж спробувала і не подобається, або не дуже “получається”, тоді знову ж таки, раджу переглянути своє відношення до даної професії і визначити чи дійсно вам це треба для щастя!

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

    З чого почати навчання?

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

    З чого ж почати?

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

    • “Батько – Програміст” – підсадив сина на програмування із самого дитинства, все очевидно, логічно і просто. Дитині навіть у Універ можна не йти, до того моменту вже знає чого хоче, і переважно уже навіть десь працює. Можливо навіть створює власний програмний продукт і фірму.
    • Усі йшли на Комп’ютерну Інженерію і я пішов, спробував, сподобалось – все чудово, тепер працюю.
    • Закінчив навчання по іншій спеціальності, зрозумів, що не моє, вирішив шукати щось інше. Підвернувся знайомий і порадив програмування, навіть допоміг з навчанням в ролі ментора. Самоосвіта + менторство + в процесі виявилось що моє = тепер працюю програмістом.
    • Уже в житті все класно, робота непогана, ніби нічого особливо не шукаю і не хочу змінювати. Але от одного разу попросили на роботі допомогти із сайтом фірми, я заліз туди, і за кілька тижні після “Гугління” і вичитуванні туторіалів, підправив їм кілька сторінок (при чому перед цим не розбирався в програмуванні взагалі). “Тєма” сподобалася – я почав займатися цим як хоббі. Згодом хоббі перейшло в професію, тепер я програмую.

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

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

    Таким чином можемо перечислити кілька варіантів навчання:

    • самоосвіта – це найпотужніший інструмент (книжки, навчальні матеріали та курси, практичні персональні завдання, будь-які ресурси в неті). Це інструмент, яким кожен програміст користується найбільше протягом усього свого життя. Єдиний нюанс – він надзвичайно важкий як єдиний інструмент на самому старті. Зазвичай треба шукати додаткових інструментів навчання, коли ви лише починаєте свій шлях у програмуванні.
    • старий добрий Універ – хороший варіант, якщо ви щойно після школи, і хочете отримати основи алгоритмів, програмування і всього іншого, що не обов’язково будете використовувати, але що дасть вам загальне розуміння професії, основ і полегшить подальший шлях. Мінуси – аж 5 років, і все одно без першого найважливішого інструменту Самоосвіти – не дієвий нажаль.
    • знайти Ментора – знайти людину, яка буде вас скеровувати у правильному напрямку, давати задачі, перевіряти. Цей інструмент тісно працює із Самоосвітою. Власне велике бажання + напрямок і порада від Ментора = працюють чудово! Це варіант, який спрацював для мене. Мінус – все ж таки важкувато на старті, і забирає мабуть більше часу, ніж наступний інструмент.
    • спеціалізовані практичні курси – це дуже хороший інструмент для початку, так само як і Університет, але тут є більший акцент на швидкість навчання, кінцевий результат (навчитись конкретної техніки і застосувати її на місці роботи). Самоосвіта тут звичайно також необхідна, але порівняно з Ментором – простіше початківцю освоїти ази маючи чіткий план дій і більше регулярної допомоги на курсах як від вчителя так і від цілої команди студентів. Курси також бувають різні – при програмістських фірмах (ціль – знайти працівників), персональні тренери (ціль – допомогти з освоєнням певної технологої чи допомогти у працевлаштуванні), …

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

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

    І на завершення…

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

    В наступних статтях ми в деталях будемо розглядати кожен з етапів навчання, а також аналізувати різноманітні інструменти, підходи та сервіси для полегшення нашого “студентського” життя 🙂

    А яка була ваша історія? На якому етапі ви зараз знаходитеся? Якої інформації бракує саме вам, щоб рухатися далі по “Програмістській Драбині”? З чим ви не згідні у даній статті? Можливо для вас працює щось таке, чого бракує в описі даної статті? Будь-ласка коментуйте і давайте визначати, що нам цікаво, як саме можна допомогти Початківцям Програмістам і пропонуйте наступні теми для серії “Програміст Початківець”.

    Якщо стаття була для вас корисна – тисніть Like! Якщо маєте серед знайомих та друзів людей, яким вона також може бути корисна, діліться лінком на неї! Чим більше лайків, тим більше в мене мотивації і розуміння, що це комусь потрібно 😉

    До наступного зв’язку!

    Хочете першими дізнаватися про наступні статті у нашій серії “Програміст Початківець”? Тоді підписуйтесь на розсилку мого блогу: