Керівництво по вибору і вивченню мов програмування


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

1. Виберіть мету вивчення мови програмування

Наприклад: веб, десктоп, смартфони і т. ін. В результаті коло мов скоротиться. Якщо мета – просто спробувати програмування, то варто вибрати легку і цікаву мову. На цю тему також вже висловлювалися експерти Tproger.

2. Постав питання на форумі

Знаючи мету, Ви можете точніше поставити питання профільних форумах. Наприклад: “Я хочу розробляти додатки для iPhone (під iOS), яку мову мені треба вивчити?”. Також можете зібрати статистику, яка мова потрібніше на ринку праці і в якій галузі. Буквально, говорячи про мобільну розробку, чисельно порівнявши аудиторію користувачів Android, iOS і Windows Phone.

До речі, питання треба вміти ставити. Про те, як це правильно робити, дуже детально розповідали хлопці з Stack Overflow. А ще можна просто пошукати готову відповідь на своє запитання, і це також окрема навичка.

3. Читайте різні статті на тему програмування

Почніть вивчати публікації про засади програмування (зокрема, з алгоритміки). Паралельно читайте матеріали, присвячені кожному незрозумілому аспекту (змінні, функції, ТОП, цикли, умови тощо).

4. Вивчіть інформацію про мову, що вивчається

Подивіться презентації від розробників, читайте статті, вивчіть форуми: дізнайтеся про переваги і недоліки мови, “хитрощі й трюки” і т. ін. Запитуйте на форумах, у соцмережах – занурюйтеся в середовище. Зосередьтесь на здобутті нових знань, а не на спілкуванні та мріях. За кожним незрозумілим пунктом збирайте інформацію (з будь-яких джерел: статей, форумів, співтовариств, від людей) до тих пір, поки не зрозумієте. (“Поліморфізм? Що це? Де це може згодитися?”).

5. Розберіться в основних прийомах програмування

Ниже буде наведений список таких прийомів. Потрібно пошукати і скласти список посилань на довідники з мови, уроки й поглиблено вивчати синтаксис. Переходьте до практики. Почніть з простого: виведіть на екран “Hello, world!”, сортуйте масив, найдіть слово в тексті, переверніть зображення і т. д., поступово підвищуйте рівень складності.

6. Створіть щось “справжнє”

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

7. Удосконалюйте код

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

“Середній рівень” у програмуванні – розпливчате поняття. Вірогідно, Ви повинні вміти писати закінчені програми. Погано або добре, швидко або повільно – не так важливо, як важливо те, що вони працюють. Так або інакше, але працюють.

8. Порівнюйте себе з іншими

Те, що Ви програміст високого рівня, з’ясується в порівнянні. Ви виявитеся здатними бачити помилки і проблеми “середняків”: вони витрачають час на винахід велосипедів, використовують погані рішення (“милиці”) там, де очевидними є кращі, мають багато проблем із рефакторингом і швидкістю розв’язання задач. Програміст високого рівня кодить і швидше, і якісніше за них.

Приклад

Розглянемо, як людина могла б пояснити наведені твердження.

1. Я хочу створювати ігри!

У мене мрія зробити гру типу “Маріо” для комп’ютера, в перспективі хотілося б робити ігри для смартфонів і заробляти на цьому, хотілося б створювати нескладні утилітки для себе.

2. Я вибрав ActionScript 3.0.

Запитав на форумі, що прочитати, знайшов багато літератури, став читати і нічого не розумію.

3. Я читаю статті.

Я став розбиратися з ТОП, перечитувати сторінки своїх підручників, працюю з пошуковою системою і шукаю статті, які краще пояснюють. Я пропускаю відрізки коду, хоча якщо там є коментарі, то намагаюся розібратися в тому, що відбувається.

4. Я з’ясовую, як грамотно писати мовою.

Тут якась проблема: всі говорять, що “писати в кадрах – зло”. Розбираюся, як писати у файлах, на форумі thebestprogrammerforum.org, де мені допомагають шукати помилки в непрацюючому коді. Поки я з ним розбираюся, я ще більше дізнаюся багато нового (якісь MVC, бібліотеки, ще й flex).

5. Я можу програмувати і хочу створити щось просте!

Я хотів написати гру. Спробую щось нескладне. Я виписав основні моменти, які мені потрібно освоїти для створення гри:

Математика
  • генерація випадкового числа;
  • тригонометричні функції (синус, косинус, тангенс).
Графіка
  • робота з картинками, пікселями, прозоростями, кольором;
  • програмне малювання;
  • виведення зображень на екран, робота з шарами (z-індекс);
  • способи компонування зображень (об’єднання, батьки, нащадки);
  • зміна стану об’єктів (розміри, координати, поворот).
Текст
  • поля введення, відображення тексту на екрані;
  • робота з текстовими даними (пошук, заміна, об’єднання, регулярні вирази);
  • форматування тексту, використання стилів для форматування.
Файли
  • збереження даних у файл;
  • використання локальних баз даних.
Інтернет
  • завантаження зовнішніх даних;
  • відправка даних на сервер.
Інтерактивність
  • управління з мишки, клавіатури, сенсорного екрана;
  • допоміжні компоненти графічного інтерфейсу (кнопки, прапори, радіо, спливаючі меню і т. д.).
Анімація
  • зміна стану об’єктів, що відображаються, в часі;
  • робота з відео.
Час
  • таймери.
Робота зі звуком
Робота з можливостями пристрою
  • наприклад, GPS, вебкамера, мікрофон, акселерометр і т. д.

6. Я вирішив зробити гру за усіма правилами геймдева.

Узяв і описав гру “Квачі”. Що і як повинно в ній працювати, що може робити користувач, як реагуватиме комп’ютер. Став писати, які функції і класи для цього знадобляться. Написав код, який не працює. Став шукати причини, виявилася, дещо не врахував у логіці та й в синтаксисі багато помилок. Помилки вже повторюються. Я хибую в тому самому, але в програмі це виглядає по-різному. Став вести щоденник помилок і відстежувати методики програмування, при яких я їх не допускаю. Все придумано до мене тисячу разів, а я про це просто ще не знаю.

7. За моїми плечима проста іграшка “Квачі”, 2048.

Я розібрався в тому, як робити додатки для смартфона з мого ж коду. Мені сподобався Air. Я роблю парсер сайтів на ньому. У мене багато ідей і проектів. Я прокачуюся далі.

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *