
Дізнайтесь більше про нові кар'єрні можливості в 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?