Языки
Люди думают на языке. И чем больше человек знает языков, тем больше разнообразие его способов осмыслить что-то.
Языки программирования тоже определяют мышление программиста. Способ решения задачи сильно зависит от известных специалисту языков.
Только Java? Решение точно будет очень ООПшное. Ну и так далее.
Уверен, что хороший разработчик должен знать много разных языков. Хотя бы поверхностно. Это позволит решать задачи не единственным известным способом, а наилучшим.
#языки
Люди думают на языке. И чем больше человек знает языков, тем больше разнообразие его способов осмыслить что-то.
Языки программирования тоже определяют мышление программиста. Способ решения задачи сильно зависит от известных специалисту языков.
Только Java? Решение точно будет очень ООПшное. Ну и так далее.
Уверен, что хороший разработчик должен знать много разных языков. Хотя бы поверхностно. Это позволит решать задачи не единственным известным способом, а наилучшим.
#языки
Исследуя GitHub
Мне часто нужно читать пулл-реквесты на гитхабе. Это в целом не очень удобно, но отдельно раздражает невозможность переходить по файлам вокруг просматриваемого.
Есть хорошее расширение для хрома, которое избавляет от этой боли — Octotree.
#удобство_разработки
Мне часто нужно читать пулл-реквесты на гитхабе. Это в целом не очень удобно, но отдельно раздражает невозможность переходить по файлам вокруг просматриваемого.
Есть хорошее расширение для хрома, которое избавляет от этой боли — Octotree.
#удобство_разработки
Нужная книга
"Программист-прагматик" Дейва Томаса и Энди Ханта — одна из самых полезных книг по программированию, что я читал.
Несмотря на то, что многие технические аспекты работы уже давно устарели, в целом книга прекраасная. В ней рассказано о высокоуровневых практиках написания кода так, чтобы его не пришлось переписывать. Я ненавижу переписывать код, и потому полюбил эти советы.
#программист_прагматик
"Программист-прагматик" Дейва Томаса и Энди Ханта — одна из самых полезных книг по программированию, что я читал.
Несмотря на то, что многие технические аспекты работы уже давно устарели, в целом книга прекраасная. В ней рассказано о высокоуровневых практиках написания кода так, чтобы его не пришлось переписывать. Я ненавижу переписывать код, и потому полюбил эти советы.
#программист_прагматик
Иногда приходится ходить на собеседования. И часто там спрашивают ОЧЕНЬ странные вопросы.
Многие люди считают, что на такие вопросы вообще не нужно знать ответов. Мол, незачем знать результат вычисления
Я не согласен. Эти вопросы, конечно, совсем не показывают умений кандидата. Они не должны задаваться на собеседованиях, но сами по себе — полезны. Понимание этих вопросов, умение найти ответ, говорит о достаточно глубоких познаниях в языке.
Изучайте язык, на котором пишите. Тогда сколь угодно странные вопросы на собеседованиях будут просто забавной разминкой ума.
#собеседования
Многие люди считают, что на такие вопросы вообще не нужно знать ответов. Мол, незачем знать результат вычисления
[] + ''
.Я не согласен. Эти вопросы, конечно, совсем не показывают умений кандидата. Они не должны задаваться на собеседованиях, но сами по себе — полезны. Понимание этих вопросов, умение найти ответ, говорит о достаточно глубоких познаниях в языке.
Изучайте язык, на котором пишите. Тогда сколь угодно странные вопросы на собеседованиях будут просто забавной разминкой ума.
#собеседования
Многие команды пренебрегают непрерывной интеграцией (CI). Очень зря.
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
Бизнес портит все!
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI выполняет задачи, которые должны увеличить уверенность в том, что приложение работает правильно.
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
Закончил изчуать Prolog. Это самый странный язык программирования, что я встречал.
Для того, чтобы решить задачу приходилось отвлечься от решений, которые всегда работали. Сортировка массива определяется, как такая перестановка, где каждый элемент больше предыдущего. И все. Дальше язык сам решит как этого добиться.
Программирование на Prolog сконцентрированно на целях, а не на путях их достижения.
#языки
Для того, чтобы решить задачу приходилось отвлечься от решений, которые всегда работали. Сортировка массива определяется, как такая перестановка, где каждый элемент больше предыдущего. И все. Дальше язык сам решит как этого добиться.
Программирование на Prolog сконцентрированно на целях, а не на путях их достижения.
#языки