Почти довёл своё рабочее место до идеала: купил нормальное кресло Samurai S-3.05.
Можно работать в разных условиях, но безусловно каждая мелочь влияет на продуктивность и здоровье.
Как в истории с Брейлсфордом и британским велосипедным спортом, где искали варианты улучшений хотя бы на 1 %. Также можно улучшать и рабочее место, пока будет нечего улучшать.
P.S. Хруст в шее — один из симптомов остеохондроза.
Можно работать в разных условиях, но безусловно каждая мелочь влияет на продуктивность и здоровье.
Как в истории с Брейлсфордом и британским велосипедным спортом, где искали варианты улучшений хотя бы на 1 %. Также можно улучшать и рабочее место, пока будет нечего улучшать.
P.S. Хруст в шее — один из симптомов остеохондроза.
Примитивы по значению, а объекты по ссылке
Но это не всегда можно отнести к строкам, ведь строка может занимать довольно много места, а большая часть примитивов не так ресурсоемка.
Сам процесс в ноде занимает около 3,5 мб.
Создаем массив на 5 млн элементов, одна ячейка занимает 8 байт. + 40 мб к занимаемой памяти.
Делаем из массива строку, латинская буква занимает 1 байт. + 5 мб к занимаемой памяти.
Итого получилось 48,5 мб занимаемой памяти. Создаем новую переменную и кладем туда строку. Следуя правилу из названия должны скопировать по значению и увидеть в heapUsed примерно 53,5 мб. Но этого не происходит.
Потому что движок V8 оптимизирует трату памяти в таких случаях.
Но это не всегда можно отнести к строкам, ведь строка может занимать довольно много места, а большая часть примитивов не так ресурсоемка.
Сам процесс в ноде занимает около 3,5 мб.
Создаем массив на 5 млн элементов, одна ячейка занимает 8 байт. + 40 мб к занимаемой памяти.
Делаем из массива строку, латинская буква занимает 1 байт. + 5 мб к занимаемой памяти.
Итого получилось 48,5 мб занимаемой памяти. Создаем новую переменную и кладем туда строку. Следуя правилу из названия должны скопировать по значению и увидеть в heapUsed примерно 53,5 мб. Но этого не происходит.
Потому что движок V8 оптимизирует трату памяти в таких случаях.
const arr = Array(5_000_000).fill("k"); // 5 млн × 8 байт ~ 40 МБ // 43_462_864 байт
const s = arr.join(""); // 5 млн × 1 байт ~ 5 МБ, итого // 48_548_144 байт
const s2 = s;
console.log(process.memoryUsage())Обилие технологий оставляет свой отпечаток: лента негативных новостей, сравнение себя с другими, частое переключение контекста и так далее.
Троица книг, чтобы привести мысли в порядок.
➖ "Тонкое искусство пофигизма" Мэнсон Марк
➖ "Антидот" Оливер Букерман
➖ "Unfu*k Yourself" Гэри Джон Бишоп
Троица книг, чтобы привести мысли в порядок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Недавно попался интересный автор с хорошим слогом, у которого опыт в it около 20 лет.
Очень понравилась статья "Как мы ржавели. История внедрения и обучения". Поймал себя на мысли, что это тот уровень, до которого хочу дорасти. Человек за короткий срок разобрался в новом языке, переписал существующий сервис и уменьшил затрачиваемые ресурсы.
Я решил изучать классический бэкенд в разрезе Java.☕️
При создании javaScript'a опирались на Java, так как он был очень популярен в то время. Поэтому синтаксис javaScript очень схож c Java.
Если был опыт работы с typescript, то переход на Java до уровня написания простых программ пройдет быстро.
Читал про столпы ООП: инкапсуляция, наследование, абстракция и полиморфизм.
Если с первыми тремя всё относительно понятно, то с полиморфизмом поинтереснее.
Я до этого был знаком именно с полиморфизмом подтипов, а видов полиморфизма оказалось больше одного.
В Java есть ad hoc полиморфизм. —> Можно описывать одноименные методы с разными типами. В зависимости от передаваемых типов будет выполнен нужный метод.
Также узнал про параметрический полиморфизм. В typescript это джейнерики.
Очень понравилась статья "Как мы ржавели. История внедрения и обучения". Поймал себя на мысли, что это тот уровень, до которого хочу дорасти. Человек за короткий срок разобрался в новом языке, переписал существующий сервис и уменьшил затрачиваемые ресурсы.
Я решил изучать классический бэкенд в разрезе Java.
При создании javaScript'a опирались на Java, так как он был очень популярен в то время. Поэтому синтаксис javaScript очень схож c Java.
Если был опыт работы с typescript, то переход на Java до уровня написания простых программ пройдет быстро.
Читал про столпы ООП: инкапсуляция, наследование, абстракция и полиморфизм.
Если с первыми тремя всё относительно понятно, то с полиморфизмом поинтереснее.
Я до этого был знаком именно с полиморфизмом подтипов, а видов полиморфизма оказалось больше одного.
В Java есть ad hoc полиморфизм. —> Можно описывать одноименные методы с разными типами. В зависимости от передаваемых типов будет выполнен нужный метод.
Также узнал про параметрический полиморфизм. В typescript это джейнерики.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишу очередной hello world
Установил всё нужное для компиляции java программ. Скомпилировал файл. Запускаю и получаю ошибку.
Ошибка была связана с тем, что я не снёс старую версию java. Видимо Siemens NX 10 был написан на java 8.
Дело в том, что java - обратно совместимый язык, впрочем как и JavaScript. В этом есть плюсы так и минусы: всё, что попадает в язык, остается там.
Большинство операционных систем(ОС) обратно совместимы. Но так было не всегда, раньше приходилось переписывать софт под новые версии одной ОС. Теперь большинство программ, написанных под старые версии, будут работать в новых версиях одной и той же ОС.
Противоположностью обратной совместимости ставят прямую совместимость. Как пример HTML разметка. Код, написанный с новыми тегами в старом браузере, будет работать (браузер просто пропустит незнакомые теги).
Интересно еще то, что в своей первой книги из серии "You don't know js" Кайл Симпсон в самом начале как раз разбирает два этих понятия.
Установил всё нужное для компиляции java программ. Скомпилировал файл. Запускаю и получаю ошибку.
Ошибка была связана с тем, что я не снёс старую версию java. Видимо Siemens NX 10 был написан на java 8.
Дело в том, что java - обратно совместимый язык, впрочем как и JavaScript. В этом есть плюсы так и минусы: всё, что попадает в язык, остается там.
Большинство операционных систем(ОС) обратно совместимы. Но так было не всегда, раньше приходилось переписывать софт под новые версии одной ОС. Теперь большинство программ, написанных под старые версии, будут работать в новых версиях одной и той же ОС.
Противоположностью обратной совместимости ставят прямую совместимость. Как пример HTML разметка. Код, написанный с новыми тегами в старом браузере, будет работать (браузер просто пропустит незнакомые теги).
Интересно еще то, что в своей первой книги из серии "You don't know js" Кайл Симпсон в самом начале как раз разбирает два этих понятия.
Coderun
Вчера стартанул новый третий сезон Coderun. Рекомендую всем, кому нравится решать задачки. В этом году изменили формат и, как я понял, сделали задачи одинаковые для всех без разделений на домен (фронтенд/бекенд/мл и тд).
Получается не будет зубодробительных задач с css, как эта.
Также вот, например, интересная задача на прототипы в js (по крайней мере я решал ее через прототипы).
Вчера стартанул новый третий сезон Coderun. Рекомендую всем, кому нравится решать задачки. В этом году изменили формат и, как я понял, сделали задачи одинаковые для всех без разделений на домен (фронтенд/бекенд/мл и тд).
Получается не будет зубодробительных задач с css, как эта.
Также вот, например, интересная задача на прототипы в js (по крайней мере я решал ее через прототипы).
CodeRun
Сверстать макет // CodeRun
Задачи для прокачивания навыков разработки фронтенда, бэкенда, мобильных приложений, ML и аналитики. От разработчиков для разработчиков.
В 22:30 будет ссылка на стрим.
Буду пробовать смоделировать шкатулку с ирисовым механизмом. Такое я уже предпринимал пару лет назад, но подгонял всё на лету.
Сейчас появилось желание рассчитать все элементы и сделать нормально. Потом можно написать мини-приложение для расчета разного количества лепестков и заодно поработать с canvas'ом.
Буду пробовать смоделировать шкатулку с ирисовым механизмом. Такое я уже предпринимал пару лет назад, но подгонял всё на лету.
Сейчас появилось желание рассчитать все элементы и сделать нормально. Потом можно написать мини-приложение для расчета разного количества лепестков и заодно поработать с canvas'ом.
Подход к обучению ⚒️
Мне импонирует подход через практику. Если брать программирование, то на начальном этапе — это нарешивание большого количества задач.
Но это время можно провести с еще большей пользой, если к решению задач добавлять написание юнит-тестов.
Также независимо от языка, чаще всего IDE уже предоставляет для этого удобные средства.
Польза очевидная, особенно в эпоху LLM, когда написать код уже не является чем-то сложным.
Архитектурный момент опустим, но для решения локальной задачи остается выбор алгоритма (придумывание решения или выбор из существующих) и верификация результатов.
Нередко бывает, что, вспоминая граничные моменты, дорабатываешь изначальное решение.
4️⃣ случая тестирования, которые следует учитывать:
➖ Пустые, нулевые значения
➖ Граничные значения(максимальное, минимальное)
➖ Регрессионный тест
➖ Множество рандомных тестов
На текущий момент я прорешал довольно-таки огромное количество задач, сейчас приступаю к плотному изучению структур данных. До этого уже было знакомство и прочитана не одна книга. Но читать - одно, а реализовывать и понимать тонкости - совершенно другое.
📔 Грокаем алгоритмы | Бхаргава - великолепно подойдет для первого знакомства
📗 Структуры данных и алгоритмы в Java | Лафоре - отличное объемлющее изложение
📘 JavaScript Algorithms Book | Trekhleb - широкий обзор на алгоритмы и структуры данных через призму JS, есть на гитхабе на разных языках
Мне импонирует подход через практику. Если брать программирование, то на начальном этапе — это нарешивание большого количества задач.
Но это время можно провести с еще большей пользой, если к решению задач добавлять написание юнит-тестов.
Также независимо от языка, чаще всего IDE уже предоставляет для этого удобные средства.
Польза очевидная, особенно в эпоху LLM, когда написать код уже не является чем-то сложным.
Архитектурный момент опустим, но для решения локальной задачи остается выбор алгоритма (придумывание решения или выбор из существующих) и верификация результатов.
Нередко бывает, что, вспоминая граничные моменты, дорабатываешь изначальное решение.
На текущий момент я прорешал довольно-таки огромное количество задач, сейчас приступаю к плотному изучению структур данных. До этого уже было знакомство и прочитана не одна книга. Но читать - одно, а реализовывать и понимать тонкости - совершенно другое.
📔 Грокаем алгоритмы | Бхаргава - великолепно подойдет для первого знакомства
📗 Структуры данных и алгоритмы в Java | Лафоре - отличное объемлющее изложение
📘 JavaScript Algorithms Book | Trekhleb - широкий обзор на алгоритмы и структуры данных через призму JS, есть на гитхабе на разных языках
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаю прорабатывать основные структуры данных.
🔗 🔗 🔗 Связный список, двунаправленный связный список
Помимо самой реализации было много сопутствующих задач.
Сортировку связного списка сделал очень быстро, это по сути пузырьковая сортировка массива. Однако застрял на моменте замены двух узлов местами, так как в двунаправленном связном списке помимо замены указателей у двух меняющихся узлов, надо не забывать про их соседей.
Узнал, что такое dummy-узел. Очень удобная вещь. Вместо головы и хвоста с пустым значением вставляется фиктивный узел. Сокращает реализацию многих методов для связного списка, так как не приходится проверять какой именно это случай: начало, центр или конец.
💻 Динамический массив
В JS всегда доступна такая роскошь, как динамический массив.
В Java сделал имплементацию динамического массива, чтобы лучше понять, как всё это устроено. Изучил банковский метод анализа сложности динамических массивов. С его помощью легко проверить, что даже при дорогостоящий реаллокации массива, все операции в среднем выполняются за О(1).
Ну и сделал интереснейшую задачу на реализацию многомерного динамического массива с возможностью масштабирования внутренних измерений. Пару дней на нее потратил.
Помимо самой реализации было много сопутствующих задач.
Сортировку связного списка сделал очень быстро, это по сути пузырьковая сортировка массива. Однако застрял на моменте замены двух узлов местами, так как в двунаправленном связном списке помимо замены указателей у двух меняющихся узлов, надо не забывать про их соседей.
Узнал, что такое dummy-узел. Очень удобная вещь. Вместо головы и хвоста с пустым значением вставляется фиктивный узел. Сокращает реализацию многих методов для связного списка, так как не приходится проверять какой именно это случай: начало, центр или конец.
В JS всегда доступна такая роскошь, как динамический массив.
В Java сделал имплементацию динамического массива, чтобы лучше понять, как всё это устроено. Изучил банковский метод анализа сложности динамических массивов. С его помощью легко проверить, что даже при дорогостоящий реаллокации массива, все операции в среднем выполняются за О(1).
Ну и сделал интереснейшую задачу на реализацию многомерного динамического массива с возможностью масштабирования внутренних измерений. Пару дней на нее потратил.
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест за август 🏖️
У канала появилась сайд-активность. На текущий момент моделирую шкатулку с ирисовым механизмом.
Регулярность - раз в две недели вечером по пятницам. Сделал мд-файл, чтобы понимать статус деталей.
Также дальше буду думать над форматом. Обратную связь получил, спасибо дорогому подписчику за это.
При нарешивании задачек очень полезно писать тесты. В конце поста топ-3 книги по алгоритмам. Подробнее здесь.
Углубляюсь в computer-science и постигаю основы, на которых всё базируется. Начало.
У канала появилась сайд-активность. На текущий момент моделирую шкатулку с ирисовым механизмом.
Регулярность - раз в две недели вечером по пятницам. Сделал мд-файл, чтобы понимать статус деталей.
Также дальше буду думать над форматом. Обратную связь получил, спасибо дорогому подписчику за это.
При нарешивании задачек очень полезно писать тесты. В конце поста топ-3 книги по алгоритмам. Подробнее здесь.
Углубляюсь в computer-science и постигаю основы, на которых всё базируется. Начало.
Please open Telegram to view this post
VIEW IN TELEGRAM
Конференции 📺
Небольшая ремарка :
Я хожу только на бесплатные митапы, преимущественно на MoscowJS (когда выпадает билетик). На платных не вижу смысла отдавать 30к за билет.
В текущее время почти вся информация есть в интернете. Зачем ходить на конференции, если большинство докладов уже есть в текстовом виде на хабре? Мое субъективное мнение ниже.
1️⃣ Очевидное - это нетворкинг. Важность его несомненна. Он в себя также включает - расширение кругозора.
Интересно было узнать, что парень зарабатывает себе на жизнь написанием кросс-платформенных приложений на Electron, а посещая конференции ищет потенциальных клиентов(в основном представители малого бизнеса).
2️⃣ Информацию, которую вы вряд ли целенаправленно будете искать в интернете, но будете хотя бы знать про ее существование. Мозг всё равно через время сотрет технические подробности, но главное запомнить, какая проблема решалась и тогда при столкновении с похожей задачей будет понятно в какую сторону можно смотреть.
3️⃣ Вдохновение/ Мотивация. Этот пункт я бы сделал опциональным, так как такое случается за редким исключением. Действительно, есть спикеры с хорошими темами и подачей, которые мотивирует еще больше расти как специалист.
В заключение к 3-ему пункту расскажу про конференцию "Чинители прекрасного", которую посещал пару месяцев назад.
Интересный доклад был про считывание ДНК. Понимаешь, что человек решает на несколько порядков сложнее задачи. Это не очередной фреймворк на js.
Старая статья спикера
Отдельно от сцен были еще стенды с разными изобретениями. В юношестве увлекался сборкой головоломок и больше всего внимания привлек робот, собирающий кубик Рубика за четверть секунды. Уверен и для людей, не интересующихся подобной темой, эффект будет не менее впечатляющий. Интересно, что на тот момент это был мировой рекорд и это сделал один человек, потратив 4 года.
Статья про процесс создания робота
Небольшая ремарка :
Я хожу только на бесплатные митапы, преимущественно на MoscowJS (когда выпадает билетик). На платных не вижу смысла отдавать 30к за билет.
В текущее время почти вся информация есть в интернете. Зачем ходить на конференции, если большинство докладов уже есть в текстовом виде на хабре? Мое субъективное мнение ниже.
Интересно было узнать, что парень зарабатывает себе на жизнь написанием кросс-платформенных приложений на Electron, а посещая конференции ищет потенциальных клиентов(в основном представители малого бизнеса).
В заключение к 3-ему пункту расскажу про конференцию "Чинители прекрасного", которую посещал пару месяцев назад.
Интересный доклад был про считывание ДНК. Понимаешь, что человек решает на несколько порядков сложнее задачи. Это не очередной фреймворк на js.
Старая статья спикера
Отдельно от сцен были еще стенды с разными изобретениями. В юношестве увлекался сборкой головоломок и больше всего внимания привлек робот, собирающий кубик Рубика за четверть секунды. Уверен и для людей, не интересующихся подобной темой, эффект будет не менее впечатляющий. Интересно, что на тот момент это был мировой рекорд и это сделал один человек, потратив 4 года.
Статья про процесс создания робота
Please open Telegram to view this post
VIEW IN TELEGRAM
Действия, которые почти ничего не стоят 🌳
Более года назад, прочитав книгу «Эта странная жизнь» Даниила Гранина про подход учета времени Любищева, пробовал также фиксировать время...
Меня хватило только на1,5 месяца . Тут скорее был момент, что это немного ментально давило, но в плане удобств никаких проблем не возникало.
Сравнивая подход, описанный в книге, с использованием бумажных носителей и современные устройства - всё стало гораздо проще и удобнее. Данные записываются одним касанием, графики строятся автоматически.
Думаю, что это хорошая практика на 1 месяц, чтобы получить срез потраченного времени(главное выбрать месяц без длинных выходных).
На текущий момент ограничиваюсь проверкой экранного времени в телефоне.
Отсылаясь к заголовку далее речь пойдет про действия, которые требует гораздо меньше усилий, но приносят ощутимую пользу.
Например,
💳 Подсчет финансов
Большая часть людей получает зарплату два раза в месяц. Траты тоже не происходят так часто: от нуля до пары раз в день. Но если фиксировать всё, то можно примерно понимать базовые потребности и не попасть впросак.
🍽 Подсчет калорий
Узнал не так давно про приложение, которое по штрихкоду определяет КБЖУ. 3-4 раза в день внести продукты оказалось не так уж и хлопотно, но зато уменьшил количество калорий до необходимых.
👑 Как там говорится? То, что можно измерить, поддается управлению.
Более года назад, прочитав книгу «Эта странная жизнь» Даниила Гранина про подход учета времени Любищева, пробовал также фиксировать время...
Меня хватило только на
Сравнивая подход, описанный в книге, с использованием бумажных носителей и современные устройства - всё стало гораздо проще и удобнее. Данные записываются одним касанием, графики строятся автоматически.
Думаю, что это хорошая практика на 1 месяц, чтобы получить срез потраченного времени(главное выбрать месяц без длинных выходных).
На текущий момент ограничиваюсь проверкой экранного времени в телефоне.
Отсылаясь к заголовку далее речь пойдет про действия, которые требует гораздо меньше усилий, но приносят ощутимую пользу.
Например,
💳 Подсчет финансов
Большая часть людей получает зарплату два раза в месяц. Траты тоже не происходят так часто: от нуля до пары раз в день. Но если фиксировать всё, то можно примерно понимать базовые потребности и не попасть впросак.
🍽 Подсчет калорий
Узнал не так давно про приложение, которое по штрихкоду определяет КБЖУ. 3-4 раза в день внести продукты оказалось не так уж и хлопотно, но зато уменьшил количество калорий до необходимых.
Please open Telegram to view this post
VIEW IN TELEGRAM
Про стажировки 🎓
В скором времени большая часть компаний будет прибегать к стажировкам. Потому что у этого есть несколько плюсов: подготовка сотрудников под себя, а также высокая лояльность к компании по сравнению с кадрами извне.
Я очень хотел попасть именно в бигтех, этого получилось добиться через стажировку в 2023 году. Ниже подробнее расскажу про формат, а пока сравним подход в других крупных компаниях.
❤️ Яндекс
Контест + несколько этапов на решение задач. Притом задачи вы будете получать такие же, как и люди, проходящие собесы на грейд middle. Тот, кто проводит собес, скорее всего не знает, что вы на стажировку.
Нерешенная задачи или неоптимальное решение - вы не прошли дальше.
Но в этом есть несомненный плюс - формат собеседования и примерные задачи заранее известны. По js это основы, а по алгоритмам порядка 20 тем.
📺 Лаборатория Касперского
Там был тест с ограничением по времени, нацеленный на вопросы про разработку ПО. Вариант с тестированием, как по мне, самый ужасный, не отражающий уровень кандидата.
👍 Wildberries
Ну и вишенкой на торте, подход адекватной компании:
Порядка 4 тестовых, которые в совокупности можно сделать за месяц.
Для frontend'a было
➖ Здоровенный лендинг
➖ Порядка 25 задач различной сложности. Например, сделать виджет с бесконечным скроллом, используя API VK.
➖ 5 мини-проектов, можно на чистом js, можно на React.
➖ Упрощенная копия реального проекта с небольшими заданиями(добавить избранное и т.д.).
Тут хочу остановиться. Это неимоверно крутой подход. Кандидат знакомится с кодовой базой и создаются условия приближенные к реальным.
Таким образом, компания смотрит не только на тех скиллы, но и на мотивацию, способность укладываться в сроки.
💡В то время, когда новички получают отказы, полируют резюме донельзя, борются с фильтрами hr и хэдхантера, возможно проще потратить месяц на качественное и своевременное выполнение заданий.
В заключение, знаю многих ребят (Frontend, Backend, QA), кто начинал со стажировки, а теперь крепкий специалист.
На данный момент доступно 5 направлений для начинающих. Действуйте.
https://tech.wildberries.ru/courses
В скором времени большая часть компаний будет прибегать к стажировкам. Потому что у этого есть несколько плюсов: подготовка сотрудников под себя, а также высокая лояльность к компании по сравнению с кадрами извне.
Я очень хотел попасть именно в бигтех, этого получилось добиться через стажировку в 2023 году. Ниже подробнее расскажу про формат, а пока сравним подход в других крупных компаниях.
Контест + несколько этапов на решение задач. Притом задачи вы будете получать такие же, как и люди, проходящие собесы на грейд middle. Тот, кто проводит собес, скорее всего не знает, что вы на стажировку.
Нерешенная задачи или неоптимальное решение - вы не прошли дальше.
Но в этом есть несомненный плюс - формат собеседования и примерные задачи заранее известны. По js это основы, а по алгоритмам порядка 20 тем.
Там был тест с ограничением по времени, нацеленный на вопросы про разработку ПО. Вариант с тестированием, как по мне, самый ужасный, не отражающий уровень кандидата.
Ну и вишенкой на торте, подход адекватной компании:
Порядка 4 тестовых, которые в совокупности можно сделать за месяц.
Для frontend'a было
Тут хочу остановиться. Это неимоверно крутой подход. Кандидат знакомится с кодовой базой и создаются условия приближенные к реальным.
Таким образом, компания смотрит не только на тех скиллы, но и на мотивацию, способность укладываться в сроки.
💡В то время, когда новички получают отказы, полируют резюме донельзя, борются с фильтрами hr и хэдхантера, возможно проще потратить месяц на качественное и своевременное выполнение заданий.
В заключение, знаю многих ребят (Frontend, Backend, QA), кто начинал со стажировки, а теперь крепкий специалист.
На данный момент доступно 5 направлений для начинающих. Действуйте.
https://tech.wildberries.ru/courses
Please open Telegram to view this post
VIEW IN TELEGRAM
WB Техношкола
Курсы - WB Техношкола
Эффективное онлайн-образование в IT, объединяющее опыт и знания экспертов. Тренируемся на задачах бигтеха и готовим специалистов на годы вперёд.
БФТ 💻
Летом поменял работу. Очень рад этому событию, так как попал в классную команду. Такого количества тестов я не видел ни в одном проекте до этого, чаще всего их написание было просто по желанию без какой-либо системы.
Кстати, про команду, я самый старый в ней, хотя мневсего уже 25. Это напомнило мне очень интересный пост про будущее рынка труда в IT. Рекомендую ознакомиться, очень качественный анализ. В некоторых странах демографическая пирамида действительно похожа на пирамиду, но в России это скорее ёлка.
Ну и конечно, надо поменять информацию в шапке профиля: добавить "ex. WB", ведь hr дуреют с этого. Жалко я живу в том мире, где им безразлична надпись "НОЦ ПДС и спецтехника"...
Летом поменял работу. Очень рад этому событию, так как попал в классную команду. Такого количества тестов я не видел ни в одном проекте до этого, чаще всего их написание было просто по желанию без какой-либо системы.
Кстати, про команду, я самый старый в ней, хотя мне
Ну и конечно, надо поменять информацию в шапке профиля: добавить "ex. WB", ведь hr дуреют с этого. Жалко я живу в том мире, где им безразлична надпись "НОЦ ПДС и спецтехника"...