Николай Тузов @ntuzov Channel on Telegram

Николай Тузов

@ntuzov


Go Developer, автор YouTube канала по Go: https://www.youtube.com/@nikolay_tuzov

Не технический канал о всяком интересном: @ntuzov_live

Обратная связь: @justskiv

Интересные подборки по Go: @golang_digest

Николай Тузов (Russian)

Николай Тузов - это Telegram канал, созданный для тех, кто интересуется программированием на языке Go. Ведущий канала является Go Developer и также является автором YouTube канала по Go. Вы можете найти его видео здесь: https://www.youtube.com/@nikolay_tuzov. Однако, канал Николая Тузова не ограничивается только техническим контентом - вы также найдете здесь разнообразные интересные материалы. Например, если вам интересно узнать о различных темах, канал @ntuzov_live идеально подойдет для вас. Если у вас есть вопросы или предложения, вы всегда можете связаться с администратором канала по имени @justskiv. Кроме того, канал предлагает интересные подборки по Go на канале @golang_digest. Для тех, кто увлечен темой Obsidian и базами знаний, имеется отдельный канал @obsidian_geek. Присоединяйтесь к каналу Николая Тузова, чтобы быть в курсе последних новостей о языке программирования Go и не только!

Николай Тузов

12 Feb, 06:26


🧙 goschedviz — Go Scheduler Visualizer

https://github.com/JustSkiv/goschedviz

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

Что это?
Красивая консольная утилита для визуализации работы планировщика Go в реальном времени. Показывает метрики, графики, очереди и всякое интересное (очень уж я люблю красивые консольные штуки вроде htop).

Важно: инструмент сделан исключительно в образовательных целях (а скорее даже — побаловаться на досуге). Не стоит использовать его в продакшене!

Что умеет:

- Мониторинг метрик планировщика в реальном времени
- Визуализация заполнения LRQ и GRQ
- Построение графиков LRQ и GRQ
- Работает с любой Go программой (в теории...)

Принцип работы максимально простой: запускаем целевую программу через schedtrace, парсим вывод и строим из него различные метрики, отрисовывая результат через termui.

Подробная документация, примеры использования и инструкция по установке есть в репозитории (есть и на русском).
Также там есть подробная инструкция по контрибьюту, если кто-то захочет поучаствовать в разработке. Это хороший учебный пример для новичков (но только после чтения инструкции!).

————
P.S. Третья часть ролика про планировщик всё ещё в работе. Там, кроме прочего, как раз будет живая демонстрация работы этого инструмента на разных примерах 🔨

#go_scheduler #repo

Николай Тузов

09 Feb, 10:37


Держите новый красивый эмодзи пак с гоферами (и не только)

В этот раз гоферы не утянуты из интернетов, все сделаны на заказ. Особенно удачные, на мой вкус: 🧙🐧💪🔨

Также есть отдельный идентичный пак стикеров.

Распространять оба пака не только можно, а даже нужно — это ещё один способ поддержки моего контета ❤️

Я хорошо сработался со своими иллюстраторами, так что паки будут периодически пополняться. А если в них чего-то не хватает, пишите идеи, будем их учитывать (анимированных пока не планирую делать, но когда-нибудь может быть...).

Николай Тузов

01 Feb, 09:04


Ролик про Планировщик — готова вторая часть 💪

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

Что в ней будет:

Продолжаем проектировать собственный планировщик Go. В этот раз мы обсудим механизмы работы с локальными очередями и балансировкой горутин между процессорами. Особое внимание уделим проблеме блокировки тредов при системных вызовах и её решению через механизм Handoff, а также оптимизациям этого процесса с помощью System Monitor и Network Poller. В завершение разберём особенности реализации многозадачности в Go — разберёмся какая она (кооперативная или вытесняющая) и что произошло в версии Go 1.14. Ну и осознаем наконец, что же такое GOMAXPROCS и зачем оно нужно.

Третья часть уже в работе, в ней мы подведём итоги, обсудим процесс работы планировщика в стиле "вот мы запустили программу, что происходит дальше?" и посмотрим на всю схему работы планировщика свысока. Это очень полезно для закрепления материала.

————

🤓 Напоминаю, что это видео будет доступно на YouTube бесплатно для всех, когда будут готовы все три части и дополнительные эксклюзивные ролики для платных подписчиков (какие? см. предыдущий пост). Можете считать, что это бесплатный ранний доступ, пока я не закончил работу.

Раньше моя работа для вас худо-бедно окупалась за счёт редкой рекламы, с которой для меня и тогда всё было сложно, а теперь стало ещё хуже (благодаря прекрасным законам РФ, касательно работы с иностранцами, вроде меня). Поэтому сейчас ваши подписки, это основной способ монетизации моего контента — именно от них будет зависеть, как часто будут выходить новые ролики, насколько они будут крутые, не придётся ли мне уйти за полный пэйвол или придумывать новые способы, вроде платных курсов (и стоит ли вообще продолжать).

Ролики вроде этого требуют колоссальных вложений времени и сил, а основная моя аудитория - действующие разработчики, для которых не должно составить проблем оплатить подписку. На мой взгляд, всё честно и справедливо, так что надеюсь на ваше понимание
❤️

И отвечая на вопросы тех, кого беспокоит, что мои бесплатные ролики могут перестать выходить на YouTube: платная подписка — это как раз вклад в то, чтобы они выходили и дальше. Такой вот парадокс получается.

Николай Тузов

28 Jan, 16:19


А вот подборка новостей по DeepSeek от Григория Бакунова и его комментарии. Я ждал этот пост 😌

https://t.me/addmeto/6024

Николай Тузов

28 Jan, 12:36


Сам ещё не успел потыкать всё это дело, но выглядит интересно. Как доберусь, поделюсь мнением.

За подробную инструкцию Антону отдельное спасибо ❤️

Николай Тузов

28 Jan, 12:34


Как вы знаете, китайская LLM deepseek-R1 работает не хуже chatGPT-o1, но стоит в 20 раз дешевле. А знаете ли вы, что сама модель вообще халявная, её можно скачать себе и запустить на своём железе?

Мне стало интересно, как это делать, можно ли как-то запустить прямо на макбуке, и оказалось, что это делается буквально в два клика (конечно, полная модель на ноут не влезет, но дистиллированная - вполне).

Возможно, все уже это умеют, но я же обещал рубрику #слоупок, так что держите инструкцию

Для этого надо установить ollama, например так:

brew install ollama


и запустить

ollama serve


Запустить можно в отдельном окошке, чтобы смотреть логи, или в бекграунд убрать, пофиг. В общем, это некий сервис.

Дальше скачать и запустить модель. Это делается тупо одной командой.


ollama run deepseek-r1:8b


8b - это количество параметров (8 миллиардов). Другие варианты:
1.5b
7b
8b
14b
32b
70b
671b

Но понятно, что 671b на макбук не влезет. Зато 1.5 можно и на мобилу запихнуть.

При запуске этой команды скачивается примерно 5 гигов чего-то и собственно вы уже можете общаться с моделью прямо в олламе.

Но это не очень юзер-френдли, поэтому дополнительно можно запусть web-интерфейс, например в докере одной командой


docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main


После чего на http://localhost:3000/ видна морда, похожая на chatgpt.

Прикол китайской модели еще в том, что там показан процесс думания. Его можно посмотреть прямо в этом веб интерфейсе.

Понятно, что это скорее побаловаться - на ноуте влезает только дистиллированная модель и то нещадно тормозит (макбук M1 pro). Для полноценной работы нужно нормальное железо или облако.

P.S.
Это имхо очень круто: если вложиться в железо, можно очень быстро и просто поднять у себя самый топовый чат и не посылать больше свои секреты ни в OpenAI, ни в Китай.

Николай Тузов

17 Jan, 10:48


К чему это я?

Недавно я смог договориться с ребятами из JetBrains о скидке 25% для моих подписчиков. Вы сами выбрали этот вариант в опросе выше. И мне это показалось также хорошим поводом поделиться своей историей работы с их продуктами.

Скидка доступна по промокоду: ntuzov

Она распространяется на годовую лицензию к любой их IDE (но не на All Products Pack, насколько я понял). Применить можно в магазине.

Кроме того, ребята поддерживают организаторов IT-митапов, и у меня уже есть несколько сертификатов на годовые лицензии, которые мы разыграем на ближайшем оффлайн-митапе в Астане. О его датах и формате я пока думаю, позже напишу подробности.

Это не реклама, мне за это не платят ❤️

Николай Тузов

17 Jan, 10:38


Моё знакомство с продуктами JetBrains

На скриншоте древняя PHPStorm (2011 год). Вообще, с PHPStorm я начал активно работать буквально с релиза, а до этого работал с Intellij IDEA.

Дисклеймер: давайте так, я понимаю, что продукты от JetBrains сейчас недоступны на территории РФ. Я прекрасно понимаю ваше негодование, и сочувствую вам в этом. К сожалению, здесь я ни чем помочь не могу, как бы мне этого не хотелось. И в этом посте я хочу поговорить про сам продукт, а не про политику компании.

У Visual Basic 6 была в целом крутая IDE, тесно интегрированная со своим языком, что не удивительно. Но как только я выбрался за её пределы, начав изучать Java, PHP и другие языки, мне стало грустно. Я пробовал разное — DreamWeamer (да простит меня Господь), NetBeans ❤️, Eclipse 😩, NotePad++ (по сути, он заменял мне в те времена Sublime, т.е был вторым редактором). Всё это было кривое и не особо удобное, но лучше ничего и не было.
Это был примерно 2010-й год, может чуть раньше.

Когда я проходил стажировку, мой наставник знатно поплевался с моих инструментов и настоял на переходе на Intellij IDEA. Я уже не помню точной формулировки, но он объяснил, что все эти инструменты — баловство, и только IDEA единственный полноценный инструмент. На тот момент я привык к NetBeans, и на какую-то там ИДЕЮ смотрел скептически. Но решил всё же попробовать, не зря же меня так уговаривают.

Я установил, и.. Это была любовь с первого взгляда и на всю жизнь! По сравнению с другими IDE, это были небо и земля, даже с моим любимым нетбинсом — намного больше крутых фич, более удобный интерфейс (даа, в те времена с UX/UI было печально), реже что-то ломалось и др. Фич было настолько много, что мы даже шутили — каждый раз когда ошибаешься хоткеем, случайно открываешь новую полезную функцию. А такое и правда случалось, тыкнул что-то не то, удивился эффекту, и пытаешься судорожно вспомнить — "как же я это сделал??". Тот же нетбинс я изучил довольно быстро, а IDEA я изучал подолгу, каждый раз находя для себя что-то новое и очень полезное (думаю, я даже сейчас далеко не всё изучил).

Да, она была адаптирована в основном под Java, но были плагины для других языков, и с ними было уже не так удобно работать, а я также часто работал и с PHP. Поэтому, когда впервые вышел PhpStorm, я был оочень рад! Установил в тот же день и радовался жизни. По сути, это вообще был единственный инструмент, заточенный под PHP, да ещё и такой крутой.

Конечно, в разные времена появлялись разные интересные решения. К примеру, я с интересом поглядывал на Atom IDE, и всплывали какие-то другие. Но обычно всё это было сильно хуже, да и руки уже настолько приросли к инструментам JetBrains, что перемен совсем не хотелось. Да, VSCode и Zed довольно хороши, но недостаточно хороши, чтобы возникло желание на них переходить. В любом случае, здоровая конкуренция всем только на пользу.

И вот, спустя 15 лет, для меня мало что поменялось, IDE от ребят из JetBrains всё ещё остаются моим главным инструментом. Большинство функций уже въелись в мышечную память, я уже даже не помню некоторые хоткеи и функции, пальцы сами автоматически на них тыкают, когда необходимо 🙃

Николай Тузов

16 Jan, 17:10


Что ж, вот я и излил душу. Рассказал секрет, о котором все эти годы знали лишь пара близких людей. Наверное, мне должно полегчать в каком-то смысле 😅

А расскажите теперь и вы в комментариях, были ли у вас подобные или любые другие курьёзные случаи? Может, вам тоже пора поделиться? Такое всегда интересно читать.

Ну и расскажите, что думаете о моей истории? Считаете ли вы, что я поступил плохо, и что мне поделом? Или скорее наоборот?

Николай Тузов

16 Jan, 17:08


Почему же меня уволили, если всё было так замечательно?

Скажем так, я был молодой и местами легкомысленный. У меня была близкая подруга, которая училась в Москве на веб-дизайнера. До настоящей работы ей было далеко, и ей было очень интересно, чем мы занимаемся. Она ведь метила примерно в ту же область, что и я, только с другой стороны. У нас были очень близкие и доверительные отношения, мы даже подумывали создать собственную студию втроем — с ней и с одним моим коллегой-фронтендером, как раз была полноценная команда — бэкэндер, фронтэндер и дизайнер.

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

А дальше произошла случайная последовательность событий, которая привела к ужасному казусу:

1) Я отправил ей PSD-исходники дизайна новой версии нашего основного сайта, над которым мы активно работали.

2) Через некоторое время мы снова начали обсуждать её iMac, и мы попросили с коллегой поделиться скриншотами с него.

3) Она скинула, и мой коллега открыл их на весь свой экран. На некоторых скриншотах, по случайности, были открыты как раз те самые PSD-файлы (коллега был в курсе, что они у неё были)

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

5) Я понял, что не стоит ему показывать, ведь там были исходники, но, как я написал выше, это был не мой компьютер..

6) Мы ему уже сказали, что мы рассматриваем компьютер моей подруги из другого города. И он тут же обратил внимание на то, что на скриншотах постороннего человека открыты исходники дизайна нашего проекта.

7) Он за это зацепился, позвал моего начальника, начались разборки.

8) Замять эту историю не захотели, отправили всё вышестоящему руководству и мне предложили уволиться по собственному желанию, что я и сделал.

Что я могу сказать.. Во-первых, я был молод и глуп. Во-вторых, мне очень не повезло.
В любом случаи, урок я из этого извлёк, и к рабочим данным отношусь более ответственно. И я согласен, что это был не этичный поступок с моей стороны.

На самом деле, даже с высоты своего нынешнего опыта, мне кажется, что тогда со мной поступили несправедливо. Дизайнер начал всех накручивать — "ну всё, завтра появятся говно-сайты с нашим дизайном, раньше нашего!". И его не волновало, что это была моя близкая знакомая, которой я доверял как себе. К тому же, это был всего лишь слив дизайна нонейм стартапа, не его исходного кода. Кажется, даже в худшем случае это не могло принести компании проблем. Сомневаюсь, что эти исходники вообще кому-то могли понадобиться, кроме как студенту факультета веб-дизайна, и то чисто из академического интереса.

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

На мой взгляд, достаточно было объяснить мне, вчерашнему зелёному студенту (на что тоже можно было сделать скидку), почему так делать нельзя, пригрозить штрафными санкциями, попросить подругу удалить файлы, и забыть инцидент. Даже с сугубо прагматичной точки зрения, компании было не выгодно терять ключевого бэкэндера из-за этого.

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

Николай Тузов

16 Jan, 16:22


Путь в IT: работа в веб-студии

Как я уже писал ранее, в какой-то момент времени я увлёкся веб-разработкой. У меня были даже относительно успешные пет-проекты, которые пользовались популярностью: текстовый хостинг (как PasteBin, в те времена было очень актуально), файлообменник с крутым минималистичным интерфейсом (делал для себя, реализовал фичи, которых мне не хватало в других сервисах) и др. В общем, мне постоянно хотелось творить, и фантазия подбрасывала много разных идей.

Вместе с этим я поглядывал на другие проекты своих соотечественников (напомню, казахстанцев). Однажды приметил одного интересного человека, который тоже делал крутые проекты, но более профессионально. К моему удивлению, оказалось что он тоже из Астаны. Ближе к концу учёбы я увидел его пост о том, что он нанимает разработчиков, как раз моего профиля, в какой-то новый интернет-стартап. Я сразу же ему написал, но не ожидая, что мне вообще ответят. К моему счастью, меня пригласили на собеседование.

Конечно, я очень волновался. Всё же, это была работа мечты — я познакомлюсь с человеком, на которого давно равняюсь, и даже буду с ним работать! Да и в целом, я наконец-то буду весь день заниматься программированием, в настоящем проекте, с настоящими коллегами, и мне за это даже будут платить деньги! Наконец-то мне позволят показать всё, на что я был способен (а не втихую в уголочке, как на прошлой работе). Это был предел моих мечтаний, и мне было ооочень важно пройти собеседование.

К слову, опыт я не накручивал, но слегка преувеличил свои скилы. К примеру, я написал, что у меня есть опыт работы с PHP-фреймворком Code Igniter, хотя по факту я лишь обзорно его знал. И вот перед собеседованием мне предложили сначала сделать тестовое задание — к моему несчастью, как раз на Code Igniter, и дали на это всего один день. Нужно было сделать простенький сайт с CRUD-админкой, при этом самому его сверстать по всем правилам, которые тогда имелись.

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

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

В целом, работать мне там очень нравилось. Для меня атмосфера современного IT-офиса была очень необычной, я такое только в фильмах видел  — уютно, просторно, имелась крутая просторная кухня. Коллектив был маленький, дружный, и я подружился с некоторыми коллегами. В общем, сработались хорошо.

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

Но были и тёмные стороны: платили мало, периодически уговаривали на жёсткие переработки под предлогом — "мы же команда!!" (ну знаете, классика тех времён). Порой буквально на всю ночь приходилось оставаться, зато запускали всё в срок! 😏
На самом деле, меня это не беспокоило тогда, не беспокоит и сейчас, ведь я был молодой, здоровья и сил было хоть отбавляй, и в итоге неплохо бустанул свой опыт — я был очень жаден до крутых сложных задач. Но на всякий случай всё же имейте в виду — переработки, это очень вредная и опасная штука, будьте осторожны с ними!

Николай Тузов

15 Jan, 18:32


Вам ещё не надоели эти мои ностальгические истории? Не слишком ли я разошёлся? 🌚

Стоит продолжать?

Николай Тузов

15 Jan, 18:29


Продолжаем..

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

Но на самом деле, меня это не выбило из колеи, я довольно быстро восстановился морально. Я подёргал в этой компании другие ниточки и всё же смог устроиться в другой отдел — "сисадмином". По сути, я был тем самым парнем, который чинит принтеры и т.п. Конечно, далеко не то о чём я мечтал, да и делал я это из рук вон плохо — ну не моё это! Но я договорился, что сидеть буду рядом с разработчиками, и наладил с ними контакт. Я не только продолжил заниматься своим предыдущим проектом с тем же наставником, но и познакомился с другими ребятами, которые подкидывали мне интересные задачки — порой просто "проекты в стол", просто чтобы я набивал руку.

Я многому там научился, но не благодаря, а вопреки. Это было ужасно — ведь программирование было моим "хобби", начальство это не одобряло, но хорошо хоть не запрещало — если все "принтеры" работали, можно было заниматься чем угодно, и я выбирал программирование. Но вот отвлекаться на настоящую работу, увы, приходилось очень частно. Как же меня раздражали телефонные звонки от коллег, ведь приходилось каждый раз отрываться от любимого дела и идти чинить очередную проблему с компьютером, сеть, оргтехникой и т.п.

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

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

Я не сильно расстроился, а вот мой "наставник" сильно удивился. Оказывается, у него были планы на меня и на проект, которым я занимался. Думаю, если бы не бородатый глава отдела разработки, то меня вполне могли бы взять программистом, но он всё упирался. Я даже с директором неплохо общался и обсуждал это дело. Он удивился, что меня не берут, но сам туда предпочитал не лезть.

После увольнения я просто доучивался, и буквально за пару дней до выпускного нашел уже нормальную работу в маленькой уютной веб-студии. Спойлер, оттуда меня тоже уволили, да ещё и с позором! Нет, с работой я справлялся прекрасно, но возник один неприятный курьёз, о котором я расскажу в следующий раз 🌚

Николай Тузов

15 Jan, 17:56


Путь в IT: мой первый опыт работы

UPD:
добавил к посту фотку с той самой работы

Мой колледж (см. посты по тегу #колледж) , не дал мне почти ничего, но одна полезная вещь всё же была — обязательной частью программы была практика в настоящей компании, и они помогали студентам их находить. Мне повезло, и я попал в довольно крутую.

Меня познакомили с местным программистом (довольно крутым), который стал моим первым наставником (ментором?). В первый же день я получил хороший урок от него, который сильно въелся в мою память и помог получить правильный настрой на годы вперёд. Он предложил мне несколько проектов на выбор, и некоторые из них мне показались слишком сложными, поэтому я ответил что-то вроде — "с этими я не справлюсь, поэтому лучше вот это".

Ему такой ответ не понравился и он объяснил мне, что нет такого понятия "не справлюсь" — хороший программист будет искать решение любой задачи, которую перед ним поставили. А если чего-то не знаешь или не понимаешь, придётся разобраться — в этом и заключается работа. Сложность любой задачи сводится лишь к оценке времени.

Конечно, сейчас, после долгих лет практики, для меня это стало очевидным и привычным, но в то время казалось озарением, и я перестал мыслить категориями "смогу / не смогу". Я не сразу привык жить в такой парадигме, но тот разговор произвёл на меня такое сильное впечатление, что я вспоминал его каждый раз, пока мысль "я не смогу" не стала казаться постыдной — "Конечно, я смогу! Просто надо понять, как именно, потратить время на изучение.. Иначе какой я программист?"

И тогда я спросил его — "О великий сенсей! Как же мне тогда выбирать путь задачу?". И он ответил — "Слушай своё сердце, оно подскажет.."

Серьезно, так и было — я спросил, какую задачу он бы мне посоветовал? Ведь изначально я выбирал по принципу "с чем справлюсь, то и возьму", а когда это отпало, то и выбирать непонятно как. И он сказал, что все задачи хороши, и мне надо просто подумать, какая из них была бы мне наиболее интересна, ведь работа должна приносить удовольствие. В итоге, я выбрал ту что казалась мне самой сложной и интересной, нужно было сделать инсталлятор для одного из продуктов компании — компания продавала софт для бизнес-клиентов, и для установки некоторых решений требовалось высылать специально обученного человека, а мне предлагалось автоматизировать это, чтобы устанавливать по нажатию одной кнопочки.

О, как же это было приятно! Я впервые ощущал свою важность, впервые в жизни делал что-то за компьютером не для себя, а для целой компании! И это должно было очень сильно облегчить жизнь коллегам. Далее наставник меня направлял, давал общие советы, но в детали реализации не погружался. В итоге, я с этим успешно справился (хотя, проекту ещё было куда расти).

На самом деле, это была лишь временная практика, да и проект не совсем можно назвать "программированием" — я использовал Apache Ant и набор не сложных скриптов. Проект был довольно сложным, но это не похоже на привычное нам программирование. Основной платформой компании была Java, и вот до кода самих продуктов мне было как до Луны.

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

После успешного прохождения практики я попросил оставить меня поработать там хотя бы пол ставки, и желательно программистом. Ох, как же я об этом мечтал.. Мне согласились провести собеседование, но я провалил его с треском. Я не раз упоминал эту историю ранее — местный бородатый мужик задушил меня вопросами в стиле google killer questions (сколько мячиков влезет в эту комнату? и т.п.). В конце он сказал, что вряд ли из меня вообще выйдет программист, и посоветовал прочитать целиком SICP, обязательно решая все упражнения(!!) — это очень забористая книжка, от которой даже MIT в итоге отказались, на порядки сложнее этого вашего Таненбаума. По сути, это было скорее жестокой издёвкой, чем хорошим советом.

Николай Тузов

14 Jan, 16:12


Что смотрим этим вечером?

Антон Зиновьев прямо сейчас проводит мастер-класс по контрибьюту в опенсорс, обещает сделать pull request в pgx. Тема интересная, думаю будет интересно.

https://t.me/laxcity_lead/160

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

Не реклама, конечно ❤️

Николай Тузов

14 Jan, 12:56


Продолжаем.

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

Для понимали ситуации, представьте что вы хорошо изучили некоторые основы своего языка программирования, но не знаете про какие-то конкретные концепции, при чём такие же базовые. Например, вы знаете про циклы, условные операторы, но не знаете о существовании массивов, о том как работать с файловой системой и т.п. А если где-то о них и упоминалось, то для вас это были слишком абстрактные понятия, чтобы осознать, где и как их можно применить. В итоге, моя первая реализация игры в крестики-нолики была без использования массивов (код был ужасен, но работал), а в предыдущем посте я рассказал как обходил отсутствие взаимодействия с ФС.

Кроме того, я варился сам по себе, поэтому даже самые чудовищные конструкции считал нормой, и развивал их. К примеру, когда я делал игры, я манипулировал элементами windows-формы, что было жутко не оптимально и сильно ограничивало в возможностях. Мне бы очень упростило жизнь понимание спрайтов (и как с ними работать), графических библиотек, BitBlt, DirectX и др.

Я уже тогда понимал, что мне очень не хватает новых знаний и информации, и любая её крупинка для меня была на вес золота. Я каким-то чудом нашел в школьной библиотеке книгу по Visual Basic. Там было что-то очень специфичное, но я всё же нашел информацию про работу с ФС, понял что это поможет мне прикрутить нормальные сохранения в играх, и.. сидел в библиотеке, подолгу переписывая примеры кода на листочек. Ведь в то время у нас не было ноутбуков и прочих гаджетов, а подобные книги из библиотеки выносить было нельзя. Потом я находил какие-то книги в городской библиотеке, но всё это было не то - слишком запарно постоянно куда-то ездить (поездка "в город" для меня была целым событием) и переписывать на листочек. Это были лишь крупинки.

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

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

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

Ооо... таких денег я в жизни пока ещё не видел, их хватило на целых две книги по программированию! Я тут же прибежал в свой любимый магазин, и уже точно знал что куплю. Это была как раз книга по Visual Basic 6, и ещё одна по другой штуке. Я был счастлив, проекты стали ещё круче, я наконец-то смог реализовать свой потенциал.

А дальше у меня в какой-то момент наконец-то появился интернет, и я начал интересоваться созданием сайтов. Начинал с CMS вроде Joomla и Wordpress, затем познакомился с PHP и разными фреймворками (начинал с Symfony).

Про опыт первой работы напишу также отдельно

Николай Тузов

12 Jan, 07:00


Путь в IT: мой первый компьютер и дурацкие эксперименты

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

Итак, впервые я увидел и пощупал настоящий персональный компьютер в гостях. Боюсь обмануть, но это было в районе 2000 года, скорее чуть раньше. В те времена ПК в наших краях и в моём круге общения были той ещё диковинкой. Мне показали как пользоваться клавиатурой, мышью и оставили одного. В основном я развлекался в легендарной рисовалке Paint, этого мне было более чем достаточно — у меня от одной только концепции "мыши" мозг взрывался, ведь я двигал рукой, и при этом двигалась стрелочка на экране! Это ли не чудо!?

Конечно, я влюбился в эту штуковину, и долгое время мечтал о собственном ПК. Он для меня был чем-то сакральным, особенным. На самом деле, я думал, что это у всех так, но потом удивлялся, когда узнавал, что многие люди воспринимали его просто как игрушку, которая не сильно круче того же телевизора.

Собственный компьютер мне купила мама где-то в районе того же 2000-го года, скорее чуть позже. Я хорошо помню его характеристики до сих пор: Intel Celeron 1000 МГц, 128 мб ОЗУ, 20гб hard disk, ЭЛТ монитор 14 дюймов.

Конечно, я очень полюбил компьютерные игры — Unreal Tournament, GTA 1-2, WarCraft 1-2, Stronghold и другие шедевры тех времён.

Но мне этого было мало, ведь ПК всё ещё оставался для меня чем-то сакральным, и мне очень интересно было, что ещё можно на нём сделать. Увы, с интернетом у нас в Казахстане исторически было очень туго, поэтому я варился в собственном соку и занимался полной ерундой:

- Делал мультики в Power Point — рисовал кадры на отдельных слайдах, настраивал тайминги и запускал в режиме демонстрации. Да, это было то ещё извращение, но мне было весело. Хотя.. Настоящее извращение будет ещё впереди.

- Пытался сделать игру крестики-нолики во всё том же Power Point, без программирования! Это было ужасно — я добавил поле 3х3 с кнопками, и каждая кнопка была гипер-ссылкой на другой слайд. То есть, тыкаешь на неё, и тебя перекидывает на другой слайд, где эта кнопка отмечена крестиком, а какая-то другая кнопка отмечена ноликом. Почему ужасно? Да потому что я не оценил масштаб проблемы — ведь каждое состояние игры, это отдельный слайд, и это астрономическая цифра! Конечно, я не осилил её полностью, но это всё равно было весело.

- Пытался декомпилировать программы (как мог). Началось всё с того, что я читал подробно справку к антивирусу Касперского (даа, чем я только не занимался..), и там был пример того, как потестить его работу. Предлагалось в блокноте создать текстовый файл, вставить в него определенный набор символов и сохранить с расширением .exe (исполнимые файлы в Windows), затем антивирус на это ругался. Так вот, я решил, что именно так пишут программы. Я много с этим экспериментировал — создавал свои файлы с разными наборами символов, пытался открывать другие программы блокнотом, искать какие-то закономерности.. В общем, долго бился головой о стену и всё безрезультатно.
Хороший, кстати, пример того, как важно помогать новичкам хотя бы с направлением. Ведь даже самые талантливые и усидчивые могут потратить кучу времени и получить буквально нулевой результат.

На самом деле, экспериментов была тьма: развлекался с файлами игр (в некотором смысле, делал моды, сам того не понимая), делал какие-то странные миксы из музыки в аудио-редакторе, озвучивал фильмы (а-ля Гоблинский перевод, но о нём ещё даже не слышал), пытался делать игры другими сумасшедшими способами и др.

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

Николай Тузов

31 Dec, 16:32


Мои итоги года - 2024 🎄

На картинке итоги года этого ТГ-канала, а ниже про остальное.

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

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

- Полностью сделали ремонт в той мере, в какой планировали. Он, как черная дыра, высасывал все наши деньги и свободное время. Ну и, конечно, не без проблем с бригадой.
Отчасти поэтому мне было не до новых роликов. Зато теперь у меня есть собственная комната, отремонтированная по моим строгим запросам, работать в ней намного приятней. А ещё есть отдельная комната под студию для записи видео, но её обустройство я отложил.

- Я женился ❤️❤️ ! Мы с девушкой были лет 8 вместе, и бОльшую часть времени вместе живём. Очень много пережили — как очень плохого, так и очень хорошего, отношения порой сильно колебались туда-сюда, но в конце концов мы поняли, что друг без друга не можем, вот. Теперь она моя жена.
Честно, пока писал этот абзац, аж немного всплакнул - когда прогоняешь всё это в голове, столько эмоций проносится, столько всего пережито.. 🥲
Получается, это наш первый семейный новый год в своей квартире.

- Наконец-то мы съездили в страну моей мечты — в Японию. Оооо, как это было прекрасно! Япония — единственная страна, откуда я так сильно не хотел уезжать, и теперь так сильно хочу вернуться. Кажется, эта страна идеально подходит мне. Как-нибудь я расскажу о ней подробней, а пока можете почитать мои посты про поездку вот тут.

- К сожалению, роликов на канале почти не было. Простите, тут я вас подвёл. От части, из-за квартиры, от части из-за того, как сильно на меня давил ваш любимый ролик про планировщик. И нет, дело не в том, что вы мне часто о нём напоминали. Дело в моём перфекционизме. С ним я попал в некую ментальную ловушку, но об этом тоже лучше отдельно рассказать.
На следующий год у меня большие планы на канал, и я уверен, что я смогу восстановить нормальные производственный процесс.

- Как ни странно, даже без новых роликов канал активно рос и развивался. Было очень много предложений по рекламе, я впервые заключил очень крутой договор с конференцией HighLoad++.
А теперь новость с пометкой "молния", специально для тех, кто дочитал до сюда — одно из самых авторитетных русскоязычных издательств IT-книг предложило мне написать собственную книгу, которую они будут издавать. Мы уже всё обсудили, и решение принято — книге быть. Скорее всего, это будет книга про внутреннее устройство Go — в моём стиле, как вы любите, и с поддержкой моего нового иллюстратора. Конечно же, я планирую вложить в неё душу и сделать её must have для каждого Go-разработчика. Опять же, я напишу об этом подробнее чуть позже.

- Свозил маму в Алмату. Не бог весть какая ачивка, но наконец-то я нашел на это время. Постараюсь в следующем году показать маме сильно больше городов и стран, она это заслужила.

- Я помог своему лучшему другу найти крутую работу в области Data Science. У него шикарный бэкграунд - физик, кандидат наук, и ооочень неглупый. Но рынок был к нему жесток, и он раз за разом терпел неудачи. Я пытался помогать как мог, но тоже безуспешно. В итоге мы нашли способ, и он наконец-то осваивается в новой области. Но! В первую очередь, благодаря своим стараниям — он так много оступался, но так и не сдался, ведь ТОЛЬКО ТАК ПОБЕЖДАЮТ! Очень легко помогать людям, которые фигачат с такой самоотдачей.
Серёжа, ты очень крутой! Я горжусь таким другом, и рад что наша дружба осталась крепка даже после "перехода на удалёнку" ❤️

Что ж, я в целом доволен своим годом.
Огромное спасибо тем, кто прочитал всё это полностью, и большое спасибо всем вам — вы всё это время были со мной и поддерживали меня, несмотря на ничтожно малое количество новых роликов. Спасибо за доверие, я постараюсь оправдать его в следующем году!



С новым годом вас!

Николай Тузов

31 Dec, 10:58


Как вам в целом, интересно было? Не слишком ли мы растеклись мыслями? Может, в следующем году как-то подкорректировать формат?

Николай Тузов

31 Dec, 10:16


Итак, двух победителей выбираю я, двух других Олег

С моей стороны:

- @baalvl
- @che1nov

Мы с вами свяжемся чуть позже и обсудим получение подарков.

В любом случае, всем участникам спасибо за новогоднее настроение! 🎄

Ещё раз всех с наступающим и хорошего вам настроения, сегодня оно вам точно не помешает! ❤️

Николай Тузов

30 Dec, 11:25


ПредНовогодний стрим GoGetPodcast - 2025

https://youtube.com/live/iHvOEWUqERQ

⚠️ Важная оговорка — я сейчас немного болею, и если вдруг завтра мне станет хуже, я буду вынужден отменить стрим, либо оставлю ребят общаться без меня. Но, надеюсь, на часик меня хватит, а потом пойду отдыхать. Всё же, наши предновогодние стримы слишком хорошая традиция, чтобы её отменять из-за этого.
Ну и да, скорее всего я буду не в лучшей форме — вялый и с плохим голосом. Заранее извиняюсь.

Итак

Когда: 31-го декабря, 10:00 по Мск

Состав (помимо меня):
- Глеб Яльчик
- Даниил Подольский
- Олег Козырев

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

#gogetpodcast #new_year

Николай Тузов

28 Dec, 14:30


Встреча гоферов в Астане

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

Поэтому, если вы находитесь в Астане (или готовы приехать) и вам такое интересно, вот вам ссылка. Там будет несколько вопросов, которые помогут мне оценить, имеет ли смысл этим заниматься.

Особенно круто будет, если вы сможете помочь с орнанизацией. Например, предоставить или помочь договориться о помещении для встречи. В таком случае, можете сразу в личку писать.
Если пойдёт хорошо, можно будет регулярно такое устраивать.

————
В Алматы тоже можно когда-нибудь, я там периодически бываю. Но это отдельно обсудим.

Николай Тузов

27 Dec, 10:21


Новогодние подарки от Тузова и Козырева 🎁

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

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

Условия розыгрыша:

Для участия в конкурсе, напишите в комментариях (здесь или под постом Олега) забавное новогоднее поздравление для Go-сообщества. Чем оригинальнее и интереснее получится, тем больше шансов на победу. Можете текстом, а можете видео-кружочком (кружочком даже лучше)

Четырёх победителей выберем 31-го декабря на стриме, где так же пообщаемся со всеми вами и ответим на вопросы (о самом стриме напишу отдельно)

Каждый победитель выбирает получает по три приза:

1) одну любую книгу на выбор из списка:

- "Язык программирования Go", Донована и Кернигана - на мой взгляд, это всё ещё главная книга по Go
- Грокаем алгоритмы - идеальный старт для новичка
- "100 ошибок Go"
- "Высоконагруженные приложения" Клеппмана (ваш любимый кабанчик) - для более серьезных ребят

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

3) Доступ новому курсу Олега - “Вся база о собеседованиях на Golang”

Удачи и весёлого новогоднего настроения вам! ❄️❄️

#розыгрыш #новый_год

Николай Тузов

25 Dec, 21:10


Ролик про Планировщик — первая часть готова 🤓

Что ж, работы оказалось слишком много, поэтому я решил разбить ролик на три части и выкладывать их по мере готовности. Но есть нюанс.. Я уже не раз говорил, что я не люблю выкладывать серии роликов на YouTube, туда идут только целые законченные видео. И это хороший повод выкладывать их в мои платные каналы.
Первая часть уже ждём вас там 📆
Как только все три части будут готовы, полное видео будет выложено на YouTube бесплатно.

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

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

К примеру, я убрал из основного ролика про планировщик рассказ про совсем уж тонкие оптимизации (например, про LIFO-слот в LRQ). Также я не буду разбирать там его исходный код. Эти вещи на любителей, но не менее интересные — об этом будут отдельные видео в платных каналах. То есть, будет, как минимум, два дополнительных платных ролика: "Более глубокое погружение в детали реализации планировщика" и "Разбор исходного кода планировщика" (материал для них уже готов)

Мои платные каналы:

- Закрытый Telegram-канал: в рублях, в евро.
Преимущества: сюда, я пишу намного чаще, т.к. Телеграм - более удобная площадка для меня. Конечно, эксклюзивные видео будут выходить одновременно везде, но тут будут и другие посты.

- Boosty - его преимущество в том, что подписка также даст доступ к закрытой версии чата Gopher Club — это ещё одно сообщество, на этот раз закрытое pay wall'ом, с ещё более приятной атмосферой, с другим подходом и с более жесткой модерацией. Чуть позже я расскажу об этом подробней, и также прикручу эту фичу к другим платформам (Patreon и закрытый ТГ-канал), но пока так.

- Patreon - тут особых примуществ нет, но вдруг вам так удобней.

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

P.S. Нет, в ВК, на котором "всё летает" моих роликов как не было, так и не будет. Эта платформа слишком хороша для меня, а я не ищу простых путей, как вы знаете. Но зато вы без проблем сможете посмотреть этот и будущие ролики в платных каналах, да ещё и раньше всех. Там тоже всё летает, поверьте.
Также я готов заливать туда любые старые ролики. Если вам это надо, пишите, обсудим условия.

Николай Тузов

25 Dec, 10:15


А вот и результаты исследования

Немного опоздал, но всё же

https://devcrowd.ru/go-2024/

Что ж, буду воспринимать его результаты как личные итоги года

Дополнительно комментировать не буду, у ребят и без меня всё круто оформлено.

Николай Тузов

24 Dec, 17:50


Запись доклада

- Видео-версия на YouTube

- По аудио-площадкам уже разъезжается. Ссылки искать тут

- Ещё держите аудио-версия в местном плеере от Mave.

Материалы, которые упоминались во время доклада.

Файл с презентацией в комментариях к этому посту.


Ссылки на соц. сети ведущего — Антона Зиньева: YouTube, Twitch
Антон регулярно проводит стримы с лайв-кодингом, заглядывайте.

————
Видео залито на новый YouTube-канал, поэтому ваши лайки и комментарии очень помогут.
Особенно будет ценно, если посмотрите видео до конца
❤️

#gopher_club

Николай Тузов

24 Dec, 14:17


Что такое cloud application, откуда они появились и почему в современной разработке всё так сложно?

Давно у нас в Gopher Club не было докладов, и наконец-то появился желающий выступить. За что ему огромная благодарность, а также почёт и уважение.

О чём доклад:

Если вы собрали контейнер и залили его на сервер под управлением kubernetes, ваш сервис автоматически станет облачным, верно? Нет, потому что в этом случае вы лишь усложнили развертывание и управление приложением.

О том что такое "облачное" приложение и почему в современной разработке всё так сложно, расскажет Игорь Ряховский — опытный Tech Lead, занимается продуктовой разработкой облачных сервисов. В коммерческой разработке с 2005 года.

————

Когда: 24.12.2024, 18:00 по Мск (всего через час!)

Где: трансляция будет эксклюзивно для сообщества Gopher Club 🍾

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

Ведущий Антон Зиновьев.
Я тоже буду присутствовать, от роли ведущего решил пока отдохнуть. Спасибо Антону, что подменил ❤️

————

Осторожно, в чате работает банхаммер 🍌

#gopher_club

Николай Тузов

23 Dec, 11:40


Книги и ссылки, которые я упоминал на стриме

- Структура и интерпретация компьютерных программ (SICP / СИКП) - книга, которую мне навязали после первого проваленного собеседования, о котором я рассказывал.
Очень крутая книга, но очень забористая, не для новичков.

- "Архитектура компьютерных систем. Как собрать современный компьютер по всем правилам" - книга, которую я показывал на камеру.
Это книга от авторов курса From Nand To Tetris (см. следующий пункт).

- Курс "From Nand To Tetris" (nand2tetris), который мы упоминали с Владом. О нём у меня есть несколько постов, ищите в этом канале по тегу #nand2tetris

- "Код: тайный язык информатики" Ч. Петцольд - также, книга, которую упомянули я, Влад и Саша. О ней я тоже писал ранее

- Книга "Грокаем Алгоритмы", думаю, в представлении не нуждается? Идеальное начало для новичков.

- CodeTriage - сервис, который помогает разработчикам находить open-source проекты для контрибьюции и систематически работать с ними

Если что-то забыл, напомните, дополню пост.

————

Это не подборка рекомендаций, это просто всё что упоминалось на стриме. Хотя, все эти ресурсы и книги я рекомендую.
Да, есть ещё множество не менее крутых штук, но тут не об этом. Как-нибудь дойдут руки и напишу полноценную подборку.

Николай Тузов

21 Dec, 12:07


Запись стрима, как обычно, выложу отдельным видео, в более крутом качестве, после монтажа.

Николай Тузов

21 Dec, 08:18


Скоро начнём. Стороны разогреваются перед началом 🙃

Николай Тузов

20 Dec, 07:46


Чтобы отсечь все лишние вопросы ко мне и участникам дебатов, давайте я пролью свет на некоторые важные моменты:

1) Дисбаланс сторон: тот факт, что Антон выступает один против двух оппонентов — это исключительно его инициатива. Он сам предложил идею дебатов с Даниилом и Виталием, и у него была возможность добавить на свою сторону кого-то ещё.
Кстати, время у Даниила и Виталия будет общее на двоих, так что в этом плане симметрия сохраняется. Я вообще не уверен, что "две головы" тут даёт преимущество.

2) Профессиональная этика: поскольку не все стороны хорошо умеют держать себя в руках, я заранее предупреждаю и подчёркиваю, что при грубых нарушениях регламента и особенно при оскорблениях и переходах на личности со стороны любой из сторон, дебаты будут закончены. Я просто прерываю стрим и мы расходимся.
Стороны об этом предупреждены заранее, также я это ещё раз проговорю в начале эфира.
И если кто-либо решит прервать дебаты таким образом, имейте в виду — это его осознанный выбор, не мой.

————

Честно говоря, я всё меньше уверен, что это хорошая идея. Я стараюсь дистанцироваться от мира срачей, т.к. это совсем не моё. Конечно, формат дебатов, это не срач — во всяком случае, я этого не допущу. Но я видел, что было до них (не спрашивайте), и догадываюсь что за ними может последовать. Я очень надеюсь, что не совершаю ошибку, окунаясь в это.

Николай Тузов

18 Dec, 09:30


Дебаты. Антон Назаров vs Виталий Левченко и Даниил Подольский: путь в IT - база и репутация или быстрые деньги?

https://youtube.com/live/nkcUzameNtY

Когда: 21 декабря, 11:00 по Мск

Острый выпуск про стажеров нашего подкаста ожидаемо привлёк внимание Антона, который крайне категорично не согласен с Виталием и Даниилом. Он предложил подискутировать на эту тему, ребятам идея понравилась, а разве я могу им в этом отказать? ❤️

И вот мы здесь — я выступаю организатором и модератором их дебатов.

⚠️ Сразу предупреждаю — за любые оскорбления и переходы на личности в адрес любого из участников дебатов последует бан. Придерживайтесь конструктива.

————

🍾 Итак, нас ожидает острая и очень горячая дискуссия о том, как правильно строить путь в IT.

Позиция Антона: глубокая база не нужна, можно и нужно регулярно менять работу раз в год ради роста зарплаты, института репутации в IT не существует.

Даниил Подольский и Виталий Левченко уверены, что такой подход вредит как самому разработчику, так и индустрии в целом.

Ключевые вопросы:

- Нужно ли читать Таненбаума и углубляться в Computer Science?
- Стоит ли входить в профессию через open source?
- Существует ли институт репутации в IT?
- Почему одни считают частую смену работы нормой, а другие — признаком несерьёзности?
- Существует ли проблема гейткиперства?
- Что важнее — профессиональный рост или быстрые деньги?

Участники:

- Антон Назаров — основатель сообщества "Осознанная меркантильность", помогает людям вливатсья в IT как можно проще. Также у него есть YouTube-канал.

- Виталий Левченко — engineering manager, член программного комитета GoLang Conf, основатель IT бара в Петербурге. Помогает разработчикам вырасти в principal инженеров.

- Даниил Подольский — глава программного комитета GoLang Conf, разработчик с огромным стажем, архитектор, евангелист GoLang

#дебаты #найм_в_IT

Николай Тузов

11 Dec, 19:05


На какой стадии ролик про планировщик?

На стадии: пожалуйста, остановите меня, пока это не зашло слишком далеко.. 😱

Николай Тузов

03 Dec, 15:11


Самый долгожданный доклад, заключительный ❤️

UPD: досмотрел доклад, мне очень понравилось. И особенно приятно расслабиться после двух полных дней просмотра технических докладов.

#highload_2024

Николай Тузов

03 Dec, 10:08


Что смотрим сегодня?

Очень интересно было послушать доклад про эпик фэил очень важного проекта на проде, тушение пожаров в реальном времени, разбор причин и выводы.

Редко кто-то говорит про такие серьезные фэйлы, да ещё и от первого лица. Обычно все рассказывают - "как мы выдержали 100500 RPS", но никогда - "как мы НЕ выдержали 100500 RPS"

В общем, моё уважение докладчику ❤️

#highload_2024

Николай Тузов

02 Dec, 10:13


Кроме шуток, было и правда весело. Иногда полезно разбавлять серьезный тон конференции чем-то весёлым. Ну и тема интересная, мне понравилось.

Спасибо Олегу за это ❤️

#highload_2024

Николай Тузов

02 Dec, 06:21


Открытая трансляция главного зала HighLoad++ 2024

На всякий случай напоминаю, что сегодня первый день HighLoad++ 2024, и если вы не купили билет, то можете посмотреть бесплатную трансляцию из главного зала.

Во сколько: открытие в 9:30, первый доклад в 10:00 по мск.

Как всегда, в главном зале топовые эксперты и самые крутые доклады, например:

- Денис Дерюгин (VK, ВКонтакте): расскажет об эволюции хранилища ВКонтакте за 18 лет. Триллионы фото, аудио и файлов требуют отказоустойчивости, репликации и избыточности. Узнайте, как решаются эти задачи.

- Алексей Николаевский (Яндекс): представит сравнение транзакций в Apache Kafka и YDB. Доклад включает архитектурные решения и тестирование производительности.

- Владимир Комаров (СберТех): расскажет о геораспределённых транзакциях, их теории и практическом применении. Особый акцент на современных подходах SLOG и Detock.

- Станислав Кондратьев (hh.ru): поделится опытом выделения микросервиса из 15-летнего монолита. Разбор сложностей и подходов, включая event-driven-архитектуру.

Подробности и расписание на сайте HighLoad++

————
Если будете смотреть, делитесь впечатлениями в комментариях под этим постом, мне будет интересно почитать

#highload_2024

Николай Тузов

30 Nov, 13:35


А если так? 🔨

Пояснение, если кому интересно:

- Картинка №1 (в прошлом посте) - стандартный гофер из интернета
- Картинка №2 (тоже прошлый пост) - нейросеть. Ну, как шмогла
- Картинка №3 (вот эта) - работа иллюстратора на заказ

Николай Тузов

29 Nov, 12:05


Черная пятница на Podlodka Crew для Go-разработчиков

Ребята из Podlodka Crew попросили поделиться с вами, что у них сейчас хорошие скидки по случаю Black Friday.

Когда: с 25 ноября по 6 декабря

Получить их можно по промокоду:

- 30% скидка на билеты Podlodka Go Crew и другие их конференции по промокоду TUZOV_BF24

- 30% скидка на все плейлисты Podlodka Go Crew и других направлений со скидкой 30% по промокоду PLAYLISTS_BF24

- Годовой доступ ко всей Библиотеке Podlodka Crew за 9999₽ — более 1200 записей по всем направлениям

Купить всё это можно тут.

Николай Тузов

29 Nov, 08:34


Guard Expression и цикломатическая сложность кода

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

Итак, высокая цикломатическая сложность — это проблема. Guard Expression — одно из её решений, которое хорошо работает в большинстве ситуаций.
Давайте начнём с осознания проблемы. Представим вот такой утрированный пример:

func processOrder(order Order) error {
if order != nil {
if order.Items != nil {
if len(order.Items) > 0 {
discount := calculateDiscount(order.Total)
order.Total -= discount
saveOrder(order)
return nil
} else {
return errors.New("empty order items")
}
} else {
return errors.New("items list is nil")
}
} else {
return errors.New("order not found")
}
}


Что здесь не так? Ну то есть, умными словами, без "говнокод" и "спагетти-код". А проблема в том, что у этой функции высокая цикломатическая сложность. Чтобы понять что это значит, приведу определение этого термина:

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

Окей, проблему осознали, но как её решать? А вот тут как раз и приходит на помощь Guard Expression. Суть простая — мы выносим все проверки в начало функции и сразу возвращаем результат, если что-то не так. Смотрите, как преобразится наш код:

func processOrder(order Order) error {
if order == nil {
return errors.New("order not found")
}
if order.Items == nil {
return errors.New("items list is nil")
}
if len(order.Items) == 0 {
return errors.New("empty order items")
}

discount := calculateDiscount(order.Total)
order.Total -= discount
saveOrder(order)

return nil
}


Стало намного проще, не так ли? Мы сразу чётко разделяем - вот проверки, вот бизнес-логика. Код читается сверху вниз, плоско, как книга.
И ваши коллеги теперь не вывихнут свой мозг, пытаясь понять, что делает ваша функция 🤡
Берегите коллег!

К слову, на мой взгляд, else вообще полезен только в редких случаях. Нет, я не отношусь к радикалам, которые вообще его отрицают, но в большинстве случаев без него действительно лучше, и это тесно связано с темой поста. Задумайтесь 🤓

UPD: в комментариях подсказывают, что многие знакомы с этим подходом под другим названием — early return.

————

В Go это особенно актуально, так как обработка ошибок у нас явная, и такой подход делает её более понятной.

И бонусом держите линтер gocyclo, которой проверяет цикломатическую сложность и ругается, если она слишком высокая (да, он есть в golangci-lint)

P.S. Я уверен, у вас точно найдётся знакомый или коллега, которому стоит скинуть этот пост ❤️

#guide #codestyle

Николай Тузов

25 Nov, 07:45


Лучшие ресурсы, чтобы не отставать от трендов Go разработки.

👣 Golang Go - авторский канал, посвященный Go разработке, Devops и созданию высоконагруженных сервисов.

📚 Golang books — редкая литература , статьи, курсы и уникальные гайды для Golang специалистов любого уровня. Читайте, развивайтесь, практикуйте.

💼 Golang Jobs — актуальные вакансии для Golang разработчиков от самых крупных работодателей и лидеров рынка.

🧠 Golang interview - решаем и разбираем задачи Go с собеседований.

Machine Learning - Научись использовать в соих проектах самые современные модели машинного обучения и искусственного интеллекта

#партнерский_пост #текст_прислан

Николай Тузов

24 Nov, 10:40


Какие гоферы вам больше по душе?

Классические (первая картинка) или новые (вторая картинкаи - злые с топорами)? Какие лучше подойдут для ролика? 🤓

Опрос ниже

Николай Тузов

20 Nov, 15:08


Итоги розыгрыша

Билеты получают:
- @fostg
- @zadorozhnayaya
- @kirya_chan
- @LazerPewPew

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

Всем остальным удачи в следующий раз!
Если кому-то интересно, всего было 66 участников конкурса.
А вот в моём закрытом канале.. было 4 билета на 8 желающих 🙃

P.S. Я прочитал все ваши комментарии в заявках до конца — будь у меня возможность, я бы каждому по билету выдал. Вы все очень классные ❤️

Николай Тузов

19 Nov, 18:25


У меня нет любимчиков, но.. У меня есть Александр! 🌚

Да скоро уже, скоро..

Николай Тузов

18 Nov, 07:58


Приглашаем на митап для бэкенд-разработчиков от Еком-сервисов Яндекса
В Минск приехал Яндекс Foodtech Tour — серия митапов в столицах, на которых эксперты Еды, Лавки и Маркета рассказывают о внутренней кухне разработки сервисов. В каждом городе своя ключевая тема, и в Минске спикеры расскажут о core-технологиях, лежащих в основе работы продуктов. Митап пройдет 7 декабря.

Программа насыщенная:
Доклады о BDUI и ускорении разработки. Никита Шумский из Еды расскажет об особенной инфраструктуры Еды, различиях классического и мобильного бэкенда и преимуществах BDUI. Ваня Ходор из Лавки поделится кейсом ускорения разработки, причем не скорости работы кода, а его написания.
CaseLab о мультизаказе в Еде. Это интерактивный формат, в котором участники разбирают реальный кейс из работы сервиса, предлагают решение и получают фидбек от экспертов Яндекса.
Нетворкинг и afterparty

Будет интересно — зовите друзей и регистрируйтесь!

Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки.

#реклама #текст_прислан

Николай Тузов

17 Nov, 21:16


Давайте я вкратце подытожу для тех, кто совсем не понимает о чём речь

В курсе nand2tetris мы собираем учебный компьютер (подробнее писал тут), но, конечно же, это будет лишь эмуляция компьютера.

FPGA — это штука, которая позволяет вытащить этот компьютер из симуляции в реальный мир и пользоваться им — подключить физический кнопочки, простенький экран и поиграть в тот самый тетрис, который мы напишем в финале курса. Разве не прекрасно?

Николай Тузов

17 Nov, 21:00


FPGA — физический компьютер своими руками

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

В последнее время меня снова потянуло на nand2tetris, как вы могли заметить. В очередной раз собираю местный компьютер с простенькой архитектурой — Hack. Параллельно с этим начал задумываться, как бы его прокачать — добавить конвейрную архитектуру, регистры для процессора (их в Hack всего два) и др. Есть разные варианты как это сделать, но все они не идеальны (хотя, со своими изюминками):

- Средствами курса nand2tetris вряд ли получится — да, мы пишем реализацию компьютера сами на HDL, но вот программы запускаем на встроенной реализации, которую предоставляют авторы. Поэтому модифицировать его не вариант.

- Написать свою реализацию виртуальной машины на Go — крутой челендж, но вместе с этим вылезают другие челенджи. Например, в реальном компьютере разные элементы могут работать параллельно (АЛУ, регистры, память и т.п.), а вот в Go это придётся муторно синхронизировать руками. Это тоже весело, но вместо практики по проектированию компьютера, мы практикуем работу с параллельным кодом на Go 😩

- Собрать компьютер Hack на.. макетных платах (breadboards). Звучит довольно безумно, но вполне реализуемо. Однако, это также практика немного других скилов.

- Использовать готовые эмуляторы: Icarus Verilog, Verilator, Verilator и т.п. Для них можно просто написать реализацию Hack на HDL и запустить. Но это не так весело, будто бы.

————

И вот сегодня я случайно услышал о существовании такой штуки, как FPGA. Удивляюсь, как я раньше не слышал о ней.. Говоря простым языком, это просто набор логических вентилей, которые можно программировать — загружаем туда ЛЮБУЮ схему HDL, будь то компьютер Hack, какой-нибудь древний процессор, любимая ретро-косноль или что-то ещё, и оно ведёт себя в точности как это устройство.

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

Какие модели мне понравились:

- Arty A7-35T: главная фича (для меня) — совместимость с Arduino, что даёт большой простор для творчества. Можно подключать разные простенькие экраны или полноценные мониторы, устройства ввода (хоть просто кнопочки, хоть полноценную клавиатуру) и т.п.
- Cmod A7-35T: похож на предыдущий, но немного проще и доступнее для покупки. Тоже совместим с Arduino, но более урезано
- Basys 3: пишут, что это №1 штука для учёбы, но мне пока не очень понравилось — с Arduino сложнее подружить, а выводить картинку через VGA для моих целей кажется оверкиллом.

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

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

Кстати, если вам кажется, что реализовать всё перечисленное своими руками слишком сложно или даже невыполнимо, то просто пройдите курс nand2tetris и убедитесь в обратном 🤓

————
Я пока только обзорно познакомился с этой технологией, и с имеющимися на рынке решениями, поэтому без подробностей. Возможно, когда-нибудь дойдут руки и всё же соберу физический компьютер Hack или что-то ещё. И тогда поделюсь с вами результатами. Но, возможно, это вдохновит кого-то из вас сделать это даже раньше меня ❤️

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


#nand2tetris #fpga

Николай Тузов

15 Nov, 14:01


Golang Conf 2024 и розыгрыш билетов

Если вы смотрели последние выпуски нашего подкаста, вы точно знаете, что скоро будет HighLoad++ и в рамках него также Golang Conf 2024

Когда: 2 и 3 декабря

В этот раз у GoLang Conf будет целых два зала и отдельная секция Хардкор — ассемблер, внутренности, декомпиляция и т.п. (этой секции я особенно рад)
Также будут обсуждаться нововведения в Go v1.23.

Из особенно примечательного лично для меня:

- Секреты высокой производительности в многоядерных системах, Никита Галушко
- Конкурентность в Go: от железа к коду, Максим Горозий
- Ну и, конечно, на котиков Олега посмотрю обязательно ❤️

Программу, расписание и билеты можно найти на сайте.

————
Как я обещал, традиционно разыгрываем 4 онлайн-билета.

Условия конкурса как обычно: знакомитесь с программой конференци, и затем в специальной форме пишете, какой доклад вам больше всего понравился и почему (можно выбрать несколько). Чем убедительней это будет выглядеть, тем больше шансов.

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

#highload_conf #розыгрыш

Николай Тузов

15 Nov, 11:41


Хочешь войти в IT? Но ты даже не купил курсы Николая Тузова для "вкатунов"!

Наглядная демонстрация одного из моих любимых мемов: https://t.me/inv2004_dev_blog/131

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

Но это и понятно — зачем тратить месяцы на подготовку качественного контента, когда можно за 5 минут повыдёргивать из двухчасового подкаста триггерные фразы, полностью переврать его содержимое и собрать на этом "классы". Стараются пусть дилетанты, а профессионалы выезжают за счёт их труда.

Автор почти в каждом абзаце упоминает некие "курсы для вкатунов", и об этом же буквально кричит заголовок и картинка поста, хотя за весь выпуск подкаста упоминался лишь курс Олега, и то вскользь и скорее в шутку (к тому же, он не для "вкатунов"). На самом деле, там не было ни рекламы каких-либо курсов, ни даже их обсуждения, и уж тем более рекомендаций. Хотя, отдаю должное — высосать инфоповод из таких крох, это нужно уметь.

Ну и опять же —  а почему нет? Ведь при этом, ты даже не ставишь на кон свою репутацию, а прячешься за анонимным аккаунтом, и в крайнем случае просто создашь ещё один.

Николай Тузов

12 Nov, 19:03


Удивительно, но в большинстве материалов про Планировщик Go (а я их перелопатил оооочень много) этот момент либо опускается, либо автор вообще заблуждается.

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

Если кому-то интересно, я могу показать пруфы, но чуть позже — сначала соберём статистику в опросе.

————

А если вам совсем ничего не понятно, то есть хорошие новости. Я наконец-то дописал сценарий для ролика по планировщику, и скоро начну записывать. Там мы затронем этот момент. Совсем уж во внутренности не полезем, но понимание точно будет.

Николай Тузов

11 Nov, 08:57


Как вырасти до хардового аналитика уровня Middle+?

Добавьте к своим скилам навыки в проектировании архитектуры и интеграций веб-сервисов!

Пару месяцев назад я уже писал про этот курс. Сейчас пишу еще раз, потому что у курса вышло полезное обновление, уже доступное ученикам, независимо от того, когда они его купили.

- Первое: в портфолио включили примеры интеграций от крупных BigTech-компаний. Это позволит вам понять, как технологии применяются в реальных бизнес-контекстах.
- Второе: обновили портфолио. Теперь в нём есть задания повышенного уровня сложности для каждой темы. Это небольшие реальные проекты, с помощью которых можно не только проверить, но и улучшить свои навыки!
- Третье: вышел новый модуль про проектирование баз данных - нормализация, транзакции, основы DWH, индексы.
- Четвертое: стал активен чат учеников (общение, обмен опытом, помощь внутри сообщества)

————

• Результат после прохождения курса: 15 рабочих проектов в портфолио-резюме
• Доступ к урокам и всем обновлениям останется навсегда
• Фундаментальная база
• Всю программу и отзывы смотрите в боте курса

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

А с моим промокодом NTUZOV2 получите скидку
1000₽ на Stepik
до 30 ноября.

#реклама #текст_прислан

Николай Тузов

10 Nov, 10:57


Новый выпуск уже доступен на YouTube

https://youtu.be/0GnTXKF1X-8

Телеграм-канал героя выпуска тут, если вдруг хочется узнать о нём побольше и пообщаться лично. На аудио-площадках будет позже.

————

А ещё напоминаю, что на следующей неделе будет розыгрыш четырёх онлайн-билетов на HighLoad++ 2024. Проводить я его буду, как обычно, здесь, в своём Телеграм-канале. Следите за новостями ❤️

Николай Тузов

09 Nov, 10:36


Как обычно напоминаю, что запись подкаста выложу чуть позже отдельным роликом с пост-обработкой

Николай Тузов

08 Nov, 17:08


История одного мидл-разработчика — GoGetPodcast №13

https://youtube.com/live/VVRWha5evqE

Когда эфир: завтра в 11:00 по Мск

Вот так внезапно и без предупреждения очередной подкаст на тревожащую многих тему. Вот вы когда-нибудь боялись провалить испытательный срок? Как это вообще может произойти? А если провалить его и потом столкнуться с реальными проблемами при поиске новой работы - упадок рынка, длинная серия провалов на собеседованиях..

Страшно? Нет, это не страшилка на хэллоуин, ведь он недавно закончился 🎃
Это реальная история Романа, который согласился ею поделиться и обсудить с нашими гостями. А состав будет такой

- Николай Тузов
- Глеб Яльчик — я знаю, вы по нему скучали ❤️
- Даниил Подольский
- Виталий Левченко

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

Спонсор этого выпуска снова наш любимый HighLoad++ и, в частности, GoLang Conf 2024. Так что, вы знаете кого благодарить ❤️

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

#gogetpodcast

Николай Тузов

07 Nov, 10:59


Go Proverbs
Simple, Poetic, Pithy

Смотрите какую чудесную страничку нашел пока защищал свой бедный кусочек кода на код-ревью на работе. Кто-то проделал такую шикарную работу, а мы даже об этом не знаем!
Теперь знаем ❤️

Конкретно я искал вот эту цитату Роба Пайка: A little copying is better than a little dependency, со ссылкой на источник.

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

Николай Тузов

04 Nov, 16:37


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

————
Кстати, недавно наш хостер подкастов придумал какой-то плеер подкастов в Телеграм. Вдруг, кому-то понравится.

Но в этом плеере нет разбития на главы, у них это платная фича. А вот на прочих площадках оно есть — в последнем выпуске я "вшил" главы в mp3-файл, и те площадки, что умеют с этим работать, покажут вам их. На Apple Podcasts точно есть, проверил.

Николай Тузов

03 Nov, 15:39


Как попасть в IT — проблемы стажеров и как их решать

Выпуск уже доступен на YouTube

https://youtu.be/YrZLNvl6xc0?si=NTmMrh8ZGYYGhKty

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

Если же вам интересно продолжение темы найма, например про мидлов и сеньоров, пишите в комментариях, сделаем продолжение.

Заваривайте чаёк, доставайте печеньки и приятного просмотра! ❤️

#gogetpodcast

Николай Тузов

03 Nov, 12:56


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

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

Я с этим согласен и, на мой взгляд, ключевая фраза здесь — "пока стажер в больнице не будет получать столько же, сколько стажер в Озон, у нас всё будет вот так"

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

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

К чему вообще слова Виталия про "возможно, вам не надо в айти" и Даниила про Таненбаума, и даже того бородача, который меня когда-то заставил SICP прочитать? К тому, что фраза "круды шлёпать" намеренно скрывает огромный пласт сложных проблем, по сравнению с которыми даже SICP и Таненбаум покажутся цветочками. И если у человека нет желания учиться, нет задора и энтузиазма, то ему будет крайне тяжело, и пользы от него будет мало. Возможно, конкретно Таненбаум был плохим примеров, но суть то не в этом.

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

Из этого всего вытекает проблемы с наймом — люди, которые хотят залететь наобум, создают сильный дудос на нанимателей, из-за чего физически невозможно выслушать всех, и приходится применять порой довольно жесткие и несправедливые методы. В итоге, кандидаты тоже начинают применять свои "хаки системы", что вполне понятно и разумно. Наниматель на это реагирует, закручивая гайки ещё сильнее. В итоге, спираль закручивается.

Что с этим делать — непонятно.

Как видно из подкаста, Даниил не раз говорит фразу "я пытаюсь это решить, но я не знаю как — давайте обсуждать и разбираться вместе". И, по сути, в подкасте мы скорее рассуждали о том, как быть, а не раздавали готовые рецепты, хотя попытки подытожить тоже были.

————

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

Николай Тузов

02 Nov, 23:02


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

А пока, держите небольшой корявенький, но очень весёлый трейлер

————

Внимание: большинство фраз намеренно вырваны из контекста, чтобы нарезка выглядела забавно. Не судите о гостях, пока не увидете выпуск целиком. Дискуссия была очень интересной, адекватной и конструктивной ❤️

Николай Тузов

02 Nov, 08:34


Запись выложу чуть позже, в гораздо лучшем качестве, чем было на стриме. Немного терпения, и скоро всё будет ❤️

Николай Тузов

01 Nov, 18:47


Напоминаю, трансляция завтра в 9:00 по Мск

https://www.youtube.com/live/Qal5yNePADU?si=TYKaeAKAvR_FLkqT

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

Как же я устал рисовать эту превьюшку..

#gogetpodcast

Николай Тузов

31 Oct, 13:53


Итак, следующий выпуск будет в эту субботу, теперь точно 🧙

Эфир будет в 9:00 по Мск.
Если хотите послушать нашу беседу вживую и задать вопросы в чате, приходите.
Либо можете посмотреть в записи, чуть позже — качество будет намного лучше, чем во время эфира.

Будем снова обсуждать тему найма Go-разработчиков. У нас уже был похожий выпуск, но было это давно, и пора бы актуализировать информацию.

Ну и в этот раз я поработаю над ошибками и постараюсь сделать беседу более интересной.

Из самого интересно, что хотелось бы затронуть:

- Как быть стажёрам без опыта, куда податься и стоит ли начинать с Go (я знаю, эта тема беспокоит многих из вас)
- Поговорим про нынешние зарплаты Go-разработчиков (все грейды)
- Обсудим мок-собеседования — что это, нужны ли они и где проходить
И другое

Гости выпуска:

- Даниил Подольский
- Виталий Левченко
- Олег Козырев
(полагаю, никто из них в представлении не нуждается?)

Ребята хорошо ориентируются в текущей ситуации на рынке, а я вот давно не ходил по собеседованиям, и сам не собеседую. Так что, я лично буду представлять вас и ваши интересы ❤️ — мне самому очень интересно разобраться.

————

Над списком тезисов для обсуждения я ещё работаю, поэтому если у вас есть вопросы, идеи, предложения, то пишите в комментариях. Постараемся обсудить все интересные моменты. А если не успеем, значит будет вторая часть 🍾

Прошлые выпуски можете посмотреть
тут или послушать на разных платформах.

#gogetpodcast #анонс

Николай Тузов

29 Oct, 18:46


Ну зачем, ну не надо было, ну это было лиииишнее 🙈

Но зато моя мама теперь точно мной гордится! ❤️

Николай Тузов

28 Oct, 10:03


Курс «Golang-разработчик» от Слёрма

Набор в новый поток до 11 ноября.

5 сложных
вопросов, с которыми часто сталкиваются Go-разработчики:

- Что сделать, чтобы проект работал, даже если часть подсистем упала?
- Как сделать простую и надёжную систему?
- Как не допустить утечек памяти в нагруженном приложении?
- Как избежать проблем при работе с БД?
- Что делать с растущими нагрузками без покупки или аренды дополнительного оборудования?

Чтобы знать, что в этих случаях делать — приходите на курс «Golang-разработчик» от Слёрма. Набор в поток до 11 ноября.

Внутри:

- 4 месяца обучения и 6 встреч со спикером курса Виталием Лихачёвым, SRE в booking.сom
- 80% курса - углублённая практика на примере реальных кейсов из бигтеха с код-ревью от спикера
- Прямое общение со спикером в Telegram-чате. Не просто лекции и Q&A, а наставничество и поддержка
- Сборка полноценного сервиса для портфолио: онлайн-банк, мессенджер или файловое хранилище
————

Занять место на потоке
Можно оплатить курс в рассрочку или от компании

#реклама #текст_прислан

Реклама ООО «Слёрм» ИНН 3652901451

Николай Тузов

28 Oct, 08:33


Ну и напоследок. Такого я у ChatGPT ни разу не видел. Складывается ощущение, что меня разыгрывают, и с той стороны сидит живой человек 😩

Николай Тузов

28 Oct, 08:26


Теперь о недостатках:

1. Лимиты! Они даже в платной версии более скудные, чем у ChatGPT. Если вы планируете много с ним общаться, вам буквально придется учиться экономить токены, читая советы от авторов: не вести длинные чаты (большое окно контекста ускоряет исчерпание лимитов), не повторяться, стараться оформлять вопросы батчами и т.п.

Вообще, я пока не слышал, чтобы люди на это жаловались, возможно таких как я не очень много. Но мне очень мало! При чём, я готов им платить хоть $100 вместо $20, чтобы получить безлимит, либо хотя бы увеличить их. Но увы, такой возможности нет. Порой я даже не задаю малозначимые вопросы для уточнения, либо обсуждаю их уже с ChatGPT.

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

2. Claude не умеет ходить в интернет. Я уже привык к очень крутой фиче ChatGPT — вы можете попросить его загуглить какие-то факты и рассказать вам. К примеру, если вы оформляете визу куда-нибудь, можете попросить его поискать подробности, структурированно изложить их, прикладывая ссылки на источники (такую инфомрацию важно проверять лично). Либо можете просто скинуть ссылку на статью, чтобы её обсудить, не обязательно копировать её текст.

3. Claude не умеет генерировать картинки. Мне это не особо важно, я редко пользуюсь этим, а если и понадобится, то попрошу ChatGPT.

Николай Тузов

28 Oct, 08:26


Про Claude

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

Но на днях Claude меня удивил даже больше. На всякий случай уточню — модель Sonnet 3.5 New, с более старыми я не работал.

Поскольку ChatGPT стал для меня стандартом, я просто расскажу про сравнение с ним.

Преимущества:

1. Claude часто создаёт впечатление, что ты общаешься с экспертом, в отличие от ChatGPT. Он легче признаёт ошибки (а он их тоже, конечно же, совершает), очень редко их повторяет, если уже признал. И важный момент — поскольку он осознаёт ошибки, он помогает тебе продраться через них, чтобы выяснить истину. К примеру, когда зарываешься глубоко в детали реализации каких-то механизмов Go, все нейросети начинают обильно галлюцинировать, это ожидаемо. Но только Claude в процессе объяснил, какие именно моменты ему сейчас не ясны и попросил скинуть определенные исходники, чтобы разобраться.

Это сложно описать словами, просто почитайте нашу с ним переписку, поймёте.

2. Он гораздо лучше излагает мысли. К примеру, если я обсуждаю с ChatGPT, например, конкретный механизм Netpoller'а, а потом попрошу его подытожить и рассказать об этом механизме целиком, то он, как правило, нальёт ооочень много воды и начнёт издалека — расскажет что такое планировщик, нетполлер, зачем это всё нужно, и лишь потом расскажет про обсуждаемый механизм.

Claude же сразу будет говорить по делу — без воды, без лишних отступлений, и ровно в том формате, в котором вы ведёте беседу. Да, этого можно добиться и от ChatGPT, если правильно писать промты. Но, во-первых, не все это умеют, а во-вторых, это требует кучу времени. Гораздо приятней, когда оно по дефолту работает как надо (там просто вшиты более крутые промты, полагаю).

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

Я заметил, что ни разу не просил его изложить свои мысли более кратко (а ChatGPT постоянно приходится об этом напоминать).

3. У Claude есть крутые фичи, не связанные с моделью. Одна из лучших — артефакты. К примеру, он умеет рисовать крутые диаграмы (mermaid, html, svg и т.п.), рендерить их(!), и затем прикреплять к своему ответу в виде файла, по которому можно кликнуть, и он откроется справа от чата. Это ооочень удобно! Также, если вы скидываете ему большой кусок текста (исходный код, статью и т.п.), оно не будет засорять чат, оно будет также прикрепляться в виде файла.

ChatGPT тоже умеет рисовать любые виды диаграм, но не умеет их рендерить.

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

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

Николай Тузов

27 Oct, 19:16


Вот вам парочка интересных моментов, которые я для себя сегодня открыл. Они будут интересны и понятны только тем из вас, кто более-менее уже ориентируется в теме (кто не дождался!), но вы можете вернуться к этому посту после просмотра ролика.

1. Когда выполняется Handoff (от Процессора отвязывается тред во время syscall'а), Процессору совсем не обязательно будет назначен новый тред. К примеру, если для него нет работы, то во время этих махинаций Процессор отправят отдыхать, так и не выдав новый тред. Кстати, работой Процессора является не только выполнение горутин, но и кое-какие системные действия — GC и трейсинг.

2. Когда Процессор запрашивает список свободных горутин у Netpoller'а, он не забирает их все себе, он поступает хитрее: одну берёт себе, затем проверяет наличие спящих Процессоров (например тех, которые уснули во время Handoff из-за отсутствия работы), и отправляет в Global Run Queue ровно столько горутин, сколько нашлось таких вот Процессоров, а затем пробуждает их (теперь у них есть немного работы!). А остальные забирает также к себе в Local Run Queue.

*Под процессором я имею ввиду сущность, которую в статьях часто называют `P` — они заведуют выполнением горутин на каждом треде, и именно их количество вы конфигурируете с помощью `GOMAXPROC`.

————

Если ничего не понятно, не переживайте, всё это будет подробно разобрано в ролике. Просто хотелось поделиться ❤️

Николай Тузов

25 Oct, 05:39


Обновил я этот ваш GoLand...

В итоге, утро начинается не с кофе, а с нехватки оперативной памяти. Оно вообще когда-нибудь нажрётся? 🤡

Не поверите, я долгое время сидел на старом UI (то есть, на оооочень старой версии), периодически пробуя новый, но каждый раз откатывался назад. В этот же раз оно смогло прям удивить — мак наглухо повис, а я думал что у меня оперативки с запасом на много лет вперёд. Поэтому я даже скриншот вам нормальный не смог сделать, держите фотку экрана в стиле моей мамы (мама, привет! ❤️)

Такие дела.

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

————

Я всё равно люблю JetBrains, хорошего они делают несоразмерно больше, чем плохого. Просто немного поворчал, могу себе позволить.

Николай Тузов

24 Oct, 07:00


Исcледования рынка Go-разработчиков от DevCrowd — 2024

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

В этом году ребята снова проводят большое исследование:

- Что входит в обязанности и каких навыков не хватает
- Сколько в среднем зарабатывают в профессии в зависимости от грейда
- Какие инструменты, сервисы наиболее популярны
- Что читают, слушают и смотрят для профессионального развития

Предлагаю снова их поддержать и поучаствовать в опросе.
Нам не сложно, им приятно, и всем нам полезно ❤️

Результаты обещают в конце ноября. Также обещают их сравнение с результатами прошлого года.

Николай Тузов

23 Oct, 19:43


Новый выпуск Go Get Podcast 👾

У меня появился хороший повод возобновить наш подкаст по Go (что за повод, расскажу позже). Возможно, записывать будем уже в эту субботу (но это не точно) — как обычно, с онлайн-трансляцией.

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

————

Если вы хотите, чтобы вашу идею точно заметили, вот несколько советов:

- Убедитесь, что вашей темы ещё нет в списке. Это самый важный пункт. Если есть, проголосуйте за существующую. Две одинаковые темы сложнее заметить, чем одну общую.
- Название должно быть короткое, но чётко отражающее суть (см. примеры на доске)
- Подробности пишем в описании. Тут нужно постараться описать общие моменты, а не личные пожелания
- Личные пожелания пишем в комментах - какую хотелось бы длительность ролика, какие моменты стоит затронуть и т.п.
- Перед оформлением поста посмотрите, как оформлены уже существующие, чтобы был плюс-минус общий формат. Так будет проще с ними работать.
- Прошу не разводить дискуссии в комментах, всё лишнее я буду оттуда удалять, чтобы перед глазами было только важное. Дискутировать можете в чате текущего ТГ-канала.
- Комменты в стиле "согласен", "поддерживаю" тоже лишние - вместо этого достаточно проголосовать за пост.

Буду очень благодарен тем, кто внесет свой вклад ❤️

Да, видео про планировщик тоже будет 😩

Николай Тузов

22 Oct, 08:51


Итоги конкурса

Билеты забирают:
- @vaihdass
- @rostislaved

(да, я договорился ради вас о втором билетике, хотя изначально предлагали один ❤️)

Поздравляю! 🧙
Промокоды отправлю в личку.

Всем остальным напоминаю, что в предыдущем посте есть промокод на скидку 500р, в следующий раз повезёт 🥰

Николай Тузов

20 Oct, 18:56


Давайте ещё веселья ради похвастаемся своей домашней библиотекой. Я знаю, вы это любите!

У меня «библиотека» ещё в процессе обустройства, поэтому могу лишь показать подборку книг. Как я появятся шкафы под них, будет выглядеть лучше 😅

Делитесь и хвастайтесь своими в комментах ❤️
Сегодня можно и нужно!

Николай Тузов

20 Oct, 18:44


Ваши любимые книги, связанные с IT

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

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

🤓 Будет круто, если кратко прокомментируете, почему именно эти

💻 Скидывать электронные копии книг в комментариях нельзя

————
Вот первое, что мне приходит в голову. Для новичков:

- "Грокаем Алгоритмы", Бхаргава А
- "Код. Тайный язык информатики", Петцольд

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

Для более опытных:

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

Ну и для Go-разработчиков моё любимое: "Язык программирования Go", Донован, Керниган — на мой взгляд, лучшая книга по Go. Очень много примеров, довольно глубокое погружение.

Это далеко не весь мой список, но пока ограничимся этим. Возможно, в комментариях ещё что-нибудь накидаю.

Николай Тузов

20 Oct, 17:05


Не бойтесь набивать шишки

Ещё одна распространённая ошибка — я не возьмусь за практику, пока не изучу полностью теорию!

По моему опыту, если набить кучу шишек накопить много вопросов, теория воспринимается намного лучше — её интересней читать, проще понимать и она лучше запоминается.

Когда я просто читаю текст, мне просто сообщают кучу информации, к которой я настроен просто нейтрально. Будем честны, это не всегда интересно, и это очень плохо запоминается. Вспомните мой пример выше про мою ошибку в программе на Go — я прочитал описание проблемы, просто принял её к сведению и успешно забыл. Ведь это не моя проблема! 😄

Другое же дело, когда я напоролся на описанные в тексте грабли, нашел снова эту главу и прочитал её с огромным интересом, вникая в каждый нюанс. А что поменялось то? Я просто набил шишку, что добавило важности материалу.

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

Пример из моей жизни

Я в разные годы пытался взяться за довольно сложные книги по сетям или по разным ОС. Одна из таких книг — "UNIX. Профессиональное программирование" (Стивенс У. Ричард, Раго Стивен А.). Когда я читал её впервые, было довольно скучно, мало что запоминалось, и я так её и не осилил. Но вот относительно недавно я снова её и открыл, и некоторые главы теперь читать ооочень интересно, потому что у меня накопилась куча вопросов, и эффект "Так вот как оно работает!" я ловлю довольно часто.

К примеру, кому вообще интересно читать про select, poll и epoll? Круто, конечно, но просто очередной массив информации. Другое дело, когда ты пытаешься разобраться в устройстве планировщика Go, затем вникаешь в Network Poller, узнаешь там про epoll, и с огромным удовольствием читаешь об этих вещах в специализированных книгах.

#обучение

Николай Тузов

20 Oct, 16:37


Не пытайтесь запомнить прочитанное

Вы всё равно всё забудете и это нормально

Я часто слышу от людей, особенно от новичков, что у них "большая проблема" — они читают техническую книгу, а потом забывают прочитанное. На самом деле, так устроен наш мозг — если вы запихаете туда кучу теоретической информации, он вряд ли её усвоит прям сразу. Да, есть люди с очень крутой памятью, которые так умеют, я даже знаком с такими, но это редкость и исключение. У обычных же людей есть куча ограничений, и с этим просто нужно уметь работать.

Приведу пару примеров

Когда я только начинал работать с Go, я напоролся на очень популярные среди новичков грабли. Не буду тут углубляться, но вот тут я описал похожую ситуацию (см. этот и несколько постов ниже). Я абсолютно не понимал, почему код так работает, в чём проблема. Но как только я нашел на форуме объяснение, я быстро осознал, что я читал об этой ситуации в книге! Я быстро нашел эту главу, перечитал, и всё окончательно встало на свои места.

Какие можно сделать выводы? Да, я полностью забыл то, о чем прочитал относительно недавно. Было ли это прочтение бесполезным? Нет, ведь иначе мне пришлось бы вникать в эту ситуацию и изучать её с нуля, смутно понимая куда вообще копать. А тут я быстро вспомнил контекст, нашел информацию и быстро освежил память. И главное — я больше никогда это не забуду! Такие ситуации-озарения очень хорошо закрепляют знания в голове.

И ещё пример. Однажды я прочитал книгу про NoSQL базы данных — она довольно тоненькая, и там затрагиваются очень разные темы, но объясняются не очень подробно. Например, там я впервые прочитал разбор CAP-теоремы. Я прочитал эту книгу довольно бегло, местами даже не сильно углубляясь в материал, и, казалось бы, забыл прочитанное. Но когда я читал уже более специализированные статьи и книги, я осознавал, что некоторые понятия уже неплохо понимаю, и материал давался мне довольно легко. То есть, несмотря на то, что я прошелся галопом по куче тем, читая эту книгу, это всё равно сделало свой вклад — немного упростило чтение других книг.

Как же быть?

Просто читайте, пытаясь понять написанное как можно лучше. В идеале — полностью, но если материал очень сложный, то тут уж как получится. Но не надейтесь, что вы как робот сможете всё это вспомнить по первому требованию. Для закрепления новых знаний с ними нужно работать — практиковать, обсуждать, писать на эту тему что-то своё или делать доклады, вести заметки (см. Zettelkasten) и др.

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

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

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

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

#обучение

Николай Тузов

20 Oct, 16:24


Про обучение

В комментариях меня часто просят рассказать про то, как я изучаю что-то новое, какие у меня есть методы, подходы и т.п. Но очень сложно написать об этом хорошо, ведь в моей голове это просто набор разных привычек, паттернов, методов.. Очень сложно просто взять это и систематизировать. И я не уверен, что мне нужно за это браться — не факт, что результат оправдает затраченные усилия, ведь я далеко не лучший во всём этом.

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

Я оформлю это в виде серии постов в этом канале под общим тегом #обучение (один пост с этим тегом у меня уже был, и он неплохо сюда вписывается).

————

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

И подразумевать я буду в основном изучение технических материалов — статьи, книги, новые технологии и т.п. К примеру, изучение языков это совсем другая история — да, есть некоторые пересечения, но это всё равно другое.

#обучение

Николай Тузов

18 Oct, 17:26


Podlodka Go Crew — Неделя Архитектуры

Ладно, вернемся к делу! 🤓

В последнее время коллеги нас очень балуют конференциями по Go, чему я очень рад. Вот и ребята из Podlodka организуют очередной сезон, уже 4-й по счёту.

Я уже не раз о них писал, но на всякий случай напомню — ребята делают онлайн-конференции для Go-разработчиков с упором на практическое применение знаний.

Я лично знаком с большинством спикеров (часть из них даже мои бывшие коллеги) и с некоторыми организаторами, поэтому точно готов рекомендовать к посещению ❤️

Программа строится так, чтобы сессии проходили в удобное время — утром и вечером.

Когда: с 28 октября по 1 ноября

Программа:

— Даниил Подольский и Павел Иванов проведут публичное собеседование по архитектуре
— Никита Русин расскажет, как GoWrap заменяет однообразный код на сгенерированные декораторы с логированием и метриками.
— Максим Данильченко поделится опытом разработки SDK для работы с платформой A/B-тестирования.
— Денис Ларионов покажет, как применять подход BDD в Go для создания бизнес-тестов, которые послужат живой документацией.

Early-bird билеты можно купить тут.

Промокод на скидку 500р от меня: Tuzov4

————

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

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

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

Если же вам не повезло, можете использовать промокод на скидку (см. выше). В следующий раз повезёт! 🥰

В любом случае, цены на билеты вполне адекватные, не грех и поддержать подобное событие.

————

Если у вас есть вопросы по самой конференции, пишите в комментариях — ребята из Подлодки обещали отвечать на них

#конференция #розыгрыш #podlodka

Николай Тузов

18 Oct, 15:26


Итого — что мне дал физфак?

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

Помню вечер, который был у меня до физфака, когда я пытался взяться за книжку по C++. Я заранее настраивал себя, что эта книга очень сложная, и что мне нужно создать идеальную атмосферу, чтобы ничего не отвлекало и т.п.

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

Я больше не задаю себе вопроса — "смогу ли я это понять / изучить / сделать?", я лишь оцениваю сроки и выбираю подходы. Раньше я так не мог и не осознавал собственные силы.

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

————

В остальном же — я лучше стал понимать, как работает мой мозг, научился лучше учиться, по другому смотреть на задачи.

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

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

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

Также становятся понятны некоторые более тонкие нюансы. К примеру, я прекрасно понимаю ограничения своей памяти, и не пытаюсь хорошо запомнить прочитанное, и не расстраиваюсь когда забываю. Я знаю, при каких обстоятельствах оно может всплыть само, и как правильно работать с материалом, чтобы максимизировать профит. Или ещё такой момент — порой кажется, что ты весь день что-то изучаешь, а прогресса будто бы ноль. Но я понимаю, что стоит мне выспаться, и завтра я этот прогресс точно замечу, нужно просто дать возможность мозгу сформировать новые нейронные связи. И таких нюансов довольно много, но их мало просто понимать, к ним нужно привыкнуть.

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

Я часто вижу страдания новичков, которые жалуются на то, что они глупые, ничего не знают, ничего не понимают. Но когда они рассказывают подробности, я понимаю, что до сих испытываю точно такие же трудности, и это нормально! С чем-то нужно смириться, а с чем-то научиться правильно бороться / работать. Это нормально, что ты не можешь решить задачу, и даже готовое решение кажется тебе непонятным! Это нормально, что ты прочитал книгу по программированию и полностью её забыл! У всех так.
Но при этом я понимаю, что эти люди не воспримут мои советы всерьез — это будет звучать лишь как пафосные слова. А чтобы осознать их значимость, нужно ощутить всё это на себе.

————

Стоило ли тратить на это 4 года своей жизни? Не уверен. Жалею ли я об этом? Точно нет.

Николай Тузов

18 Oct, 14:40


*Простите, Telegram сам разбивает посты на несколько, если они не влезают*

А теперь сравните это с жизнью разработчика — работодатели за тобой сами бегают, бюрократии минимум, к тебе относятся с уважением, и ты всегда уверен в завтрашнем дне. Моя первая зарплата на первой работе в качестве разработчика (после физфака) была 60 тыс, и самое главное - она была СТАБИЛЬНАЯ, она не могла стать меньше или просто пропасть, мне не приходилось ради этого тратить личное время на фриланс и т.п. Я даже не верил до конца, что из этих денег я помогу 20 тыс заплатить за аренду квартиры, и у меня ещё останется 40!

Да, осознание того, что я поставил точку на своей научной карьере и не вернусь больше в те стены, разрывало мне сердце. И сейчас я вот пишу и снова начал переживать. Но что поделать, такова жизнь ☔️

Но вообще, разработка хоть и менее интересна, но всё же тоже очень интересна. Так что, не будем грустить, каждому своё. Да и напомню, физик из меня был объективно плохой а программист хороший — я любил науку, а она меня нет. И это тоже сыграло свою роль ❤️

Николай Тузов

18 Oct, 14:40


Моя научная деятельность

Вернёмся на тот же таймлайн. Параллельно со страданиями на учёбе, я активно работал с разными научными группами уже с первого курса. Как я писал выше, мне было крайне интересно понять, что же означает "заниматься наукой". Я буквально начал ходить по кафедрам и знакомиться с людьми.

Первый блин был комом. Я увидел некое объявление напротив деканата, где человек с кафедры квантовой механики предлагает поучаствовать в какой-то там исследовательской деятельности студентам всех курсов, даже первого. Конечно, я сразу позвонил, мы встретились, но встреча была ни о чем. Он сказал, что у первокурсника не может быть подходящих навыков, поэтому посоветовал учиться дальше. Зачем вообще было встречаться, я не знаю, но было забавно.

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

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

Вообще, возможностей было много, а свободного времени очень мало, поэтому приходилось выбирать. Я какое-то время смог даже поработать с ребятами на кафедре физики высоких энергий, которые работали с Церном (эксперимент Алиса, на тот момент), были очень интересные предложения и с кафедры квантовой механики. Сердце разрывалось, но приходилось отказываться.

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

Сейчас я всё это вспоминаю с большой печалью, ведь задачи там были во много раз интересней нынешних — смесь теоретической физики и программирования, это пожалуй самое интересное, что было в моей жизни. Знаете, у меня есть хороший личный маркер, когда задача является для меня интересной — если при её решении мне хочется закрыть глаза и думать над её решением, значит задача очень крутая. В моей карьере разработчика подобных задач крайне мало, а во время научной деятельности — практическая каждая была такой. Блин, я вот сейчас пишу пост и прям хочется всё бросить и вернуться в свой любимый НИИ Физики..

Стоит ли объяснять, почему я в итоге ушел? Скажем так, уходить я не планировал, решил просто во врем магистратуры взять год передышки в виде академического отпуска. Я хотел подкопить денег на фрилансе и заодно подтянуть слабые места по учёбе. Но когда отпуск подошел к концу, я понял, что не готов вернуться. Потому что жизнь наконец-то наладилась и я начал чувствовать себя в безопасности. Дело не только в том, что я начал больше зарабатывать, а скорее в чувстве стабильности, и ещё в отношении к тебе. Очень тяжело живётся, когда ты не уверен, сможешь ли получить следующий научный грант, найдётся ли для тебя свободная ставка в НИИ. Да и в целом, в отделе кадров НИИ ты ощущаешь, будто ты приходишь к ним на поклон, и не очень то в тебе заинтересованы.

Николай Тузов

17 Oct, 13:32


Учёба на физфаке и боль

Очень приятно, что вы так хорошо встретили мои предыдущие посты на эту тему. Штош, тогда дальше я расскажу о своих страданиях, наслаждайтесь 😩

Если я начал слишком сильно растекаться в мыслях, дайте знать, исправлюсь 🥰

————

Мне с первых дней очень понравилась местная атмосфера. Как я писал выше, ранее я был очень далёк от "интеллектуальной элиты", и даже смутно себе представлял, кто такая эта ваша наука, чем занимаются учёные, и что вообще может быть в физике и математике дальше школьной программы. Вообще, физика — не самое популярное направление, поэтому большинство туда приходят по зову сердца. А если нет, то я очень им сочувствую — они в лучшем случае вылетают после первого семестра, а в худшем — жестко насилуют себя долгих 4 года. Учиться на физфаке и так сложно, а делать это без удовольствия — вообще ад. К слову, после первой сессии у нас вылетела примерно половина потока, а после второй примерно половина от оставшихся.

Так или иначе, я попал из общества, где люди всячески избегают учёбы (прогуливают, учатся из под палки, нечестно сдают экзамены и т.п.) в общество, где у людей от учёбы горят глаза. Я будто попал в другой мир! В такой атмосфере было очень приятно учиться и вообще находиться.

Но сказать, что мне было сложно — ничего не сказать. С первых дней физфак начал ломать меня чуть более, чем полностью. В первый учебный день нас всех собрали и провели тест, чтобы разделить на три потока — базовый, основной и теоретический. Но по сути: "слабый", "средний" и "сильный". Конечно, я был уверен, что попаду в "сильный", и конечно я попал "слабый". Это был большой удар по моей самооценке, и дальше эти удары только продолжались. К примеру, я получил "неуд" (отправили на пересдачу) на первом же коллоквиуме по линейной алгебре — не уложился по времени, не успел решить одну из задач обязательного блока. На меня тогда напала жесткая депрессия — ведь я думал, что буду одним из лучших на курсе, а оказался одним из худших. Кстати, в таких случаях очень рекомендую общаться с людьми — обсуждать свои проблемы и переживания, становится НАМНОГО легче.

Сложно сказать, как я умудрялся при этом держаться и не сдаваться. Во мне будто оставался какой-то стержень, где-то глубоко сидела мысль - "но я ведь и правда лучший, просто пока не успел проявить себя.. ещё чуть-чуть и покажу всем!".

Но зато! Можете себе представить мою радость, когда я впервые получил "отлично" на экзамене по той же алгебре? Мне буквально хотелось плакать и смеяться одновременно!

В итоге, я поставил себе цель добраться потихоньку до теоретического потока, и на втором курсе я уже был в "среднем" потоке, а на третьем в теоретическом.

Но и на третьем курсе физфак продолжал надо мной нещадно издеваться. Я решил, что раз я наконец-то попал на теор. поток, то начну жизнь с нового листа и буду учиться ещё более старательно. У нас тогда начался комплексный анализ, в который я довольно глубоко вник. Я дополнительно занимался со своим научным руководителем, который помогал мне лично готовиться к экзамену. И когда я туда шел, я был настроен на высший был, который обычно получить крайне сложно. Но в итоге меня снова опускают с небес на землю — я допустил небольшую неточность в одном определении и меня тут же отправили на пересдачу.

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

- Вы ведь понимаете, что это просто механическая ошибка, и в целом задача решена правильно / определение корректное?
- Да, конечно
- Тогда, может быть, примете его?
- Нет, ведь формально в вашей работе ошибка


При этом, преподаватели были весьма неплохие, и очень сильные учёные. Но такие случаи выбивали из колеи. Учёба меня всё больше огорчала, и я всё больше уходил при этом в науку, как ни странно. Это была некая отдушина — пусть на экзаменах меня душат, зато тут очень ценят и у меня есть успехи! Успехи в виде научных публикаций, признания в нескольких научных группах, работу в которых я умудрялся совмещать.

Об этом я напишу уже в следующем посте

Николай Тузов

15 Oct, 14:04


Коллеги из Freedom Bank Kazakhstan учат, как правильно тестировать на проде

Тестовые пуши летят в большом количестве всем клиентам (или, как минимум, большинству). Само приложение при этом не открывается — предполагаю, что люди массово ломанулись проверять и тем самым положили им, например, Auth-сервер.

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

Если ты тоже клиент Freedom, можешь кидать свои мемасики сюда

———

UPD: видео от CEO Фридома

UPD 2: начислили компенсацию ~2400 тенге

Николай Тузов

14 Oct, 07:56


👾 Канал с регулярными подборками материалов по Go

https://t.me/Golang_google

Ребята постоянно тестируют разные библиотеки, читают и смотрят материалы по Go, копаются в исходниках и многое из этого применяют в работе. А потом делятся с подписчиками.

Примеры интересных постов:

1. Лучшие бесплатные курсы и книги для изучения GO в 2024 году
2. Все что нужно для подготовки к Golang собеседованию
3. Полезная подборка бесплатных учебников по Go
4. А здесь собрана Мега-полезная папка Go-разработчика
и многое другое.

Подписывайтесь, потом сами себе спасибо скажете: https://t.me/Golang_google

#партнерский_пост #текст_прислан

Николай Тузов

13 Oct, 18:19


Физика.. Что..?

*простите, текст не влез в один пост*

Пока готовился, наткнулся в сети на хвалебные отзывы о Фейнмановских Лекциях по Физике — это серия учебников по курсу общей физики, на основе лекций, которые читал легендарный Ричард Фейнман. Без преувеличений скажу — эти книги изменили мою жизнь. Благодаря им я влюбился в физику и начал подумывать о сумасшедшей для меня идее — поступить на физфак вместо мехмата. Чем больше я об этом думал, тем больше понимал, что именно этого я и хочу. В конце концов я полностью отдался этой идее и переключился на физфак, выбирая между МФТИ, СПбГУ, МГУ и НГУ.

Дело в том, что у меня в голове плотно засела идея - ВУЗ мне нужен, чтобы прокачать мозги, а не для получения конкретных знаний. При этом я понимал, что математика в этом плане лучший выбор. С другой стороны, на физфаке этой математики тоже очень много, но также будет и физика, что сделает учёбу намного веселее и разнообразнее.

В итоге, я поступил на физфак СПбГУ и ни о чем не жалею до сих пор. С одной стороны, это место просто с хрустом сломало о колено мою психику, уверенность в себе и многие мечты. С другой, оно подарило мне новые мечты, новую уверенность в себе и действительно очень круто прокачало мои мозги.

————

На этом я пока выдохся..
Напишите, пожалуйста, интересно ли вам это читать, и стоит ли продолжать
?

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

Николай Тузов

13 Oct, 18:19


Мой путь к высшему образованию

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

Но я думаю, что моя история может мотивировать многих сомневающихся в себе людей, которые думают в стиле — "где я, и где Х ..." (под Х понимаем - какой-нибудь крутой вуз, крутую работу и т.п.)


Школа и колледж

Итак, я учился в, скажем так, сельской школе на 200 человек, где средний ученик мужского пола был почти всегда троешником и не имел больших амбиций. Мне при этом удавалось учиться относительно неплохо и даже сохранять энтузиазм к некоторым предметам. Но по олимпиадам я не ездил, и в целом на учёбу времени тратил крайне мало — просто наслаждался беспечным детством (я считаю, правильно делал — не спешите взрослеть!).

После 9-го класса я поступил в колледж на программиста. Ничего хорошего я про этот колледж сказать не могу, к сожалению. Сказать, что "преподаватели" неквалифицированные — ничего не сказать. Это были 4 годы, выброшенные в трубу. Меня спасал лишь мой энтузиазм — я с детства мечтал стать программистом, и с большим интересом, по мере сил, погружался в это. А колледж мне только мешал тем, что съедал огромное количество времени на бесполезную хрень (о, эта хрень достойна отдельного поста!). Увы, в то время в моём окружении никто не знал, что идея поступления в подобное место очевидно провальная, так что — не повезло.

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

Мысли о поступлении в ВУЗ

От продолжения учёбы я отказался, т.к. совсем разочаровался в системе образования. Я был уверен, что в ВУЗах ситуация не лучше, тем более мои знакомые обычно это подтверждали. Но нашелся один коллега, который всё же меня переубедил. Он учился в казахстанском филиале МГУ, и, как он утверждал, филиал был не сильно хуже оригинала (тем более, пару лет они учатся в Москве). По его рассказам, качественное высшее образование существует, и его ВУЗ его устраивает. Правда, он советовал идти не на факультет ВМК (вычислительной математики и кибернетики), а на Мехмат. Потому что программирование можно легко выучить и самому, а вот математику намного сложнее. И изучение математики лучше научит меня думать, учиться и вообще работать головой.

А ещё я постоянно комплексовал по причине стрёмного образования. Когда я пытался осилить SICP, вы подумайте, меня пугало даже упоминание бинома Ньютона. Практически каждая математическая формула сначала вводила в ступор, а затем вынуждала ресёрчить что это и зачем. В итоге я загорелся поступлением в этот самый филиал МГУ. Но мои хотелки быстро прогрессировали. Я стал задумываться, а что если попытаться не в филиал, в сам МГУ? А что если рассмотреть другие известные вузы? И т.д.

Параллельно с этими мыслями я начал готовиться к поступлению. Напомню, что я родился и вырос в Казахстане, но, как оказалось, поступить для меня не проблема — нужно было всего лишь приехать в РФ и сдать этот ваш ЕГЭ в любом удобном городе, я выбрал Омск (кстати, мне очень понравился этот город, особенно их знаменитый драмтеатр, это прям любовь!).
Это была весёлая авантюра - готовился я примерно пол года, при том что напрочь забыл школьную программу (да, приходилось вспоминать, кто такой этот ваш косинус), плюс окончил я всего 9 классов (колледж не в счёт). Я нанял репетиторами пару своих бывших учителей, и, забегая вперёд, справился относительно неплохо.

Николай Тузов

13 Oct, 17:25


Нужно ли высшее образование разработчику?

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

Если кратко: нет, это вовсе не обязательно, без высшего (и даже среднего) образования можно легко обходиться.

Я очень часто встречаю успешных разработчиков, которые с трудом вспомнят что такое синус / косинус. Особенно весело мне было, когда я сразу после физфака я устроился программистом, и мой уважаемый техлид путал аппроксимацию, интерполяцию и экстраполяцию, и когда мы обсуждали графики, он каждый раз называл рандомное слово из этой выборки, попадая в цель довольно редко 🗿
Но при этом, он был одним из самых продуктивных и успешных бэкэндеров в компании.

Нужен ли диплом?
Я за свою карьеру посетил сотни собеседований, и как думаете, сколько раз меня спросили о дипломе? Примерно ноль, кроме 1-2 случаев, когда интервьюеру просто хотелось поболтать о жизни. Так что — нет, диплом для устройства на работу не нужен вообще.

Оговорки
Я говорю именно про страны СНГ, в других странах всё может быть иначе. Кроме того, есть специальности, в которых профильное образование может быть крайне важным фактором, а я говорю про обычного Go-бэкэндера.

Но при этом, я не считаю ВУЗ чем-то бесполезным
Просто его нужно трезво воспринимать как инструмент. При чем, вы должны понимать, точно ли проведенные там годы того стоят. К примеру, многие из вас наверняка слышали про олимпиадников из ИТМО / Матмеха СПбГУ и др., которые, кроме прочего, благодаря своему вузу побеждали в мировых чемпионатах по программированию, обзаводились крутыми связями и устраивались на очень крутые должности в старый ВК к Дурову, в Facebook и т.п. Но и тут нужно понимать, что таких успехов удаётся далеко не всем студентам подобных вузов.

Но что вы гарантированно можете получить — хороший фундамент знаний в своей голове. Но только при условии, что вы подобрали хороший вуз с хорошей программой и крутыми преподавателями. Я хорошо запомнил слова одной своей преподавательницы — "учите сейчас, после окончания учёбы вы ни за что не найдёте на это времени". И, чёрт побери, как же она была права! В то время я воспринимал это со скепсисом, но вот прошло уже больше 10 лет, и весь мой ящик отложенных во время учёбы тем "на потом" так и пылится нетронутый. Правда, по образованию я физик, а не программист, поэтому и темы специфичные.

Но если вы учитесь на программиста (или что-то в этом духе), то это прекрасный шанс погрузиться в те вещи, которые на протяжении вашей карьеры будут не слишком приоритетными для изучения, но при этом их незнание часто будет приводить к мелким проблемам. Например, низкоуровневое понимание процессов в компьютере, устройства ОС, архитектуры компьютера, сетей и т.п. Я вот до сих пор залатываю эти дыры у себя, и делаю это довольно медленно из-за нехватки времени и сил.

————

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

В комментариях предлагаю поделиться личными историями о том, как ВУЗ вам всё же пригодился в карьере. Обратных историй мы знаем довольно много, а вот успешных историй довольно мало. Только не забудте уточнить, в каком вузе учились, по какой специалности и когда.

Николай Тузов

08 Oct, 20:23


Пожалуй, репостну это здесь, больно уж статья понравилась:

https://t.me/golang_digest/163

Это не реклама, это мой канал с подборками по Go 🥰

Николай Тузов

02 Oct, 09:24


Митап по Go от Ви.Tech

🗓 3 октября, 19:00 мск
Будет и онлайн, и оффлайн форматы.

В последнее время нас прямо таки балуют хорошими митапами, в этот раз его организуют ребята из Ви.Tech.

Среди участников множество моих хороших знакомых, которых я горячо рекомендую послушать. Особенно доклад Димы Матрёничева про итераторы 🤓

Программу можно посмотреть здесь.

Среди гостей будут:

- Даниил Подольский: глава программного комитета GolangConf, активист Go Spb и просто хороший человек. YADRO.

- Дмитрий Матреничев: Go-разработчик. Пишет Talos Linux и Omni, помогает разработчикам писать красивый и удобный код на Go.

- Виталий Левченко: продвигает Go с 2012, когда это не было мейнстримом. Соорганизатор ITGM и ProIT Fest. Основатель IT бара в Петербурге. Помогает разработчикам вырасти в principal инженеров.

- Алексей Мясников: руководитель команды в Яндекс — на проекте YDB. В IT с 2006 года. Писал код на более чем 20 языках программирования: больше всего на C++, Java, Go, TypeScript.

Регистрация бесплатная, но количество мест ограничено.

Николай Тузов

20 Sep, 15:25


Я долго пинал Антона, чтобы он добрался до ютуба, и наконец-то это случилось! Антон очень крутой разработчик и довольно харизматичный человек — приятно слушать, поэтому я сам долго ждал его видосов/стримов, так что искренне рекомендую.

Прямо сейчас у него идёт стрим, предлагаю поддержать, если вам нравится такой формат. Не дадим ему даже шанса забросить это дело! 🙃

Не реклама, а только по зову сердца ❤️
Передавайте ему от меня привет

Николай Тузов

20 Sep, 15:21


Штош!
В пятницу, 20.09.2024, в 17:00 CEST, попробуем (пока в демо-режиме) провести стрим рекреационного программирования =)
Начнем писать код, который в будущем будет опубликован в качестве опенсорс Go библиотеки Gaijin Entertainment.

https://youtube.com/live/W8axpsf4vUU

Николай Тузов

20 Sep, 14:15


Простите, не мог не поделиться и тут 🙃

Николай Тузов

20 Sep, 14:15


Краткий анонс, чуть позже поделюсь впечатлениями подробней и покажу видосы 😊