Основной принцип программирования
Основной принцип программирования не имеет ничего общего с написанием кода. Он заключается в решении утилитарной задачи.
Программы, которые мы разрабатываем, имеют утилитарную цель. Они решают конкретные бытовые задачи: покупка еды, аренда авто, общение с друзьями и т.д. Аналоги этих задач мы можем найти в реальном оффлайн мире. Для того, чтобы решить задачу при помощи кода, необходимо придумать решение в уме, а затем перенести его в программный код.
Целью этой мыслительной деятельности является решение бизнес-задачи, а средством — программа, которую мы пишем для того, чтобы решить нашу задачу. По сути, код является слепком мыследеятельности программиста. Здесь кроется ловушка: можно запутаться в мысленных лабиринтах и подменить цель средством, начать считать, что цель заключается в том, чтобы написать код. Цель никогда не заключалась в этом.
Некоторые программисты считают, что их задача — просто писать код, а разбираться в бизнес-домене должны аналитики и менеджеры. Однако невозможно написать код, если не знаешь, как он должен работать. Программа — это автоматизация решения реальной задачи, а не абстрактная интеллектуальная модель в вакууме.
Поэтому, когда вы не понимаете, как вам написать код хорошо, искать ответ нужно не в технологиях, а в вашей бизнес задаче. Вам нужно определить, как должна себя вести система. Никакого “хорошего” и “плохого” кода в вакууме не существует, потому что код всегда связан с конкретной задачей. Хороший код — это такой код, который хорошо решает поставленную задачу, а плохой код — тот, который решает ее плохо, пускай даже в нем соблюдаются все принципы дядюшки Боба и другие 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🤡44❤17🔥10👎7💩6🤓4😐3😈2🤮1