Джерело: 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 розробника.
Змiст
Спочатку мова програмування Go створювалась як внутрішній продукт у компанії Google. Вперше мова була представлена у 2009 році, а перший реліз відбувся у 2012. Основною метою створення цієї мови програмування було поєднання високої продуктивності компільованих мов з легкістю написання коду з підтримкою Garbage Collector. Мова вийшла досить лаконічна, але при цьому код залишається легким для читання і сприйняття.
За основні переваги мови програмування Go можна вважати наступне:
Варто сказати трохи детальніше про паралелізм. Go надає механізм горутин (goroutines) та каналів, який є кілер-фічею цієї мови програмування для роботи з багатопотоковістю та паралельних обчислювань.
Через те, що я дуже давно працював з платформою .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% більша ніж у великих конкурентів.
Попри те, що мова програмування Go є досить потужною та дозволяє писати менше коду, є певні недоліки, які потрібно згадати. Я не буду детально вдаватися в подробиці, але зазначу лише дві основні проблеми на мою думку.
Перша проблема полягає в тому, що в Go не імплементований класичний підхід ООП. Так тут можна створювати свої типи та додавати їм певні функції, але це відбувається через механізм вбудовування, та немає класичного успадкування. Це може бути незрозуміло, якщо ви вже маєте досвід, або навчити вас «неправильному» підходу, якщо ви початківець.
Друга проблема полягає в тому, що в Go немає єдиного фреймворку для розробки. Річ у тім, що коли у Google створили Go, вони віддали її у ком’юніті, щоб мова розвивалась. Тому існує безліч фреймворків для різноманітних задач. Через це вам потрібно самим ретельно підходити до вибору того чи іншого фреймворку.
Важливе зауваження: якщо ви вивчаєте будь-яку технологію або мову програмування, знайдіть хороші курси, де ви можете онлайн чи офлайн навчатися та консультуватися з викладачем, та/або знайдіть ментора, який допоможе вам вибудувати правильний шлях навчання. Також я вважаю, що дуже бажано мати базові знання з архітектури комп’ютера, дискретної математики та основ програмування. Але це тема для окремої статті.
На мою думку, Go достатньо проста мова програмування для вивчення в цілому, але є нюанси у порівнянні з класичними ООП мовами, такими як С# або Java. Якщо розглядати поглиблене вивчення Go, то воно може бути складніше, ніж, наприклад, JavaScript, бо вимагає глибоких знань, як працювати з терміналом та файловою системою. Але якщо ви добре орієнтуєтесь в операційній системи та вигляд термінала не викликає у вас паніки, то у вас все вийде.
Go досить дружня мова с точки зору початку вивчення. Почати писати можна, відкривши The Go Playground прямо у браузері! Але все ж таки я б порекомендував встановити Go на компʼютер. Після цього можна встановити Visual Studio Code. Це безплатний редактор коду, який дозволить писати код та запускати ваші програми.
Далі можна зануритись у вивчення за допомогою того формату, який вам підходить більше. Це може бути перегляд відеоуроків на YouTube, курси на Udemy чи Pluralsight, або проходження матеріалу у книжках. Памʼятайте головне — пишіть більше коду. Перегляд відео уроків або читання книг саме собою не дає результатів та не відкладає знання, доки ви не відкриєте IDE та не напишете код.
Ще дуже важлива навичка — це виправлення помилок у вашому коді та вміння вирішувати труднощі. Для цього потрібно буквально вміти гуглити вашу проблему та знаходити вирішення. Звісно тут може дуже допомогти ментор, який скерує ваші зусилля.
Можу сказати, що будь-яка книга з Go буде корисна, але маю порекомендувати:
Відеоуроки на YouTube:
Курси на Udemy:
Якщо ви вже досвідчений програміст, то вивчення Go має буди для вас легкою задачею. По суті потрібно вивчити синтаксис та деякі нюанси цієї мови програмування. Але в цілому їх в рази менше ніж, наприклад, у C# чи Java.
Для професіоналів я б лише додав книгу Mihalis Tsoukalos — Mastering Go — Third Edition, також є у російському перекладі, має назву «Golang для профи». І наостанок — дуже корисний ресурс з прикладами Go by Example.
На мою думку, мова програмування Go дуже перспективна та займатиме надалі суттєву долю ринку. Через те, що багато хто недооцінює цю технологію, поки ще відчувається дефіцит спеціалістів. Тому є можливість отримати цікавий проєкт зі свіжими технологіями на борту. Так, поки що це навряд буде великий ентерпрайз та проєкт на 150 осіб. Цю нішу ще довгий час будуть займати .NET та Java проєкти. Але якщо подивитись на перспективу розвитку back-end проєктів, то використання Go з кожним роком стає все цікавішими.
Читати 6 хвилин
Змiст
Подiлитися з друзями:
“Коли хтось приходить до нас на інтерв’ю 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. Адміністрація школи проведе консультацію, визначить ваші сильні сторони та допоможе обрати напрям. Також з описом кожного напряму ви можете ознайомитись у нашому блозі в статтях від викладачів та студентів
На кожній сторінці курсу є програма навчання та детальна інформація про технології, що вивчаються. Також ви можете прочитати детальніше про курси в нашому блозі в рубриці “курс очима викладача”
Такої можливості немає, але ви можете ознайомитися з викладачами та школою на наших відкритих заняттях, які ми проводимо щомісяця. Стежте за нашими соцмережами та анонсами заходів. Також ви можете підписатися на розсилку, щоб не пропустити повідомлення про наші заходи.
Крім того, познайомитися з викладачами можна в нашому блозі
Програми курсів коригуються щомісяця: відповідно до нових трендів та оновлень технологій, які передбачені на курсах. Ви можете бути впевнені, що програма буде актуальною на той момент, коли ви будете навчатися на курсах.
Основний упор у нашій школі робиться на практику, щоб на момент випуску у вас був досвід роботи в команді з практичними завданнями. Завдяки цьому в реальному проєкті ви зможете почувати себе комфортно.
Звичайно, ви можете зв'язатися з викладачем у будь-який денний час і, по можливості, він вам відповість. Враховуйте, що наші викладачі - це практикуючі фахівці, які працюють у компаніях. Але ваше питання не залишиться без відповіді у будь-якому випадку.
Так, кожне заняття записується. Ви матимете можливість переглянути заняття за потребою, якщо не змогли бути присутніми.
Після кожного заняття від викладача ви отримуватимете всі методичні матеріали, презентації, які використовувалися на занятті, а також додаткову літературу для самостійного вивчення.
Так, домашнім завданням приділяється окрема увага - їх буде багато.
Заняття проводяться в режимі online через платформу Google meet.
Комунікація ведеться через Telegram групу та електронну пошту.
Модулі можуть проводитись у різні відрізки часу - залежно від курсу. Але в більшості випадків це - раз на місяць.
Звісно так - таких матеріалів буде велика кількість.
Так, на кожному курсі студенти розробляють кілька невеликих проєктів та один великий - випускний. Всі ці проєкти будуть складати ваше портфоліо.
Не менше 80% відвідувань занять
Не менше 80% зданих дз
Не менше 7 балів за модульні роботи та фінальні іспити (захист проєкту та технічну співбесіду)