Вчера развлекала себя решением литкода и любопытства ради посмотрела, сколько же у меня решенных задач в аккаунте.
Девять. Всего девять задач за всё время существования аккаунта.
Я не помню точно, когда я завела аккаунт — кажется, лет шесть назад. Получается, я в среднем решаю полторы задачи в год. Мне кажется, я на собесах решила больше задач, чем в процессе подготовки к ним. Это резко контрастирует с популярным мнением, что для решения алгозадач необходимо проводить часы на литкоде.
Честно говоря, я не знаю паттерны решения популярных алгоритмических задач. Я сохранила себе несколько методичек, но до сих пор их не прочла. Я не знаю алгоритмы — я их придумываю. Каждый раз, на каждом собеседовании. Получается не всегда — около 10% задач у меня не получается решить за ограниченное время собеседования (пока не получается 😈).
Я окончательно укрепилась во мнении, что ценность алгоритмов не в том, чтобы их “знать” или “помнить”. Ценность в том, чтобы изобрести их с нуля.
Кстати, поздравьте меня с десятой решенной задачей 🙂
#алгоритмы
Девять. Всего девять задач за всё время существования аккаунта.
Я не помню точно, когда я завела аккаунт — кажется, лет шесть назад. Получается, я в среднем решаю полторы задачи в год. Мне кажется, я на собесах решила больше задач, чем в процессе подготовки к ним. Это резко контрастирует с популярным мнением, что для решения алгозадач необходимо проводить часы на литкоде.
Честно говоря, я не знаю паттерны решения популярных алгоритмических задач. Я сохранила себе несколько методичек, но до сих пор их не прочла. Я не знаю алгоритмы — я их придумываю. Каждый раз, на каждом собеседовании. Получается не всегда — около 10% задач у меня не получается решить за ограниченное время собеседования (пока не получается 😈).
Я окончательно укрепилась во мнении, что ценность алгоритмов не в том, чтобы их “знать” или “помнить”. Ценность в том, чтобы изобрести их с нуля.
Кстати, поздравьте меня с десятой решенной задачей 🙂
#алгоритмы
1👍26💩20👎10🔥9🤮8❤7🤡7
Намедни общалась с другом, который недавно ходил на собес в бигтех. На собеседовании его попросили реализовать онлайн редактор кода с подсветкой — типа codesandbox. Друг решил, но пришлось изрядно напрячься. Зачем нужны такие собесы, — недоумевал он, — в реальной жизни я бы просто взял готовую либу.
Честно говоря, код, написанный своими силами (а не готовая либа) — это самый лучший код.
У собственного кода есть только один недостаток: он дорогой. Взять либу сильно дешевле, чем реализовывать собственными силами.
Однако не для любого проекта самое главное — это дешевизна.
Как вы можете заметить, конкурентное преимущество дает только основной поддомен, и именно он обычно оттягивает на себя основные силы и деньги компании. Важно реализовать такие бизнес фичи не просто “шоб работало”, а чтобы это было лучше, чем у других.
В каком случае нельзя использовать внешнюю либу для подсветки текста (или кода как текста)? В том случае, если это основной поддомен. Например, вы пишите свой супермегавау онлайн редактор кода, в котором можно на лету кастомизировать подсветку кода.
На собеседованиях обычно хотят увидеть, как бы вы справились с основным поддоменом, потому что если вы справитесь с ним, то с другими справитесь наверняка.
Советую на досуге поразмышлять на тему, работа в каких бизнес доменах даст вам конкурентное преимущество на рынке труда и отстрочит вашу замену иишницей. Всех с наступающим!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍9🔥6👎5🤡5🤮2💯1🤨1
⚡️Больше не Фронтенд кухня.
За прошедший год произошло многое. Экономическая ситуация ухудшилась, что привело к сокращениям и фризам найма, в то время как искусственный интеллект развивался семимильными шагами, позволяя разработчикам делать больше меньшими усилиями.
Я стала понимать, что гораздо важнее писать про фундаментальные основы программирования, чем разбирать частные нюансы конкретных технологий. Нюансы — это логическое продолжение базовых принципов.
Сегодня рынок требует от нас изучать новые технологии с молниеносной скоростью, а вакансии фуллстеков снова стали популярны. Там, где раньше нанимали двух разработчиков, сегодня вынуждены ограничиться одним, который будет делать все.
Я верю, что конкретные технологии — это всего лишь инструмент, которым может пользоваться любой, потратив немного времени на чтение документации. Чтобы быстро изучать новое, необходимо понять, что системы строятся по одним и тем же принципам, а разные технологии используют одни и те же идеи, комбинируя их по-разному.
Я верю, что знание базы позволит вам писать сегодня на React, завтра — на Vue или Angular, а послезавтра и вовсе стать фуллстек разработчиком. В этом году я планирую сделать в своих постах акцент на базу в веб-разработке, что поможет вам стать более гибкими на турбулентном рынке, быстро адаптироваться к изменениям и быть инженером, а не оператором фреймворка.
Да прибудет с вами база!
За прошедший год произошло многое. Экономическая ситуация ухудшилась, что привело к сокращениям и фризам найма, в то время как искусственный интеллект развивался семимильными шагами, позволяя разработчикам делать больше меньшими усилиями.
Я стала понимать, что гораздо важнее писать про фундаментальные основы программирования, чем разбирать частные нюансы конкретных технологий. Нюансы — это логическое продолжение базовых принципов.
Сегодня рынок требует от нас изучать новые технологии с молниеносной скоростью, а вакансии фуллстеков снова стали популярны. Там, где раньше нанимали двух разработчиков, сегодня вынуждены ограничиться одним, который будет делать все.
Я верю, что конкретные технологии — это всего лишь инструмент, которым может пользоваться любой, потратив немного времени на чтение документации. Чтобы быстро изучать новое, необходимо понять, что системы строятся по одним и тем же принципам, а разные технологии используют одни и те же идеи, комбинируя их по-разному.
Я верю, что знание базы позволит вам писать сегодня на React, завтра — на Vue или Angular, а послезавтра и вовсе стать фуллстек разработчиком. В этом году я планирую сделать в своих постах акцент на базу в веб-разработке, что поможет вам стать более гибкими на турбулентном рынке, быстро адаптироваться к изменениям и быть инженером, а не оператором фреймворка.
Да прибудет с вами база!
4❤69❤🔥17👍12👏6🫡6👎3🔥2🤮2🤡2💯1
Основной принцип программирования
Основной принцип программирования не имеет ничего общего с написанием кода. Он заключается в решении утилитарной задачи.
Программы, которые мы разрабатываем, имеют утилитарную цель. Они решают конкретные бытовые задачи: покупка еды, аренда авто, общение с друзьями и т.д. Аналоги этих задач мы можем найти в реальном оффлайн мире. Для того, чтобы решить задачу при помощи кода, необходимо придумать решение в уме, а затем перенести его в программный код.
Целью этой мыслительной деятельности является решение бизнес-задачи, а средством — программа, которую мы пишем для того, чтобы решить нашу задачу. По сути, код является слепком мыследеятельности программиста. Здесь кроется ловушка: можно запутаться в мысленных лабиринтах и подменить цель средством, начать считать, что цель заключается в том, чтобы написать код. Цель никогда не заключалась в этом.
Некоторые программисты считают, что их задача — просто писать код, а разбираться в бизнес-домене должны аналитики и менеджеры. Однако невозможно написать код, если не знаешь, как он должен работать. Программа — это автоматизация решения реальной задачи, а не абстрактная интеллектуальная модель в вакууме.
Поэтому, когда вы не понимаете, как вам написать код хорошо, искать ответ нужно не в технологиях, а в вашей бизнес задаче. Вам нужно определить, как должна себя вести система. Никакого “хорошего” и “плохого” кода в вакууме не существует, потому что код всегда связан с конкретной задачей. Хороший код — это такой код, который хорошо решает поставленную задачу, а плохой код — тот, который решает ее плохо, пускай даже в нем соблюдаются все принципы дядюшки Боба и другие best practices.
У меня как-то был на консультации парень, который не мог понять, стоит ему хранить некоторые тексты в своем проекте на фронтенде или на бекенде. Я ответила, что каждый подход имеет свои преимущества. Первый вариант он может реализовать прямо сейчас без доработок, а для второго нужно больше усилий, но зато он сможет динамически менять тексты, например, через админку, без дополнительного деплоя. “Нет, я не понял,” — возразил он, — “мне на фронтенде этот код писать или на бекенде?”.
Еще один пример из практики я уже рассказывала: один парень на консультации на вопрос, зачем он написал конкретный код, ответил — чтобы задачу в жире закрыть. Как вы понимаете, в его случае проблема тоже была не в знаний Javascript, а в том, что он банально не знал, что ему нужно сделать.
📌 Решение всегда сначала появляется в голове, а уже потом в коде.
Невозможно запрограммировать то, чего в вашей голове нет. Волшебной таблетки не существует. Решение, как должна работать ваша система, вам придется принимать самостоятельно или вместе с командой.
Подытожу. Задачи программирования решаются сначала в голове, и только потом переносятся на код. Как решать эти задачи, буду писать далее. Спойлер — там дело снова не в знании языка программирования.
Основной принцип программирования не имеет ничего общего с написанием кода. Он заключается в решении утилитарной задачи.
Программы, которые мы разрабатываем, имеют утилитарную цель. Они решают конкретные бытовые задачи: покупка еды, аренда авто, общение с друзьями и т.д. Аналоги этих задач мы можем найти в реальном оффлайн мире. Для того, чтобы решить задачу при помощи кода, необходимо придумать решение в уме, а затем перенести его в программный код.
Целью этой мыслительной деятельности является решение бизнес-задачи, а средством — программа, которую мы пишем для того, чтобы решить нашу задачу. По сути, код является слепком мыследеятельности программиста. Здесь кроется ловушка: можно запутаться в мысленных лабиринтах и подменить цель средством, начать считать, что цель заключается в том, чтобы написать код. Цель никогда не заключалась в этом.
Некоторые программисты считают, что их задача — просто писать код, а разбираться в бизнес-домене должны аналитики и менеджеры. Однако невозможно написать код, если не знаешь, как он должен работать. Программа — это автоматизация решения реальной задачи, а не абстрактная интеллектуальная модель в вакууме.
Поэтому, когда вы не понимаете, как вам написать код хорошо, искать ответ нужно не в технологиях, а в вашей бизнес задаче. Вам нужно определить, как должна себя вести система. Никакого “хорошего” и “плохого” кода в вакууме не существует, потому что код всегда связан с конкретной задачей. Хороший код — это такой код, который хорошо решает поставленную задачу, а плохой код — тот, который решает ее плохо, пускай даже в нем соблюдаются все принципы дядюшки Боба и другие best practices.
У меня как-то был на консультации парень, который не мог понять, стоит ему хранить некоторые тексты в своем проекте на фронтенде или на бекенде. Я ответила, что каждый подход имеет свои преимущества. Первый вариант он может реализовать прямо сейчас без доработок, а для второго нужно больше усилий, но зато он сможет динамически менять тексты, например, через админку, без дополнительного деплоя. “Нет, я не понял,” — возразил он, — “мне на фронтенде этот код писать или на бекенде?”.
Еще один пример из практики я уже рассказывала: один парень на консультации на вопрос, зачем он написал конкретный код, ответил — чтобы задачу в жире закрыть. Как вы понимаете, в его случае проблема тоже была не в знаний Javascript, а в том, что он банально не знал, что ему нужно сделать.
Невозможно запрограммировать то, чего в вашей голове нет. Волшебной таблетки не существует. Решение, как должна работать ваша система, вам придется принимать самостоятельно или вместе с командой.
Подытожу. Задачи программирования решаются сначала в голове, и только потом переносятся на код. Как решать эти задачи, буду писать далее. Спойлер — там дело снова не в знании языка программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Кодовая база
💫 I need a hero
Лет десять назад от программистов ожидали прежде всего навыков в конкретных технологиях — языках программирования, фреймворках, инструментах. Добыть эти знания было не так-то просто: документация была скупой и не охватывала многих юзкейсов…
Лет десять назад от программистов ожидали прежде всего навыков в конкретных технологиях — языках программирования, фреймворках, инструментах. Добыть эти знания было не так-то просто: документация была скупой и не охватывала многих юзкейсов…
1👍25❤10🔥5🤡3👎2💩2🤮1
Кодовая база
Основной принцип программирования Основной принцип программирования не имеет ничего общего с написанием кода. Он заключается в решении утилитарной задачи. Программы, которые мы разрабатываем, имеют утилитарную цель. Они решают конкретные бытовые задачи:…
Кстати, прямо сейчас в одной социальной сети идет спор о том, что React ужасен, потому что “нужно отделять js от разметки”. Кому нужно? Зачем нужно? Для чего нужно?
И я сейчас не хочу спорить с исходным тезисом о React. Я хочу сказать, что никакого “нужно” или “не нужно” без контекста реальной утилитарной задачи не существует, а этот вопрос почему-то несправедливо часто упускается программистами.
Вопрос целесообразности — это самый важный вопрос, а вопрос вкуса — дело десятое. А для того, чтобы код был целесообразен, у него обязана быть цель (утилитарная). А вот если цели нет, тогда “хорошего” кода получиться не может, а получится только очереднойсрач спор в интернетике.
И я сейчас не хочу спорить с исходным тезисом о React. Я хочу сказать, что никакого “нужно” или “не нужно” без контекста реальной утилитарной задачи не существует, а этот вопрос почему-то несправедливо часто упускается программистами.
Вопрос целесообразности — это самый важный вопрос, а вопрос вкуса — дело десятое. А для того, чтобы код был целесообразен, у него обязана быть цель (утилитарная). А вот если цели нет, тогда “хорошего” кода получиться не может, а получится только очередной
1👍20🔥11❤5👎3🤮3💩3💯3
Сегодня на мок собеседование приходила девочка с не очень большим опытом программирования, которая про алгоритмы и структуры данные только слышала краем уха. Когда мы дошли до задачи, в которой нужно было обойти дерево, она, сама того не зная, написала dfs. Я считаю, что это то, к чему нужно стремиться — выучить все алгоритмы долго и тяжело, да и можно забыть. Если алгоритм несложный, намного проще. будет вывести его прямо на месте.
Но если вы все-таки хотите что-нибудь выучить, то рекомендую изучить алгоритмы обходы деревьев (вышеупомянутый dfs и bfs). По моей личной статистике, они встречаются на собеседованиях чаще всего.
Но если вы все-таки хотите что-нибудь выучить, то рекомендую изучить алгоритмы обходы деревьев (вышеупомянутый dfs и bfs). По моей личной статистике, они встречаются на собеседованиях чаще всего.
🔥27❤11👍6🤮4👎3💩2
Вчера общались с одним парнем про найм и он мне говорит:
— Даже не знаю, что сейчас рынку нужно: одни говорят, что тупо кнопки красить, другие — что нужны умные
Друзья, а кому сейчас нужны люди кнопки красить? В моем пузыре все ищут умных.
— Даже не знаю, что сейчас рынку нужно: одни говорят, что тупо кнопки красить, другие — что нужны умные
Друзья, а кому сейчас нужны люди кнопки красить? В моем пузыре все ищут умных.
👍17🔥8😁6❤4👎2💩2🤡2🤔1
Forwarded from Denis Uk
Нужны умные что бы понимали когда можно кнопки красить, а когда лучше подумать
❤16👍7🔥6👎2🤮2💩2🤷♂1
Я долго сдерживалась, но кто-то должен вам это сказать.
Год назад, когда я всем советовала писать сопроводительные на каждый отклик, на меня смотрели как на дуру и говорили, что это долго муторно, гораздо лучше без разбору откликаться на все подряд. Прошел год и до большинства дошло, что это не самая выгодная стратегия. Сейчас модно находить прямые контакты hr и писать им в личку.
Когда я про это впервые услышала, я сразу вспомнила анекдот про поручика Ржевского . Некоторые товарищи еще удивляются, что hr им после этого не отвечают. Мне тоже удивительно, потому что лично я бы сразу кликнула на кнопки “заблокировать” и “это спам”. Ребят, а вы сами-то любите, когда вам в личку пишут незнакомые люди и предлагают свои услуги? И не надо оправдываться, мол, у hr работа такая. Их работа — разбирать отклики там, где они вакансию публиковали, а личная телега — это для общения с близкими.
Максимально эффективно откликаться на вакансии там, где ваш отклик ждут, а именно: джоб борды (hh и другие), карьерный раздел на сайте компании (там обычно бывает форма, через которую можно отправить резюме) и, в крайнем случае, официальный рабочий емейл. Чтобы обратить на себя внимание, используйте сопроводительные письма. Бесцеремонные сообщения в чужие личные контакты, конечно, тоже помогает обратить на себя внимание, но совсем не такое, какое вы хотите.
Ну а если вас вдохновляют примеры тех, кто написал прямо hr в личку без приглашения и получил работу, помните: на одного того, кто впендюрил, найдется десять тех, кто получил по морде.
Всем хороших выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤡43❤17🔥10👎7💩6🤓4😐3😈2🤮1