Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Классический арканоид для любителей ретро-игр. Защитите космический корабль с Печенькой (и не только) на борту, проходя уровни в арканоиде.

Арканоид Пикабу

Арканоид, Аркады, Веселая

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Golang

С этим тегом используют

Программирование IT Программист Разработка Все
84 поста сначала свежее
Блог компании
practicum.yandex
practicum.yandex
4 месяца назад

Сколько может зарабатывать Go-разработчик в 2025 году⁠⁠

Если кратко — много. А если вы с опытом и скилами, то очень много. Зарплатная вилка для Go-разработчиков в 2025 году — от 80 до 650 тысяч рублей. Зарабатывать можно много, все зависит от вашего упорства и желания учиться. А теперь подробнее.

Сколько может зарабатывать Go-разработчик в 2025 году Карьера, Профессия, Учеба, Курсы, Онлайн-курсы, Программирование, Golang, IT, Длиннопост, Блоги компаний

Сколько зарабатывает Go-разработчик

В среднем

Если смотреть на данные Хабр Карьеры, то в 2025 году это почти 315 тысяч рублей в месяц. У GeekLink цифра даже выше — 386 тысяч. А вот портал Dream Job указывает более скромную зарплату — 226 тысяч.

1/3

Junior

Будем опираться на данные HH Карьеры на начало 2025 года. В целом по России зарплата на старте составит 120–150 тысяч рублей. В Москве и Санкт-Петербурге оклад джуна — от 80 до 160 тысяч. С этих сумм вполне возможно начать карьеру после окончания онлайн-курса «Go-разработчик с нуля».

Сколько может зарабатывать Go-разработчик в 2025 году Карьера, Профессия, Учеба, Курсы, Онлайн-курсы, Программирование, Golang, IT, Длиннопост, Блоги компаний

Middle

При опыте от года зарплата Go-разработчика увеличится до 275–300 тысяч рублей в месяц. Мидлов работодатели ищут чаще, чем джунов: 40% всех открытых вакансий против 8%. Вот какие требования указывают в вакансиях на Hh. Освоить эти навыки поможет курс «Продвинутый Go‑разработчик».

Сколько может зарабатывать Go-разработчик в 2025 году Карьера, Профессия, Учеба, Курсы, Онлайн-курсы, Программирование, Golang, IT, Длиннопост, Блоги компаний

Senior / Lead

При опыте от четырех-пяти лет Golang-разработчик может получать уже около 350 тысяч рублей в месяц и больше — вплоть до 650 тысяч. Развиваться можно как горизонтально, набирая экспертность в технических вопросах, так и вертикально. Например, стать тимлидом и руководить командой.

Вот примеры требований для сеньоров и лидов из объявлений Hh в 2025 году.

1/3

Если вы только планируете идти в IT и еще не уверены, хотите ли стать Go-разработчиком, проходите бесплатную вводную часть нашего курса — и уже потом приступайте к полной программе. Мы в Практикуме поддержим, дадим всю нужную теорию и научим разработке на реальных проектах. После окончания обучения поможем собрать резюме и портфолио, проходить собеседования.

А опытным Go-разработчикам мы предлагаем повысить квалификацию, чтобы рассчитывать на более высокую зарплату и продвигаться в карьере.

У нас есть бесплатные курсы и тесты, которые помогут определиться с профессией, освоить полезные навыки и расширить свои знания об IT в целом.

Реклама ООО «Яндекс», ИНН: 7736207543

Показать полностью 9
Карьера Профессия Учеба Курсы Онлайн-курсы Программирование Golang IT Длиннопост Блоги компаний
4
29
imctobitch
imctobitch
4 месяца назад
Лига программистов
Серия I'm CTO, bitch

Просто⁠⁠

Просто I`m CTO bitch, IT, Просто, Сложно, Программирование, Golang, Микросервисы, Kubernetes, Разработка, Kanban, Бесит, Грубость, Билл Гейтс, Скриншот
Показать полностью 1
[моё] I`m CTO bitch IT Просто Сложно Программирование Golang Микросервисы Kubernetes Разработка Kanban Бесит Грубость Билл Гейтс Скриншот
0
3
dirtyhack
dirtyhack
5 месяцев назад
Типичный программист

Tears in rain⁠⁠

Перечитал комменты, под своей последней (простите но у меня аллергия на слово крайний), статьей на хабре и пришло на ум:

Я видел такое, что вам, людям, и не снилось.

PHP-код, состоящий чуть менее, чем полностью из магических методов.

Атакующие корабли, пылающие над Орионом.

Костыли в FlatASMe, удерживающие систему на честном слове.

Лучи Си, разрезающие мрак у ворот Тангейзера.

Java-классы, унаследованные от 17 абстракций.

И if err != nil, вызвавший холивар среди гоферов.

Все эти мгновения затеряются во времени, как… слёзы в дожде…

Пришло время gc.collect().

Постмодернизм IT Golang PHP Java Assembler Текст
4
1
Kovarniykrab
Kovarniykrab
5 месяцев назад
Golang - DevOps

Язык программирования Go⁠⁠

Прохожу я значит, курс, по этому замечательному языку. Пытаюсь освоить указатели и интерфейсы и такая каша в голове, что просто ппц
К слову я никогда в разработке до этого не был, никогда не занимался и вообще я новый человек в этой среде. В связи с этим просьба, люди добрые! Помогите мне понять что же это такое, указатели и интерфейсы. Читаю теорию и вроде ок, начинаю заниматься задачками и сразу как будто земля из под ног уходит. Теряюсь и туплю как тварь

Golang Программирование Учеба Сложно Текст
18
4SPHYX1A
4SPHYX1A
5 месяцев назад
Серия Разбираемся вместе

Разбираемся вместе: строки в golang⁠⁠

Один из постов серии «Разбираемся вместе«: представляет из себя разбор определенной темы лично мной в целях улучшения понимания и возможно, получения фидбека от более опытных людей.
* Этот пост в совокупности с комментариями может помочь кому-то лучше понять разбираемую тему или сделать более подробный разбор на базе него.
* Этот пост не служит инструкцией, курсом или документацией, где гаранитируется 100% достоверная информация по озвученной теме — автор учится сам, так что ошибки возможны.

Строка (string) — это базовый (basic) тип данных, который представляет из себя неизменяемую последовательность байт, представленных в кодировке UTF-8.

Строки должны быть заключены в двойные кавычки.

  • Одинарные же кавычки представляют отдельный символ, который в Go представлен типом rune (псевдоним int32).

str := "A"

fmt.Println(str) // Выводит A

char := 'A'

fmt.Println(char) // Выводит 65 — символ это в первую очередь код Unicode

Про кодирование строк

Unicode — это стандарт, который определяет уникальные коды для каждого символа, независимо от используемой системы или языка.

  • Unicode — это также система кодирования символов, которая включает в себя огромный набор символов, каждый из которых имеет свой уникальный код. Эти коды называются Unicode code points.

UTF-8 (8-bit Unicode Transformation Format) — это один из способов (или схем) кодирования символов Unicode в последовательности байт.

  • Это позволяет эффективно хранить символы в памяти и передавать их по сети.

  • При кодировании в формате UTF-8 каждый символ может занимать от 1 до 4 байт, в зависимости от его позиции в стандарте Unicode.

  • Символы из ASCII (U+0000 до U+007F) кодируются одним байтом.

  • Символы из более широких диапазонов Unicode (например, кириллица, китайские иероглифы, эмодзи) могут занимать 2, 3 или 4 байта.

Индексация строк

Индексация строки по умолчанию работает с байтами, а не с символами.

  • При обращении по индексу,  возвращается тип byte.

  • Это отлично работает для символов ASCII, которые занимают 1 байт.

  • Для символов других алфавитов (например, кириллицы) через индексацию возвращается только первый байт, что может вызвать искажения при выводе символов.

Подробнее

Символы английского алфавита (символы ASCII) занимают 1 байт пространства.

  • то есть числовое представление символа ASCII, его код Unicode, умещается в 1 байт.

Поэтому каждый отдельный символ ASCII (вернее его код) можно получить через индекс.

s := “string”

fmt.Println(s[0]) // Выводит 83 — код символа в Unicode тип byte

fmt.Println(string(s[0])) // Выводит s — символ алфавита тип string

  • Делается каст типа byte в строку, чтобы привести символ в человекочитаемый вид.

Символы других алфавитов (или эмодзи) могут занимать более 1 байта. Поэтому через индекс нельзя получить полностью код Unicode. Вернется лишь значение первого байта.

  • Например, символы кириллицы занимают 2 байта пространства — числовое представление символа кириллицы, его код в Unicode не вмещается в 1 байт, поэтому происходит разделение на 2 байта.

s := “Привет”

fmt.Println(s[0]) // вернет Ð — код непонятен для кодировки utf-8, так как первый байт символа содержит лишь часть кода Unicode

  • символ кириллицы занимает 2 байта, через индекс забирается только первый байт, что искажает целевой символ

  • если взять срез fmt.Println(s[0:2]) // возвращается П — забираются первые 2 байта, которые представляют из себя код и код автоматически декодируется в понятный человеку символ.

Как работать с символами строк

Чтобы корректно работать с символами, нужно преобразовать строку в срез типа []rune.

  • Срез []rune представляет строку как последовательность Unicode-кодов символов.

s := “Привет”

runes := []rune(s)

fmt.Println(runes[0]) // 1055 (код символа П в Unicode)

fmt.Println(string(runes[0])) // каст кода П в строку


  • теперь каждый символ кириллицы правильно переведен в тип rune, что представляет код Unicode

Длина строки

Так как строки в Go представлены как последовательность байт, и их длина измеряется в байтах.

Если передать строку в функцию len(s), функция вернет размер строки в байтах.

Каждый отдельный английский символ (ASCII) занимает 1 байт памяти и размер строки в байтах включающий только ASCII символы будет равен длине строки.

  • Может возникнуть неточность, если строка состоит из символов другого языка или включает эмодзи, в этом случае размер строки будет превышать фактическую длину, так как символы других алфавитов занимают больше 1 байта пространства.

Для того чтобы получить количество символов (вместо байтов), можно использовать пакет unicode/utf8.

import “unicode/utf8”

s := “Это строка”

fmt.Println(len(s)) // 19

fmt.Println(utf8.RuneCountInString(s)) // 10

Еще один способ получить длину строки (количество символов) это сделать каст строки в срез с элементами типа rune.

s := “Это строка”

fmt.Println(len([]rune(s))) // 10

Эти два способа гарантированно вернут правильное количество символов в строке, даже если в ней содержатся символы разных алфавитов.

Литералы строк

Литерал — это фиксированное значение, напрямую указанное в исходном коде программы.

Литерал представляет собой синтаксическую конструкцию, которая интерпретируется компилятором или интерпретатором как экземпляр определённого типа данных.

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

Литерал строки — это текст в исходном коде программы.

  • Кавычки, которые окружают литерал строки, — это синтаксическая часть языка Go, они нужны для обозначения строки.

  • С помощью двойных кавычек, компилятор golang поймет, что он работает со строкой.

  • Если в значении строки требуются двойные кавычки (например, для цитаты), их нужно явно указать и экранировать в самом литерале строки.

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

Управляющие символы

Для форматирования строк и работы с особыми символами в Go используются управляющие символы.

Управляющие символы начинаются с обратного слеша (\), за которым следует другой символ, определяющий их действие.

  • Они используются для добавления специальных символов, которые невозможно напрямую ввести в строку, либо для экранирования тех символов, которые иначе воспринимались бы как часть синтаксиса.

Примеры управляющих символов в Go:

  • \n — перевод строки

  • \t — символ табуляции

  • \f — подача страницы

  • \\ — обратный слеш

  • \" — экранирование двойной кавычки

  • \' — экранирование одинарной кавычки

Многострочная печать

Размещение строк в нескольких рядах делает текст более понятным и упорядоченным, позволяет форматировать его как письмо или сохранить разрывы строк в стихотворении или тексте песни.

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

  • В строках, заключенных в обратные апострофы, не требуется экранировать символы. Например, символы \ или кавычки (") можно использовать без обратного слэша.

Такие строки называют "сырыми" (raw string literals), так как они сохраняют текст в его исходном виде без обработки управляющих символов.

text := `This is a

multi-line string.

It preserves line breaks and spaces.`

Конкатенация

Оператор + используется для соединения двух строк.

s1 := "Hello, "

s2 := "world!"

s3 := s1 + s2

fmt.Println(s3) // "Hello, world!"


Эта операция создаёт новую строку, которая является результатом соединения исходных строк.

  • Важно понимать, что строки в Go неизменяемы, поэтому при использовании операции + возвращается новое значение, а не изменяется одна из исходных строк.

Пакет strings

Встроенный пакет, который предоставляет функции для работы со строками в кодировке utf-8.

  • с полным набором функций можно ознакомиться в документации пакета, тут разберем некоторые

strings.Contains()

Эта функция проверяет, содержится ли подстрока в строке.

  • Возвращает true, если строка найдена, и false — если не найдена.

import "strings"

s := "hello world"

fmt.Println(strings.Contains(s, "world")) // true

fmt.Println(strings.Contains(s, "go"))  // false

strings.ToUpper() и strings.ToLower()

Эти функции позволяют преобразовать строку в верхний или нижний регистр.

import "strings"

s := "Hello"

fmt.Println(strings.ToUpper(s)) // "HELLO"

fmt.Println(strings.ToLower(s)) // "hello"

strings.Trim()

Функция strings.Trim() позволяет удалить указанный вторым параметром символы с начала и конца строки.

import "strings"

s := "  Hello, world!  "

fmt.Println(strings.Trim(s, " ")) // Выведет "Hello, world!"

strings.TrimSpace()

Можно также использовать strings.TrimSpace(), чтобы удалить только пробелы.

strings.Split()

Функция strings.Split() разделяет строку на подстроки по заданному разделителю и возвращает срез строк.

import "strings"

s := "a b c d"

result := strings.Split(s, " ")

fmt.Println(result) // [a b c d]

strings.Join()

Функция strings.Join() объединяет срез строк в одну строку с заданным разделителем.

import "strings"

slice := []string{"a", "b", "c", "d"}

result := strings.Join(slice, "")

fmt.Println(result) // "abcd"

strings.Replace()

Эта функция позволяет заменить все или ограниченное количество вхождений подстроки в строке на другую строку.

import "strings"

s := "hello world"

result := strings.Replace(s, "world", "Go", -1)

fmt.Println(result) // "hello Go"

  • -1 все вхождения

range

range — это ключевое слово для перебора коллекций в цикле.

При каждом проходе цикла range возвращает два значения:

  • индекс начального байта символа строки

  • индекс элемента (массив или срез)

  • ключ при работе с картами

  • и затем соответствующее значение из коллекции.

Со строками ключевое слово range используется для итерации и извлечения каждого символа (rune) из строки.

  • Это позволяет корректно обрабатывать многобайтовые символы в строках.


s := "string"

for i, r := range s {

fmt.Printf("%d: %c\n", i, r)

}

  • В этом примере i — это начальный индекс байта в строке, а r — это сам символ (rune).

fmt.Sprintf()

Аналог fmt.Printf(), но результат сохраняется в строку, а не выводится в консоль.

str := fmt.Sprintf("Hello, %s!", "world")

fmt.Println(str)

Показать полностью
[моё] Golang Строки Обучение Разбор Разбираемся вместе Программирование Текст Длиннопост
0
518
KOPOBOPOTEHb
KOPOBOPOTEHb
6 месяцев назад
Противозачаточные шутки

Извращенцы⁠⁠

Извращенцы
Из сети Юмор Картинка с текстом Языки программирования Golang Vlad DFE - Twitter
5
3
linoles
linoles
7 месяцев назад

И всё равно старый C++ лучше любого нового Go...⁠⁠

И всё равно старый C++ лучше любого нового Go... Telegram, Telegram (ссылка), Мемы, Юмор, Жизненно, IT, C++, Golang

@slimememes08 - telegram

Мем сделан мной, все совпадения с другими постами случайны. Процесс создания мема в комментариях.

Показать полностью
[моё] Telegram Telegram (ссылка) Мемы Юмор Жизненно IT C++ Golang
3
1
comradeoff
comradeoff
7 месяцев назад

Java или Golang⁠⁠

Всем привет! Что посоветуете: Java или Go ? Golang меня привлекает больше, но на нём вакансий намного меньше. Щас учусь в универе, уже хочу определиться с языком программирования для бекенда. Java уже знаю немного, т.к. в вузе его преподают. Spring тоже трогал. Как думаете ? Или может другие яп посоветуете ?

Java Golang Программирование Backend Текст
51
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии