Як вивчити мову програмування (з ілюстраціями)

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

Частина1З 6:
Вибираємо мову програмування

  1. Визначтеся з тим, що Вам цікаво.звичайно, ви можете почати вчити будь-яку мову програмування (далі ЯП). Правда, деякі ЯП істотно легше в освоєнні інших... як би там не було, вам потрібно визначитися з тим, заради чого ви будете вчити мову програмування. Це дозволить вам визначитися з тим, що саме вам треба вчити, та й просто стане хорошою відправною точкою.
    • Веб-розробка гріє вам душу? Список ЯП, які вам знадобляться, істотно відрізняється від списку ЯП, необхідних для написання комп'ютерних програм. Мобільна розробка-мрія вашого дитинства? Це вже третій список. Те, що ви будете вчити, залежить від того, чим ви хочете займатися.
  2. Почніть з простішої мови.що б Ви там для себе не вирішили, а починати варто з відносно простих мов високого рівня. Такі мови особливо гарні для початківців, так як вони дозволяють оволодіти базовими принципами і зрозуміти загальну логіку програмування.[1]
    • Найчастіше в цьому контексті згадують про Python і Ruby. Це два об'єктно-орієнтованих ЯП з цілком зрозумілим синтаксисом, що використовуються переважно для створення веб-додатків.
    • "Об'єктно-орієнтований ЯП «спирається на представлення всього у вигляді» об'єктів", що з'єднують всередині себе дані і методи їх обробки, і подальшу маніпуляцію об'єктами. Такими ЯП є, зокрема, C++, Java, Objective-C і PHP.
  3. Почитайте навчальні посібники базового рівня до кількох ЯП.якщо ви до сих пір не визначилися з тим, що вчити, почитайте навчальні посібники до кількох ЯП. Якщо щось вас зачепить-спробуйте розібратися в тому ЯП трохи краще. Завдання ця проста, так як різного роду навчальних матеріалів вступного рівня по ЯП в мережі можна знайти більш ніж достатньо:
    • Python — чудова мова для початківців, який, втім, має досить потужний потенціал, якщо навчитися ним користуватися. Сфера використання-веб-Додатки та ігри.
    • Java — використовується... ох, простіше сказати, де цей Яп не використовується! Майже що все, від ігор і до софта для банкоматів-Java.
    • HTML — Не Яп, а мова розмітки, але для будь-якого веб-розробника просто необхідний.
    • c — один з найстаріших яп, що не втратив актуальність і донині. C - не тільки потужний інструмент сам по собі, але ще і основа для більш сучасних ЯП: C++, C# і Objective-C.

Частина2З 6:
Починаємо з малого

  1. Вивчіть базові принципи ЯП.тут, звичайно, все залежить від обраного вами мови, однак є у ЯП і загальні моменти, виключно для написання корисних програм важливі. Чим раніше ви оволодієте всіма цими поняттями і навчитеся застосовувати їх на практиці, тим краще для вас і ваших навичок програміста. Отже, ось лише деякі з вищезазначених " моментів»:
    • Змінні - у змінній можна зберігати і викликати мінливі дані. Змінними можна управляти, у змінних є типи (дуже спрощено кажучи — числа, символи і так далі), якими і визначається тип зберігаються в змінній даних. Найменування змінних прийнято задавати такими, щоб людина, що читає вихідний код, міг отримати уявлення про те, що в змінній зберігається — так буде простіше зрозуміти логіку роботи програми.
    • Умовні конструкції (вони ж — умовні вирази) - це дія, які виконується в тому випадку, якщо вираз або конструкція істинно або помилково. Найбільш поширеною формою таких виразів можна назвати конструкцію «If-Then» (якщо-то). Якщо вираз істинно (наприклад, якщо x = 5), то відбудеться дія №1, а якщо помилково (x != 5), то дія №2.
    • Функції - в різних мовах програмування їх називають по-різному: десь це процедури, десь-методи, десь-викликаються одиниці. По суті ж, функції являють собою міні-програми, що входять до складу великої програми. Функцію можна викликати кілька разів, що дозволяє програмісту створювати складні програми.
    • Введення даних - досить широко трактується поняття, присутнє в майже що кожному ЯП. Суть його-обробка даних, введених Користувачем, і їх зберігання. Те, як будуть зібрані дані, залежить від програми і доступних користувачеві способів введення даних (з клавіатури, з файлу і так далі). Поняття Введення даних тісно пов'язане з поняттям виведення даних-тобто того, яким чином дані будуть повернуті користувачеві (виведені на екран, записані в файл і так далі).
  2. Встановіть все необхідне ПЗ.багатьом Яп потрібні компілятори-програми, що переводять програмний код в зрозумілі для комп'ютера інструкції. Втім, є і ЯП іншого типу (на зразок Python), в яких програми виконуються відразу, а компіляція їх не потрібно.
    • У деяких ЯП є так звані IDE (Integrated Development Environment, інтегроване середовище розробки), в які входять редактор коду, компілятор/інтерпретатор і відладчик (дебаггер). Це дає програмісту можливість працювати над програмою, образно висловлюючись, за принципом одного вікна. Також в IDE можуть входити Візуальні уявлення ієрархій об'єктів і директорій.
    • Є і онлайн-редактори коду. Ці програми підсвічують синтаксис програмного коду трохи інакше, а також пропонують розробнику доступ до ряду корисних і простих інструментів.

Частина3З 6:
Пишемо свою першу програму

  1. Освоюйте базові концепти по одному за раз.першою програмою, яку пишуть на будь-якому ЯП, є класична «Hello World». Вона дуже проста, вся її суть — вивести на екран текст «Hello, World» (або його варіацію). З цієї програми люди, які вивчають ЯП, повинні засвоїти синтаксис найпростішої робочої програми, а також спосіб виведення даних на екран. Змінюючи текст, можна помітити, як обробляються програмою прості дані. Ось пару статей про те, як створити програму» Hello World " на різних мовах:
  2. Вчіться на основі розбору онлайн-прикладів.у мережі для будь-якого ЯП можна знайти сотні, тисячі прикладів програм, програмок і просто шматків коду. Вивчайте різні аспекти обраного Вами ЯП на основі цих прикладів. Створюючи свої власні програми, спирайтеся на такі ось фрагменти знань.
  3. Вивчіть синтаксис ЯП. що таке синтаксис в контексті ЯП? Спосіб написання програм особливим чином, зрозумілим для компіляторів. У кожного ЯП власні правила синтаксису, хоча, звичайно, зустрічаються і загальні елементи. Вивчення синтаксису мови — один з наріжних каменів вивчення Яп. Досить часто люди навіть думають, що саме вивчення синтаксису зробить їх програмістами. В реальності, звичайно, все не так — синтаксис суть основа, фундамент.
  4. Експериментуйте! Яким саме чином? Вносьте зміни в приклади програм і перевіряйте одержувані результати. Такий підхід куди швидше дозволить вам зрозуміти, що дає результати, а що — ні, ніж якби ви займалися по книзі. Не бійтеся зіпсувати або» зламати " програму, бо виправлення помилок є одним з ключових етапів в процесі розробки ПЗ. Та й потім, з першого разу написати працюючу програму ... ну, це майже що фантастика! [2]
  5. Почніть працювати з дебаггером. програмні помилки (баги) — це те, з чим ви обов'язково зіткнетеся, зайнявшись програмуванням. Помилки будуть скрізь, готуйтеся. Вони можуть бути нешкідливими, відносно нешкідливими або, на жаль, критичними, що не дають програмі скомпілюватися. Процес налагодження програми є одним з ключових етапів розробки ПЗ, повторимо. Привчіться до виправлення помилок якомога раніше.
    • Експериментуючи з програмами, Ви неодмінно що-небудь зробите не так, і це добре. Уміння виправити програму-один з найцінніших навичок для програміста.
  6. Не забувайте коментувати код. майже що всі ЯП дозволяють вносити в програмний код коментарі-текст, що не обробляється компілятором. За допомогою коментарів ви можете внести в програму прості і зрозумілі описи того, що робить та чи інша функція (і не тільки функція). Коментарі стануть в нагоді не тільки вам самим (часом можна і у власному коді заплутатися), а й іншим людям, спільно з якими ви будете працювати над програмою.

Частина4З 6:
Програмуємо регулярно

  1. Програмуйте щодня.на те, щоб оволодіти мовою програмування, піде багато часу. Дуже багато. Навіть Python, відносно простий Яп, чий синтаксис можна освоїти за день-другий, вимагає від будь-кого, хто наміриться опанувати ним досконало, сотень і тисяч годин роботи. Програмування-навик, а тому тому, кому хочеться оволодіти таким навиком досконало, необхідно регулярно практикуватися. Намагайтеся програмувати кожен день, нехай навіть по годині перед сном, якщо немає іншої можливості.
  2. Ставте вашим програмам цілі. встановлюючи складні, але все ж досяжні цілі, ви навчитеся вирішувати проблеми, знаходити рішення, боротися зі складнощами. Наприклад, уявіть собі просту програму-скажімо, калькулятор, а потім подумайте, як ви її напишете. Застосуйте на практиці все те, чого ви вже навчилися.
  3. Обмінюйтеся досвідом і читайте чужі програми.навколо кожного ЯП зібралася величезна спільнота. Якщо ви приєднаєтеся до відповідного співтовариства, то дуже сильно собі допоможете, так як отримаєте доступ до більш ніж якісного навчального матеріалу. Читання чужого коду може надихнути вас, може надати вам сил і допомогти краще зрозуміти ті особливості Програмування, на яких ви до цього буксували.[3]
    • Форуми і онлайн-спільноти, присвячені програмуванню на обраному вами ЯП-ось що слід шукати в першу чергу. Не треба постійно лише задавати питання, беріть участь в житті спільноти повноцінно — це, як ніяк, місця, де люди співпрацюють один з одним, а не проводять безкоштовні навчальні курси. Іншими словами, не соромтеся просити про допомогу, але і не сидіть склавши руки!
    • Напрацювавши більш-менш пристойний досвід, приймайте участь в хакатонах або інших аналогічних заходах — змагання, де треба встигнути написати особливу програму у відведений час. Такі заходи захоплюючі і корисні.
  4. Веселіться.робіть те, що ще не вмієте робити. Вивчайте способи вирішення проблем, а потім використовуйте їх по-своєму. Намагайтеся не радіти тому «що "програма працює і добре" - робіть все можливе, щоб програма працювала бездоганно!

Частина5З 6:
Розширюємо кругозір

  1. Запишіться на курси.університети, коледжі та освітні центри (і не тільки) проводять курси та семінари з програмування, що може стати відмінним варіантом для початківців. Самі посудіть, де ще новачки зможуть наживо поспілкуватися з досвідченими фахівцями?
  2. Читайте тематичні книги.як Ви отримаєте до книг доступ-справа ваша, суть в тому, що з будь-якого ЯП можна знайти сотні книг різного ступеня корисності. Звичайно, Ваші знання не повинні бути суто книжковими, це факт. Проте і в книгах є своя користь.
  3. Вчіть логіку і математику.Програмування багато в чому зав'язано на базовій арифметиці, але і більш складні моменти можуть стати в нагоді, особливо в тих випадках, коли людина займається алгоритмами або пише складну програму. Втім, швидше за все, якщо тільки ви не будете зариватися в складні області, складна математика вам не знадобиться, зате знадобиться логіка, зокрема — комп'ютерна, так як з її допомогою ви зможете краще зрозуміти, як треба вирішувати завдання, що виникають по ходу роботи над складними програмами.
  4. Ніколи не припиняйте програмувати.є популярна теорія "10 тисяч годин", яка говорить, що майстерність приходить через 10 000 годин, проведених за тим чи іншим заняттям. Точна кількість годин як точка досягнення майстерності-питання, звичайно, спірне, але в цілому теорія вірна — майстерність суть результат прикладеної праці і витраченого часу. Не опускайте руки, і одного разу ви станете експертом.[4]
  5. Вивчіть інший ЯП.звичайно, оволодіння навіть одним ЯП буде вам тільки в плюс, проте багато програмістів не зупиняються на досягнутому і вчать кілька мов. Буде непогано, якщо другий або третій ЯП, який ви виберете, буде доповнювати перший — тоді можна буде створювати навіть ще більш складні і цікаві програми. Само собою, вчити нове треба лише тоді, коли старим ви вже оволоділи на пристойному рівні.
    • Є всі шанси, що другу мову ви вивчите швидше першого, але це цілком зрозуміло, так як багато концепти програмування поширені більш ніж широко, особливо у «споріднених» мов.

Частина6З 6:
Застосовуємо отримані навички

  1. Отримайте університетську освіту.цей пункт обов'язковим не є, проте роки навчання можуть відкривати щось нове (а можуть і не відкрити) і познайомити вас з потрібними людьми (теж не факт). Знову ж таки, цей крок не обов'язковий, є багато успішних програмістів, які диплома про вищу освіту не мають.
  2. Зберіть портфоліо. створюючи програми і розвиваючись як фахівець, обов'язково відкладайте кращі зразки ваших робіт окремо-в портфоліо. Саме портфоліо ви будете показувати рекрутерам і інтерв'юерам в якості прикладів того, на що ви здатні. Ті проекти, які ви виконували самостійно і з власної ініціативи, можна додавати в портфоліо без роздумів, а ось ті, над якими ви працювали, будучи співробітником тієї чи іншої компанії, лише з дозволу відповідних осіб.
  3. Станьте фрілансером.програмісти (особливо ті, які спеціалізуються на мобільних додатках) зараз нарозхват. Виконайте пару-трійку проектів як фрілансер-це і для портфоліо корисно, і для гаманця, і для досвіду.
  4. Розробіть власний програмний продукт.платним він буде чи ні-вирішувати вам. Зрештою, зовсім не обов'язково працювати на когось, щоб заробити програмуванням гроші! Якщо ви вмієте писати програми і продавати їх, то справа майже що в капелюсі! Головне - не забувати надавати користувачам підтримку після релізу програми.
    • Модель Freeware (безкоштовне поширення) популярна в разі невеликих програм і утиліт. В такому випадку розробник нічого не заробляє у фінансовому плані, зате отримує репутацію і впізнаване ім'я серед колег по цеху.

Поради

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

Ще почитати: