Вітання! Мене звати Алекс Туманов. Я керівник напрямку Академії ITSTEP «Розробка програмного забезпечення». За плечима — 20 років програмування мовами C, C++, C#, Java, PHP, Javascript.
У статті розповім, чому вчити другу, третю та всі наступні мови програмування не страшно, а весело та цікаво. А головне — це необхідність для кар'єрного зростання. Стаття допоможе і тим, хто ще не знає жодної мови — розвіяти міфи та увійти до ІТ без сумнівів та переживань.
У 90-х я писав мовою C. І це стало фундаментом кар'єри в ІТ з однієї причини
Я був таким же новачком, як усі студенти Академії. Нічого не знав, але дуже хотів програмувати. Дізнатися, як влаштований світ айтішників, що вчать і з чим працюють.
У мене була книга "Мова програмування С для чайників". Я її дуже люблю і в мене з нею лише найтепліші спогади.
Прочитав книгу від А до Я. Пробував щось робити сам, брав ідеї у друзів. Вони й рекомендували вчитись програмуванню з мови C.
Мені сподобалась мова своєю лаконічністю, красою та витриманістю. І C став фундаментом кар'єри. Як у моїй історії, так і мільйонів розробників у всьому світі.
Список трендових мов програмування від TIOBE.
Через 20 років я ні про що не шкодую. Радий тому, що розпочав шлях саме з C. Подивіться на тренди 2022 року. Затребувані C-подібні мови програмування: C++, C#, Java, Javascript. Нещодавно виник Rust. Go — теж C-подібна мова.
Кожному, хто тільки-но починає кар'єру в IT, рекомендую звернути увагу на C — це фундаментальна мова програмування.
Вчитися програмування на C, як пізнати основи роботи з акціями. Фондовий ринок існує не одну сотню років. Змінюється суспільство, тренди. А фундаментальні поняття на кшталт диверсифікації портфеля, трендів на підвищення та зниження курсу, біржові крахи — повторюються. І вони допомагають правильно обирати акції компаній, зменшити відсоток помилкових рішень і аналізувати ринок.
С-подібні мови формують правильну свідомість. Не просто програміста, а інженера. І це різні терміни.
Програмісти та інженери різняться підходом до вивчення мов
Коли ви дивитеся відео про програмування на Youtube або читаєте блоги програмістів, у голові закрадається питання: «Усі говорять про тренди у мовах. Одні мають попит. Інші вмирають. Що вчити?»
«Якщо я програміст, то я знаю певну мову і пишу тільки на ній» — як правда, так і велика помилка.
Хороший програміст — це завжди інженер. Він не пише код конкретною мовою, на кшталт Python або Javascript. А вирішує завдання клієнтів.
Уявіть ситуацію: ви працюєте над програмою для мобільного банкінгу, на зразок Privat24. І знаєте лише одну мову. Ви берете цей інструмент, пишете код для програми. З помилками, багами — не має значення. Здаєте проект, навіть про них не замислюючись.
Проходить час, ви отримуєте результати тестування — програма не виконує поставлених завдань. Код занадто довгий, а за час її завантаження можна заварити чаю та пообідати. Клієнт згортає проект та передає іншому програмісту.
Тому завдання інженера – вибрати правильний підхід та інструменти для вирішення задачі. І він не зупиняється на одній ніші, а маневрує між проектами. Інженер змінює мови, як хірург рукавички. Нова операція – новий пакет рукавичок.
І не кожен роботодавець шукає спеціалізованого програміста. Наприклад, Microsoft набирає до штату дженералістів — універсальних розробників. Те, якою мовою людина програмує, — на другому місці. У Microsoft чудово розуміють: «Зараз розробник пише на С#. Якщо з'явиться проект на Java, ми передамо завдання саме цьому програмісту. Він знає C#, зможе швидко вивчити відмінності синтаксису мови. І розпочати роботу».
Відмінності синтаксису — фундамент для вивчення всіх мов після першої
Будь-яка професія накладає обмеження на мозок. Він функціонує так, щоб допомогти освоїти конкретну, обрану вами професію. Наприклад, суддя знає про свою професію в обкладинці канцеляризмів та складних юридичних термінів. Для нас легко оперувати поняттям «людина». Але в юридичному колі це завжди — «фізична особа».
Так і у програмуванні. Коли вчите першу мову, мозок створює нові нейронні зв'язки, які допомагають думати з позиції інженера.
У програмуванні ви навчаєтеся методології — це ідеї, принципи та способи написання програм. Наприклад, якщо ви знаєте правила настільної гри «А», то перейти на гру «Б» зі схожими правилами, але дошкою та картками з іншими картинками легше і швидше. |
Мова - прикладний засіб, гайковий ключ з числовим маркуванням.
Як розуміє новачок: «Треба спочатку вивчити мову, а вже потім займатись проектами». Але це неправильний підхід.
Вчити 20 мов, щоб стати експертом — не має сенсу. Від однієї кількості мов страшно: «А чи я потягну стільки?» Це не коректний хід думок, який призводить до страху першого кроку в IT і подальшого навчання.
Відправна точка – методологія. Потім перша мова. Ваша перша мова — помічник для мозку. Він перепрошиває мозок під програміста. А ви крок за кроком рухаєтесь сходами вгору. Робите виважені кроки, нічого не боячись. Не стоїте на місці.
Через декілька кроків, вивчили базові поняття. Вже немає проблем з умовами, циклами та масивами. Це зрозумілі конструкції, які є і в інших мовах програмування.
Тепер ви вчите нову мову не через правила (ви їх знаєте), а через відмінності синтаксису. І використовуєте мову в потрібній вам ніші. Як у прикладі з мобільним додатком.
Завдання №1 для вивчення будь-якої мови після першої — зрозуміти предметну область. Та з'ясувати, які завдання вирішує обрана мова програмування. |
Наприклад, ви займаєтеся Frontend-програмуванням. Якщо ви вчили С, або C++, а переходите на Javascript, то дивитесь: «Так створюються умови в JavaScript. Так працюють цикли. А ось створюються масиви – я знайшов відмінності з мовами, що вивчав раніше, і все розумію. Останнє — базові поняття, методологія». І ви не витрачаєте час на розуміння того, що таке масив. Ви на C++ вивчили.
Як вибрати мову програмування, якщо розуміння в програмуванні ще немає
Раджу вивчати найпопулярніші мови програмування. І орієнтуватись на ту сферу, де хочете працювати. І «хочете жити» цією нішею.
Деяким моїм колегам подобається системне програмування — драйвера, антивіруси, фаєрволи, програмні продукти для автомобільних комп’ютерів. І вони вчили С++ першим. Мова й досі популярна в ігровій сфері.
Якщо вам цікаво працювати з веб-проектами – навчайтесь технології Frontend (JavaScript, Html, CSS) та Backend (Java, Python, ASP.NET Core). Потім зможете вибрати одну нішу та зупинитися на ній. Або стати Full-stack розробником і робити продукт самостійно.
Якщо ж не знаєте, де хочете бути — візьміть мову, яка завжди користується популярністю. Наприклад, С++ або С #. |
Я не дарма розповідав про C-подібні мови. Все, що вам потенційно подобається, пов'язане з C — C #, Java, JavaScript.
Почніть вивчати програмування. Згодом ви зрозумієте, що суть не в мовах, а в самій професії. А поки вчите методологію, зрозумієте власні побажання та зацікавитесь однією або кількома нішами.
Перегляньте на Youtube огляди мов. Зверніть увагу, які завдання вони вирішують.
І приходьте на спеціалізовані заходи, де детально розповідають про професії в IT. Наприклад, на івенти Академії ITSTEP. Послухайте презентації, запитайте про все, що турбує. Розвійте для себе страхи та сумніви.
І не звертайте увагу на конкретній мові — яка найлегша, а де платять більше. Дайте собі час спробувати в IT.
Другий варіант — забути про мови програмування, нішу та інтереси. Стати універсальним фахівцем.
Чітко зрозуміти: чому вчитися, а чому ні — новачкові важко. І самостійно це зробити не завжди вдається.
Якщо не хочете вчитися на курсах, спробуйте працювати з ментором — досвідченим програмістом. Він стане для вас викладачем, допоможе та розповість, як правильно.
Але проблема не тільки в тому, щоб знайти програміста та мотивувати працювати з вами. Є ще кілька факторів, які впливають на рівень та час навчання:
-
Люди зайняті особистими проектами, підвищенням кваліфікації та роботою.
-
Не кожному програмістові подобається викладати.
-
Якщо немає програмістів, які готові працювати з вами безкоштовно, то ментору доведеться платити, як і за курси.
При виборі навчального закладу, курсу ви встановлюєте програму-мінімум — отримати диплом та стати фахівцем. А те, яку мову вчити — на другому місці, чи взагалі поки що не важливо.
А шукати ментора не потрібно — за вами прикріплений цілий викладацький колектив. З чітко налаштованим графіком та програмою навчання.
Якщо вам цікаве програмування, але не знаєте, чого саме хочете від професії — станьте універсальним фахівцем. Записуйтесь на «Професійну комп’ютерну освіту» Академії ITSTEP.
Після навчання ви — фахівець не в одній ніші. А програміст з багажем технологій. Сміливо вибираєте сферу, де бажаєте бути. Усвідомлено, з готовою базою.
На моїй практиці багато прикладів, коли люди після «Професійної комп'ютерної освіти» переходили з однієї сфери в іншу. Наприклад, з розробки мобільних додатків у Frontend. Все залежить від власних бажань та потреб компанії, де працює людина.
І не думайте зараз, яку мову програмування вчити. Якщо ви знаєте методологію програмування, освоїти предметну область другої, третьої… мов легко і цікаво, як прочитати книгу або подивитися всі сезони улюбленого серіалу. Спробуйте! Зробіть перший крок до IT.