Мок-собеседование
На нашей платформе есть раздел мок-собеседования.
Некоторое время назад я хотел вынести все разделы, связанные с собеседованиями, в отдельный проект, но не учел момент с привязанностью пользователей. У нас есть привычки, и чтобы их изменить, нужно приложить много усилий. Поэтому на сайт никто не стал заходить.
Я вернул функцию мок-собеседований на основную платформу, но интерес к ней потерялся.
А сейчас, когда мы проводим эксперимент с Go, такая функция оказалась востребованной.
Напомню, как она работает.
Вы хотите обсудить какой-то раздел, например, SQL — оптимизация запросов, индексы, explain.
Создайте новое мок-собеседование. Указываете, о чём хотели бы поговорить.
Ранее я настаивал, чтобы мок-собеседование было жёстко разделено на роли: тот, кто накидывает вопросы, и тот, кто старается ответить.
В новой версии я хотел бы уйти от этих жёстких правил. То есть цель мок-собеседования — поговорить на ту или иную тему.
https://job4j.ru/interviews
На нашей платформе есть раздел мок-собеседования.
Некоторое время назад я хотел вынести все разделы, связанные с собеседованиями, в отдельный проект, но не учел момент с привязанностью пользователей. У нас есть привычки, и чтобы их изменить, нужно приложить много усилий. Поэтому на сайт никто не стал заходить.
Я вернул функцию мок-собеседований на основную платформу, но интерес к ней потерялся.
А сейчас, когда мы проводим эксперимент с Go, такая функция оказалась востребованной.
Напомню, как она работает.
Вы хотите обсудить какой-то раздел, например, SQL — оптимизация запросов, индексы, explain.
Создайте новое мок-собеседование. Указываете, о чём хотели бы поговорить.
Ранее я настаивал, чтобы мок-собеседование было жёстко разделено на роли: тот, кто накидывает вопросы, и тот, кто старается ответить.
В новой версии я хотел бы уйти от этих жёстких правил. То есть цель мок-собеседования — поговорить на ту или иную тему.
https://job4j.ru/interviews
👍14
Курс DevOps | Метрики Prometheus
Добавил уроки про метрики Prometheus.
Системные метрики приложений [#505467]
Бизнес-метрики приложений [#505468]
Вчера просматривал очередное мок-собеседование по Go. Обратил внимание, что часто спрашивают вопросы про сбор метрик.
То есть теперь рынок требует не просто написать микросервис, но также и полноценно его внедрить.
Перечислю основные метрики.
Метрики производительности
* Время отклика
* Задержки
* Пропускная способность
* Частота ошибок
Метрики здоровья приложения
* Аптайм приложения
* Жизненные циклы
* Состояние базы данных
* Метрики JVM
Метрики работы с базой данных
* Количество запросов
* Типы запросов
* Задержки запросов
Метрики приложений
* Загруженность приложений
* Использование процессора и памяти
Метрики безопасности
* Аутентификация
* Авторизация
Метрики для работы с очередями
* Обработка сообщений
* Ошибки обработки сообщений
Метрики кэширования
* Работа с кэшем
* Размер кэша
Метрики приложения в облаке
* Использование ресурсов в облаке
* Использование облачных хранилищ
Метрики для Spring Security
* Проверки авторизации
* Ошибки доступа
Метрики для Spring Actuator
* Метрики запросов в Actuator
* Статистика по здоровью и меткам
Курс: https://job4j.ru/courses/35
Добавил уроки про метрики Prometheus.
Системные метрики приложений [#505467]
Бизнес-метрики приложений [#505468]
Вчера просматривал очередное мок-собеседование по Go. Обратил внимание, что часто спрашивают вопросы про сбор метрик.
То есть теперь рынок требует не просто написать микросервис, но также и полноценно его внедрить.
Перечислю основные метрики.
Метрики производительности
* Время отклика
* Задержки
* Пропускная способность
* Частота ошибок
Метрики здоровья приложения
* Аптайм приложения
* Жизненные циклы
* Состояние базы данных
* Метрики JVM
Метрики работы с базой данных
* Количество запросов
* Типы запросов
* Задержки запросов
Метрики приложений
* Загруженность приложений
* Использование процессора и памяти
Метрики безопасности
* Аутентификация
* Авторизация
Метрики для работы с очередями
* Обработка сообщений
* Ошибки обработки сообщений
Метрики кэширования
* Работа с кэшем
* Размер кэша
Метрики приложения в облаке
* Использование ресурсов в облаке
* Использование облачных хранилищ
Метрики для Spring Security
* Проверки авторизации
* Ошибки доступа
Метрики для Spring Actuator
* Метрики запросов в Actuator
* Статистика по здоровью и меткам
Курс: https://job4j.ru/courses/35
🔥10👍3
Преза курса Go | C нуля до работы
https://job4j.ru/courses/38
В 2025 году я обратил внимание на язык Go. До этого я уже начал писать код для серверной стороны на Kotlin. У меня даже был порыв написать что-то на Python. Зачем? Для меня быть программистом — это придумывать технические решения. Чем больше у тебя в арсенале инструментов, тем проще подобрать быстрое и лучшее решение. В целом Java и языки JVM — это отличное решение, но Go предлагает нечто другое.
Скорость. Сверхбыстрая компиляция и такая же скорость выполнения самого приложения.
Исполняемые артефакты. Написал утилиту — и сразу можешь использовать её на сервере. Ничего дополнительно ставить не нужно.
Работа в многопоточной среде как с последовательным кодом. Просто и понятно.
Философия минимализма. В самом языке есть всё необходимое, а если чего-то нет — пиши сам.
На данный момент этот курс — эксперимент. Поэтому принять в нём участие можно бесплатно. Регистрируйтесь на платформе и пишите мне в Telegram @parsentev.
Этот курс мы создаём вдвоём с Михаилом. О его опыте и мыслях вы можете почитать в его Telegram-канале https://t.me/liferefactoring.
Весь курс можно разделить на две части.
Практическая часть, в которой ученики создают проект в микросервисной архитектуре. Хотелось бы акцентировать внимание на стеке. Он практически идентичен стеку в Java: Docker, Kubernetes, Kafka, Makefile, PostgreSQL, REST API, gRPC, Protobuf, Redis.
Другая часть — подготовка к собеседованиям. К сожалению, вам придётся зубрить теорию. Почему к сожалению? Потому что это не творческий процесс, но необходимый. Что сюда войдёт: обсуждение slice, map, error handling, goroutines и т. д. Не забудем и про алгоритмы.
Обучение строится по уже традиционным принципам нашей школы:
Весь материал представлен в виде уроков.
Каждый урок — это задание.
Задания проверяем мы — я и Михаил. Это code-review. Мы строгие, поэтому часто приходится переделывать ваши решения.
Разбор теории. Это подготовка к собеседованию.
В курсе около 150 уроков. Почему так много и нельзя ли быстрее?
Дело в том, что смена стека может привести к снижению уровня дохода. Чтобы этого избежать, вам нужно достичь того же уровня, что и ваш целевой язык, а ещё лучше — превзойти его. То есть если вы уже Middle, то искать работу нужно на Senior.
Даже если вы будете решать по одной задаче в день, это займёт пять месяцев. Также стоит учитывать ваши когнитивные способности — они у всех разные.
Но опять же, если у вас не такие амбиции, то, конечно, можно готовиться не так усиленно и согласиться на меньшую зарплату.
https://job4j.ru/courses/38
В 2025 году я обратил внимание на язык Go. До этого я уже начал писать код для серверной стороны на Kotlin. У меня даже был порыв написать что-то на Python. Зачем? Для меня быть программистом — это придумывать технические решения. Чем больше у тебя в арсенале инструментов, тем проще подобрать быстрое и лучшее решение. В целом Java и языки JVM — это отличное решение, но Go предлагает нечто другое.
Скорость. Сверхбыстрая компиляция и такая же скорость выполнения самого приложения.
Исполняемые артефакты. Написал утилиту — и сразу можешь использовать её на сервере. Ничего дополнительно ставить не нужно.
Работа в многопоточной среде как с последовательным кодом. Просто и понятно.
Философия минимализма. В самом языке есть всё необходимое, а если чего-то нет — пиши сам.
На данный момент этот курс — эксперимент. Поэтому принять в нём участие можно бесплатно. Регистрируйтесь на платформе и пишите мне в Telegram @parsentev.
Этот курс мы создаём вдвоём с Михаилом. О его опыте и мыслях вы можете почитать в его Telegram-канале https://t.me/liferefactoring.
Весь курс можно разделить на две части.
Практическая часть, в которой ученики создают проект в микросервисной архитектуре. Хотелось бы акцентировать внимание на стеке. Он практически идентичен стеку в Java: Docker, Kubernetes, Kafka, Makefile, PostgreSQL, REST API, gRPC, Protobuf, Redis.
Другая часть — подготовка к собеседованиям. К сожалению, вам придётся зубрить теорию. Почему к сожалению? Потому что это не творческий процесс, но необходимый. Что сюда войдёт: обсуждение slice, map, error handling, goroutines и т. д. Не забудем и про алгоритмы.
Обучение строится по уже традиционным принципам нашей школы:
Весь материал представлен в виде уроков.
Каждый урок — это задание.
Задания проверяем мы — я и Михаил. Это code-review. Мы строгие, поэтому часто приходится переделывать ваши решения.
Разбор теории. Это подготовка к собеседованию.
В курсе около 150 уроков. Почему так много и нельзя ли быстрее?
Дело в том, что смена стека может привести к снижению уровня дохода. Чтобы этого избежать, вам нужно достичь того же уровня, что и ваш целевой язык, а ещё лучше — превзойти его. То есть если вы уже Middle, то искать работу нужно на Senior.
Даже если вы будете решать по одной задаче в день, это займёт пять месяцев. Также стоит учитывать ваши когнитивные способности — они у всех разные.
Но опять же, если у вас не такие амбиции, то, конечно, можно готовиться не так усиленно и согласиться на меньшую зарплату.
Telegram
Дед Мазай
Много читаю. Много работаю. Много живу. Люблю бложить по поводу и без. В основном - о трудовых и около трудовых буднях программистов.
https://github.com/MikhailEpatko
https://www.linkedin.com/in/mikhail-epatko
https://dzen.ru/id/65edde7a1a77260ed06f79c8?
https://github.com/MikhailEpatko
https://www.linkedin.com/in/mikhail-epatko
https://dzen.ru/id/65edde7a1a77260ed06f79c8?
👍15🔥6❤1
job4j.ru - Практика. Ревью. Результат. pinned «Преза курса Go | C нуля до работы https://job4j.ru/courses/38 В 2025 году я обратил внимание на язык Go. До этого я уже начал писать код для серверной стороны на Kotlin. У меня даже был порыв написать что-то на Python. Зачем? Для меня быть программистом…»
Курс Kafka | Request Reply + Rest API
Добавил урок:
Request-Reply c Rest API | Javalin [#505469]
Описание курса 👉 https://job4j.ru/courses/21
Добавил урок:
Request-Reply c Rest API | Javalin [#505469]
Описание курса 👉 https://job4j.ru/courses/21
🔥7
Велосипеды и структуры данных
В Go есть три основных структуры данных: массивы, срезы (slice) и отображения (map). По сути этих структур достаточно, чтобы решить 99 % бизнес‑задач. Раньше на собеседованиях я любил спрашивать: «Где используется связанный список?» Обычно никто не мог на это ответить, потому что на практике такие задачи встречаются редко.
Другое дело — алгоритмическая секция собеседования. Её избежать нельзя, а значит вам нужно помнить и, что ещё лучше, уметь реализовать основные структуры данных на Go.
Set
Set — это набор уникальных элементов. Реализуем функцию, которая убирает из среза дубликаты:
Важные моменты:
* В качестве значения в map используется пустая структура (
* При создании map и среза полезно указывать ожидаемый размер: это уменьшает число перераспределений памяти.
* Срез создаётся с длиной 0, но с capacity, равным длине входного среза, — так не нужно будет «эллоцировать» память при добавлении новых элементов.
LinkedHashSet и SortedSet
В Go map не сохраняет порядок элементов (он случайный). Чтобы получить LinkedHashSet, нужно дополнительно хранить срез вставленных значений. Для SortedSet достаточно отсортировать срез:
Stack
LIFO (Last In, First Out) — последний зашёл, первый вышел.
Все операции выполняются через
Queue
FIFO (First In, First Out) — первый пришёл, первый вышел.
Где применяются Stack и Queue?
Они часто используются при обходе деревьев в глубину и ширину. Например, для задачи «Симметричное дерево»:
[https://leetcode.com/problems/symmetric-tree/](https://leetcode.com/problems/symmetric-tree/)
Задание
1. Дан двумерный массив, содержащий отчёт об участии в соревновании. Каждая строка массива — это один день, а элементы строки — результаты участника: его
2. Если участник пропустил какой‑то день, он не учитывается в соревновании.
### Тесты
В Go есть три основных структуры данных: массивы, срезы (slice) и отображения (map). По сути этих структур достаточно, чтобы решить 99 % бизнес‑задач. Раньше на собеседованиях я любил спрашивать: «Где используется связанный список?» Обычно никто не мог на это ответить, потому что на практике такие задачи встречаются редко.
Другое дело — алгоритмическая секция собеседования. Её избежать нельзя, а значит вам нужно помнить и, что ещё лучше, уметь реализовать основные структуры данных на Go.
Set
Set — это набор уникальных элементов. Реализуем функцию, которая убирает из среза дубликаты:
func UniqueInts(data []int) []int {
seen := make(map[int]struct{}, len(data))
result := make([]int, 0, len(data))
for _, v := range data {
if _, ok := seen[v]; !ok {
seen[v] = struct{}{}
result = append(result, v)
}
}
return result
}Важные моменты:
* В качестве значения в map используется пустая структура (
struct{}), она занимает 0 байт.* При создании map и среза полезно указывать ожидаемый размер: это уменьшает число перераспределений памяти.
* Срез создаётся с длиной 0, но с capacity, равным длине входного среза, — так не нужно будет «эллоцировать» память при добавлении новых элементов.
LinkedHashSet и SortedSet
В Go map не сохраняет порядок элементов (он случайный). Чтобы получить LinkedHashSet, нужно дополнительно хранить срез вставленных значений. Для SortedSet достаточно отсортировать срез:
sort.Ints(nums)
Stack
LIFO (Last In, First Out) — последний зашёл, первый вышел.
type Stack struct {
data []int
}
func (s *Stack) Push(v int) {
s.data = append(s.data, v)
}
func (s *Stack) Pop() (int, bool) {
if len(s.data) == 0 {
return 0, false
}
v := s.data[len(s.data)-1]
s.data = s.data[:len(s.data)-1]
return v, true
}
func main() {
s := &Stack{}
s.Push(1)
s.Push(2)
for {
e, ok := s.Pop()
if !ok {
break
}
fmt.Println(e)
}
}Все операции выполняются через
append и срезы, без прямой работы с индексами элемента.Queue
FIFO (First In, First Out) — первый пришёл, первый вышел.
type Queue struct {
data []int
}
func (q *Queue) Push(v int) {
q.data = append(q.data, v)
}
func (q *Queue) Pop() (int, bool) {
if len(q.data) == 0 {
return 0, false
}
v := q.data[0]
q.data = q.data[1:]
return v, true
}
func main() {
q := &Queue{}
q.Push(1)
q.Push(2)
for {
e, ok := q.Pop()
if !ok {
break
}
fmt.Println(e)
}
}Где применяются Stack и Queue?
Они часто используются при обходе деревьев в глубину и ширину. Например, для задачи «Симметричное дерево»:
[https://leetcode.com/problems/symmetric-tree/](https://leetcode.com/problems/symmetric-tree/)
Задание
1. Дан двумерный массив, содержащий отчёт об участии в соревновании. Каждая строка массива — это один день, а элементы строки — результаты участника: его
ID и Amount.2. Если участник пропустил какой‑то день, он не учитывается в соревновании.
package main
import "fmt"
type MemberStat struct {
ID int
Amount int
}
type Champs struct {
IDS []int
Amount int
}
func main() {
stat := [][]MemberStat{
{{ID: 1, Amount: 5}, {ID: 2, Amount: 6}},
{{ID: 1, Amount: 15}, {ID: 2, Amount: 10}},
}
champs := getChamps(stat)
fmt.Printf("Champs: %v, %d", champs.IDS, champs.Amount)
}
func getChamps(stat [][]MemberStat) Champs {
return Champs{}
}
### Тесты
👍6
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGetChamps_Standard(t *testing.T) {
stat := [][]MemberStat{
{{ID: 1, Amount: 5}, {ID: 2, Amount: 6}},
{{ID: 1, Amount: 15}, {ID: 2, Amount: 10}},
}
got := getChamps(stat)
want := Champs{IDS: []int{1}, Amount: 20}
assert.ElementsMatch(t, want.IDS, got.IDS, "должен вернуть только ID чемпиона")
assert.Equal(t, want.Amount, got.Amount, "сумма очков должна быть максимальной")
}
Описание курса 👉 https://job4j.ru/courses/38
LeetCode
Symmetric Tree - LeetCode
Can you solve this real interview question? Symmetric Tree - Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).
Example 1:
[https://assets.leetcode.com/uploads/2021/02/19/symtree1.jpg]
Input:…
Example 1:
[https://assets.leetcode.com/uploads/2021/02/19/symtree1.jpg]
Input:…
👍3
Рынок IT в 2025 | Наваливаем кринжа
Чтобы провести аналитику IT-рынка в этом году, я ждал 9 мая.
Все запланированные встречи состоялись, теперь можно подвести итоги и сделать предположения о перспективах.
Зачем это нужно? Ценностей всего две:
1. Ресурсы — то есть деньги;
2. Предназначение.
Первая ценность без второй невозможна, поскольку мы живём в материальном мире. Следовательно, анализ рынка необходим, чтобы понимать, где ещё есть ресурсы, а где они уже исчерпаны.
Начнём с цифр — количества вакансий по ключевым направлениям:
* Python ML: 1176 ↓ 26
* React + TypeScript: 1006 ↓ 23
* JS + Vue: 927 ↑ 2
* Java + Spring: 891 ↓ 16
* C# + .NET: 842 ↓ 17
* Go + Docker: 730 ↓ 18
* PHP + Laravel: 700 ↓ 17
Для сравнения: в 2023 году по каждому из этих направлений было около 2500 вакансий, а в 2022 — примерно 5000. Рынок явно просел. Пора ли искать новое направление?!
Теперь разберём причины — в обратном порядке, от незначительных к наиболее важным.
Чтобы провести аналитику IT-рынка в этом году, я ждал 9 мая.
Все запланированные встречи состоялись, теперь можно подвести итоги и сделать предположения о перспективах.
Зачем это нужно? Ценностей всего две:
1. Ресурсы — то есть деньги;
2. Предназначение.
Первая ценность без второй невозможна, поскольку мы живём в материальном мире. Следовательно, анализ рынка необходим, чтобы понимать, где ещё есть ресурсы, а где они уже исчерпаны.
Начнём с цифр — количества вакансий по ключевым направлениям:
* Python ML: 1176 ↓ 26
* React + TypeScript: 1006 ↓ 23
* JS + Vue: 927 ↑ 2
* Java + Spring: 891 ↓ 16
* C# + .NET: 842 ↓ 17
* Go + Docker: 730 ↓ 18
* PHP + Laravel: 700 ↓ 17
Для сравнения: в 2023 году по каждому из этих направлений было около 2500 вакансий, а в 2022 — примерно 5000. Рынок явно просел. Пора ли искать новое направление?!
Теперь разберём причины — в обратном порядке, от незначительных к наиболее важным.
👍7🤔3🤯3😱2
LLM
Вы знаете, в каком году были созданы первые алгоритмы машинного обучения? Они появились в середине XX века. А с 2017 года нас пугают тем, что системы на базе LLM заменят всех — от программистов до врачей.
Я не раз пытался перейти от «ручного» программирования к vibe coding, но каждый раз бросал это занятие. К счастью, я посмотрел интервью Андрея Бреслава о его новом языке на основе LLM. Настоятельно рекомендую его посмотреть: «Андрей Бреслав и vibe coding».
В ролике он чётко описал два способа взаимодействия с LLM:
1. Как генератор кода.
Вы можете просто попросить сгенерировать код, но при этом должны понимать, что он делает. Например:
«Создай модель
2. Как «чёрный ящик».
Вы не знаете, как написать код, и просите LLM добавить нужное поведение. Например:
«Сделай программу, которая будет авторизоваться на hh.ru под моей учёткой и откликаться на вакансии по заданным критериям».
Научными терминами это императивный и декларативный подходы. Язык Java — императивный: мы описываем, что нужно сделать. SQL — декларативный: мы указываем, какой результат хотим получить, но не знаем, как он будет достигнут.
Немного подробнее:
* LLM как генератор кода.
Сложность в том, что сгенерированный код нужно проверять: скорость разработки от этого не повышается, а лишь снижается, поскольку сначала нужно разобраться, как программа работает, а затем убедиться в её корректности.
* LLM как генератор полноценной программы.
LLM — это не компилятор, а статистическая модель: сгенерированный результат — вероятностный, а не гарантированный. Да, модель выдаёт высокий процент правильных случаев, но не 100 %. Кроме того, современные LLM испытывают проблемы с добавлением новых функций: чем больше уточнений, тем хуже результат. Поддерживать такие системы будет сложно.
Несмотря на это, системы продолжают развиваться, но суть работы остаётся прежней: генерация кода с последующей ручной проверкой.
Несомненно, LLM будут внедряться там, где не требуется точный результат: в колл-центрах, системах машинного перевода, чат-ботах, рекомендательных системах, фильтрации контента, продажах и т. д. Но в серьёзном программировании это пока не заменит профессионала.
Не верите? Попробуйте сами: поставьте Cursor и напишите игру «Змейка» на Python.
Вы знаете, в каком году были созданы первые алгоритмы машинного обучения? Они появились в середине XX века. А с 2017 года нас пугают тем, что системы на базе LLM заменят всех — от программистов до врачей.
Я не раз пытался перейти от «ручного» программирования к vibe coding, но каждый раз бросал это занятие. К счастью, я посмотрел интервью Андрея Бреслава о его новом языке на основе LLM. Настоятельно рекомендую его посмотреть: «Андрей Бреслав и vibe coding».
В ролике он чётко описал два способа взаимодействия с LLM:
1. Как генератор кода.
Вы можете просто попросить сгенерировать код, но при этом должны понимать, что он делает. Например:
«Создай модель
User с такими-то полями, а также контроллер, сервис и репозиторий для неё».2. Как «чёрный ящик».
Вы не знаете, как написать код, и просите LLM добавить нужное поведение. Например:
«Сделай программу, которая будет авторизоваться на hh.ru под моей учёткой и откликаться на вакансии по заданным критериям».
Научными терминами это императивный и декларативный подходы. Язык Java — императивный: мы описываем, что нужно сделать. SQL — декларативный: мы указываем, какой результат хотим получить, но не знаем, как он будет достигнут.
Немного подробнее:
* LLM как генератор кода.
Сложность в том, что сгенерированный код нужно проверять: скорость разработки от этого не повышается, а лишь снижается, поскольку сначала нужно разобраться, как программа работает, а затем убедиться в её корректности.
* LLM как генератор полноценной программы.
LLM — это не компилятор, а статистическая модель: сгенерированный результат — вероятностный, а не гарантированный. Да, модель выдаёт высокий процент правильных случаев, но не 100 %. Кроме того, современные LLM испытывают проблемы с добавлением новых функций: чем больше уточнений, тем хуже результат. Поддерживать такие системы будет сложно.
Несмотря на это, системы продолжают развиваться, но суть работы остаётся прежней: генерация кода с последующей ручной проверкой.
Несомненно, LLM будут внедряться там, где не требуется точный результат: в колл-центрах, системах машинного перевода, чат-ботах, рекомендательных системах, фильтрации контента, продажах и т. д. Но в серьёзном программировании это пока не заменит профессионала.
Не верите? Попробуйте сами: поставьте Cursor и напишите игру «Змейка» на Python.
👍8🤔4
Курсы и инфобизнес
А при чём тут это? Кто обычно становится программистом? «Ботаники» — щуплые ребята в очках и свитерах, увлечённые математикой, физикой и компьютерными играми. А что сделали курсы по программированию? Они дали возможность работать в мире «ботаников» тем, кто сам ботаником не является.
За счёт чего? В первую очередь — за счёт социальных навыков. Задачи, которые выполняет рядовой программист, по силам любому человеку с техническим складом ума, а не только компьютерному гику. Соответственно на рынок хлынули мало или вовсе не менее способные люди с техническим складом ума. Тем самым сформировалась жёсткая конкуренция. Причём это уже не конкуренция среди ботаников, которые в присутствии незнакомых людей не могут связать и двух слов, а среди уверенных в себе специалистов, владеющих приёмами продажников и другими манипуляциями в переговорах.
Сейчас здесь идёт настоящий «пир во время чумы»: те, кто умеют продавать, рассчитывают на зарплату 600–800 тыс. ₽, а те, кто не умеют, — опускают ставку ниже 200 тыс. ₽.
А при чём тут это? Кто обычно становится программистом? «Ботаники» — щуплые ребята в очках и свитерах, увлечённые математикой, физикой и компьютерными играми. А что сделали курсы по программированию? Они дали возможность работать в мире «ботаников» тем, кто сам ботаником не является.
За счёт чего? В первую очередь — за счёт социальных навыков. Задачи, которые выполняет рядовой программист, по силам любому человеку с техническим складом ума, а не только компьютерному гику. Соответственно на рынок хлынули мало или вовсе не менее способные люди с техническим складом ума. Тем самым сформировалась жёсткая конкуренция. Причём это уже не конкуренция среди ботаников, которые в присутствии незнакомых людей не могут связать и двух слов, а среди уверенных в себе специалистов, владеющих приёмами продажников и другими манипуляциями в переговорах.
Сейчас здесь идёт настоящий «пир во время чумы»: те, кто умеют продавать, рассчитывают на зарплату 600–800 тыс. ₽, а те, кто не умеют, — опускают ставку ниже 200 тыс. ₽.
👍10😁2
Автоотклики
Здесь стоит начать с жаргона. Мы сами навалили этот кринж. На курсах учат продавать себя: например, создавать несколько резюме, использовать автоотклики и т. д. HR не могут справиться с таким количеством нерелевантных откликов, и им на помощь приходит автоматизация. На автоотклик мы получаем автоотказ. Таким образом мы дополнительно создаём иллюзию запредельной конкуренции.
Объясните мне: как за 10 минут в новой вакансии появляется 100 откликов? Ребята, мы сами создали такую ситуацию.
Главный «кринж» в том, что я продолжаю наблюдать, как осознанные меркантилы говорят, что нужно продолжать автоматизировать поиск. Если вы задумались написать своего бота для автооткликов, то уже поздно — эта схема больше не работает.
Здесь стоит начать с жаргона. Мы сами навалили этот кринж. На курсах учат продавать себя: например, создавать несколько резюме, использовать автоотклики и т. д. HR не могут справиться с таким количеством нерелевантных откликов, и им на помощь приходит автоматизация. На автоотклик мы получаем автоотказ. Таким образом мы дополнительно создаём иллюзию запредельной конкуренции.
Объясните мне: как за 10 минут в новой вакансии появляется 100 откликов? Ребята, мы сами создали такую ситуацию.
Главный «кринж» в том, что я продолжаю наблюдать, как осознанные меркантилы говорят, что нужно продолжать автоматизировать поиск. Если вы задумались написать своего бота для автооткликов, то уже поздно — эта схема больше не работает.
👍7😁2
Глобальный кризис
Все перечисленные выше пункты меркнут по сравнению с главным — глобальным кризисом. Почему в 2022 году IT-рынок сократился вдвое? Потому что из России ушли инвесторы. Кто владеет капиталом, тот и диктует условия. К 2025 году ситуация лишь обострилась, но уже не только на российском рынке, а в глобальном масштабе. Этот факт — главная причина кризиса в IT, а не LLM или количество кандидатов.
У бизнеса нет возможности запускать новые проекты, поэтому всё, что не приносит дохода, замораживается. Внимание переключается на те проекты, которые приносят прибыль.
Требования к кандидатам тоже изменились: теперь нужны знания в разных областях и умение решать задачи по оптимизации и поддержанию проектов.
Все перечисленные выше пункты меркнут по сравнению с главным — глобальным кризисом. Почему в 2022 году IT-рынок сократился вдвое? Потому что из России ушли инвесторы. Кто владеет капиталом, тот и диктует условия. К 2025 году ситуация лишь обострилась, но уже не только на российском рынке, а в глобальном масштабе. Этот факт — главная причина кризиса в IT, а не LLM или количество кандидатов.
У бизнеса нет возможности запускать новые проекты, поэтому всё, что не приносит дохода, замораживается. Внимание переключается на те проекты, которые приносят прибыль.
Требования к кандидатам тоже изменились: теперь нужны знания в разных областях и умение решать задачи по оптимизации и поддержанию проектов.
👍8🤔3
Итак, что делать?
1. Не фокусируйтесь на одном направлении.
Если вы ищете позицию Java-программиста, а вам предлагают задачи DevOps, соглашайтесь — сегодня DevOps — неотъемлемая часть работы программиста.
Если предлагают фронтенд, тоже стоит попробовать: это даст возможность взглянуть на разработку с другой стороны.
2. Обратите внимание на масштабирование.
Изучите кеширование, репликацию сервисов, шардинг баз данных, потоковую обработку в Kafka и согласование данных. Важно также понять, как в этих процессах участвуют DevOps-практики. Такие знания будут очень цениться на рынке.
Яркий пример оптимизации в действии — компания VK: они переписывают свои сервисы с PHP на Go.
Прокачать DevOps 👉 https://job4j.ru/courses/35
Прокачать Kafka 👉 https://job4j.ru/courses/21
1. Не фокусируйтесь на одном направлении.
Если вы ищете позицию Java-программиста, а вам предлагают задачи DevOps, соглашайтесь — сегодня DevOps — неотъемлемая часть работы программиста.
Если предлагают фронтенд, тоже стоит попробовать: это даст возможность взглянуть на разработку с другой стороны.
2. Обратите внимание на масштабирование.
Изучите кеширование, репликацию сервисов, шардинг баз данных, потоковую обработку в Kafka и согласование данных. Важно также понять, как в этих процессах участвуют DevOps-практики. Такие знания будут очень цениться на рынке.
Яркий пример оптимизации в действии — компания VK: они переписывают свои сервисы с PHP на Go.
Прокачать DevOps 👉 https://job4j.ru/courses/35
Прокачать Kafka 👉 https://job4j.ru/courses/21
🔥12👍5😁1💔1
Авторизация через GitHub
Добавил авторизацию через GitHub.
Попробуйте 👉 https://job4j.ru/login
Так же напомню про функцию
Мок-собеседований 👉 https://job4j.ru/interviews
Добавил авторизацию через GitHub.
Попробуйте 👉 https://job4j.ru/login
Так же напомню про функцию
Мок-собеседований 👉 https://job4j.ru/interviews
🔥11🏆5
Linux | Базовые команды и утилиты
Проверь свои знания о базовых командах в Linux.
👉 https://job4j.ru/exams/detail/45
Заполни пробелы в знаниях на курсе DevOps
👉 https://job4j.ru/courses/35
Проверь свои знания о базовых командах в Linux.
👉 https://job4j.ru/exams/detail/45
Заполни пробелы в знаниях на курсе DevOps
👉 https://job4j.ru/courses/35
❤5👍3
GoLang | Slice
Мы продолжаем наш проект по GoLang. Сложилось впечатление, что собеседование на Go похоже на сдачу сертификации по Java.
Благо на Java таких собеседований уже давно не проводят.
Ничего не поделаешь, придется играть по этим правилам.
У нас на платформе есть раздел Экзамены . Это по сути тесты.
Добавил экзамен по Slice 👉 https://job4j.ru/exams/detail/46
Теория по собесам в курсе 👉 https://job4j.ru/courses/38
Мок-собеседования 👉 https://job4j.ru/interviews
Находите время и пробуйте.
А так же наши другие курсы Java, SQL, Kotlin, Angular, DevOps, Kafka 👉 https://job4j.ru/courses
Мы продолжаем наш проект по GoLang. Сложилось впечатление, что собеседование на Go похоже на сдачу сертификации по Java.
Благо на Java таких собеседований уже давно не проводят.
Ничего не поделаешь, придется играть по этим правилам.
У нас на платформе есть раздел Экзамены . Это по сути тесты.
Добавил экзамен по Slice 👉 https://job4j.ru/exams/detail/46
Теория по собесам в курсе 👉 https://job4j.ru/courses/38
Мок-собеседования 👉 https://job4j.ru/interviews
Находите время и пробуйте.
А так же наши другие курсы Java, SQL, Kotlin, Angular, DevOps, Kafka 👉 https://job4j.ru/courses
👍3
Правки дизайна
Сегодня занимался правками дизайна платформы. Все же сделаем две темы: светлую и темную.
👉 https://job4j.ru/
А так же поправил описание процесса обучения:
Изначально я хотел, чтобы весь учебный процесс был похож на рабочую обстановку. Поэтому с первых уроков вы используете Git, системы статического анализа, тесты и системы непрерывного развёртывания.
С другой стороны, мне хотелось, чтобы обучение было домашним и комфортным. Поэтому мы не вводим жёстких ограничений на сдачу заданий и общее время прохождения материала — вы можете заниматься в любое удобное время.
Также мне хотелось, чтобы каждый ученик не превращался в безликое лицо. Поэтому мы стараемся помогать каждому индивидуально: проверяем каждый урок, объясняем теорию и в целом общаемся.
Наверное, вы спросите: «Как же у вас хватает времени на всех?» Действительно, на курсе, кроме меня (Пётр Арсентьев), работают ещё три ментора: Стас, Алексей и Андрей, и нас хватает на всех. Дело в том, что я убрал неэффективные и трудозатратные элементы обучения: вебинары, видеоуроки и видео-лекции. Они были в самом начале проекта, но я сразу понял, что ученики львиную долю времени тратят на пассивный просмотр видео, считая это активным обучением. Я категорически против этого. Поэтому весь учебный материал изложен текстом с иллюстрациями. Таким образом мы смогли заменить часовые видео на десятиминутное чтение, что позволяет ученикам сразу начать активно применять полученные знания, а не откладывать это на завтра после пассивного просмотра.
Ученик обращается к нам тогда, когда он выполнил свою часть учебного процесса — написал код или решил задачу, а не когда не понимает теорию и просит объяснить ещё раз. Теория без практики — пустое дело, особенно в программировании.
Такой подход дал нам возможность сфокусироваться на практических навыках учеников, что, в свою очередь, приносит свои плоды.
Подведу итог:
* Прагматический подход и много практики
* Необходимая теория для практики и собеседований
* Обратная связь от менторов — мы проверяем каждый урок
* Сдача теории ментору и подготовка к собеседованию
* Проектные работы
Если у вас есть сомнения или вопросы по поводу учебной программы или уровня, буду рад обсудить их лично в Telegram:
Пётр Арсентьев https://t.me/parsentev
Сегодня занимался правками дизайна платформы. Все же сделаем две темы: светлую и темную.
👉 https://job4j.ru/
А так же поправил описание процесса обучения:
Изначально я хотел, чтобы весь учебный процесс был похож на рабочую обстановку. Поэтому с первых уроков вы используете Git, системы статического анализа, тесты и системы непрерывного развёртывания.
С другой стороны, мне хотелось, чтобы обучение было домашним и комфортным. Поэтому мы не вводим жёстких ограничений на сдачу заданий и общее время прохождения материала — вы можете заниматься в любое удобное время.
Также мне хотелось, чтобы каждый ученик не превращался в безликое лицо. Поэтому мы стараемся помогать каждому индивидуально: проверяем каждый урок, объясняем теорию и в целом общаемся.
Наверное, вы спросите: «Как же у вас хватает времени на всех?» Действительно, на курсе, кроме меня (Пётр Арсентьев), работают ещё три ментора: Стас, Алексей и Андрей, и нас хватает на всех. Дело в том, что я убрал неэффективные и трудозатратные элементы обучения: вебинары, видеоуроки и видео-лекции. Они были в самом начале проекта, но я сразу понял, что ученики львиную долю времени тратят на пассивный просмотр видео, считая это активным обучением. Я категорически против этого. Поэтому весь учебный материал изложен текстом с иллюстрациями. Таким образом мы смогли заменить часовые видео на десятиминутное чтение, что позволяет ученикам сразу начать активно применять полученные знания, а не откладывать это на завтра после пассивного просмотра.
Ученик обращается к нам тогда, когда он выполнил свою часть учебного процесса — написал код или решил задачу, а не когда не понимает теорию и просит объяснить ещё раз. Теория без практики — пустое дело, особенно в программировании.
Такой подход дал нам возможность сфокусироваться на практических навыках учеников, что, в свою очередь, приносит свои плоды.
Подведу итог:
* Прагматический подход и много практики
* Необходимая теория для практики и собеседований
* Обратная связь от менторов — мы проверяем каждый урок
* Сдача теории ментору и подготовка к собеседованию
* Проектные работы
Если у вас есть сомнения или вопросы по поводу учебной программы или уровня, буду рад обсудить их лично в Telegram:
Пётр Арсентьев https://t.me/parsentev
Telegram
Петр Арсентьев
https://job4j.ru/ - Программируй вместе с нами
👍20❤5🔥2
Linux | Команды и утилиты | HTTP/3
Сегодня снова смотрел собеседования и обратил внимание, что на скринингах спрашивают вопросы о технологических тенденциях.
Догадываюсь, что это показывает: кандидат интересуется развитием индустрии.
Практически везде спрашивают о командах и утилитах Linux — и это понятно, потому что серверы работают на Linux. Но также часто встречаются вопросы о протоколах TCP/UDP и HTTP.
Сегодня услышал вопрос про версию HTTP/3. Оказывается, в 2020 году вышла новая версия протокола HTTP/3. Он уже работает поверх QUIC (UDP), минимизирует задержки, избавляет от TCP Head-of-Line Blocking, содержит встроенное шифрование и поддержку мобильности. Подходит для тех же сценариев, что и HTTP/2, но быстрее и надёжнее в реальных сетях.
Поэтому решил добавить уроки по этим темам:
* Навигация и работа с файлами \[#505397]
* Создание и запись текстового файла \[#505474]
* Поиск и фильтрация текстов \[#505398]
* Управление процессами в Linux \[#505399]
* Сетевая диагностика \[#505475]
* Права и владельцы файлов \[#505400]
* Мониторинг памяти и дискового пространства \[#505476]
* TCP и UDP \[#505477]
Описание курса 👉 https://job4j.ru/courses/35
Сегодня снова смотрел собеседования и обратил внимание, что на скринингах спрашивают вопросы о технологических тенденциях.
Догадываюсь, что это показывает: кандидат интересуется развитием индустрии.
Практически везде спрашивают о командах и утилитах Linux — и это понятно, потому что серверы работают на Linux. Но также часто встречаются вопросы о протоколах TCP/UDP и HTTP.
Сегодня услышал вопрос про версию HTTP/3. Оказывается, в 2020 году вышла новая версия протокола HTTP/3. Он уже работает поверх QUIC (UDP), минимизирует задержки, избавляет от TCP Head-of-Line Blocking, содержит встроенное шифрование и поддержку мобильности. Подходит для тех же сценариев, что и HTTP/2, но быстрее и надёжнее в реальных сетях.
Поэтому решил добавить уроки по этим темам:
* Навигация и работа с файлами \[#505397]
* Создание и запись текстового файла \[#505474]
* Поиск и фильтрация текстов \[#505398]
* Управление процессами в Linux \[#505399]
* Сетевая диагностика \[#505475]
* Права и владельцы файлов \[#505400]
* Мониторинг памяти и дискового пространства \[#505476]
* TCP и UDP \[#505477]
Описание курса 👉 https://job4j.ru/courses/35
❤9👍3