Чем хорош GOLANG, и стоит ли его изучать?
Вставка
- Опубліковано 17 чер 2024
- 🤚 Привет! Вы на канале "TeachMeSkills Школа программирования"! И это новый выпуск рубрики НАТИВ в формате подкаста. Сегодня поговорим про такой язык программирования, как Golang (Go). Что это за язык программирования от Google? Зачем использовать Golang? Почему стоит изучать язык Golang? Что можно написать на Golang? Какие преимущества и недостатки языка Golang? Поделится своим опытом работы и поможет во всем разобраться наш наставник и Team Lead из компании SberMegaMarket - Шамиль Гаратуев. Приятного просмотра!
❗️Ссылка на курс Go-разработчик - teachmeskills.by/kursy-progra...
🧔Профайл Шамиля - linkedin.com/in/шамиль-гаратуев-8706b4230
🧔Telegram Ильи (для ваших предложений по контенту) - @ilyarublevsky
Что еще будет в видео👇
0:00 ( • FRONT END разработка, ... ) - Вступление
2:00 - Рассказ о себе
4:38 - Что за язык Go
6:30 - Для чего создавался Go
7:19 - Что можно сказать о Go
10:04 - Стоит ли после Java и C# переходить в Go
14:19 - Open source и Go
15:49 - Почему Go - хорошее решение для стартапов
18:46 - Что пишут на Go
22:30 - Почему сейчас Go как никогда актуален
23:59 - Сколько времени нужно, чтобы изучить Go
27:01 - Какие компании больше всего интересуются Гоферами
27:59 - Возможности по зарплате
30:08 - Что лучше - Node.js или Go
32:20 - Go-рутины - почему это важно
35:12 - Что будет в курсе Go-разработчик в TeachMeSkills
36:43 - Хобби
Отличный ролик! Приятно было следить за ходом беседы. Побольше бы таких грамотных видео. Успехов каналу!
спасибо огромное! будем стараться)
Спасибо большое! Ведущий большой молодец, не перетягивал одеяло на себя. Очень качественный контент. Шамилю привет из Ижевска ))
Спасибо большое) рады были стараться) очень приятно)
Очень приятный спикер! Отличный ведущий. Контент то что мне нужно было. Спасибо за ваш труд!
Спасибо большое) только рады стараться)
Правильные вопросы задаёт! 💥🔥🤝
Пришёл на ваш канал после С# против Джава. Как развлекательный контент для молодого айтишника - канал просто отличный. Спасибо, что делаете это, несмотря на может не самые заоблачные просмотры)
Спасибо большое за честное мнение) будем стараться и дальше) и просмотры увеличивать также)
Тоже самое 😂
Классное интервью, спасибо!
У вас на лендинге курса названия проектов разошлись с картинками, проверьте)
Спасибо большое!) все чекнем, спасибо)
Очень интересно! Спасибо за интервью.
Спасибо большое)
Канал - находка 💚
спасибо большое)
На деле со сферой применения для Go, как раз тот вариант с распилами от монолита парочки микросервисов и работа с ними, таких вакансий 70%, остальные это инфраструктурные вакансии, где надо быть полу девопсом как минимум, а писать полностью бек на Go, хотя бы среднего приложения очень маргинальный выбор, что и доказывает рынок
Это очень плохо?
@@UrodZanyalMoyNik это очень скучно
Лайкос
Освоение синтаксиса может и быстрое на Го, но грамотное владение языка занимает намного дольше, при этом на первых порах все очень непривычно, особенно после работы с ООП-шными языками
Полностью поддерживаем и со всем согласны
Дааа… изучаю сейчас… даже синтаксис по началу сложновато заходил… Го не такой уж и «легкий» язык…
Все зависит от учебных материалов. Я сначала учил по книге Get programming with Go. Было сложно, так как автор приводил примеры из космической отрасли 😆. Но в интернете узнал про книгу For the love of Go. Стал ее изучать и совсем по-другому все пошло. Этот автор, John Ardunel, крутой учитель для начинающих. У него по Go несколько книжек. Рекомендую. Но они на английском только.
Но из первой книги я зато почерпнул такие понятия как int8, int16…, uint8…, float32… То есть знания о типах данных.
А до Go я начинал с Python, где о таком и не думаешь. Но зато осваиваешь азы программирования, не вникая в нюансы типов данных. А после Python типизированный язык уже только добавляет знаний. Поэтому совсем новичкам рекомендую Python, если пойдете в backend, или JS если хотите во frontend.
Я являюсь новичком в IT и не могу определиться с яп
Нравится нейронки, бэк, ml
Думаю в сторону c++ или python, но тут увидел go и думаю подойдет ли он мне?Для меня так же важно является перспектива языка
Вот теперь не знаю что делать(
Давайте поможем?! Сможете нам оставить контакт - расскажем, что и для чего лучше. Ссылка на сайт есть в описании. Также как и telegram ведущего рубрики.
Хотим вам помочь)
В мл будешь подбирать коэффициенты весов, используя существующие модели (тут спрашивают матан) - в основном это про python. Сpp здесь фор адвансед, если будешь писать либы, где матан и алгосы маст хэв, а python враппер. Млщик должен шарить в бэке хотя бы на базовом уровне. С бд придётся работать.
В бэке собирать, в основном, джсон по бизнес-логике, взимодействовать с бд, с контейнерами, очередями, мб прописывать ручки к зоопарку микросервисов, проектировать api (тут матан необязательно, если не R&D и предметная область не требует). С бэка будешь отправлять на клиента результаты вычислений, сформированные мл моделькой.
Выбирай по направлению, которое больше нравится. Языки лишь инструменты. Ну а если конкретный ЯП нравится, тогда выбор направления ограничивается областями, в которых применяется этот ЯП.
Изучай алгоритмы, практикуйся, проходи стажировки в крупные it-конторы, чтобы окружить себя продвинутыми спецам. Алгосы - фильтр от фреймворк-специалистов.
Т.е. если Go это 95% серверной разработки... то это тянет за собой обязательное знание микросервисов, паттернов микросервисов, протоколы связи, взаимодействие между сервисами и т.д.
Я что-то не видел в сети опыта написания среднего/большого монолита. А монолит хороший выбор для MVP на стартапе (где 1-2 разраба на беке).
Можно ли на го написать простой парсер эксельки или распознать штрихкод на jpg ? Калькулятор с GUI сделать?
Думал после пайтона Go изучить, но больше склоняюсь к Rust.
Раст очень сложный язык и почти не где не используется. Если изучаешь бек, то лучше уж к питону учить go.
@@dmitry-lz1ny я поковырял и Го и Раст. Раст можно в пару кликов добавить в свой питоновский проект... Тем самым разгрузив нагруженные вычислениями участки.
На Расте недавно пробовал Tauri.
Такого нет в Го.
У го есть плюс, что его стандартной библиотекой можно написать сервис, то есть не нужны фремворки.
Раст сложен тем, что там новые концепции владение, время жизни и т.д. @@AlexandrSpirit
А как именно ты добавил в питон? Может и я попробую@@AlexandrSpirit
@@dmitry-lz1ny на гитлабе статья есть о том как в 100 раз ускорить Python используя Rust
Не вижу курса по Го на вашем сайте. Он есть?
Да, вот ссылка - teachmeskills.ru/kursy-programmirovaniya/qa-go-deveoper-online
хорошее интервью, жаль только, что ссылка на курс не соответствует действительности🤔 не обучаете уже Go?
Спасибо большое!
На какое-то время приостановили, но скоро вернем курс в строй)
GO FOREVER!
Absolutely)
Го из э бест ленгуидж оф зэ плэнет.
ozon тоже на go
А когда будет у вас курс по Go?!
Уже есть - teachmeskills.by/kursy/go-developer-online
😎
Вопрос: как первый язык Go стоит ли его изучать новичку в 37 лет? Есть небольшие знания в c#
привет! если ты решился в принципе посмотреть в плоскость IT, уже учтя возраст, то выбор языка не станет помехой. вакансий в СНГ представлено достаточно, понятное дело, что основная часть на продолжающий уровень. Но у тебя есть задел со знанием сторонних Шарпов. Попробуй, должно получится! как всегда, старания и усердия никто не отменял)
@@teachmeskills я начинал в свое время изучать java. Но перешел на c#. Но уровень такой: мамкин программист)). Никогда по этой сфере не работал. Я сисадмин. C# использовал для работы, чет писал по иелочи. Но нравится мне кодить)).
Язык Go понравился. Но чет говорят, что вакансий нет, juniurом фиг устроишься.
@@thmn8 понимаю сомнения, но опыт, который есть, тоже хороший. Если актуален пункт входа через стажировки, я бы попробовал. Объективно после стажировок легче попадать, а по go они тоже есть
@@teachmeskills с вами можно связаться? Если возможно. Спасибо.
@@thmn8 конечно, вот контакт в телеграмм - @ilyarublevsky
А парсеры пишут на Go ?
вот 2 статьи:
1.medium.com/@bradford_hamilton/building-a-json-parser-and-query-tool-with-go-8790beee239a
2. prasanthmj.github.io/go/simple-query-parser/
Идеальный язык программирования. Ни одного минуса. Еще и везде можно использовать. Одним словом язык - швейцарский нож😂😂😂
еще и приходите на наш курс)))
Как классно когда гноворят что все легко те кто курсы продают, а если покопать то у них компетенции вообще нуль)
@@ViktorAr2023 так главное-то заманить:) а дальше тебе никто ничего не обещал, все зависит только от тебя:)
@@maximisaev588 ну да)
как я понял GO создан для api в основном )
Не, не только) как же микросервисы?)
@@teachmeskills парадокс, если это веб, то микросервисы отдают энд поинты, тобишь это api.
просто разбиты по сервисам и микросервисам )
Вакансий на Go раз-два и обчёлся. Поэтому смысла учить Go сейчас нет.
HH.ru выдает 1199 вакансий, если убирать регион. Из них 30 вакансий с фильтром «без опыта работы». От 1 до 3 лет опыта - 319 вакансий. Не так и мало получается
@@teachmeskills по python, js и даже php куда больше вакансий. Мне нравится Golang, но пока он не взлетел.
@@dispuncho тут спору нет) для матерых языков всегда больше предложений) посмотрим дальше, какое будущее у go будет.
@@dispunchoну так в это и суть. Что многие влетают на курсы только после того как язык взлетел. А кто-то влетает на него до его взлёта и остаются в плюсе🤷🏻♂️
У вас ещё работает Шамиль Гаратуев? Обучает Go?
пока что, увы, нет
предлагаю называть гошников - гоферами!) в остальном согласен!)
обязательно будем) спасибо)
@@teachmeskillsгулагеры)
Ну так и называют. Есть еще Гоэшник, но это уже редкость и видимо никому не нравится :)
@@RusFarFaz а гоишник есть? 🤣
С# по бенчмаркам быстрее го
Как первый язык всетаки сложно. Инфы в целом мало, инфы с курсов всегда будет недостаточно
Что-то я не услышал минусов языка. Но ведь, если быть объективным, перед выбором языка, особенно новичку - их нужно знать, а минусов у Go не мало.
"Если вам надоели шарпы" - поржал)) - да шарпы, пожалуй, самый приятный язык для программирования. На шарпах можно пилить и веб и десктоп, и бэкенд и консольные утилиты. Система типов - вот такую бы типизацию всем ЯП, недаром у TypeScript и шарпов одни родители. У Rust'a типизация кстати похожа на шарповую, видно либо преемственность, либо общий тренд. К сожалению когда делали Go - хотели сделать по-другому, что бы было не как у всех, видимо.
И про дженерики в го - 10 лет шли споры нужны или нет - камон, гугл, - это же IT-тема, если 10 лет спорить по каждому вопросу, за это время родится очередной ржавый, который вас похоронит. Го, видимо, изначально задумывали как язык для микросервисов - немного кода, а раз кода немного - пусть они копипастят свои функции под нужные типы, и проблем нет - 10 лет ведь живут, и еще поживут.
Но все-таки дженерики появились. Правда их лучше не использовать, ну точнее - что бы все работало также быстро, - лучше не использовать. Ну или, если хотите, используйте - нам пофиг - вы просили - вот вам ))
Дизайн Go - вырви глаз. От вида кода Go хочется плеваться. Потому и микросервисы, а не монолит - в монолите вы просто потеряетесь во всех if err !=nil , забудете что хотели написать в итоге)). Поэтому когда говорят что Go хорош для стартапов и MVP - это не так. Ну либо ваш стартап сразу имеет все возможности и ресурсы писать итоговый продукт с распределенной архитектурой, а не MVP. С микросервисами у вас есть шансы, но я не знаю как получить удовольствие от такого кода, который создатели го вам навязали. Кто-то скажет что нужно обрабатывать каждую возможную ошибку, и это благо, что после каждой функции вы проверяетесь на ошибку. Это холиварная тема, люди просто не хотят признавать дерьмовый дизайн языка, вот и появляются такие пакеты как github.com/pkg/errors - что бы подсластить пилюлю.
В Го работать с данными не очень удобно. С JSON тоже. Слава ~~яйцам~~дженерикам, теперь можно писать перебирающие методы под разные типы. Есть пакет lo (типа lodash в js-мире).
Гугловская xgui загнулась - хотели сделать мультиплатформенный GUI - не вышло (интересно было бы узнать - а почему?). Но вроде есть всякие electron-подобные штуки типа webView да и вроде сам electron дружит с го, так что если хотите писать десктопный софт - это можно.
В Го есть возможность создать race conditions и это тяжело дебажится и для этого нужна отладочная информация, а ее исключают из компиляции в целях экономия ресурсов, конечно можно включить, но ведь RC вы словили на проде ).... В некоторых источниках писали (а может и пишут), что в Го невозможно состояние гонки).
В Го много странных решений, в области типизации, в работе со структурами. Конечно, с опытом приходит понимание, но когда ты уже работал с другими языками - эти странности в Го выглядят нелепо, как будто "забыли сделать" или типа "да хрен с ним - пусть так будет", имея предыдущий опыт, ты не находишь логического обоснования странностям, кроме как намеренного допущения плохого дизайна или ошибки, при этом защитники Go во весь голос кричат - "вы не понимаете -тут же все просто".
Сейчас я изучаю Go, я надеюсь что некоторые дизайнерские решения языка изменятся в будущем, особенно меня достает работа с ошибками в Go и работа с JSON, хотелось бы еще иметь что-то внятное из коробки для DeepCopy вложенных структур, потому что сейчас с этим хуже чем где-либо. Мои goals to Go - это не микросервисы, а как-раз таки - MVP, средние веб-приложения - в общем, все то, что хорошо работает в NodeJS. Почему хочется уйти из NodeJS на Го - да потому что уйти на Rust у меня ни терпения, ни желания не хватит (и мозгов, тоже). Нода хороша, но есть ряд кейсов, где она медлительна (обработка данных, в частности). Послушаешь экспертов - говорят Go быстр. Вот и хочется проверить, но на пути столько камней. И все-таки Go заманивает перспективами ))
все что вы написали - это не минусы языка, а просто ваши личные недовольства, объективности 0, после слов Дизайн GO - вырви глаз, остальной бред даже читать бессмысленно... хотя я осилил
@@TheRedfordby все что вы написали - это не доказательства плюсов языка и отсутствия указанных минусов, и не какая-то конструктивная критика моего коммента, а ваши личные предпочтения. Объективности ноль. Дизайн - вырви глаз, это я про постоянные проверки ошибок, возможно, для вас это писать один и тот же бойлерплейт это норм, никто не спорит...хотя нет - спорят, спорят везде и всюду, на том же хабре при упоминании го, начинаются дикие срачи. Я думаю, дыма без огня не бывает. Спасибо, что дочитали.
@TheRedfordby У Го действительно проблемы с выразительностью. Отчасти от того, что нет выражений - т.е. expressions - а есть только стейтменты. Плюс, фактически в каждой детали разработчики избрали путь, который проще именно для тех кто реализует компилятор, а не для пользователей языка, т.е. программистов. К примеру, есть конструкция for .. range, и она обобщенная - но только на тех типах, что встроены в язык, а для своей коллекции ее использовать невозможно. В хорошо спроектированном языке для работы с коллекциями есть какой-то общий способ, к примеру - итератор. В Го - перебор коллекции надо реализовать через костыли. Так что пока не изучишь все ньюансы Го, то не то что продуктивно, а вообще программировать не можешь.
Система типов - тоже крайне невыразительная. Она не sound, конечно, что тоже плюсов не добавляет, ну да бог с ним. Но вот некоторые вещи, которые в других языках идут просто из коробки, тут надо опять делать через костыли - для примера, enum.
Безусловные реимущества Го - отлично реализованный рантайм с конкурентностью по модели Хоара и сборщик мусора. Для микросервисов, где нужна скорость и в реализации и в RPS - он очень даже ОК. Правда для этого надо сперва его неплохо выучить, что не так уж и просто (и не стоит тут верить мантре "Го - простой язык", часто повторяемой гоферами, там достаточно ньюансов, на которых придется набить шишек; не Раст, конечно, но все же).
Вот и получается из всего этого "дизайн - вырви глаз". Более того, в других языках такие штуки, как конкурентность (то есть киллер-фичу Го) просто выносят из языка в библиотеку(и) - и в одной библиотеке может быть реализация через корутины, в 2-й - через акторы, в 3-й - через потоки ОС; выбирай какая лучше для текущей задачи, и юзай. И в итоге, после того, как работал с каким-то выразительным языком - типа C#, Python, JS/TS, Kotlin, Scala, Swift, Rust; даже банально с PHP - работать с Го неприятно. Тут подпишусь под словами автора оригинального комментария.
Я видел как чувак написал функцию func CatchError {if err != nil…} и просто ее переиспользовал. Занимает очень мало места.
изучаю Go уже месяц
как же огорчает когда пишут что вакансий почти нет(
Вот-вот)
Что за дурная привычка давать языку два названия - Go или Golang
Риторический вопрос. Но он так и называется (2 версии)
Прикол в том, что так-то язык называется Go, но это откровенно дурацкое название с точки зрения поиска, маркетинга, отличия от обычных слов. А возможность нормально гуглить язык программирования - это мастхев. Поэтому есть второе название для таких дел - Golang, чтобы не пришлось каждый раз писать "go programming language". Вот и получается, что когда есть контекст (например в разговоре), то говоришь Go, а когда понимаешь, что может быть неоднозначность - говоришь/пишешь Golang.
Чем они думали, когда решили назвать язык как распространённый глагол - тут хз.
@@Alexey-gp7vc согласны полностью) возможности в маркетинге у Гугла закончились на создании поисковой машины)
Его бы для начала прежде чем изучать, неплохо было бы без геморроя и бесконечных ошибок просто устанавливать. Пиздец, 2 дня убил на то что бы установить язык, исправить ошибки которые появляются в вс коде, и так далее, и так и не справился. Психанул и вычистил его нахрен. Спасибо, было интересно, пошёл учить пайтон дальше.
мне даже интересно, в чем была сложность с языком во время установки, он на любой системе ставится в 2 клика
@@mrmomenticus я наверное не очень правильно донëс свою мысль, извините. Сама установка не несет в себе проблем, а вот после, уже да. Я не смог запустить это всë в вскод. Создаю файл с расширением go, и он сразу начинает гореть красным, и в консоли при запуске какая то ошибка. Я лопатил лопатил инет, все что предлогалось делал, и в конце руки просто опустились. Плюс адекватных курсов и гайдов не нашел по го, все какое то куцое. Так что пока решил не гемороиться и подушить питона дальше.
@@godpixels я открыл второй видос(первый был для мака и голанда) и там было объяснение от индийца
Сбер вообще в курсе, что у него этот чувак тимлидом работает?
Он в СберМегаМаркете. В профиле LinkedIn есть инфо
@@teachmeskills И? Ну ок, СберМегаМаркет в курсе, что у него этот чувак тимлидом работает? В LinkedIn можно что угодно в своем профиле понаписать
@@teachmeskills зачем комменты трешь?
@@Kopeuko чьи и когда?
@@teachmeskills я отвечал на твой вопрос, коммент пропал. Продублирую.
Сбермегамаркет в курсе, что чувак у него в тимлидах? Про linkedin совсем смешной аргумент, в профиле что угодно можно написать
Видно, что он гошник, но катить бочку на Ноду...
"вкатиться", "айтишечка", "гошечка", декольте, кулон, модельная прическа, ну и куда ж без мака и кофе "из старбакса"....мда
@beldikахахах, капец ты дерзкий, на зоне уже был!?
@beldikЖалко тебя Бульдык, посадили на бутылку и не можешь встать
@beldikтолсто, очень толсто, многие могут не понять)
@beldik по ответам можно сразу отличить начитанных людей от "вайтишников" ))
Вредномодные тп стериотипы ориентированные на такую же аудиторию, которая ведётся на это.