Все потоки
Поиск
Написать публикацию
Обновить
89.95

Go *

Компилируемый, многопоточный язык программирования

Сначала показывать
Порог рейтинга

Последний Go-митап в этом году: как Go меняет подходы к разработке и тестированию

Уже через несколько часов, в 19:00, начнется онлайн-трансляция финального в этом году Go-митапа, где разработчики и технические лидеры сообщества обсудят инструменты кодинга на Go. В мероприятии примут участие эксперты из YADRO, Wildberries, Weborama и Ви.Tech. Регистрируйтесь на онлайн-участие. 

Программа:

Приветственное слово: Руслан Барсуков, ведущий инженер по разработке ПО в YADRO, и Виталий Левченко, технический менеджер в Wildberries, расскажут о планах Go-сообщества в Нижнем Новгороде.

«Генерация стабов для тестирования микросервисов по gRPC»

Кирилл Шувалов, разработчик дивизиона Телеком в YADRO, покажет, как с помощью Protoc стандартизировать тесты, упрощая их написание и повышая читаемость.

«Стриминг данных из Snowflake в Couchbase»

Александр Ванюшкин, разработчик в Weborama, поделится опытом создания плагина для Redpanda/Connect для оперативной обработки данных.

«Сборка проектов на Go: от Make до Mise»

Даниил Подольский, эксперт по разработке ПО в YADRO и один из лидеров внутреннего Go-сообщества, расскажет о развитии инструментов сборки и выборе оптимальных решений.

«Почему мы пилим монолит без микросервисов»

Кирилл Кузин, старший golang-разработчик, Ви.Tech, объяснит, как команда поддерживает сложную архитектуру и избегает ошибок при распиле монолита.

Пришлем ссылку на онлайн-трансляцию после регистрации на сайте →

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Чего не стоит делать в Go?

О типичных ошибках при разработке на Go рассказывает наш бэкенд-инженер и автор одноимённого канала Олег Козырев. Что в докладе: 

  • встраивание типов и устройство мапов; 

  • возможные протечки и кастомные ошибки;

  • разбор интерфейсов и грамотная обработка багов. 

И всё это — в компании одного очаровательного кота. 

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 22: ↑20 и ↓2+20
Комментарии0

Итоги облачного IT-турнира от Cloud.ru и Хабр🏆

18 ноября завершился наш облачный IT-турнир — интеллектуальное IT-соревнование для профи по направлениям DevOps, Go и кибербезопасность. 

Напомним, что участники соревнования должны были решить все задания за 50 минут и набрать как можно больше баллов. Турнирная таблица обновлялась в режиме реального времени — мы с интересом следили за тем, как IT-специалисты устанавливают новые рекорды. 

Свои навыки решили проверить 892 участника, а 537 из них стойко дошли до самого конца и выполнили все задания 🦾. В итоге в лидеры вырвались:

В лиге DevOps:

🥇1 место  — @evgeniy_fyodorov, 1437 очков. 

🥈2 место — @Kciod, 1290 очков. 

🥉3 место — @dimadragon, 1219 очков.

В лиге Go:

🥇1 место  — @smetanin, 2843 очков. 

🥈2 место — @melpnz, 2778 очков.

🥉3 место — @itas, 2745 очков.

В лиге кибербезопасности:

🥇1 место  — @T_Frost, 1868 очков. 

🥈2 место — @KiraCoder, 1814 очков.

🥉3 место — @georgybelyakov, 1787 очков.

Поздравляем! Они получат ачивку победителя и карьерную консультация от Марины Ломадзе — руководителя рекрутмента в Cloud․ru. Мы уже начали связываться с победителями, чтобы рассказать, как получить заслуженные призы😊.

А у всех хабраюзеров, которые верно решили более половины заданий турнира, появятся ачивки IT-Лиги в профиле на Хабре.

Хотите узнать правильные ответы на задания IT-турнира? Ставьте плюс в комментариях, а также указывайте номер или название задания. Если наберется много желающих, позже мы сделаем небольшой обзор с решениями.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Присоединяйтесь к облачному IT-турниру от Cloud.ru и Хабр🏆

Почти 400 IT-специалистов уже поучаствовали в соревновании для профи и проверили свои навыки по направлениям DevOps, Go и кибербезопасность на облачном IT-турнире. А вы готовы принять вызов?🦾

Что нужно для участия

  • до 18 ноября зарегистрируйтесь и выберите лигу: DevOps, Go или кибербезопасность;

  • решите как можно больше задач за 50 минут — чем больше правильных ответов, тем выше будет ваше место в рейтинге, который обновляется в режиме real-time.

Какие будут призы

  • если наберете 50% правильных ответов, получите ачивку IT-Лиги в профиле на Хабре;

  • если войдете в топ-3 в выбранной лиге, получите ачивку победителя и карьерную консультация от Марины Ломадзе — руководителя рекрутмента в Cloud․ru. На консультации сформируете план развития и получите советы, как выгодно презентовать свой опыт на интервью и вести диалог о повышении.

Хотите занять призовые места в рейтинге? Тогда участвуйте в IT-турнире, выигрывайте и забирайте призы🎁 

Теги:
Рейтинг0
Комментарии0

IT-турнир от Хабра и Cloud.ru: первые итоги

18 октября Хабр и Cloud.ru запустили хардовое соревнование для профи в IT. Уже 2 недели участники Облачного IT-турнира сражаются за вершину рейтинга по трём направлениям: DevOps, Go и кибербезопасность. 

Мы же внимательно следим за соревнованием и результатами, которые обновляются в режиме real-time. Ниже список юзеров Хабра, которые вошли в ТОП (по данным за 31 октября). Поздравляем!

Если вашего имени еще нет в турнирной таблице — скорее регистрируйтесь, выбирайте Лигу и покажите свои знания.

Мы подарим ачивки на Хабре тем, кто решит половину теста правильно. А топ-3 победителей по каждому направлению заберут победную ачивку и получат главный приз — индивидуальную карьерную консультацию. Там они сформируют планы развития и получат советы, как выгодно презентовать свой опыт на интервью и вести диалог о прибавке.

Наш турнир продлится до 18 ноября 2024 года. Рассчитываем, что гонка будет жаркой!

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Я вот не понимаю, почему Го преподносится как  post-OOP язык, в то время как это явно пре-ООП язык, чисто императивный. Как Бейсик (который не Вижуал) или Паскаль.

И это явно не прогресс, а регресс в подходе к методологии.

Хотя, очевидно, он выигрывает у языков с управляемой средой, да. Управляемая среда (ВМ) требует слишком много ресурсов для старта и разогрева. А в микросервисах это вообще не нужно.

Теги:
Всего голосов 8: ↑4 и ↓4+2
Комментарии44

Go 1.23: обзор основных изменений в релизе

Павел Агалецкий, ведущий разработчик команды Платформы в Авито, отвечает на следующие вопросы в этом видео:

  • выход в релиз range over func — какие новые возможности это открывает для работы с циклами?

  • добавлен пакет iter — как он упрощает написание функций итераторов?

  • внесены изменения в поведение таймеров — как это облегчает разработку?

А ещё вы узнаете о новом пакете unique и расширении уже имеющихся slices и maps. Приятного просмотра!

Теги:
Всего голосов 18: ↑18 и ↓0+20
Комментарии0

Всем привет!

У нас есть два стула…Python и Go. Хоть немного зная один из этих языков, девопс может делать в Kubernetes разную магию.

Завтра встретимся с Виталием Лихачевым, SRE в Bооking.сom,ex-Avito Senior Software Engineer, на вебинаре, чтобы разобрать:

• Как использовать k8s как API, даже не зная его устройства? 
• Как создать при этом симбиоз между кодом и целым кластером?
• Как в k8s объединять бизнес-логику и инфраструктуру с помощью миллионов строк кода?

Всё это — на примерах Python и Go.

А ещё можно:

• Контролировать соответствие манифестов архитектуры стандартам — и при этом не ходить по репозиториям и не править манифесты руками 
• Подключать различные sidecar контейнеры для сбора логов и метрик —  и не мешать этим разработчикам
• Делать это всё на лету.

И мы постараемся показать, как. А уж на какой из стульев садиться — выбор за вами)

Дата и время — 21 августа, 19:00 мск 
Занять место на вебинаре — по ссылке.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии1

Вышел Go 1.23!

Привет, Хабр!

В этом посте я напишу все основные изменения в новой версии Go:

  1. Range-over func

    Эксперимент с range-over func теперь основательно является частью Go

    Подробнее про range-over func читать здесь: https://go.dev/wiki/RangefuncExperiment

  2. Телеметрия

    Добавили Go Telemetry для отслеживания работы Go Toolchain. Сами разработчики Golang советуют включить эту опцию, так как она еженедельно будет анонимно отсылать информацию на https://telemetry.go.dev/ для улучшения работы Toolchain

    Подробнее про команду "go telemetry" читать здесь: https://pkg.go.dev/cmd/go#hdr-Manage_telemetry_data_and_settings

  3. Таймер

    Изменения также коснулись и "time.Timer" и "time.Ticker"

    Во-первых - "Тикеры" и "Таймеры", не упоминающиеся программой - становятся допустимыми для сборки мусора, даже если не был вызван метод "Stop"

    Во-вторых - теперь каналы "Таймера" и "Тикера" не буферированы. Это объясняется тем, что для вызова методов Reset или Stop не будет устаревших подготовленных значений

  4. Unique

    Добавлен новый пакет "unique": https://pkg.go.dev/unique

  5. Iter

    Добавлен новый пакет "iter": https://pkg.go.dev/iter

  6. Slices

    В пакет "slices" добавили несколько функций, которые работают с итераторами: https://go.dev/doc/go1.23#iterators

  7. Maps

    В пакет "maps" тоже добавили несколько функций для работы с итераторами: https://go.dev/doc/go1.23#iterators

  8. Structs

    Добавлен новый пакет "structs", который предоставляет новые типы для struct-полей: https://pkg.go.dev/structs

Это и еще многое читайте на официальном сайте Go!

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии2

Go: маршрутизация без лишних пакетов

Привет, Хабр!

Недавно я открыл для себя “net/http” - роутер, который изначально есть в Go. В этом посте я опишу его удобство и, возможно, Вы - как и я, начнете его использовать, пусть он и не такой быстрый, как маршрутизаторы, основанные на fasthttp.

1. Не надо подключать сторонние пакеты

Достаточно только написать строку import “net/http”. Не надо подключать сторонние пакеты и тратить время на написание команд в консоли

2. Отличные возможности

В нем есть почти все то, что есть современных маршрутизаторах по типу Chi или GoFiber. Это очень удобно

3. Возможность расширения

Вы сами пишете многие функции. Значит, что не ограничены возможностями роутера

4. Контроль

Многое придётся делать самому ⇒ Вы будете знать, почему и как все происходит

Многое придётся делать своими руками, а в таком случае будете знать, почему и как все работает

Но, конечно, есть минусы:

1. Middleware

Придется писать все middleware собственными руками

2. Скорость

Он не такой быстрый, как роутеры, написанные с использованием fasthttp

3. Ошибки

Думаю, для многих это будет самым большим минусом. Нельзя возвращать ошибки из хэндлеров

Напишите в комментариях каким роутером пользуетесь Вы и почему именно им!

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии3

Привет, Хабр! Сегодня я буду усиленно делать вид, что понимаю, что такое формат поста на Хабре и для чего его можно использовать.

Я сейчас занимаюсь фулл-тайм инди разработкой игр на Go и у меня много всего, чем я мог бы поделиться. Есть как уже выпущенное в Steam, так и грядущие релизы. Множество новых собственных и освоенных 3rd party библиотек.

Чаще всего я пишу о конкретных и довольно фундаментальных вещах в изоляции. Например, низкоуровневый способ рендеринга в движке Ebitengine или поиск пути. Но вдруг вам были бы интересны и другие форматы/фокусы? У меня не так много времени, чтобы писать обо всём, но на одну статью в месяц-два я точно способен.

Если хочется обсудить внутри сообщества: https://t.me/go_gamedev

Теги:
Всего голосов 4: ↑2 и ↓2+3
Комментарии1

Разработчик и руководитель Рас Кокс (Russ Coxобъявил об уходе с поста лидера проекта по разработке языка программирования Go, который он занимал последние 12 лет. В качестве причины ухода упоминается желание обеспечить сменяемость руководства, без которого проект может оказаться в застое. Предполагается, что смена лидера создаст условия для роста проекта, позволит по-новому взглянуть на вещи и даст возможность совершить новый шаг вперёд.

Рас Кокс пояснил, что для него настало время для изменений, но он не покидает проект и продолжит участие в разработке, но уже не на месте лидера. После ухода с руководящей должности Рас планирует сосредоточиться на развитии системы отслеживания ошибок, бота автоматического реагирования на сообщения о проблемах Gaby и платформы для автоматизации сопровождения кода Oscar.

С первого сентября за техническую часть разработки будет отвечать Остин Клементс (Austin Clements), который также возглавит команду, занимающуюся разработкой Go, в компании Google. Ранее Остин отвечал в проекте за компилятор, runtime и выпуск релизов. После повышения Остина за данные компоненты теперь будет отвечать Черри Муи (Cherry Mui).

Источник: OpenNET.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Go для веб-разработки

Взято с https://www.linkedin.com/pulse/exploring-go-language-web-development-muhammad-irfan-q3nvf

Привет, Хабр!

Одна из тех вещей, которыми я занимаюсь с использованием Go — веб разработка. Я могу написать как фулл‑стэк вебсайт, так и просто бэкэнд. В этом коротком посте я дам Вам несколько советов и практик по веб‑разработке с использованием Golang

1. Роутеры

Есть много роутеров, и я советую попробовать каждый, чтобы найти лучший для себя. Но если Вы не хотите этого делать, то вот несколько хороших роутеров:

  1. Chi router — роутер, которым я пользуюсь. Полная совместимость со стандартным пакетом Go

  2. Go fiber — скоростной роутер

2. Jet templates

Очень удобная библиотека для использование темплэйтов. Очень упростила мне жизнь, если Вы пользуетесь теплэйтами в Go — упростит и Вам

3. Используйте middleware

Не используете middleware — ошибка. Не используете встроенные в пакет роутера middleware — фатальная ошибка. Есть очень много хороших middleware, которые уже встроены в используемый Вами роутер, например — Chi. Очень полезно использовать «Recoverer», или подобные.

4. Используйте аккуратную и удобную Вам структуру проекта

Не создавайте все файлы вместе. Разбейте все по папкам, как удобно Вам, в интернете есть много примеров

Вот и все, надеюсь я хоть как‑то Вам помог! Еще можете почитать мои посты по темам Golang: лучшие практики, 5 библиотек Golang для эффективной разработки веб‑приложений и т. д.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии2

Ближайшие события

Используем Redis на всю катушку

Всем привет!

Кто знаком с Redis — чаще всего используют его для простого кеша. А можно ещё и для текстового поиска, для сбора аналитических событий, для гео поиска, для стриминга событий и многого другого.

Сегодня в 19:00 покажем это на примерах Golang на вебинаре «Gони, Redis, Gони! Как использовать Redis за пределами key-value storage?».

Встретимся с Виталием Лихачёвым, Ex-Avito Senior Software Engineer и SRE в Booking.сom, чтобы поговорить про все варианты эксплуатации Redis.

Внутри:

▶️ Вторичные индексы, распределенные блокировки, полнотекстовый поиск
▶️ Паттерны использования Redis и работу Redis со стороны эксплуатации

🗓 31 июля в 19:00 по Москве
➡️ Регистрация на вебинар — с помощью бота.

Приходите!

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Golang: лучшие практики

Взято с https://github.com/golang/go
Взято с https://github.com/golang/go

Вы новичок в Golang? Или сомневаетесь, что пишете код правильно? Тогда вот лучшие практики при написании кода на Golang, большинство которых взято с “Effective Go”, а некоторые, применимые ко всем языкам программирования - с книги “Чистый Код

1. Названия функций-геттеров

Не надо в Golang писать названия функций-геттеров с приставкой “Get”.

То есть, вместо func GetUser() , пишите func User() . Но это не применимо к функциям, которые начинаются с маленькой буквы

2. Названия функций-сеттеров

В отличии от функций-геттеров, функции-сеттеры необходимо писать с приставкой “Set”.

То есть, если Ваша функция - сеттер юзера, пишите func SetUser(). Но это так же не применимо к функциям, которые начинаются с маленькой буквы

3. Названия однометодовых интерфейсов

Если Ваш интерфейс однометодовый, то по соглашению его названием должно являтся название метода + суффикс “er”. Например: “Reader, Writer, Formatter и т.д”

4. Избежание перераспределений

При создании среза, используйте make с указанием длины. Так Вы избежите перераспределений, что сделает Вашу программу чуть быстрее (больше советов про скорость программ на Golang есть в моём посте)

5. Тесты

Если Вы не пишите тесты для своих программ, Вы делаете ошибку. Это важная часть и ее лучше не избегать. Пишите функциональные тесты, пишите модульные, пишите бенчмарки(об этом я также писал в своём посте)

6. Размер функций

Не пишите огромные функции. Постарайтесь не превышать 30 строк кода. Разбейте ее на много маленьких!

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

5 библиотек Golang для эффективной разработки веб-приложений

Доброго времени суток, уважаемые гоферы. Возможно Вы новичок в разработке веб-приложений, а возможно просто хотите открыть для себя новые библиотеки. Если это так, то вот 5 библиотек, многими из которых я активно пользуюсь

1. CHI Router

Как по мне, самая лучшая библиотека для веб разработки. Полная совместимость с роутером голанга, а также большое кол-во middleware - вот главные плюсы Chi router. Им я пользуюсь на постоянной основе

2. Go Fiber

Если Вам не понравился Chi router - есть Go FIber. Быстр, но нет совместимости со встроенным роутером. Если для Вас это не проблема - используйте его. Для меня его преимущества - скорость и возможность возвращать ошибки из хэндлеров

3. Jet templates

Насколько сильно мне упростила эта библиотека жизнь. Наипростейшее использование темплэйтов в Golang. Если Вам не нравится встроенное их использование, Jet - Ваше спасение

4. Scs

Отличный менеджер сессий. Если Вам надо использовать сессии - Scs

5. CHI Render

Отличная библиотека от тех же людей, что сделали CHI router. Помогает работать с HTTP запросами

На этом все, но могу также порекомендовать такие библиотеки, как testify для упрощения написания тестов и cleanenv для чтения конфига, ведь это так же важно.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии2

Чем занимаются Go-специалисты в Островке?

У нас 10 команд, использующих Go, как основной язык. Для примера возьмём команду интеграций с поставщиками отелей. Вот что делают разработчики в этой команде:

  • Адаптируют API различных поставщиков к внутреннему API сервиса. Внешние поставщики отелей используют разные технологии: GraphQL, XML, SOAP, WTF. В каждом API своё время ответа, свои коды ошибок и ещё много кастомного. 

  • Поддерживают и правят существующие интеграции. Протокол сменился, или (куда реже) коды ошибок стали другие — всё надо держать в актуальном состоянии и при необходимости править.

  • Уменьшают технический долг. Это задачи, связанные с библиотеками и рефакторингом. Есть правило — на одну итерацию должно приходиться 75% продуктовых задач и 25% техдолговых.

  • Дежурят в общем чате. В нём разработчики отвечают на вопросы менеджеров. Раньше дежурств не было, на вопрос отвечал тот, кто увидел его первым. Когда поток обращений вырос, решили назначать дежурного.

  • Обмениваются знаниями внутри компании. В Островке есть активности, напрямую не связанные с работой. Например, канал в слаке #dev-golang и еженедельный книжный клуб.

Отдельно отмечу багфиксы, которые порой превращаются в настоящие расследования инцидентов. Кроме того, команда интеграций с поставщиками отелей сейчас переписывает легаси частей системы и разрабатывает свой линтер, о котором у нас будет отдельная статья.

Теги:
Всего голосов 4: ↑3 и ↓1+6
Комментарии2

Go: Раскрытие потенциала скорости

Я всегда борюсь за скорость. Началось это все с того, как я прочитал книгу “Грокаем алгоритмы” и меня заинтересовало измерение скорости выполнения. Потом, решая задачи на LeetCode я расстраивался, если алгоритм получался медленным. Недавно мне пришла идея написать пост на эту тему, а во время написания изучить этот вопрос получше. Я прочитал не мало статьей, большинство из которых - англоязычные.Так что вот советы по увеличению скорости Вашего приложения на Golang :

1. Выделять ёмкость для среза с помощью make

При создании среза выделяйте ёмкость с помощью make, так Вы избавитесь от перераспределений

2. При возвращении указателя, объявлять его при создании переменной

 func (r Ruleset) Match(path string) (*Rule, error) {
 	for i := len(r) - 1; i >= 0; i-- {
		rule := r[i] //так НЕ надо
		rule := &r[i] //так надо
 		match, err := rule.Match(path)
 		if match || err != nil {
			return &rule, err //так НЕ надо
			return rule, err //так надо
 		}
 	}
 	return nil, nil
}

3. Пишите бенчмарки

Пишите бенчмарки для вашего приложения, так Вы поймете, в каком месте оно работает медленнее всего. Источник для того, чтобы научиться писать бенчмарки: https://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go и др.

4. Используйте горутины!

Когда есть возможность, используйте горутины. Например, когда результат 2-х операций не зависит друг от друга, можете использовать горутины. Думаю, доказывать, что таким образом приложение становится быстрее, не надо :)

Теги:
Всего голосов 5: ↑2 и ↓3+3
Комментарии4

Эта программа сериализует данные из слайса структур User в JSON-формат. Но есть одна проблема: программа не работает. Нужно найти ошибку и исправить её. Когда программа заработает, она выведет данные на экран в JSON-формате.

import (
  "encoding/json"
  "fmt"
)

type User struct {
  id       int    `json:"id"`
  name     string `json:"name,omitempty"`
  email    string `json:"email,omitempty"`
  password string `json:"-"`
}

func main() {
  users := []User{
    {
      id:       1,
      name:     "Gopher",
      email:    "gopher@example.com",
      password: "Im4G0pH3r",
    },
    {
      id:       2,
      name:     "Rustocaen",
      email:    "rustocean@example.com",
      password: "iT$Ru$t0C34n",
    },
  }

  out, err := json.MarshalIndent(users, "", "    ")
  if err != nil {
    fmt.Printf("serialization error: %s\n", err.Error())
    return
  }

  fmt.Println(string(out))
}

Решение задачи опубликуем в комментариях.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

Что почитать начинающим разработчикам на Go

Привет, Хабр! Меня зовут Алексей Артамонов, я лид команды интеграции в «Островке». Сделал подборку, что можно почитать для старта работы с Go:

  • «The Go programming language» — азы для старта. Хотя синтаксис в Go простой, важно уметь из этих простых вещей собирать сложные конструкции. 

  • Effective Go — практическое пособие для создания тех самых сложных конструкций.

  • «Сто ошибок в Go» — ещё одна хорошая книга. Заход со стороны «как делать не надо».

  • В различных обучающих программах очень много внимания уделяют монолитам, микросервисам и в принципе архитектуре. Но правда в том, что джун или мидл вряд ли столкнётся со столь глобальными задачами. Ему важнее уметь разбить свою логику по классам, пакетам, модулям. Важно писать качественный код. Для этого обязательно рекомендую книгу «Good code, bad code».

  • Много полезного в книге «Принципы юнит-тестирования». Хорошие юнит-тесты неразрывно связаны с тем, как приложение разбито на модули, какие есть связи и зависимости.

  • Два блога-рассылки: GoLang Blog и Awesome Go Weekly.

  • Подкасты довольно сложны для восприятия в фоновом режиме. Особенно для новичков. Но если очень хочется: GoTime, GoPodcast и GoGetPodcast.

Обучение пройдёт легче, если уже знать какой-нибудь язык программирования. К примеру, в «Островке» два главных языка — Python и, собственно, Go. Главный секрет — желание и практика. Если хочешь стать программистом — надо сесть и начать кодить. Ни одна книга без практики не поможет стать программистом.

Теги:
Всего голосов 15: ↑15 и ↓0+20
Комментарии2

Вклад авторов