Большинcтво компонентов софта не живет больше 1-2 лет, за исключением энтерпрайза и некоторых других исключений, не надо думать и закладывать туда все возможное и делать максимально универсально.
Тут что-то на фронтэндерском, не получается прочитать.
Как вы на HH определяете, как развивается карьера отдельных людей? Вот у меня из пяти знакомых:
трое ушли с десктопного C++ на бэкенд и Go;
ещё один перешёл с Electron на бэкенд (тоже Go);
ещё один хотел бы перейти с Electron на бэкенд (пока этого не сделал, но сделает как только пройдёт собесы в интересующие его компании). Правда этот парень бывший плюсовик, на Electron его занесло скорее вынужденно.
Причём и не скажешь, что они ушли из какой-то одной компании (где было всё сильно плохо) или пришли в какую-то одну компанию (где было всё сильно хорошо), компании разные. Справедливости ради, есть и такой знакомый, который остался на десктопном C++, но уехал из РФ в стартап с довольно щедрыми зарплатами, поэтому всем доволен и так.
Зайдите на стримы к разных популярным ребятам, и посмотрите на качество их картинки. А потом посмотрите на их сетап. Ну например: Sony A7 IV и Sony A7С (да, аж две камеры сразу, чтобы красиво было!).
Пока Microsoft, Apple и прочие гиганты бились за звание главной платформы для запуска клиентского кода, Google тихонечко закатила всем в огород троянского коня в виде Хрома. И получилась такая вот интересная ситуация, что теперь "операционной системой" (а точнее, средой для работы клиентского приложения) является браузер, а не натив. И эта среда победила. Почему - уже написали предыдущие комментаторы.
JS и сейчас относительно конченный язык, а году в 2013-м это был ад и Израиль. И ничего, все пошли колоться об этот кактус. Чтобы писать под победившую среду запуска клиентского кода. Побежали все переписывать старые проекты - MS переписала Офис, Гугл же написал свой офис сразу в вебе.
Уже все и забыли, что "Веб" - это про организацию информации прежде всего, а не про HTML/CSS/JS.
Теперь разработчиков под нативный десктоп и нет толком. Точнее, они есть, но им за их знания заплатят намного больше, например, на бэкенде. А над клиентским десктопом можно издеваться, память-то там клиентская, она "бесплатная" для компании, в отличие от памяти на серверах.
Зато навалом разрабов под браузер, стоят они приемлемо, вот и вся история.
Вот на мобилках ресурсов поменьше, и там веба почти нет - каждый второй проект делает себе приложение и переманивает туда всякого, кто зашёл на сайт с мобилы.
А, самое главное: на десктопах толком не прижились магазины приложений. На мобилках юзеров к этому приучили с горшка, и проблема деливери/автоапдейта была решена на корню. А десктоп уже слишком стар как концепция, чтобы его юзеров можно было заставить что-то делать иначе. Microsoft Store почти никому не нужен, Snap Store тоже, разве что на Маке удалось более-менее посадить на их магаз.
А задача - открывать на просмотр такие архивы, ибо распаковывать их целиком просто для "посмотреть" - это практически нереально. Вернее, когда у вас ext4 на NVMe-диске - может и реально, но не когда NTFS на магнитном.
Вполне себе хранятся миллионы файлов и на ноуте с NTFS
Хранятся-то они замечательно, вы попробуйте удалить их потом. Задача на полдня примерно. Если бы всё так было хорошо с NTFS, зачем бы тогда MS придумала использовать ReFS в своей фиче Dev Drive.
Если я распакую каждый архив из 105-гигайбайтовой утечки исходников Twitch-а, у меня ФС загнётся от количества файлов. Зачем, если можно архиватором вытаскивать нужные подпапки?
“Вот понаберут глупых новичков, а мне потом за ними РАЗГРЕБАТЬ!”. Что это за инженер с 10-летним опытом, вынужденный исправлять ошибки за сокомандником? Почему крутые специалисты просто не откажут неадекватным кандидатам, не пустив их в свой продукт?
Так, стоп. Разве это не гейткипинг? Т.е. вся остальная статья не имеет смысла? Почему спрашиваю: потому что для меня это основной (если не единственный) аргумент заливать про Таненбаума, CS и всё прочее. Хочется в какой-то момент перестать подтирать за человеком, а он пока даже не понимает, а почему, собственно, за ним подтёрли.
Самый эффективный инструмент для трудоустройства и зарплатного роста в IT
Чтобы контент приносил результат, его надо выпускать регулярно. Только так вы добьетесь нужного количества касаний с нужной аудиторией. Это значит, что делать одну висишку раз в полгода — это не контент-маркетинг.
Как-то всё это грустно. Про «регулярно», про «касания». Когда автор прибегает к помощи редакторов/писателей/прочих специалистов по выражению мыслей и идей в достойном виде — тогда и результат достойный. А вот когда делается наоборот, потому что нужны «касания» — такое себе.
Впрочем, о чём это я, я же просто не с той стороны рта нахожусь. Люди работу работают, а мы потом будем выискивать сокровища в информационной свалке.
А вот за эту статью спасибо! Вот её как раз писали именно те люди, которые «кто ручками каждый день в ней [теме] ковыряется».
Как скоро они выгорят от не своей работы?
Неужели хороших авторов настолько мало и они настолько недоступны, что не вариант идти по пути их выращивания и менторства?
что тестирование не гарантирует правильность программы и вообще не является инструментом разработки
По большей части с вами согласен. В том числе поэтому считаю статическую типизацию (например) куда более важным инструментом, чем тесты. Те же модульные тесты нужны прежде всего чтобы: а) дать самодокументацию в виде каких-то кейсов, чтобы на ревью или при рефакторинге читающий не спрашивал "а вот это будет работать?", "а вот такой кейс предусмотрели?". Все ответы уже заготовлены в виде тестов, а если что-то пропущено - то лучше в виде очередного теста и добавить. Это по сути одна из самых лучших форм документации - никогда не устаревает, в отличие от просто рукописного текста. б) "заткнуть" какие-то краевые ситуации, которые не может покрыть статическая типизация. Обычно если в языке с типизацией не очень, тестов приходится писать намного больше. И с другой стороны, если типизация очень сильная, то язык программирования превращается в язык доказательства теорем, и в таком языке модульные тесты и не нужны, потому что если программа компилируется - скорее всего она корректна.
Я скорее говорил о том, что никто не будет выводить в прод написанный за полчаса алгоритм или структуру данных без должного тестирования, а тестирование отдельных алгоритмов это в 99% случаев именно unit-тестирование.
В-третьих, есть испытательный срок, специально придуманный для отсева некомпетентных сотрудников.
Полагаю, этот механизм сейчас работает плохо из-за высокой доли вкатунов и откровенных самозванцев. Ну т.е. человек проходит фильтр, и сразу приносит компании минус 300-500к. А лишние деньги у всех закончились.
в js префиксный плюс, это устоявшаяся идиома для конвертации в number, кстати, можно и про неё поговорить
Не нужно про неё говорить. Её нужно оставить для JS-квестов типа "посчитайте среднее по массиву за 8 символов" и в таком духе. В реальном коде абсолютно нечитаемая магия, особенно если JS/TS для вас - очередной-язык-на-котором-приходится-прогать, а не мечта всей жизни.
Т.е. в реальной жизни задача, на которую на собесе выделяется полчаса может решатся и сутки-двое и бизнес это вполне устроит.
Вот только вчера об этом говорили с коллегами. Что куда важнее написать тесты вдоль и поперёк, особенно если это какой-то новый алгоритм (а зачем повторно реализовывать существующие?).
Мне вообще непонятно, каким образом алгоритмические, а точнее спортивно-олимпиадные задачки заехали в большинство собесов. У вас ещё более-менее адекватная задача, а зачем красно-чёрные деревья реализовывать на листке бумаги, я откровенно не понимаю.
А обычный сеньор, который оказывается звездой на letitcode вызывает вопросы. Когда он нашёл время на все эти задачки?
А на этот вопрос вы сами себе отвечаете:
О! А я её на собесе яндекса решал
Захочешь в Яндекс — и не так, простите, задницу рвать начнёшь. Добро пожаловать в чеболизацию по-русски. Я честно пытался найти ДРУГИЕ причины, но мне кажется пора перестать делать вид, будто они есть. Причина одна и стара как мир: если у тебя столько бабла, что люди стоят в очереди чтобы хоть как-то прильнуть к нему, то ты можешь делать что хочешь. Это касается как людей, так и компаний.
Мы вот рады, когда кандидат понимает, как работает flow-sensitive typing в TS, хотя бы просто на конкретных примерах. И то редко такие встречаются.
Люди будут видеть примеры и изучать по ним, как работает ваш инструмент. Именно так и учатся люди!
Не все и не всегда. Например, мой друг терпеть не может, когда обучение идёт через примеры и по паттернам. У него сугубо структурный тип мышления, и ему нужна эта концептуальная структура, а не готовые примеры, которые можно менять. Я в принципе и сам такой же.
Сейчас я своим коллегам читаю лекции по Git. И вот что любопытно: на подготовку этих лекций меня сподвигло то, что я пришёл к выводам, абсолютно противоположным выводам в статье. Интернеты забиты примерами и быстрыми туториалами по Git, а вот толкового курса о том, как действительно он работает, так вот быстро и не найдёшь. Потому что большинство так и поступает: это же не язык программирования, а просто вспомогательный инструмент, я быстренько разберусь как там выполнять основные команды, а если начнутся проблемы, то лид разберётся, ему же больше платят. Поэтому в своих лекциях я как бы изобретаю Git заново со своими слушателями, чтобы объяснить те весьма простые концепции, на которых он построен, а не зубрить хаотичный CLI Git-а.
Если современная разработка много где превратилась в потогонку вида «в прод нужно было ещё вчера», и все занимаются stackoverflow-oriented/ChatGPT-oriented programming, то это скорее проблема менеждмента, а может даже и экономики/рынка.
Нет! Нужно назвать его функцией!
А вот это хороший совет. Только есть другая проблема: этот понятийный аппарат сначала нужно как-то получить. Тут мы и вспоминаем, зачем же на самом деле нужно полноценное образование — чтобы понимать людей, и чтобы тебя понимали.
Избегайте перегрузки концепциями
Ну тут автор изобрёл бритву Оккама, нечего добавить.
и даже боссы часто бывают друзьями - ну не такими прям что пиво пить идти вечером, но вполне себе друзьями, могут потом годами звать на всякие мероприятия и чисто в офисе за НГ тяпнуть коньячку
Мне кажется тут более уместен термин «приятели», в том числе в случае пива вечером. Друг это тот, кто займёт вам на три месяца платежей по ипотеке, пока вы меняете работу.
Тут что-то на фронтэндерском, не получается прочитать.
Как вы на HH определяете, как развивается карьера отдельных людей?
Вот у меня из пяти знакомых:
трое ушли с десктопного C++ на бэкенд и Go;
ещё один перешёл с Electron на бэкенд (тоже Go);
ещё один хотел бы перейти с Electron на бэкенд (пока этого не сделал, но сделает как только пройдёт собесы в интересующие его компании). Правда этот парень бывший плюсовик, на Electron его занесло скорее вынужденно.
Причём и не скажешь, что они ушли из какой-то одной компании (где было всё сильно плохо) или пришли в какую-то одну компанию (где было всё сильно хорошо), компании разные.
Справедливости ради, есть и такой знакомый, который остался на десктопном C++, но уехал из РФ в стартап с довольно щедрыми зарплатами, поэтому всем доволен и так.
Зайдите на стримы к разных популярным ребятам, и посмотрите на качество их картинки. А потом посмотрите на их сетап. Ну например: Sony A7 IV и Sony A7С (да, аж две камеры сразу, чтобы красиво было!).
Давайте начистоту.
Пока Microsoft, Apple и прочие гиганты бились за звание главной платформы для запуска клиентского кода, Google тихонечко закатила всем в огород троянского коня в виде Хрома. И получилась такая вот интересная ситуация, что теперь "операционной системой" (а точнее, средой для работы клиентского приложения) является браузер, а не натив. И эта среда победила. Почему - уже написали предыдущие комментаторы.
JS и сейчас относительно конченный язык, а году в 2013-м это был ад и Израиль. И ничего, все пошли колоться об этот кактус. Чтобы писать под победившую среду запуска клиентского кода. Побежали все переписывать старые проекты - MS переписала Офис, Гугл же написал свой офис сразу в вебе.
Уже все и забыли, что "Веб" - это про организацию информации прежде всего, а не про HTML/CSS/JS.
Теперь разработчиков под нативный десктоп и нет толком. Точнее, они есть, но им за их знания заплатят намного больше, например, на бэкенде. А над клиентским десктопом можно издеваться, память-то там клиентская, она "бесплатная" для компании, в отличие от памяти на серверах.
Зато навалом разрабов под браузер, стоят они приемлемо, вот и вся история.
Вот на мобилках ресурсов поменьше, и там веба почти нет - каждый второй проект делает себе приложение и переманивает туда всякого, кто зашёл на сайт с мобилы.
А, самое главное: на десктопах толком не прижились магазины приложений. На мобилках юзеров к этому приучили с горшка, и проблема деливери/автоапдейта была решена на корню. А десктоп уже слишком стар как концепция, чтобы его юзеров можно было заставить что-то делать иначе. Microsoft Store почти никому не нужен, Snap Store тоже, разве что на Маке удалось более-менее посадить на их магаз.
Думаю самый лучший вариант - приложение Tino. Если удалят и его, то в этот момент Apple как бы сама себя удалит из своего магазина.
Это чеболизация по-российски.
А задача - открывать на просмотр такие архивы, ибо распаковывать их целиком просто для "посмотреть" - это практически нереально. Вернее, когда у вас ext4 на NVMe-диске - может и реально, но не когда NTFS на магнитном.
Ну там не один архив на 105, а несколько (самый большой на ~16 Гб), но дело-то в другом - что не мне выбирать, как упаковывать, ибо торрент не мой.
А хороший софт потому и хорош, что он хорошо справляется не только с "лёгкими" и популярными кейсами, но в том числе и с не совсем адекватными.
Хранятся-то они замечательно, вы попробуйте удалить их потом. Задача на полдня примерно.
Если бы всё так было хорошо с NTFS, зачем бы тогда MS придумала использовать ReFS в своей фиче Dev Drive.
Если я распакую каждый архив из 105-гигайбайтовой утечки исходников Twitch-а, у меня ФС загнётся от количества файлов. Зачем, если можно архиватором вытаскивать нужные подпапки?
Так, стоп. Разве это не гейткипинг? Т.е. вся остальная статья не имеет смысла? Почему спрашиваю: потому что для меня это основной (если не единственный) аргумент заливать про Таненбаума, CS и всё прочее. Хочется в какой-то момент перестать подтирать за человеком, а он пока даже не понимает, а почему, собственно, за ним подтёрли.
Всё понятно. Рад знакомству (нет).
Как-то всё это грустно. Про «регулярно», про «касания». Когда автор прибегает к помощи редакторов/писателей/прочих специалистов по выражению мыслей и идей в достойном виде — тогда и результат достойный. А вот когда делается наоборот, потому что нужны «касания» — такое себе.
Впрочем, о чём это я, я же просто не с той стороны рта нахожусь. Люди работу работают, а мы потом будем выискивать сокровища в информационной свалке.
А вот за эту статью спасибо! Вот её как раз писали именно те люди, которые «кто ручками каждый день в ней [теме] ковыряется».
Неужели хороших авторов настолько мало и они настолько недоступны, что не вариант идти по пути их выращивания и менторства?
Как раз два года опыта с момента релиза классики!
Что вы имеете в виду? В одном случае это бинраный оператор, в другом - унарный.
По большей части с вами согласен. В том числе поэтому считаю статическую типизацию (например) куда более важным инструментом, чем тесты. Те же модульные тесты нужны прежде всего чтобы:
а) дать самодокументацию в виде каких-то кейсов, чтобы на ревью или при рефакторинге читающий не спрашивал "а вот это будет работать?", "а вот такой кейс предусмотрели?". Все ответы уже заготовлены в виде тестов, а если что-то пропущено - то лучше в виде очередного теста и добавить. Это по сути одна из самых лучших форм документации - никогда не устаревает, в отличие от просто рукописного текста.
б) "заткнуть" какие-то краевые ситуации, которые не может покрыть статическая типизация. Обычно если в языке с типизацией не очень, тестов приходится писать намного больше. И с другой стороны, если типизация очень сильная, то язык программирования превращается в язык доказательства теорем, и в таком языке модульные тесты и не нужны, потому что если программа компилируется - скорее всего она корректна.
Я скорее говорил о том, что никто не будет выводить в прод написанный за полчаса алгоритм или структуру данных без должного тестирования, а тестирование отдельных алгоритмов это в 99% случаев именно unit-тестирование.
Полагаю, этот механизм сейчас работает плохо из-за высокой доли вкатунов и откровенных самозванцев. Ну т.е. человек проходит фильтр, и сразу приносит компании минус 300-500к. А лишние деньги у всех закончились.
Не нужно про неё говорить. Её нужно оставить для JS-квестов типа "посчитайте среднее по массиву за 8 символов" и в таком духе. В реальном коде абсолютно нечитаемая магия, особенно если JS/TS для вас - очередной-язык-на-котором-приходится-прогать, а не мечта всей жизни.
Вот только вчера об этом говорили с коллегами. Что куда важнее написать тесты вдоль и поперёк, особенно если это какой-то новый алгоритм (а зачем повторно реализовывать существующие?).
Мне вообще непонятно, каким образом алгоритмические, а точнее спортивно-олимпиадные задачки заехали в большинство собесов. У вас ещё более-менее адекватная задача, а зачем красно-чёрные деревья реализовывать на листке бумаги, я откровенно не понимаю.
А на этот вопрос вы сами себе отвечаете:
Захочешь в Яндекс — и не так, простите, задницу рвать начнёшь. Добро пожаловать в чеболизацию по-русски. Я честно пытался найти ДРУГИЕ причины, но мне кажется пора перестать делать вид, будто они есть. Причина одна и стара как мир: если у тебя столько бабла, что люди стоят в очереди чтобы хоть как-то прильнуть к нему, то ты можешь делать что хочешь. Это касается как людей, так и компаний.
Мы вот рады, когда кандидат понимает, как работает flow-sensitive typing в TS, хотя бы просто на конкретных примерах. И то редко такие встречаются.
Не все и не всегда. Например, мой друг терпеть не может, когда обучение идёт через примеры и по паттернам. У него сугубо структурный тип мышления, и ему нужна эта концептуальная структура, а не готовые примеры, которые можно менять. Я в принципе и сам такой же.
Сейчас я своим коллегам читаю лекции по Git. И вот что любопытно: на подготовку этих лекций меня сподвигло то, что я пришёл к выводам, абсолютно противоположным выводам в статье. Интернеты забиты примерами и быстрыми туториалами по Git, а вот толкового курса о том, как действительно он работает, так вот быстро и не найдёшь. Потому что большинство так и поступает: это же не язык программирования, а просто вспомогательный инструмент, я быстренько разберусь как там выполнять основные команды, а если начнутся проблемы, то лид разберётся, ему же больше платят. Поэтому в своих лекциях я как бы изобретаю Git заново со своими слушателями, чтобы объяснить те весьма простые концепции, на которых он построен, а не зубрить хаотичный CLI Git-а.
Если современная разработка много где превратилась в потогонку вида «в прод нужно было ещё вчера», и все занимаются stackoverflow-oriented/ChatGPT-oriented programming, то это скорее проблема менеждмента, а может даже и экономики/рынка.
А вот это хороший совет. Только есть другая проблема: этот понятийный аппарат сначала нужно как-то получить. Тут мы и вспоминаем, зачем же на самом деле нужно полноценное образование — чтобы понимать людей, и чтобы тебя понимали.
Ну тут автор изобрёл бритву Оккама, нечего добавить.
Спасибо за перевод!
Мне кажется тут более уместен термин «приятели», в том числе в случае пива вечером. Друг это тот, кто займёт вам на три месяца платежей по ипотеке, пока вы меняете работу.