Python conf in Kharkiv, Nov 16 with Intel, Elastic engineering leaders. Prices go up 21.10

Будущее и перспективы golang

Я учу Go как первый язык, вернее я учил до этого с# около 6 месяцев и где-то 2 месяца джаву, но не работал. В Украине вакансий golang junior (backend) нет, и появятся ли они вообще? Есть смысл продолжать его учить? Если да, то что нужно знать на позицию junior?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Пару місяців тому був на GolangUA мітапі, а сьогодні побачив вакансію від Dgraph Full-stack Engineer Go, зараз круті інструменти пишуть на Go, бо це швидко із-за простоти мови і швидкодія у мови хороша

і ще можливість мати свої приклади коду у відкритому доступі github.com/dgraph-io/dgraph

Если вас интересует работа, то явно PHP. Go пока ещё слаб, но перспективы действительно есть

Учите лучше джаву или .NET

По поводу *sql/mongodb
У меня нет конечно опыта с колоночными базами данных, такими как Cassandra, но зачем говорить что монга отстой, потому что умеет работать с референсами других коллекций. Это скорее дополнительная плюшка нежели недостаток (хотя я ее никогда не использовал, потому как для реляционных баз хватает, где это сделано гораздо лучше чем в монге). С другой стороны монга умеет то что *sql не снилось, а именно при помощи пайнплейнов в памяти проводить последовательные операции с набором данных, и это прямо на сервере. В этом ее главная фича, за это ее стоит использовать. Монга отлично масштабируется из коробки. Ну да ладно qps.ru/iQpoy <- для каждой цели своя база, и говорить что монга отстой, потому что реляционная, как по мне не совсем корректно.
Golang хорош для TDD и DevOps — да в том числе но как по мне не только для них.
На данный момент частенько небольшие демоны на go заменяют высоконагруженные участки приложения, которые затыкивают среди питоновского и пыхового и другого говнокода который мало того что работает не так быстро как хотелось бы, но еще и написан «джунами которых продали как мидлов», и поддерживать это все — адский ад. Все это потому как переписать большое легаси энтерпрайз приложение не так просто как хотелось бы, да и врядли кто-то за это заплатит.
И тут рождается другой вопрос, которых мучает всех, кто хочет перейти на go как на полноценный язык, забыв про python, ruby, php, java, nodejs итд. А можно ли вообще написать полноценное энтерпрайз приложение в котором будут участвовать много команд и которое будет гибкое и расширяемое только на go в качестве бекенда. Чтобы написать гибкое приложение, нужно ООП, с пачкой паттернов от Фаулера и gof и вроде как будет щастье. В golang вроде как нет ООП. Но есть пакеты, структуры, интерфейсы и если погуглить, можно найти реализацию любого паттерна на go. Но тут нужно курить мануалы с примерами по go далеко не 5 минут, как писали ранее. Нужно перестоится на новую парадигму, к которой нада привыкнуть, но если у тебя за плечами большой опыт в других языках, есть понимание хоть какой-то архитектуры приложения, что куда и зачем, то это не так сложно, но новичку, тем более джуну, тем более в Украине ...
Да в Украине пока все печально с Go, хотя вакансии есть, но чаще всего go там как дополнительный язык. Гарантии что ты пойдешь в ту или другую контору и научишься там кодить на go не используя какие-то базовые вещи с мануала, а использовать модульную архитектуру с применением паттернов нет никакой.
Но вот за бугром ситуация другая, там есть конторы которые полноценно юзают go в качестве основного языка, и довольно успешно, и спрос на программистов go только растет.
Подведем итоги. Если ты пранируешь оставаться в Украине, учи питон.
И вот почему. Джава потихоньку отходит, а и хибстерский руби приутихает как ажиотаж на крипту )). PHP (который на данный момент самый популярный) c 7й версией работает быстрее, приблизился к питону, получил опциональную строгую типизацию и ООП все круто, но все еще нет поддержки многопоточности, а костыли в виде ребита и бекграундных процессов работают не так быстро как хотелось бы и жрут много ресурсов.
Теперь про питон. Последнее время, из-за роста спроса на machine learning (а у питона либ для него вагон и тележка, чего не скажешь про другие языки), спрос на питон в Украине все больше, да и не только в Украине. Более того средние ценники на питонистов в последние 2 года выросли. Питон, это по настоящему хороший язык, с приятным и интуитивно понятным синтаксисом. С версией 3.5 появился asyncio из коробки, что позволяет легко реализовать паралельные задачи, значительно ускорив работу приложения. Огромное комьюнити, огромное количество либ на все случаи жизни (чего пока не скажешь про go).
Знания по Go полюбому не будут лишними. Все знают что go намного производительнее питона, в определенных задачах, и никто не мешает его использовать там где реальный хайлоад.

Знания по Go полюбому не будут лишними.

Голова не помойка, чтобы туда тащить всё подряд.

с колоночными базами данных, такими как Cassandra

Кассандра — это SSTable, колоночные тут и рядом не лежали.

Джава потихоньку отходит, а и хибстерский руби приутихает как ажиотаж на крипту

Человек никогда не устает смотреть на три вещи: как горит огонь, течет вода и украинские кодерки хоронят руби.

Если ты пранируешь оставаться в Украине, учи питон. И вот почему ... PHP (который на данный момент самый популярный) c 7й версией работает быстрее, приблизился к питону, получил опциональную строгую типизацию и ООП все круто, но все еще нет поддержки многопоточности

Не учи пыху, которая не «умеет в многопоточность» (кажецца, в интернетах кто-то опять путает concurrency и parallelism?), учи пайтон в котором GIL. Л — логика...

Человек никогда не устает смотреть на три вещи: как горит огонь, течет вода и украинские кодерки хоронят руби.

Ну вот, насчёт джавы ни у кого возражений нет.

Досі на розумію, як про Go намагаються щось притямне писати люди, які не були вкушені гофером... ))

У меня для вас плохие новости: Go учат один день, из которого полдня на чтение их туториала и 5 минут на написание веб-сервера, остальную часть наверное занимают поиском вакансий.

Если серьёзно, то язык на самом деле создавался с целью чтобы его не надо было учить, а можно было уже через недельку коммитить код на прод. Поэтому учитывая ваши 8 месяцев шарпа и джавы, вам бы уже активно заняться поиском работы, а не строить наполеоновские планы по обучению.

Использую этот язык уже около десяти лет.
Конечно, в нём много ограничений, и проблем дизайна.
Очень мало товарищей в Украине действительно умеют в Golang.

Главные преимущества этого языка
1) Скорость компиляции — позволяет эффективно практиковать TDD, так как время между test run’ами минимально.
2) Отсутствие зависимостей у бинарников — одна exe’шка без dll’ок, грубо говоря.
3) Довольно большое количество конвенций и отсутствие нормальных статических анализаторов, есть golangci-lint, но чего-то типа ESlint’a действительно очень не хватает.

В Украине вакансий golang junior (backend) нет, и появятся ли они вообще?

Тут надо понимать что Украина — это стагнирующий и рисковый рынок, сюда не зайдут проекты с бюджетом и нормальным менеджментом. Существующие коллективы вообще не имеют ни малейшего понимания о Delivery Cycle решений и ценности автоматизированного тестирования, менеджмент обычно только «грибной» в «клоаках социальной лености».

Компаний которые практикуют XP подходы и готовых действительно инвестировать в свой персонал сейчас нет. Есть только товарищи продающие джунов за мидлов... так как на рынке присутствует очень большая фрустрация из-за отсутствия какого-то чёткого разграничения.

После совка люди опыт временем меряют...

В общем на Украине можно смело ставить крест — тут система ценностей не развита и сугубо психологические проблемы коллективов цветут и пахнут, какой либо культуры разработки, ретроспективы и рефлексии в целом нет.

Особенно весело когда тебе заходит «очередной» проект на «микросервисах» (т.е. «микролитах») где по 60 репозиториев в проекте — джуны приходят и уходят, а понимания как оно всё в кучу лепится — ни у кого нет. Ну и, естественно, все дружно отрицают факт отсутствия ретроспективы, массовое обесценивание труда, и отсутствие какой-либо мотивации персонала.

Если видишь «микросервисы» и любую реляционную СУБД — *sql/mongodb
Можно с уверенностью сказать что микросервисы успешно сфейлили.
В контролируемую денормализацию схемы и CQRS-ES и так почти никто не умеет.
Для микросервисов обычно надо Cassandra/ScyllaDB/Dynamo c СQRS-ES’ом и заморочками с Eventual Consistency.

(да-да, монга — реляционная, а товарищи утверждающие об обратном — дилетанты, и таких 98%)

Перво на перво надо понимать что этот язык доминирует на рынке DevOps решений, по этому стоит рассматривать вакансии компаний типа Rancher Labs или HashiCorp.

В том что студент — проблемы нет, главное твои личные наработки и понимание всех аспектов TARFU того же Kubernetes и других перехайпляных проектов... так же надо понимать динамику сообществ и общий Сash Flow даже OpenSource’ных проектов. Хочешь выучить golang — больше контрибъють в DevOps тулзы.

Т.е. golang хорош для TDD и DevOps’ов, а украинский менеджмент слишком говно что бы следовать каким-то лучшим практикам и практиковать эти самые TDD и DevOps’ы в каком-то более-менее приемлимом виде.

В общем для первого языка — прокатит, так как создавался как «простой заменитель сишки для студентов».

Монетизироваться можно в DevOps’aх и рефакторинге зафейляных проектов на микросервисах в какой-то CQRS-ES и Serverless (AWS AppSync StepFunctions Lambda Dynamo Cognito).

Но это уже уровень, как минимум, мидла... на галерке где нет TDD и DevOps’ов (смотри HashiCorp стэк) тебя ооочень вряд ли чему-то научат.

Дуй во фронтенд — там меньше понимания и жизнеспособных решений, по этому и платят за любое ... если стоит задача «напрягаться поменьше — зарабатывать побольше» можно стать ещё одним очередным адаптом Flutter’a React/React-Native.

Это инструменты разработки для дилетантов, и на рынке, естественно, сформировалось непомерное количество комплементарных дилетантов, с неоправданными зарплатными ожиданиями. Если у тебя получиться просто хотя бы научиться в Fastlane и какой-то базовый DevOps — уже будешь более привлекательным кандидатом чем 99% муд... нехороших студентов.

(да-да, монга — реляционная, а товарищи утверждающие об обратном — дилетанты, и таких 98%)

Ох как меня тешат подобные эксперты. Здравствуйте, я и есть один из тех дилетантов. Смотрите чтобы эго вас изнутри не разорвало.

Ох как меня тешат подобные эксперты.

Вот и замечательно, тешьтесь.

Mongo Reference => SQL Foreign Key
Mongo View => SQL View
Mongo Capped Collection => ~ SQL Materialized View + RuleSet
Mongo Index => SQL B* tree
Mongo Store => SQL LSM-tree
Mongo Schema Normalization => SQL Relational Normalization

Слишком много совпадений...

Смотрите чтобы эго вас изнутри не разорвало.

Замечательная проекция.

На самом деле, мне совсем не привыкать что украинское IT — помойка.

У вас странное понимание слова реляционная.

Такое же как и у Дейта.

www.amazon.com/...​eory-Normal/dp/1449328016
Стоит почитать немного — будет понятнее почему оно так...

У самого понятия «реляция» довольно много трактовок.

(да-да, монга — реляционная, а товарищи утверждающие об обратном — дилетанты, и таких 98%)

...включая самих разработчиков и мейнтейнеров монги :)

Надо понимать что монга написана довольно посредственно... по этому в квалификации этих товарищей приходится усомниться.

Другое дело что у монги с 2009го года довольно интересный CashFlow, да и вообще идея «Дайте нам ещё 30M$ инвестиций, и возможно мы пофиксим/завезём фичей» не особо жизнеспособна...

Что-то мне кажется, что вы и за 1M$ инвестиций пофиксите/завезёте все фичи. И монга перестанет быть реляционной.

У меня нет для этого ресурсов.

Go перестанет быть модной фишкой для новичков и займет свою нишу для которой и создавался

Мені здається, що зараз краще починати із вивчення хмарних технологій...і все, що з цим пов‘язано... а потім вже дивитися на мову... Як варіант спробувати себе в отриманні сертифікатів початкового рівня для AWS, GCP, Azure... Го чудовій варіант, але є велика кількість варіантів... Сама мова, як би вона не називалася, це просто инструмент...

в го приходят уже с опытом. На позицию джуна тоже хотят опыт в других технологиях

У меня создалось впечатление что с работой для джуна на go совсем плохо.
Но go вроде стабильно растет.

Просто в Go все сразу сеньорами начинают, а автор решил что он самый хитрый, и создаст себе большие перспективы карьерного роста.

Я учу Go как первый язык, вернее я учил до этого с# около 6 месяцев и где-то 2 месяца джаву

Почему после 8 месяцев C# и Java — Go все еще первый язык?

Потому что в продакшене не кодил и даже не фрилансил (максимум что было дак это 2-х месячный епамовский курс, а так задачки на литкоде и всякие лабы за копеечку), по большей части из-за универа, не хотел пропускать курс по теорверу и системному анализу. А потом собственно познакомился с Го.

Мне не нравится js в принципе) Я думал на счет python’а и django, но всё еще думаю, всё таки не хочется бросать то что ежедневно учил в течении двух-трех месяцев.

А вы открывали ссылку? Там несколько вакансий именно Junior прямо в заголовке написано. Плюс нужно читать и возможно апплаится на все где пишут миддл или без указания уровня (они могут взять «на вырост»).

Ранком була за 24 січня і так, не активна, зараз глянув, вакансія активна (1 березня 2019) Intern/Junior Golang Developer (ZEO Alliance)

Подписаться на комментарии