Для того, щоб освоїти програмування, у будь-якої людини сьогодні є всі необхідні можливості.
З чого потрібно починати
Тут можна обрати з декількох варіантів:
- Самоосвіта - варіант, який можна використовувати як самостійно, так і в якості доповнення до інших методів, адже в інтернеті багато книг, сайтів та додатків, які допомагають початківцям вивчати різноманітні технології і мови програмування. Проте ті ж початківці часто зіштовхуються з труднощами - зокрема, відсутністю готової навчальної програми (програму доводиться формувати самостійно) та необхідністю потужної самодисципліни.
- Вищий навчальний заклад - дасть хорошу теоретичну базу. Серед мінусів - не часті оновлення навчальних програм та значана тривалість навчання (4-5 років).
- Спеціалізовані курси - найшвидший варіант. В цілому, серед всіх трьох варіантів курси програмування можна назвати найдоступнішим, оскільки освоїти їх може будь-яка людина. Плюс для вас одразу підготовлена програма навчання, а в самому навчанні допомагають досвідчені викладачі, які надають потрібні теоретичні знання і забезпечують студентів практичними завданнями, як це, для прикладу, відбувається на курсі "Розробка програмного забезпечення" від Комп'ютерної Академії IT STEP.
Вибір мови, технології та напряму
Вибираючи першу мову програмування, новачкові необхідно враховувати деякі важливі критерії:
Наявність вакансій на ринку праці. Кінцева мета навчання - влаштуватися на роботу програмістом. Це буде зробити досить важко, якщо на ринку праці дуже мало або ж і взгагалі ніхто не шукає розробників, які працюють з обраною вами мовою програмування. Для вибору мови необхідно оцінити сайти з вакансіями, оцінити, яких фахівців зараз шукають, виписати з десяток затребуваних мов. Після чого можна переходити до другого критерію.
Невеликий рівень входження. Якщо ви змушені будете витрачати багато часу на вивчення обраної мови, це може легко у вас відбити бажання взагалі вчитися програмувати. Новачкам найкраще приділяти час мовам, які вважаються більш легкими - це Python, PHP і Ruby.
Також необхідно визначити для себе і напрям програмування. Чи буде це десктопне або мобільне програмування, ігри або веб, можливо, низькорівневе програмування, або щось інше. Найбільш популярні і порівняно легкі галузі - це розробка під веб, клієнти мобільні і десктопні. Під кожен з даних напрямів якась мова може підходити відмінно, а інша - не підходити зовсім. Вибираючи мову програмування, неодмінно враховуйте і цей фактор.
Так чи інакше, необхідно вивчити веб-технології. Йдеться про мови розмітки HTML, стилі JavaScript і CSS. А на наступному етапі вже можна вивчати серверну мову (Python, Ruby, PHP та інші) і веб-фреймворки, які підходять для неї. Необхідно вивчити і бази даних, адже це згадується практично в кожній вакансії програміста.
Як можна отримати початковий досвід
Без досвіду не отримати роботу, а без роботи - не одержати досвід. Замкнуте коло =). Проте з нього можна вибратися!
- По-перше, не треба чекати, поки прочитаєте всі книги з мови програмування. Починайте писати перші рядки коду вже після початку навчання. Виконуйте завдання з книг, передруковуйте приклади, розбирайтеся в них.
- Не чекайте завершення навчання - шукайте перші проекти ще під час нього. Варіант найбільш складний, але цілком робочий. Вам буде потрібно шукати замовлення самостійно та виконувати їх. Виконані проекти ви запишете в досвід і зможете показувати майбутньому роботодавцю. Реальні проекти - дуже великий плюс в резюме.
- Тим, хто знає англійську, краще реєструватися на англомовних біржах, там кількість проектів більша. Шукайте маленькі проекти, що відповідають вашому рівню знань, або трохи вище нього. Подайте заявку на кілька десятків подібних завдань. Не бійтесь отримувати відмови, адже якщо вистрілять одна-дві заявки - у вас з'явиться справжній досвід.
- Хорошим варіантом для того, щоб отримати реальний досвід, можна назвати open source. Таким проектам часто потрібні нові люди, нехай навіть це будуть і програмісти-новачки. Ви можете працювати над пошуками в проектах багів або подивитися в баг-трекері, потім запропонувавши методи вирішення таких проблем. Знайти подібні проекти легко буде на GitHub або ж на інших сервісах для хостингу кодів. Не соромтеся час від часу там ставити питання.
- Нарешті, відмінний варіант вирішення проблеми з початковим досвідом - курси програмування, пропоновані Академією IT STEP. Під час навчання студенти академії мають можливість відвідувати зустрічі з представниками компаній-розробників. І нерідко талановиті студенти курсів знаходять роботу ще до завершення процесу навчання.
Чи важлива англійська мова?
Так. Якщо ви не знаєте її - вчіть, якщо знаєте - вдосконалюйте. Вам необхідно вчитися читати і писати, говорити і слухати англійською. Великий акцент при цьому необхідно робити на технічну літературу. Можете слухати англомовні подкасти та читати англомовні підручники з програмування. Все це в подальшому однозначно допоможе вам в роботі за фахом.
Що необхідно крім мови програмування
Окрім власне мови програмування і англійської мови, програмісту також потрібно володіти ще й іншими знаннями. Що саме це за знання - залежить від напряму, обраного вами. Веб-програмісту точно потрібно знати HTML, JavaScript і CSS. Десктоп-програмісту необхідно вчити API операційної системи і різноманітні фреймворки.
Всім програмістам також необхідно вивчати алгоритми. Спробуйте пройти курс на Coursera або ж вибрати собі відповідну книгу по алгоритмам. Потрібно також знати одну з баз даних, вивчити структури даних і патерни програмування. Варто вивчити і репозиторії коду, хоча б один. Обов'язково необхідно знати і системи версійного контролю. Вибрати варто Git, який є найбільш популярним. Вам необхідно також вивчити інструменти, з якими ви ведете роботу, операційну систему, а також середовище розробки. Нарешті, головний навик програміста - це вміння гуглити. Без цього сьогодні в програмуванні просто не прожити.
Останні кроки
Для пошуку роботи необхідно підготувати резюме. Не включайте в нього зайву інформацію, проте не замовчуйте про ваші уміння. Якщо вас запросили на інтерв'ю - не знехтуйте підготовкою. Пройдіться по матеріалам, які ви вказали в своєму резюме, перегляньте ті проекти, над якими раніше працювали, згадайте технології, які вивчили. І вперед - до підкорення вершин в ІТ-сфері!