Джерело: https://dou.ua/forums/topic/41933/

Привіт! Мене звати Ігор, і я займаюсь програмуванням от вже 14 років. Зараз працюю в компанії Blackbird Lab. Чи помічали ви, як одні технології знаходяться на ринку вже багато років, а інші з’являються та зникають дуже швидко? Нам як розробникам постійно потрібно вивчати щось нове для того, щоб бути конкурентоспроможними на ринку праці. Але чи траплялося у вас так, що технології, які вивчаєш заради задоволення, потім знадобляться вам для роботи? Так сталось у мене.

Я почав працювати у 2008 році та довгий час займався платформою .NET. Тоді ще не було front-end чи back-end розробників, не було DevOps інженерів, не було бізнес-аналітиків. Того часу я обіймав посаду Web Developer та робив усе, що казав PM: трохи back, трохи front, трохи бази даних та всяке інше. Потім було багато різних проєкт, різних компаній.

У 2018 році я почув про мову програмування Go. На той час я працював у EPAM Systems, де деякі замовники вже використовували цю технологію. І як завжди відкрив якісь туторіали, подивився, щось написав — стало цікаво! Але реального проєкту не було, тож вивчення цієї мови було більш як хобі. Раптом одного дня мені запропонували проєкт, який вже був написаний на Go, але мігрував на .NET. Дивна ситуація, але я погодився. Так почалась моя карʼєра Go розробника.

Для чого створювався Golang

Спочатку мова програмування Go створювалась як внутрішній продукт у компанії Google. Вперше мова була представлена у 2009 році, а перший реліз відбувся у 2012. Основною метою створення цієї мови програмування було поєднання високої продуктивності компільованих мов з легкістю написання коду з підтримкою Garbage Collector. Мова вийшла досить лаконічна, але при цьому код залишається легким для читання і сприйняття.

За основні переваги мови програмування Go можна вважати наступне:

  • Простий та лаконічний синтаксис.
  • Статична типізація.
  • Швидкість компіляції.
  • Паралелізм.
  • Дуже потужна стандартна бібліотека.
  • Можливість писати у функціональному стилі.

Варто сказати трохи детальніше про паралелізм. Go надає механізм горутин (goroutines) та каналів, який є кілер-фічею цієї мови програмування для роботи з багатопотоковістю та паралельних обчислювань.

Чому Golang є актуальним сьогодні

Через те, що я дуже давно працював з платформою .NET в деяких аспектах я буду порівнювати Go із C# або подібними мовами. На цю мить мова програмування Go досить популярна на IT-ринку. Можна з упевненістю сказати, що попит на Go розробників перевищує пропозицію. Але чому ця мова стала популярною?

Як вже було зазначено раніше, Go — проста і лаконічна, але має переваги компільованих мов та таких платформ як .NET та Java, які керують пам’яттю та займаються прибиранням сміття. З популярністю мікросервісної архітектури Go дає можливість швидко створювати сервіси, мінімізуючи кількість написаного коду в багато разів, у порівнянні з іншими мовами. До речі, всім відомий Docker написаний на Go.

Окрім того, Go працює дуже швидко та її іноді порівнюють за швидкістю виконання з С++. Тому ця мова дуже актуальна в обчислюваннях, де критична швидкість. Дуже багато проєктів для Blockchain та криптовалют використовують цю мову програмування. Також застосовують її ті проєкти, де використовується системне програмування або взаємодія з мережею.

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

Щодо вакансій на ринку України, звісно Go не може поки конкурувати з PHP, Java або .NET. Відповідно до знайденої мною статистики кількість вакансій Go розробників приблизно дорівнює кількості вакансій на iOS/Adroid або Ruby.

Але варто зазначити якість цих вакансій. Через те, що Go дуже часто використовується у стартапах або у проєктах, де необхідна швидкість обчислювань та багатопотоковість, скоріш за все вакансії будуть від відповідних компаній. Тобто майже всі вакансії повʼязані з новими проєктами у різноманітних галузях. Вірогідність, що ви будете працювати з найновітнішими суміжними технологіями дуже велика. Відповідно заробітна платня може бути у верхньому сегменті ринку та на 15-30% більша ніж у великих конкурентів.

Недоліки Golang

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

Перша проблема полягає в тому, що в Go не імплементований класичний підхід ООП. Так тут можна створювати свої типи та додавати їм певні функції, але це відбувається через механізм вбудовування, та немає класичного успадкування. Це може бути незрозуміло, якщо ви вже маєте досвід, або навчити вас «неправильному» підходу, якщо ви початківець.

Друга проблема полягає в тому, що в Go немає єдиного фреймворку для розробки. Річ у тім, що коли у Google створили Go, вони віддали її у ком’юніті, щоб мова розвивалась. Тому існує безліч фреймворків для різноманітних задач. Через це вам потрібно самим ретельно підходити до вибору того чи іншого фреймворку.

Вивчення Golang з нуля без попереднього досвіду

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

На мою думку, Go достатньо проста мова програмування для вивчення в цілому, але є нюанси у порівнянні з класичними ООП мовами, такими як С# або Java. Якщо розглядати поглиблене вивчення Go, то воно може бути складніше, ніж, наприклад, JavaScript, бо вимагає глибоких знань, як працювати з терміналом та файловою системою. Але якщо ви добре орієнтуєтесь в операційній системи та вигляд термінала не викликає у вас паніки, то у вас все вийде.

Go досить дружня мова с точки зору початку вивчення. Почати писати можна, відкривши The Go Playground прямо у браузері! Але все ж таки я б порекомендував встановити Go на компʼютер. Після цього можна встановити Visual Studio Code. Це безплатний редактор коду, який дозволить писати код та запускати ваші програми.

Далі можна зануритись у вивчення за допомогою того формату, який вам підходить більше. Це може бути перегляд відеоуроків на YouTube, курси на Udemy чи Pluralsight, або проходження матеріалу у книжках. Памʼятайте головне — пишіть більше коду. Перегляд відео уроків або читання книг саме собою не дає результатів та не відкладає знання, доки ви не відкриєте IDE та не напишете код.

Ще дуже важлива навичка — це виправлення помилок у вашому коді та вміння вирішувати труднощі. Для цього потрібно буквально вміти гуглити вашу проблему та знаходити вирішення. Звісно тут може дуже допомогти ментор, який скерує ваші зусилля.

Можу сказати, що будь-яка книга з Go буде корисна, але маю порекомендувати:

Відеоуроки на YouTube:

Курси на Udemy:

Вивчання Golang як другої мови програмування

Якщо ви вже досвідчений програміст, то вивчення Go має буди для вас легкою задачею. По суті потрібно вивчити синтаксис та деякі нюанси цієї мови програмування. Але в цілому їх в рази менше ніж, наприклад, у C# чи Java.

Для професіоналів я б лише додав книгу Mihalis Tsoukalos — Mastering Go — Third Edition, також є у російському перекладі, має назву «Golang для профи». І наостанок — дуже корисний ресурс з прикладами Go by Example.

Висновок

На мою думку, мова програмування Go дуже перспективна та займатиме надалі суттєву долю ринку. Через те, що багато хто недооцінює цю технологію, поки ще відчувається дефіцит спеціалістів. Тому є можливість отримати цікавий проєкт зі свіжими технологіями на борту. Так, поки що це навряд буде великий ентерпрайз та проєкт на 150 осіб. Цю нішу ще довгий час будуть займати .NET та Java проєкти. Але якщо подивитись на перспективу розвитку back-end проєктів, то використання Go з кожним роком стає все цікавішими.

Ще iсторii

Світлана Балюк

“Коли хтось приходить до нас на інтерв’ю Trainee від A-Level – це вже “наша людина”. Ми розуміємо, що в цього претендента на вакансію є і прагнення розвиватися, і достатньо скілів. Це як троюрідний брат, якого ти ніколи не бачив, але знаєш, що він – твоя родина.” Світлана Балюк  HR/Recruiting Team Lead в компанії BeKey, випускниця

Вiдгук повнiстю

Юлія Безкровна

Історія успіху випускниці курсу Web Design IT-школи A-Level “Дизайн – це більше, ніж просто картинка. Тому і вкладати в нього потрібно щось більше, ніж просто зовнішній вигляд.” Юлія Безкровна Web-designer, випускниця IT-школи A-Level   Якщо зараз ви не можете зважитися на перший крок у digital-design, переживаючи, що у вас немає досвіду, знань, уявлень про цю

Вiдгук повнiстю

Самір Магеррамов

“Чудово, що в A-Level теорія ніколи не йшла окремо від практики. Ми готувалися до реальної роботи, вчилися знаходити баги в тих місцях, про які інші навіть не замислюються, креативно підходили до різних завдань. Зараз я постійно користуюся цими вміннями в роботі!”

Вiдгук повнiстю

Осичнюк Стас

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

Вiдгук повнiстю

Загальні питання

Який формат проведення занять: онлайн чи офлайн?

Заняття у школі проводяться в режимі онлайн.

В які дні та час проводяться заняття?

Заняття у школі проходять двічі на тиждень. Адміністрація школи затверджує розклад для кожної групи окремо. Це може бути один з трьох варіантів:

- понеділок (19:00-22:00) та четвер (19:00-22:00);
- вівторок (19:00-22:00) та п'ятниця (19:00-22:00);
- середа (19:00-22:00) та субота (11:00-14:00).

Самостійно обирати дні та час занять не можна.
Але ви можете дізнатися у менеджера по роботі з клієнтами, за яким із трьох видів розкладу займатиметься саме ваша група.

Чи є заняття з англійської мови?

Так, на всіх курсах (крім “Основи Програмування”) передбачені безкоштовні заняття з англійської мови. Вони проводяться в неділю - час занять залежить від вашого вихідного рівня англійської мови.

Чи видається сертифікат після навчання?

Так, після успішного завершення навчання ви отримуєте сертифікат про закінчення курсу.

Курс завжди стартує у вказану на сайті дату?

Курс практично завжди стартує у призначену дату.
Винятками можуть бути зовнішні чинники, на які школа не може вплинути. Або якщо в групі не набирається достатня кількість людей, тоді дата старту може бути зсунута на період до 2-х тижнів.

Що відбувається, якщо група не набирається до старту?

Якщо в групі до анонсованої дати старту не набирається 50% студентів, ми зміщуємо дату старту на період до 2 тижнів, про що попереджаємо всіх студентів, які вже записалися до цієї групи. Навіть якщо протягом цього часу ми не набираємо жодної людини - ми все одно стартуємо навчання з тією кількістю студентів, яка є.

Де можна почитати відгуки про школу?

На сторінці кожного курсу є відгуки про курс. Також є сторінка всіх відгуків від компаній-партнерів та окрема спільна сторінка відгуків

Якщо я не маю досвіду, чи можу я навчатися у вашій школі?

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

Чи можу я почати вчитися з середини курсу?

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

Чи можна перевестися на наступний набір, якщо у мене виникли складності, і я зараз не можу відвідувати заняття?

Так, ми практикуємо переведення на наступний потік або на інший напрям, але тільки за умови наявності вільних місць у групі.

Хто ваші викладачі?

Викладачі в нашій школі - це практикуючі фахівці, які працюють в IT-компаніях, з досвідом не менше 3-х років. Кожен викладач проходить 3 етапи співбесіди, а також консультації з навчального процесу перед тим, як буде допущений до викладання в нашій школі.

Який мені потрібен ноутбук для занять?

Стандартний ноутбук для офісної роботи з мінімальними вимогами: процесор i3, ОЗУ мінімум 8гб та SSD 256 Гб.

Чи є у вас зворотний зв'язок на курсах?

Щомісяця адміністрація школи проводить анкетування студентів для збору зворотного зв'язку про викладачів, якість освіти та зручність навчання в нашій школі.

Договір та оплата

Як здійснюється підписання договору зі школою?

Є 3 варіанти підписання договору зі школою:
Договір підписується через електронно-цифровий підпис ПриватБанку та сервісу “paper less”;
Через електронно-цифровий підпис у сервісі “Дія” та електронний сервіс “Вчасно”
Відправлення договору у паперовому вигляді через Нову Пошту для підписання.

Які є види оплати за курси?

Виключно оплата за реквізитами на розрахунковий рахунок школи.

Який крайній термін сплати за курс?

При щомісячній оплаті - через кожні 8 занять. Тобто: раз на місяць в перше заняття навчального місяця.
Якщо двома частинами, то друга оплата має бути внесена на початку четвертого місяця (на 24-му занятті).

Чи передбачено повернення коштів за курси, якщо я не можу продовжувати навчання?

Згідно з договором, ви можете повернути 50% від вартості непройдених занять, що були оплачені. Повернення можливе з поважної причини та надання документів, що її підтверджують.

Чи можна ознайомитись з договором до запису на курс?

Так, ви можете звернутися з таким запитом до нашого менеджера. Ми надішлемо приклад договору на електронну пошту або в Telegram.

Чи можна сплатити готівкою?

Ні, оплата проводиться тільки на розрахунковий рахунок.

Працевлаштування

Як відбувається працевлаштування?

Школа веде студента від початку пошуку роботи до отримання ним офера, бере участь у всіх етапах співбесіди в кожній компанії. Школа надає додаткове заняття зі складання резюме та допомагає у комунікації з HR/Rec. Ближче до фіналу навчання рекрутер школи збирає резюме та подає на співбесіди до компаній-партнерів, які вже мають відкриті позиції та знають рівень наших студентів. Вони лояльно ставляться до студентів школи, оскільки багато випускників A-Level вже потрапили до наших партнерів.

Куди ви працевлаштовуєте?

Основні компанії, в які ми працевлаштовуємо випускників - це наші партнери, з якими ви можете ознайомитися на сайті A-Level.

Які умови потрібно виконати, щоб бути працевлаштованим?

Отримати сертифікат про успішне проходження курсів. Також обов'язковою умовою є відвідування занять з англійської мови.
Студент має брати активну участь в процесі працевлаштування: ходити на співбесіди, виконувати тестові завдання і давати фідбек школі по кожному етапу, щоб ми могли вже в процесі підкоригувати проблемні моменти.

На всіх курсах є гарантія працевлаштування?

На багатьох наших напрямках є працевлаштування, проте, на жаль, не на всіх. Але ми працевлаштовуємо на всіх напрямках, незалежно від гарантії. Найважливіше - це знання та бажання самого студента!

Чи можу я вибрати компанію для працевлаштування?

Студент може написати свої побажання - ми намагатимемося знайти максимально схожу до них компанію серед наших партнерів. Проте, найголовніше - це знайти першу роботу для наших студентів! На жаль, не завжди є крутий вибір.

Якщо я сам знайду роботу після курсу, мені повернуть гроші?

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

Профорієнтація

Як вибрати курс?

Ви можете звернутися за консультацією до адміністрації школи за телефоном або в Telegram. Адміністрація школи проведе консультацію, визначить ваші сильні сторони та допоможе обрати напрям. Також з описом кожного напряму ви можете ознайомитись у нашому блозі в статтях від викладачів та студентів

Де можна детальніше ознайомитися з курсами та технологіями, що вивчаються на них?

На кожній сторінці курсу є програма навчання та детальна інформація про технології, що вивчаються. Також ви можете прочитати детальніше про курси в нашому блозі в рубриці “курс очима викладача”

Чи можна поспілкуватися з викладачами до старту курсу?

Такої можливості немає, але ви можете ознайомитися з викладачами та школою на наших відкритих заняттях, які ми проводимо щомісяця. Стежте за нашими соцмережами та анонсами заходів. Також ви можете підписатися на розсилку, щоб не пропустити повідомлення про наші заходи.
Крім того, познайомитися з викладачами можна в нашому блозі

Процес навчання

Наскільки програми курсів в A-Level актуальні?

Програми курсів коригуються щомісяця: відповідно до нових трендів та оновлень технологій, які передбачені на курсах. Ви можете бути впевнені, що програма буде актуальною на той момент, коли ви будете навчатися на курсах.

На що більше робиться наголос у програмі курсів: на практику чи теорію?

Основний упор у нашій школі робиться на практику, щоб на момент випуску у вас був досвід роботи в команді з практичними завданнями. Завдяки цьому в реальному проєкті ви зможете почувати себе комфортно.

Чи є зв'язок із викладачем у позаурочний час?

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

Чи зберігається запис заняття, якщо я не зміг бути на ньому присутнім?

Так, кожне заняття записується. Ви матимете можливість переглянути заняття за потребою, якщо не змогли бути присутніми.

Чи надаватимуться методичні матеріали для повторення?

Після кожного заняття від викладача ви отримуватимете всі методичні матеріали, презентації, які використовувалися на занятті, а також додаткову літературу для самостійного вивчення.

А є домашні завдання?

Так, домашнім завданням приділяється окрема увага - їх буде багато.

Як проводяться заняття?

Заняття проводяться в режимі online через платформу Google meet.

Як ведеться комунікація з викладачами, групою та адміністрацією школи?

Комунікація ведеться через Telegram групу та електронну пошту.

Як часто проводяться зрізи знань (модулі)?

Модулі можуть проводитись у різні відрізки часу - залежно від курсу. Але в більшості випадків це - раз на місяць.

Чи видаватимуться додаткові методичні матеріали для самостійного вивчення?

Звісно так - таких матеріалів буде велика кількість.

Чи буде у мене якесь портфоліо після випуску зі школи?

Так, на кожному курсі студенти розробляють кілька невеликих проєктів та один великий - випускний. Всі ці проєкти будуть складати ваше портфоліо.

Що потрібно для отримання сертифікату?

Не менше 80% відвідувань занять
Не менше 80% зданих дз
Не менше 7 балів за модульні роботи та фінальні іспити (захист проєкту та технічну співбесіду)