Сообщество - Лига программистов

Лига программистов

1 570 постов 11 520 подписчиков

Популярные теги в сообществе:

Про текущую ситуацию на рынке IT для SA

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

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

Отдельный лайк рекрутерам\HR (не всем) и их скорости реакции. Мне написали спустя 53 минуты с момента обновления резюме, но и количество реакций в целом за первые 2-3 часа было большим - люди правда стараются найти хоть кого-нибудь к себе на проекты. А вот факапы с рекрутерами заслуживают отдельного поста))

Это было лирическое отступление. Теперь мои выводы:

1️⃣ Рынок живее всех живых.

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

2️⃣ Рынок все также принадлежит соискателю и он диктует свои условия.

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

3️⃣ Когда ты выбираешься за рамки сеньора и внутри компании тебе некуда расти - ты грустишь.

Потому что прям ОЧЕНЬ интересных предложений на рынке мало и ты такой их перебираешь: ага, ну опять сеньор на финтех, скука; и вот тут предлагают сеньора на финтех - эх, тоже скука; может хоть тут? А нет, вообще какая-то ерунда типа gambling, хоть и с очень большими деньгами. Но об этом чуть позже, тут мне есть что рассказать;

4️⃣ В плане финансов тоже особо ничего не изменилось в среднем, вилка как была год назад, так и осталась, тут никаких неожиданностей. Хотя ряд предложений на обычные сеньорские позиции меня очень приятно обрадовал и даже немного удивил$

5️⃣ Для рядовых позиций тоже не очень изменилась ситуация.

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

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

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

P.S. Спасибо большое тем людям, которые тыкали в меня палочкой (не знаю, что за функционал на Пикабу, но мне приходили уведомления, что от меня жду постов оО).

Если есть вопросы - где меня найти, вы знаете.

Показать полностью

Как сохранить изображения из Яндекс-Архива?

Нет, это не тот архив, о котором вы подумали: в Яндексе есть поиск по отсканированным архивным документам из нескольких регионов РФ.

Вот пример, в котором показана страница из метрической книги.

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

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

Есть идеи?

Вопрос из ленты «Эксперты»

Не могу зайти в Telegram с компьютера

Добрый день, нужна помощь Лиги программистов.

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

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

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

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

В конце экскурсии вас ждет подарок от застройщика, не пропустите!

Level Селигерская расположен в южной части района Западное Дегунино, в пешей доступности от станций метро и в окружении пяти парковых зон.

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

Специально для пикабушников застройщик Level Group дарит промокод на скидку 1%! Все подробности смотрите здесь.

Выбирайте квартиру мечты в Level Селигерская и наслаждайтесь комфортом на новом уровне.


ВЫБРАТЬ КВАРТИРУ

Реклама ООО СЗ «Селигерский»

Показать полностью
pixel
Вопрос из ленты «Эксперты»

Курс С# для новичка

Здравствуйте!

Работаю с SQL Server, в интерфейсе, которым пользуюсь, есть возможность упростить работу скриптами С#.

Ищу онлайн курс для новичка по С#.

В гугле есть просто море всего, хотелось бы найти хороший курс.

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

Буду благодарна вашим советам

Интересненькая задачка (потому что решил ее)

Прочитал тут у ФайтерБомбера про декадные числа, которые доводят летчикам перед вылетом, показывая их на доске и не произнося вслух. Бросился гуглить, про них ничего нет, но всплыла такая вот интересная задача с олимпиады на форуме (а теперь и этот пост будет всплывать).

Декадные числа - это числа, в которых сума i-ой цифры слева и i-ой цифры справа равно 10. Например, 13579 (1+9, 3+7, 5+5(5 одновременная третья слева и справа)). Напишите программу, которая находила бы n-ое по порядку декадное число. (ряд начинается: 5, 19, 28, 37...). На входе дается число n. Вывести n-ое декадное число.

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

А про задачку стал думать, и вот что надумал.

Однозначных таких чисел только одно, 5.

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

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

Четырехзначных и пятизначных таких чисел только 9х9, то есть 81.

Ну и дальше понятно, 9х9х9 шестизначных и семизначных, и так далее.

Тут можно вывести, наверное, функцию, которая по вводному числу n математически определяет, в какой бакет оно попадает, то есть сколькозначным будет. Но мне лень думать, поэтому я опираюсь на то, что n, наверно, будет ограничено, скажем, 2^32, то есть в реальных условиях я бы это ограничение знал просто по типу переменной, а это значит, что максимум мои декадные числа могут быть примерно 20-значными (тех будет 9^10), поэтому я реально могу в своей программе вначале посчитать микрорадужную таблицу из двадцати элементов, каждый из которых будет давать границу бакета, то есть сумму предыдущих количеств декадных чисел. Первый элемент будет 1, второй 10, третий 19, четвертый 100, пятый 181, и так далее, до двадцатого.

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

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

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

А как же мы будем это делать? Неужели считать еще одну радужную таблицу по заветам дауничей?

Нет, не будем, мы это число способны мгновенно указать: 133668.

Потому что они там идут так: 111888, 112788, 113688, 114588 и так далее. То есть первые три цифры в 23-м по порядку числе - это 110+23=133. А вторые три цифры ими определяются.

Это в бакете с четным числом цифр, а для нечетных ничего не меняется, только 5 в середине: в седьмом бакете 23-е по порядку число - это 1335668.

То есть понятно, да? Номер бакета, поделить пополам, взять целую часть. Это число цифр в левой "половине". Конструируется число вида 1111..1110, с таким же числом цифр. К нему прибавляется остаток порядкового номера, полученный из входного параметра. И это левые цифры. По ним строятся правые. Если номер бакета нечетный, то еще пятерку в середину вставить. И это и будет искомое декадное число.

Опять же, решал в голове, мог где-то ошибиться.

Не программист ни разу. Математик.

Показать полностью

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

В этой статье я расскажу, как я смог обучить модель, которая превзошла GPT 3.5 Turbo на русскоязычной части MT-Bench. Также я рассмотрю новую конфигурацию для обучения на двух графических процессорах параллельно с помощью accelerate и deepspeed.

Особенный интерес представляет мой датасет для обучения. Он получен из сабсета мультиязычных промтов набора lightblue/tagengo-gpt4 на русском, английском и китайском, всего 10 тысяч примеров, сгенерированных с помощью GPT-4o. Это в 8 раз меньше, чем исходный набор Tagengo, но обученная на последнем Suzume, как показали бенчмарки, лишь очень незначительно превосходит мою модель на ru_mt_bench, а на англоязычном бенче и вовсе уступает ей. Это значит, что я в разы сэкономил на GPU за счет более высокого качества данных, полученных с помощью GPT-4o.

Я использовал скрипт для получения ответов по заданным промптам. Для генерации русскоязычной выборки я изменил часть скрипта, чтобы выбрать все промпты на русском из Tagengo (8K примеров), так как основной фокус при обучении модели был на русском языке.

В итоге я получил датасет ruslandev/tagengo-rus-gpt-4o и приступил к обучению.

Для этого я создал Виртуальную Машину с NVIDIA H100, используя сервис immers.cloud. Для достижения наилучших результатов по instruction-following (что проверяется на MT-Bench) я взял в качестве исходной модели meta-llama/Meta-Llama-3-8B-Instruct. Именно на ней обучена модель Suzume, у которой высокая оценка на MT Bench. Предыдущие эксперименты показали, что базовая Llama-3 8B, а особенно ее четырехбитная версия для QLoRA - unsloth/llama-3-8b-bnb-4bit - значительно отстает по оценкам бенчмарка.

В этот раз я обучил параллельно на двух GPU, для этого я задал новую конфигурацию моей Виртуальной Машины - две NVIDIA A100.

Я воспользовался инструментом axolotl, который позволяет быстро сконфигурировать и запустить сессию обучения.

Мой конфиг axolotl здесь.

После установки axolotl, которая описана в документации, остается только запустить обучение командой:

accelerate launch -m axolotl.cli.train config.yaml

Accelerate - это Huggingface библиотека для распределенного обучения.

axolotl запустил два параллельных процесса с шардами модели для каждого из двух GPU. Обучение на одну эпоху длилось около часа, итоговый train loss - 0.8.

Результат превзошел мои ожидания - третье место в mt_bench:

Как обучил языковую модель, которая понимает русский лучше GPT 3.5 Turbo Программирование, Искусственный интеллект, Длиннопост

Моя модель превзошла llama-3-8b-instruct и большинство версий Suzume, кроме самой сильной из них. Это на англоязычном бенчмарке.

Теперь - результат ru_mt_bench:

Как обучил языковую модель, которая понимает русский лучше GPT 3.5 Turbo Программирование, Искусственный интеллект, Длиннопост

Моя модель получила оценку 8.12, немного не дотянув до Suzume и превосходя gpt-3.5-turbo, у которой 7.94.

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

Я не увеличивал англоязычную выборку в своем датасете, там всего тысяча примеров на английском, а англоязычный MT Bench неожиданно показал среднюю оценку 8 баллов. Это значит, что добавление большего количества качественных мультиязычных данных повышает общее качество модели, а не только ее показатели для этого конкретного языка. Эта эффект уже был показан в статье Петера Девина - Tagengo: A Multilingual Chat Dataset

Я очень рад, что мне удалось наблюдать реализацию этой идеи на практике. Мой датасет, веса модели, а также файлы в формате GGUF опубликованы в моем Huggingface аккаунте.

Модель: https://huggingface.co/ruslandev/llama-3-8b-gpt-4o-ru1.0

GGUF: https://huggingface.co/ruslandev/llama-3-8b-gpt-4o-ru1.0-gguf

Датасет: https://huggingface.co/datasets/ruslandev/tagengo-rus-gpt-4o

Показать полностью 2

Зачем на самом деле нужны программисты?

Рутинная работа

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

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

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

Зачем на самом деле нужны программисты? Карьера, Программирование, Опыт, Работа, Гифка, Длиннопост

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

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

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

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

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

Эврика

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

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

Вывод

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

А успешные проекты, это как побочный продукт. Просто получается, что совокупность ваших решений удачно вписывается в некий паттерн, который можно использовать много раз. Так появились программные продукты: Windows, Linux, Word, Excel и другие.

P.S.

Зачем на самом деле нужны программисты? Карьера, Программирование, Опыт, Работа, Гифка, Длиннопост

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

Показать полностью 2

Думаете, что бы такое посмотреть вечером? Есть ответ

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

Реклама ООО «Джумс Проекты», ИНН: 7709484636

Самый эффективный способ самообучения для программистов

Элементарный уровень

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

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

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

Самый эффективный способ самообучения для программистов Карьера, Саморазвитие, Программирование, Развитие, Успех, Опыт, Обучение, Длиннопост

Продвинутый уровень

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

Звучит этот вариант довольно банально: обучая других, обучаешься сам. И примеров такого процесса я видел массу, хотя бы тот же преподавать в институте. Он даёт лекции и сам непрерывно учиться своем предмету, пишет доклады, диссертации, получает ученые степени. Достигнуть такого уровня можно было бы, если поступить в аспирантуру или же стать ментором для кого-нибудь.

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

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

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

Экспертный уровень

Самый эффективный способ самообучения для программистов Карьера, Саморазвитие, Программирование, Развитие, Успех, Опыт, Обучение, Длиннопост

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

С текстом все просто: пишешь, публикуешь, ждешь фидбек.

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

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

Однажды, мне попался очень сложный ученик. Он заканчивал колледж и ему нужно было на диплом сделать веб-сервис. По техническому заданию все было просто. Однако, ученик с трудом понимал, чем отличается HTML от JS и как в принципе работает приложение в режиме клиент-сервер. Давно я так не потел. Мне пришлось за пару занятий рассказать про NodeJS, Express, методы GET и POST, SQLite. Потом еще в режиме реального времени мы накидали работающее приложение и смогли запустить на его компьютере. Иногда приходилось через AnyDesk прямо у него править код. Но диплом он сдал-таки.

После серии этих занятий я преисполнился такого могучего желания узнать, как же эти биты и байты циркулируют в процессоре, что нашел книгу «Код. Тайный язык информатики» Чарльза Петцольда.  Проглотил эту книгу за неделю и затем еще поставил обучающую игру из стима: Turing Complete, с её помощью можно тренироваться в построении логических схем и составить процессор. Затем энергии хватило, чтобы установить и поэкспериментировать с кодом учебной Unix-подобной операционной системой Xv6.

Давно я не получал настолько много полезной информации.

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

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

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

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

Уровень Бог

Самый эффективный способ самообучения для программистов Карьера, Саморазвитие, Программирование, Развитие, Успех, Опыт, Обучение, Длиннопост

Представляю, что твориться в головах создателей глобальных технологий. Например, что чувствовал Тим Бернерс-Ли после изобретения WWW? Он видимо, теперь научился силой мысли передвигать предметы?

Показать полностью 3
Отличная работа, все прочитано!