🚀 Trustee Plus - ваш криптогаманець з вбудованою платіжною карткою тут 👉

Мануал для джуна. Що необхідно знати, вміти та розуміти для підкорення GO

Про те, з чого розпочати вивчення Go, що робити, коли не все вдається з першого разу, як і де шукати додаткові знання, розповідає Віктор Пахучий, Go Engineering Lead в Intellias. Віктор — один із менторів курсу Go, який відбувся в межах IntelliStart — освітнього хабу, де спеціалісти та спеціалістки Intellias діляться своєю експертизою за різними напрямами з тими, хто прагне розпочати свій професійний шлях в IT.

Залишити коментар
Мануал для джуна. Що необхідно знати, вміти та розуміти для підкорення GO

Про те, з чого розпочати вивчення Go, що робити, коли не все вдається з першого разу, як і де шукати додаткові знання, розповідає Віктор Пахучий, Go Engineering Lead в Intellias. Віктор — один із менторів курсу Go, який відбувся в межах IntelliStart — освітнього хабу, де спеціалісти та спеціалістки Intellias діляться своєю експертизою за різними напрямами з тими, хто прагне розпочати свій професійний шлях в IT.

Знайомство з мовою програмування та її нішею 

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

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

Опісля запрошую продовжити читання цього матеріалу.

З чого почати вивчення

Є безліч різних форматів для вивчення мови: книжки, статті, відеозаписи, курси тощо. Вам потрібно обрати той, який для вас легший і комфортніший.

Проте у випадку з Go є одноосібний лідер для старту знайомства з мовою — A tour of Go.

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

Отже, пройшовши цей тур, ви маєте закріпити кожну з його тем на практиці. Окрім цього, за кожною темою треба шукати додаткові матеріали, щоб краще зрозуміти теоретичну частину. Саме для цього можу порадити книжку «The Go Programming Language» (Alan A. A. Donovan, Brian W. Kernighan). На жаль, вона не охоплює останні важливі зміни в мові, проте допомагає трохи краще структурувати знання на самому початку. 

На цьому етапі ви вже повинні опанувати певні інструменти мови та вміти писати нескладні програми. Саме тому я рекомендую звернути увагу на логіку та процес мислення — побавитися з алгоритмічними задачами.

Є портал Codewars, на якому можна розв’язувати завдання різного виду та складності. Я не закликаю до фанатизму, але розв’язання 10–15 задач найпростішої складності надасть вам впевненості та дасть змогу зануритися в атмосферу problem solving.

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

А якщо хочеться копнути глибше?

Якщо у вас є час і бажання покращити свої теоретичні знання, запрошую на цей портал — go101. Тут можна знайти знання різної глибини майже з кожної теми, дотичної до мови Go. Отже, якщо вам незрозумілі інтерфейси, — можна прийти сюди та почитати.

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

Ну і наостанок, є купа записів доповідей із різних конференцій чи інших зустрічей спільнот. Зверніть увагу на:

  • Golang UK Conference
  • GolangUA | Ukrainian Golang Community
  • dotGo conferences
  • GopherCon conference

Знання, окрім мови

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

Насамперед раджу звернути увагу на це — https://github.com/avelino/awesome-go. Там можна знайти, мабуть, будь-що, повʼязане з Go. Якщо вам потрібен якийсь новий інструмент — ідемо туди. Хочете знайти щось почитати — теж туди. 

Загалом цей портал круто допомагає з пошуком необхідних бібліотек для розв’язання тих чи інших задач.

Стосовно речей універсальних. Треба познайомитись із такими технологіями/інструментами/практиками:

  • WEB, Client-Server
  • HTTP, REST
  • Git, Github/Gitlab
  • RDBMS, PostgreSQL/MySQL
  • Golangci-lint
  • Unit-tests, Mocks, Postman
  • Docker
  • JSON
  • DRY; KISS

Це порівняно мінімальний список. Залежно від проєкту, на який ви будете проходити співбесіду, можуть бути потрібні ті чи інші речі. Хтось захоче, щоб ви знали, що таке gRPC, а кому буде некритично, що ви не знаєте, що таке Docker.

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

Тобто якщо йдете, наприклад, до мене на інтервʼю, найголовніше — розуміти, що це за речі, коли їх краще використовувати, а коли вони непотрібні чи шкідливі. Дуже добре знати альтернативи — а чи можна писати програми без REST? Ну і так далі. 

Проєкт?

Ми обговорили теоретичну частину, але неймовірно добре, якщо у вас буде й практичний досвід роботи з цими інструментами. Найкращий варіант — почати писати власну програму, власний проєкт.

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

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

Інтервʼю

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

Виділю певні теми, на які буде корисно звернути більше уваги:

  • Slices/Arrays; Maps
  • Interfaces; comparison and usage
  • Errors usage; error vs panic
  • Go modules
  • Comparable types

Звісно, вам можуть дістатися запитання більшої складності стосовно goroutine та channels, concurrency-інструментів і так далі. Проте, на мою думку, розуміння цього хоча б якоюсь мірою є великою перевагою, але аж ніяк не необхідністю для початківця.

Якщо відійти від Go, то ось ще певні теми:

  • DB CRUD operations; indexes; ACID
  • REST
  • Git branch vs Git commit
  • Binary search

Знову ж таки, це не буде зайвим, але ви не маєте сподіватися, що розуміння цього дасть вам 100% шанс проходження співбесіди. Що більше знаєте, що більше коду ви написали — то більші у вас шанси. Це все лише поради, як їх підвищити. Працюйте над собою, розвивайте скіли — і бажана пропозиція обов’язково дістанеться вам!

Мануал для джуна. Що має знати вміти та вчити Junior Product Owner у Gamedev: розбір від фахівця з 12-річним досвідом
Мануал для джуна. Що має знати, вміти та вчити Junior Product Owner у Gamedev: розбір від фахівця з 12-річним досвідом
По темi
Мануал для джуна. Що має знати, вміти та вчити Junior Product Owner у Gamedev: розбір від фахівця з 12-річним досвідом
Мануал для джуна. Як стати хорошим Java-розробником із нуля: максимально детальна інструкція для початківців
Мануал для джуна. Як стати хорошим Java-розробником із нуля: максимально детальна інструкція для початківців
По темi
Мануал для джуна. Як стати хорошим Java-розробником із нуля: максимально детальна інструкція для початківців
Мануал для джуна. Що треба знати початківцю у fullstack-розробці: 30 питань та приклади тестових завдань
Мануал для джуна. Що треба знати початківцю у fullstack-розробці: 30 питань та приклади тестових завдань
По темi
Мануал для джуна. Що треба знати початківцю у fullstack-розробці: 30 питань та приклади тестових завдань

Більше мануалів для джунів тут.

Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram
УЧАСТЬ В АЗАРТНИХ ІГРАХ МОЖЕ ВИКЛИКАТИ ІГРОВУ ЗАЛЕЖНІСТЬ. ДОТРИМУЙТЕСЯ ПРАВИЛ (ПРИНЦИПІВ) ВІДПОВІДАЛЬНОЇ ГРИ.
Ліцензія видана ТОВ "СЛОТС Ю.ЕЙ." на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 15.09.23 (рішення КРАІЛ №245 від 31.08.2023); ТОВ "СЛОТС Ю.ЕЙ." – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 26.04.2021 (рішення КРАІЛ №150 від 12.04.2021); ТОВ «СПЕЙСИКС» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 08.02.2021 (рішення КРАІЛ №34 від 02.02.2021); ТОВ «ГЕЙМДЕВ» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 16.02.2021 (рішення № 47 від 10.02.2021).
Читайте також
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Не завжди є доступ до улюбленої IDE, або час на її запуск. Але коли потрібно швидко перевірити якийсь простий функціонал або втілити нову ідею, стане у пригоді онлайн-компілятор.
1 коментар
Минулого року кількість спеціалістів компанії Intellias зросла вдвічі
Минулого року кількість спеціалістів компанії Intellias зросла вдвічі
Минулого року кількість спеціалістів компанії Intellias зросла вдвічі
«Мене знесло течією». Delivery Manager в Intellias тепер — міжконтинентальна плавчиня, ще 5 років тому вона про це і не думала
«Мене знесло течією». Delivery Manager в Intellias тепер — міжконтинентальна плавчиня, ще 5 років тому вона про це і не думала
«Мене знесло течією». Delivery Manager в Intellias тепер — міжконтинентальна плавчиня, ще 5 років тому вона про це і не думала
«Навколо IT» — рубрика, в якій ми збираємо все корисне для життя айтішника, що не стосується його роботи. Сьогодні про своє хобі розповідає Людмила Костишена, Delivery Manager в Intellias, міжконтинентальна плавчиня, учасник різноманітних запливів в Україні та за кордоном. Вона ділиться своїм досвідом професійного плавання та дасть поради тим, хто хоче спробувати такий спортивний досвід. 
Intellias в Ужгороді: «Клієнти частіше хочуть наймати спеціалістів поза Україною через ризик втрати інженерів у зв’язку з мобілізацією»
Intellias в Ужгороді: «Клієнти частіше хочуть наймати спеціалістів поза Україною через ризик втрати інженерів у зв’язку з мобілізацією»
Intellias в Ужгороді: «Клієнти частіше хочуть наймати спеціалістів поза Україною через ризик втрати інженерів у зв’язку з мобілізацією»
Мальовничий регіон Закарпаття, що славиться своєю природою, курортами, вином і привітними людьми, схоже, має добру можливість стати ще й немаленьким IT-хабом. Через повномасштабне вторгнення рф регіон приютив значну кількість айтішників. Вже створено Закарпатський IT-кластер, в Ужгороді відкрили свої офіси одні з найбільших IT-компаній — EPAM (читайте наш репортаж — тут), SoftServe та Intellias. Ми навідалися в новий ужгородський офіс Intellias, яка багато років є одним із найкращих ІТ-роботодавців за версією DOU. Про нову локацію, стратегію глобалізації бізнесу, евакуацію, IT-кластер, освітні проєкти та життя під час війни, читайте у нашому матеріалі.

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.