Як стати програмістом

VURGLAR-GLASSДосить часто чую це питання. Це, безперечно, добре, що безліч людей збираються зробити програмування своєю професією. На жаль, універсальну інструкцію написати практично неможливо, оскільки існує величезна кількість напрямів (веб-розробка, системне, прикладне ігрове ПО і пр) і мов (C/C++/C#, Java, JavaScript, PHP, Python, Ruby, Lisp, F# і т. д.), але якісь загальні міркування для початку навчання постараюся Вам викласти.

Стартові дані

Насамперед — врахуйте, що програмування — це об’ємна і досить складна система знань. Вам потрібно зрозуміти, що на те, щоб стати висококваліфікованим затребуваним професіоналом, йдуть роки практики. Більше того, не кожен програміст є хорошим фахівцем у своїй галузі, тому крім практики готуйтеся багато вчитися і вкладати в своє навчання час. Причому, необов’язково витрачати величезні гроші на сертифіковані курси і навчання в навчальних класах — тут більше залежить від Вашої мотивації, т. к. в Інтернеті безліч матеріалів та інформації з програмування (а також онлайн-курсів, тематичних форумів тощо). Ви легко зможете знайти відповіді практично на будь-які Ваші питання з прикладами і описами рішень інших програмістів.

Щоб стати програмістом рекомендуємо пройти курсы программирования.

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

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

Технічна і теоретична підготовка

Як вибрати мову програмування для вивчення? Кожна мова гарний по-своєму і використовується в різних областях. Є величезна кількість статей в Інтернеті по кожній з мов. Наприклад, можна переглянути оглядову статтю з актуальним трендам 2015 року. Вибір за Вами, можливо Вам захочеться почати з чогось «попроще».

Отже, Ви вибрали мову програмування, вивчення якого Ви хочете почати.

Перед тим як кинутися в пучину його синтаксичних конструкцій Вам потрібно створити для себе зручну робочу середу.

А саме — вибрати операційну систему, в якій Ви будете складати свої перші програми (необов’язково відразу кидатися в область кроссплатформної розробки!).

Наприклад, для C/C++/C# F# або Java можна вибрати Windows, т. к. для цих мов є дуже потужні і зручні середовища програмування (IDE, Integrated Development Environment), є «де-факто», промисловими стандартами (Наприклад, Microsoft Visual Studio C-мов, Eclipse, NetBeans або продукти від JetBrains для Java, PHP, JavaScript, Ruby, Python та інших мов).

Якщо Ви вибрали Linux-платформу — Ви можете використовувати Code::Blocks, Eclipse, NetBeans або інші IDE (є чудова сторінка в Wikipedia для порівняння середовищ розробки для різних платформ і мов)

Досить часто виникають дрібні завдання, коли Вам не потрібні всі можливості IDE, а досить простого і зручного редактора коду. Як варіант — Notepad++ або UltraEdit під Windows, а під Linux-платформи: Sublime Text або Bluefish. Знову ж таки, потрібно врахувати, що редакторів коду і різних середовищ розробки існує безліч, а Вам потрібно вибрати для себе ті кошти, які комфортні саме Вам.

«Поїхали!»

Досить часта помилка новачків — хочеться швидко все і відразу, а класичні алгоритми — це «дуже нудно» і нікому не потрібно, т. к. технології стали дуже розумними. Що ж, на жаль, потім і виходить відповідну якість.

Основне завдання на даному етапі — не досконально вивчити синтаксис вибраного Вами мови програмування, а розібратися в базових структури даних та алгоритмах.

Для прикладу — хороша книга за алгоритмами (не обійтися і без «класики» — книг Ніклауса Вірта і Дональда Кнута, але остання важка для читання новачкам).

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

Можна написати який-небудь плагін для існуючої програми/системи (наприклад, для FAR Manager або який-небудь CMS). Звичайно, не забувайте читати відповідні книги по обраному Вами мови і дивіться навчальні сайти.

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

А далі, як відчуєте що «зміцніли», маєте у своїй скарбничці кілька закінчених проектів (необов’язково комерційних) і не боїтеся тестових завдань (приклади яких Ви, звичайно ж, вже неодноразово вирішували на дозвіллі і в процесі навчання) — пора шукати роботу по обраному Вами напрямку!

Постарайтеся вибрати ту компанію, в якій у Вас буде можливість розвиватися в професійному плані. Можна для початку піти junior-розробником. Визначальним фактором тут буде хороша команда — досвідчені товариші допоможуть швидше «залатати» прогалини у Ваших знаннях, вкажуть на очевидні помилки, підкажуть як правильно застосовувати шаблони проектування, підтримають у ситуаціях коли «нічого не зрозуміло». Заодно, Ви отримаєте незамінний досвід професійної комерційної розробки — навчитеся слідувати певним правилам, прийнятим в командах і компаніях (наприклад, по форматуванню і документування коду), розберетеся і звикнете використовувати системи керування версіями, без використання яких ні один більш-менш серйозний проект не повинен обходитися, а також познайомитеся з системами багтрекинга (відслідковування помилок) і навчіться рефакторінгу.

Закладка постоянная ссылка.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *