Як вивчити мову програмування

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

кроки

Частина 1 з 6:
Вибираємо мову програмування
  1. Learn a Programming Language Step 1
1. Визначтеся з тим, що вам цікаво. Звичайно, ви можете почати вчити будь-яку мову програмування (далі ЯП). Правда, деякі ЯП істотно легше в освоєнні інших ... Як би там не було, вам потрібно визначитися з тим, заради чого ви будете вчити мову програмування. Це дозволить вам визначитися з тим, що саме вам треба вчити, та й просто стане гарною відправною точкою.
  • Веб-розробка гріє вам душу? Список ЯП, які вам знадобляться, істотно відрізняється від списку ЯП, необхідних для написання комп`ютерних програм. Мобільна розробка - мрія вашого дитинства? Це вже третій список. Те, що ви будете вчити, залежить від того, чим ви хочете займатися.
  • Learn a Programming Language Step 2
    2. Почніть з більш простого мови. Що б ви там для себе не вирішили, а починати варто з відносно простих мов високого рівня. Такі мови особливо гарні для початківців, так як вони дозволяють опанувати базовими принципами і зрозуміти загальну логіку програмування.
  • Найчастіше в цьому контексті згадують про Python і Ruby. Це два об`єктно-орієнтованих ЯП з цілком зрозумілих синтаксисом, використовуваних переважно для створення веб-додатків.
  • «Об`єктно-орієнтований ЯП» спирається на уявлення у вигляді «об`єктів», що з`єднують всередині себе дані і методи їх обробки, і подальшу маніпуляцію об`єктами. Такими ЯП є, зокрема, C ++, Java, Objective-C і PHP.
  • Learn a Programming Language Step 3
    3. Почитайте навчальні посібники базового рівня до кількох ЯП. Якщо ви до цих пір не визначилися з тим, що вчити, почитайте навчальні посібники до кількох ЯП. Якщо щось вас зачепить - спробуйте розібратися в тому ЯП трохи краще. Завдання це проста, так як різного роду навчальних матеріалів вступного рівня по ЯП в мережі можна знайти більш ніж достатньо:
  • Python - чудова мова для початківців, який, втім, має досить потужний потенціал, якщо навчитися ним користуватися. Сфера використання - веб-додатки та ігри.
  • Java - використовується ... ох, простіше сказати, де цей ЯП не використовується! Майже що всі, від ігор і до софта для банкоматів - Java.
  • HTML - Чи не ЯП, а мова розмітки, але для будь-якого веб-розробника просто необхідний.
  • C - один з найстаріших ЯП, що не втратив актуальність і донині. C - не тільки потужний інструмент сам по собі, але ще і основа для більш сучасних ЯП: C ++, C # і Objective-C.
  • Частина 2 з 6:
    Починаємо з малого
    1. Learn a Programming Language Step 4
    1. Вивчіть базові принципи ЯП. Тут, звичайно, все залежить від обраного вами мови, проте є у ЯП і загальні моменти, виключно для написання корисних програм важливі. Чим раніше ви опануєте усіма цими поняттями і навчитеся застосовувати їх на практиці, тим краще для вас і ваших навичок програміста. Отже, ось лише деякі з вищезгаданих «моментів»:
    • Змінні - у змінній можна зберігати і викликати мінливі дані. Змінними можна управляти, у змінних є типи (дуже спрощено кажучи - числа, символи і так далі), якими і визначається тип зберігаються в змінної даних. Найменування змінних прийнято ставити такими, щоб людина, що читає вихідний код, міг отримати уявлення про те, що в змінної зберігається - так буде простіше зрозуміти логіку роботи програми.
    • Умовні конструкції (вони ж - умовні вирази) - це дія, які виконується в тому випадку, якщо вираз або конструкція істинно або хибно. Найбільш поширеною формою таких виразів можна назвати конструкцію «If-Then» (якщо щось). Якщо вираз істинний (наприклад, якщо x = 5), то станеться дію №1, а якщо помилково (x != 5), то дія №2.
    • Функції - в різних мовах програмування їх називають по-різному: десь це процедури, десь - методи, десь - викликаються одиниці. По суті ж, функції являють собою міні-програми, що входять до складу великої програми. Функцію можна викликати кілька разів, що дозволяє програмісту створювати складні програми.
    • Введення даних - досить широко трактуються поняття, яке у майже кожному ЯП. Суть його - обробка даних, введених користувачем, і їх зберігання. Те, як будуть зібрані дані, залежить від програми і доступних користувачеві способів введення даних (з клавіатури, з файлу і так далі). Поняття введення даних тісно пов`язане з поняттям виведення даних - тобто того, яким чином дані будуть повернуті користувачеві (виведені на екран, записані в файл і так далі).
  • Learn a Programming Language Step 5
    2. Встановіть все необхідне ПЗ. Багатьом ЯП потрібні компілятори - програми, що переводять програмний код в зрозумілі для комп`ютера інструкції. Втім, є і ЯП іншого типу (на кшталт Python), в яких програми виконуються відразу, а компіляція їх не потрібно.
  • У деяких ЯП є так звані IDE (Integrated Development Environment, інтегроване середовище розробки), в які входять редактор коду, компілятор / інтерпретатор і відладчик (дебаггер). Це дає програмісту можливість працювати над програмою, образно висловлюючись, за принципом одного вікна. Також в IDE можуть входити візуальні уявлення ієрархій об`єктів і директорій.
  • Є і онлайн-редактори коду. Ці програми підсвічують синтаксис програмного коду трохи інакше, а також пропонують розробнику доступ до ряду корисних і простих інструментів.
  • Частина 3 з 6:
    Пишемо свою першу програму
    1. Learn a Programming Language Step 6
    1. Освоюйте базові концепти по одному за раз. Першою програмою, яку пишуть на будь-якому ЯП, є класична «Hello World». Вона дуже проста, вся її суть - вивести на екран текст «Hello, World» (або його варіацію). З цієї програми люди, які вивчають ЯП, повинні засвоїти синтаксис найпростішої робочої програми, а також спосіб виведення даних на екран. Змінюючи текст, можна помітити, як обробляються програмою прості дані. Ось пару статей про те, як створити програму «Hello World» на різних мовах:
  • Learn a Programming Language Step 7
    2. Вчіться на основі розбору онлайн-прикладів. У мережі для будь-якого ЯП можна знайти сотні, тисячі прикладів програм, програмок і просто шматків коду. Вивчайте різні аспекти обраного вами ЯП на основі цих прикладів. Створюючи свої власні програми, спирайтеся на такі ось фрагменти знань.
  • Learn a Programming Language Step 8
    3. Вивчіть синтаксис ЯП. Що таке синтаксис в контексті ЯП? Спосіб написання програм особливим чином, зрозумілим для компіляторів. У кожного ЯП власні правила синтаксису, хоча, звичайно, зустрічаються і загальні елементи. Вивчення синтаксису мови - один з наріжних каменів вивчення ЯП. Досить часто люди навіть думають, що саме вивчення синтаксису зробить їх програмістами. У реальності, звичайно, все не так - синтаксис суть основа, фундамент.
  • Learn a Programming Language Step 9
    4. експериментуйте! Яким саме чином? Вносьте зміни в приклади програм і перевіряйте одержувані результати. Такий підхід куди швидше дозволить вам зрозуміти, що дає результати, а що - ні, ніж якби ви займалися по книзі. Не бійтеся зіпсувати або «зламати» програму, бо виправлення помилок є одним з ключових етапів у процесі розробки ПЗ. Та й потім, з першого разу написати працюючу програму ... ну, це майже що фантастика!
  • Learn a Programming Language Step 10
    5. Почніть працювати з дебаггера. Програмні помилки (баги) - це те, з чим ви обов`язково зіткнетеся, зайнявшись програмуванням. Помилки будуть всюди, готуйтеся. Вони можуть бути нешкідливими, щодо нешкідливими або, на жаль, критичними, що не дають програмі скомпілювати. Процес налагодження програми є одним з ключових етапів розробки ПЗ, повторимо. Привчитеся до виправлення помилок якомога раніше.
  • Експериментуючи з програмами, ви неодмінно що-небудь зробите не так, і це добре. Уміння виправити програму - один з найцінніших навичок для програміста.
  • Learn a Programming Language Step 11
    6. Не забувайте коментувати код. Майже що всі ЯП дозволяють вносити в програмний код коментарі - текст, що не обробляється компілятором. За допомогою коментарів ви можете внести в програму прості і зрозумілі описи того, що робить та чи інша функція (і не тільки функція). Коментарі стануть в нагоді не тільки вам самим (часом можна і у власному коді заплутатися), а й іншим людям, спільно з якими ви будете працювати над програмою.
  • Частина 4 з 6:
    програмуємо регулярно
    1. Learn a Programming Language Step 12
    1. програмуйте щодня. На те, щоб оволодіти мовою програмування, піде багато часу. Дуже багато. Навіть Python, відносно простий ЯП, чий синтаксис можна освоїти за день-другий, вимагає від будь-якого, хто виявить бажання оволодіти ним досконало, сотень і тисяч годин роботи. Програмування - навик, а тому той, кому хочеться опанувати таким навиком досконало, необхідно регулярно практикуватися. Намагайтеся програмувати кожен день, нехай навіть по годині перед сном, якщо немає іншої можливості.
  • Learn a Programming Language Step 13
    2. Ставте вашим програмам мети. Встановлюючи складні, але все ж досяжні мети, ви навчитеся вирішувати проблеми, знаходити рішення, боротися зі складнощами. Наприклад, уявіть собі просту програму - скажімо, калькулятор, а потім подумайте, як ви її напишете. Застосуйте на практиці все те, чого ви вже навчилися.
  • Learn a Programming Language Step 14
    3. Обмінюйтеся досвідом і читайте чужі програми. Навколо кожного ЯП зібралася величезна спільнота. Якщо ви приєднаєтеся до відповідного товариства, то дуже сильно собі допоможете, так як отримаєте доступ до більш ніж якісному навчальному матеріалу. Читання чужого коду може надихнути вас, може надати вам сил і допомогти краще зрозуміти ті особливості програмування, на яких ви до цього буксували.
  • Форуми і онлайн-спільноти, присвячені програмуванню на обраному вами ЯП - ось що слід шукати в першу чергу. Не треба постійно лише задавати питання, беріть участь в житті спільноти повноцінно - це, як ніяк, місця, де люди співпрацюють один з одним, а не проводять безкоштовні навчальні курси. Іншими словами, не соромтеся просити про допомогу, але і не сидіть склавши руки!
  • Напрацювавши більш-менш пристойний досвід, приймайте участь в Хакатони чи інших аналогічних заходах - змагання, де треба встигнути написати особливу програму в відведений час. Такі заходи цікаві і корисні.
  • Learn a Programming Language Step 15
    4. веселіться. Робіть те, що ще не вмієте робити. Вивчайте способи вирішення проблем, а потім використовуйте їх по-своєму. Намагайтеся не радіти тому, що «програма працює і добре» - робіть все можливе, щоб програма працювала бездоганно!
  • Частина 5 з 6:
    розширюємо кругозір
    1. Learn a Programming Language Step 16
    1. Запишіться на курси. Університети, коледжі та освітні центри (і не тільки) проводять курси і семінари з програмування, що може стати відмінним варіантом для початківців. Самі посудіть, де ще новачки зможуть наживо поспілкуватися з досвідченими фахівцями?
  • Learn a Programming Language Step 17
    2. Читайте тематичні книги. Як ви отримаєте до книг доступ - залежить лише від вас, суть в тому, що з будь-якого ЯП можна знайти сотні книг різного ступеня корисності. Звичайно, ваші знання не повинні бути суто книжковими, це факт. Проте і в книгах є своя користь.
  • Learn a Programming Language Step 18
    3. Вивчайте логіку і математику. Програмування багато в чому зав`язане на базовій арифметиці, а й більш складні моменти можуть стати в нагоді, особливо в тих випадках, коли людина займається алгоритмами або пише складну програму. Втім, швидше за все, якщо тільки ви не будете зариватися в складні області, складна математика вам не знадобиться, зате знадобиться логіка, зокрема - комп`ютерна, так як з її допомогою ви зможете краще зрозуміти, як треба вирішувати завдання, що виникають по ходу роботи над складними програмами.
  • Learn a Programming Language Step 19
    4. Ніколи не припиняйте програмувати. Є популярна теорія «10 тисяч годин», де було написано, що майстерність приходить через 10 000 годин, проведених за тим чи іншим заняттям. Точна кількість годин як точка досягнення майстерності - питання, звичайно, спірне, але в цілому теорія вірна - майстерність суть результат прикладеної праці та витраченого часу. Не опускайте руки, і одного разу ви станете експертом.
  • Learn a Programming Language Step 20
    5. Вивчіть інший ЯП. Звичайно, оволодіння навіть одним ЯП буде вам тільки в плюс, проте багато програмісти не зупиняються на досягнутому і вчать кілька мов. Буде непогано, якщо другий або третій ЯП, який ви виберете, буде доповнювати перший - тоді можна буде створювати навіть ще більш складні і цікаві програми. Само собою, вчити нове треба лише тоді, коли старим ви вже оволоділи на пристойному рівні.
  • Є всі шанси, що друга мова ви вивчите швидше першого, але це цілком зрозуміло, тому що багато концептів програмування поширені більш ніж широко, особливо у «родинних» мов.
  • Частина 6 з 6:
    Застосовуємо отримані навички
    1. Learn a Programming Language Step 21
    1. Отримайте університетську освіту. Цей пункт не є обов`язковим, однак роки навчання можуть відкривати щось нове (а можуть і не відкрити) і познайомити вас з потрібними людьми (теж не факт). Знову ж таки, цей крок не обов`язковий, є багато успішних програмістів, які диплома про вищу освіту не мають.
  • Learn a Programming Language Step 22
    2. Зберіть портфоліо. Створюючи програми і розвиваючись як фахівець, обов`язково відкладайте кращі зразки ваших робіт окремо - в портфоліо. Саме портфоліо ви будете показувати рекрутерам і інтерв`юерам як приклади того, на що ви здатні. Ті проекти, які ви виконували самостійно і з власної ініціативи, можна додавати в портфоліо без роздумів, а ось ті, над якими ви працювали, будучи співробітником тієї чи іншої компанії, лише з дозволу відповідних осіб.
  • Learn a Programming Language Step 23
    3. Стати фрілансером. Програмісти (особливо ті, які спеціалізуються на мобільних додатках) зараз нарозхват. Виконайте пару-трійку проектів як фрілансер - це і для портфоліо корисно, і для гаманця, і для досвіду.
  • Learn a Programming Language Step 24
    4. Розробіть власний програмний продукт. Платним він буде чи ні - вирішувати вам. Зрештою, зовсім не обов`язково працювати на когось, щоб заробити програмуванням гроші! Якщо ви вмієте писати програми і продавати їх, то справа майже що в капелюсі! Головне - не забувати відповідальності за обслуговування клієнта після релізу програми.
  • Модель Freeware (безкоштовне розповсюдження) популярна в разі невеликих програм і утиліт. В такому випадку розробник нічого не заробляє в фінансовому плані, зате отримує репутацію і впізнаване ім`я серед колег по цеху.
  • Поради

    • Хочете створювати гри? Вивчайте Python, C ++ і Java.З цієї трійці C ++ дає найкращу продуктивність, Python найпростіший, а Java запуститься на всіх ОС без особливих проблем.
    • Дізнайтеся більше про направлення Free software (Безкоштовне ПО). Вивчайте вихідний код програм, які можна знайти тут. Навіщо, самі подумайте, винаходити велосипед, коли можна взяти готовий велосипед і просто його поліпшити? Головне - розуміти, що саме ви програмуєте.
    • Для багатьох людей приклади і завдання з підручника з програмування - це взагалі ні про що. Намагайтеся шукати і вирішувати цікаві для вас завдання.
    • Вивчаючи щось нове, корисно буде самостійно це реалізувати, потім внести зміни, спробувати вгадати результати і, як наслідок, наблизитися до розуміння суті.
    • Використовуйте сучасні інтерфейси і актуальні версії ЯП.
    • Додаткові матеріали - ваші друзі. Немає нічого погано в тому, що ви щось забули або не запам`ятали. Всьому свій час, не переживайте. Головне - знати. де підглянути!
    • Доброю практикою буде навчання інших - це дозволить вам не тільки краще зрозуміти матеріал, але і поглянути на нього з боку.
    Cхоже