fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Технології

Як стати програмістом – досвід та рекомендації Sigma Software

Талановиті програмісти високо цінуються в світі, вони отримують великі зарплати і мають достатньо роботи. Тому інтерес до програмування у багатьох країнах високий. Технічний директор Дмитро Лапшин і директор з рекрутменту Михайло Антонович, який також є керівником софтверного університету Sigma Software University, розповіли, що необхідно для успішного початку кар’єри програміста.
Основні види програмування
Єдиної універсальної професії «програміст» не існує, тому перш за все варто визначити, що саме буде цікаво створювати. Нижче перераховані основні напрями в цій професії. Зрозуміло, що перелік не є вичерпним, але дає уявлення про ситуацію на ринку в цілому.
Програмування для web. Чули про Gmail або Dropbox? Створення подібних веб-додатків і є програмуванням для web. Цей напрямок має відгалуження: front-end і back-end. Коли ви відкриваєте той же Gmail, то бачите тільки одну частину програми – клієнтську. На жаргоні програмістів – front-end. Але основні обчислення здійснюються на сервері. Створення коду для серверної частини це back-end.
Для back-end використовуються мови програмування: Java, JavaScript, C#, Ruby, PHP, Python. Для front-end: JavaScript з надбудовами TypeScript і CoffeeScript.
Програмування автономних enterprise-систем. Це можуть бути системи, які взагалі не мають інтерфейсу. Наприклад, механізми обробки статистики показу онлайн-реклами. Тут використовуються мови програмування Java, C#, Python.
Big Data і машинне навчання. «Гаряча» тема, яка охоплює створення програмних продуктів для обробки і аналізу петабайтов накопичених даних. Використовують мови Java, Scala. Для систем машинного навчання переважно застосовують Python.
Сегмент, який охоплює рішення для social media, блогів, e-commerce, майже повністю базується на використанні PHP.
Створення програм для персональних комп’ютерів. Цей вид потроху втрачає популярність під натиском web. Тут програмісти працюють на с++ З бібліотекою QT, C# і платформою Microsoft .NET.
Що цікаво, останнім часом десктопні програми почали створювати з допомогою web-технологій, застосовуючи інструменти, подібні Node-WebKit. Наприклад, саме так створений клієнт для дуже популярного месенджера Slack.
Розробка комп’ютерних ігор. В цій сфері використовуються переважно З++, для створення казуальних або не дуже вимогливих 3D-ігор також популярна платформа Unity, яка дозволяє писати на C#.
Програмування для вбудованих систем. Наприклад, написання драйверів, написання програм для малопотужних пристроїв, інтернету речей тощо. Окрема і складна для вивчення галузь, де переважно використовується «чистий» або навіть Асемблер.
Етапи становлення програміста
Перший крок – вивчення computer science: все, що стосується парадигм програмування (принаймні те, що стосується об’єктно-орієнтованого та функціонального програмування), алгоритми, структури даних, формує склад мислення. У ВУЗІ або самостійно – не має значення. Вибір конкретної мови на даному етапі не має дуже великого значення, але, з іншого боку, немає сенсу у вивченні таких мов, як Basic або Pascal, які вже багато років майже не використовуються в індустрії. На нашу думку, Python може бути дуже непоганим вибором для початківця.
Дмитро Лапшин: «Може скластися помилкове враження, що людині достатньо вивчити інструментарій і якісь базові речі в програмуванні – і він готовий Junior-програміст. Це не так. Junior в першу чергу цінуються фундаментальні знання».
Другий крок – закінчити курси з програмування.
Михайло Антонович: «Тільки курси потрібні не ті, які організовують компанії, які займаються організацією курсів. Має сенс шукати навчальні центри при IT-компаніях. Наприклад, навчання на курсах Sigma Software триває 2 місяці, стажування інтерном – ще 2-4 місяці. Щоб потрапити на курси, кандидат повинен бути як мінімум студентом 3-4 курсу профільного ВУЗУ».
Третій крок – інтернатура в IT-компанії і спеціалізація, за результатами навчання та стажування необхідно остаточно обрати напрям, у якому далі майбутній програміст повинен розвиватися й удосконалюватися. Дуже важливо побувати в «шкурі» інтерна, отримати досвід роботи над реальними проектами.
Останній, четвертий крок – отримання позиції Junior-розробника і роботу над реальними комерційними проектами. Перше, до чого потрібно бути готовим або доведеться швидко навчитися, – це вміння працювати в команді. Прийняти стиль і принципи роботи команди, вчитися працювати саме на результат, а не кодити з 9 до 18 п’ять днів на тиждень. І найголовніше – необхідно продовжувати вчитися чомусь новому. Тому що реальність комерційної розробки відрізняється від того, чого навчають на курсах або під час стажування.
КОРИСНІ ДОДАТКОВІ НАВИЧКИ ТА ВМІННЯ
З усіх необхідних додаткових знань найважливіше – це володіння англійською на рівні intermediate або краще. Це дозволить вивчати безліч корисних матеріалів, наприклад, відеолекції MIT (Массачусетського технологічного інституту).
«Для майбутнього програміста важливо стежити за тенденціями, розуміти, звідки вітер дме». Для цього варто читати аналітичні матеріали, дослідження на профільних ресурсах зразок www.infoq.com, дискусій Reddit або Хабрахабр, хоч останній лають всі, кому не лінь. Також варто звернути увагу на дайджести DOU».
Суттєвою конкурентною перевагою буде отримання знань в областях, де будуть застосовуватися навички програмування. Тобто при програмуванні для фінансового сектора, скажімо, варто орієнтуватися у звітності, розуміти, що програма буде робити з точки зору бізнесу.
Важливо виробити звичку враховувати «користувальницький досвід», передбачити, як програма буде виглядати з точки зору користувача, наскільки вона буде зрозумілою і зручною. Дизайнером інтерфейсів бути зовсім не обов’язково, але ази ергономіки ЗА майбутній програміст знати просто зобов’язаний. Також корисно освоїти основи тестування – це допоможе уникнути маси дурних помилок в роботі.
НАОСТАНОК
Дмитро Лапшин: «Концептуально все починається з того, що людина щось робить для себе. Першими кроками має бути рішення якихось простих алгоритмів: відсортувати список улюблених пісень за алфавітом, наприклад. Також важливими якостями є посидючість і вміння думати нестандартно, або, як кажуть по-англійськи, «think outside the box».
Михайло Антонович: «Узагальнений портрет майбутнього програміста виглядає так. Це хлопець чи дівчина, які захоплюються точними науками. Такі люди часто беруть участь у різних олімпіадах, конкурсах. Вони завжди шукають щось пов’язане з формулами, числами і логікою. Це дуже часто інтроверти».
Дмитро Лапшин: «Перша мова програмування – це далеко не та мова, на якому майбутній програміст буде працювати. Тим, хто вирішив почати вивчати програмування, можна почати з Java, тільки бажано не заглиблюватися в «нетрі». Всім, хто відчуває в собі сили і впевненість, слід прагнути до вивчення функціональних мов програмування – за ними майбутнє. В цьому випадку можна спробувати відразу Scala або JavaScript. Як першу мову для вивчення можна розглянути і Python. З його допомогою добре виконувати прості завдання, його можна назвати сучасним Basic, але з можливістю практичного застосування».
Михайло Антонович: «Час вільних одинаків закінчилося. Зараз всі складні рішення розробляються командами, кожна з яких має свою спеціалізацію. Потрібно бути готовим працювати в колективі».

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

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