ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | FAIL | download_stamp > now() - 6 MONTH | 6.1 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://habr.com/ru/articles/112017/ |
| Last Crawled | 2025-10-06 12:26:44 (6 months ago) |
| First Indexed | not set |
| HTTP Status Code | 200 |
| Meta Title | 10 способов стать хорошим программистом / Хабр |
| Meta Description | Хороший программист — это тот, кто смотрит в обе стороны, переходя дорогу с односторонним движением. Даг Линдер Что приводит программиста на его рабочее место каждый день? Страсть к программированию и... |
| Meta Canonical | null |
| Boilerpipe Text | Количество просмотров 102K |
| Markdown | [Все потоки](https://habr.com/ru/articles/)
[Войти](https://habr.com/kek/v1/auth/habrahabr/?back=/ru/articles/112017/&hl=ru)
[](https://habr.com/ru/users/andreycha/ "andreycha")
[andreycha](https://habr.com/ru/users/andreycha/)
20 янв 2011 в 20:18
# 10 способов стать хорошим программистом
5 мин
102K
[Программирование \*](https://habr.com/ru/hubs/programming/)
Перевод
[Автор оригинала: Ashish Arya](http://java.dzone.com/articles/10-effective-ways-become-good)
> *Хороший программист — это тот, кто смотрит в обе стороны, переходя дорогу с односторонним движением.*
> Даг Линдер
Что приводит программиста на его рабочее место каждый день? Страсть к программированию и получение удовольствия от него. Но чтобы действительно получать удовольствие и радость от программирования, нужно знать некоторые базовые вещи, которые позволят вам стать хорошим программистом.
Я не собираюсь писать мантры, следуя которым, вы станете хорошим специалистом. Моя цель — перечислить те вещи, которые помогли мне добиться успехов в этой профессии. Не существует четкого определения, кто такой хороший программист. Под таковым я подразумеваю человека, который разрабатывает отличные IT-решения и вносит вклад в развитие индустрии.
#### 1\. Учите основы
Понимание основ — это ключ к успеху в любой индустрии и любой профессии. До тех пор, пока вы недостаточно хорошо знаете основы, вы не сможете стать хорошим программистом. Знание азов позволит вам разрабатывать и реализовывать лучшие решения наилучшим способом. Если вы ощущаете пробелы в своих знаниях, будь то основы computer science, или концепции языка, на котором вы пишете, то никогда не поздно вернуться назад и повторить забытое.
#### 2\. Задавайте вопросы (как? почему?), когда пишете код
Есть одна вещь, которая отличает хорошего программиста от всех остальных — это желание знать, что и как происходит. Есть люди, которые никогда не оставят в покое код, пока точно не будут знать, что именно происходит при его выполнении. Я понимаю, что это приближает дедлайн, что у нас не всегда есть на это время, и поэтому мы часто заканчиваем работать с кодом, как только он начинает выполнять свои функции. И хотя поведение в подобных ситуациях это тема для другого разговора, каждый программист может приложить как можно больше усилий для того, чтобы вникнуть в работу кода. И поверьте, со временем это войдет в привычку, и вы будете делать это уже неосознанно.
#### 3\. Учите других — учитесь сами
Большинство из нас обращаются к форумам и группам только тогда, когда нам нужна помощь. Еще одна вещь, которая отличает хорошего программиста от все остальных: хороший программист чаще заглядывает в такие места, чтобы помочь другим. Такая помощь учит больше, чем помощь, оказанная вам при решении вашей проблемы. Поверьте, после того как вы разберетесь в чужой проблеме и ее контексте, поразмышляете над ней и дадите решение, вы научитесь гораздо большему.
#### 4\. Пишите простой, понятный, но в то же время логичный код
Как и в других областях, формула KISS (Keep it simple and short — делай короче и проще) работает и в программировании. Пишите логичный код и избегайте усложнений. Иногда люди пишут сложный код только для того, чтобы доказать, что они умеют писать такой код. Мой опыт подсказывает, что простой и логичный код всегда работает хорошо, приносит меньше проблем и лучше поддается расширению. Вспоминается отличная фраза:
> *Хороший код — это лучшая документация. Каждый раз, когда вы захотите добавить комментарий, спросите себя: «Как я могу улучшить этот код, чтобы он не требовал комментирования?»*
> Стив МакКоннелл
#### 5\. Уделяйте больше времени анализу проблемы, тогда вам понадобится меньше времени для ее устранения
Уделяйте больше времени на понимание и анализ проблемы и разработку решения. А остальное будет легко сделать. Разработка решения не означает использование языков или инструментов для моделирования, вы можете просто смотреть на небо и думать о решении. У тех, кто привык стучать по клавиатуре сразу же, как только узнал о проблеме, результат обычно не совпадает с ожидаемым.
> *Если вы не можете целиком понять общую структуру программы, пока принимаете душ, значит, вы не готовы ее запрограммировать.*
> Ричард Паттис
#### 6\. Будьте первым, кто проанализирует и оценит ваш код
Хотя это трудно, но попробуйте «сломать» ваш код до того, как это сделает кто-то другой. Со временем вы научитесь писать почти безошибочный код. Всегда проводите подробную и беспристрастную оценку своего кода. И никогда не бойтесь спрашивать, что другие думают о вашем коде. Работайте с хорошими программистами и прислушивайтесь к их мнению — это поможет вам стать хорошим программистом.
#### 7\. Не пугайтесь быстрой смены технологий
За все время работы в области IT, я встречал множество людей, которых не устраивала их работа, и людей, которые меняли место работы, чтобы работать с новейшими технологиями. В таком стремлении нет ничего плохого, однако ошибка в «новейших технологиях». Каждый день появляются новые инструменты, API и фреймворки, призванные сделать разработку быстрой и простой. И эта тенденция не снизится. Однако следует понять одну вещь: фундаментальные знания и основы меняются значительно медленнее, чем фреймворки, новые инструменты и API. Можно провести аналогию с морем, на поверхности которого находятся быстрые течения, однако на глубине вода спокойна и она составляет большую часть объема. Поэтому держитесь «на глубине», поближе к основам. В мире Java приложений уровня enterprise существует много веб-фреймворков, а новые выходят каждые две недели. Однако основы клиент-серверной архитектуры, шаблона MVS (Model View Separation), фильтров/сервлетов/JSP, упаковки ресурсов, обработки XML и т.д. остаются неизменны. Поэтому лучше потратьте время на изучение этих основ, нежели на изучение вечно меняющихся фреймворков. Поверьте, зная основы, изучить новые API и фрейморки будет куда легче.
#### 8\. «Костыли»\* долго не работают
Множество программистов используют «костыли»: от недостатка времени, понимания проблемы или опыта. Однако со временем такие решения делают код хуже: он становится менее расширяем и удобен в поддержке. Всегда старайтесь написать такую реализацию, о которой вы знаете все. Я понимаю, что «костыли» в некоторых ситуациях неизбежны, но тогда ситуация напоминает что-то вроде «всегда говори правду, но иногда можешь соврать».
#### 9\. Читайте документацию
Хорошие программисты читают много документации. Это могут быть спецификации, JSR, API, документы, туториалы и т.д. Чтение документации позволит вам понимать основы, и вы будете решать задачи наилучшим способом.
#### 10\. Чужой код тоже может чему-то научить
Я работал с двумя отличными программистами, которые постоянно в своих IDE держали исходники чужих проектов на Java, и обращались к ним каждый день. Они делали это не только из желания узнать, как работают базовые вещи, но и из желания научиться писать хорошие программы. Чтение исходных кодов известного open source проекта, или кодов, написанных вашим ведущим программистом, может помочь вам писать код лучше.
#### И последнее: не сравнивайте себя с другими
Сравнение себя с другими выльется только в плохое самочувствие и нездоровую конкуренцию. У всех есть свои сильные и слабые стороны. Важнее понять свои сильные и слабые стороны и работать над ними. Я много раз видел, как даже так называемые fundoo-программисты (программисты с хорошей фундаментальной подготовкой) делали глупые ошибки. Поэтому проанализируйте и запишите те вещи, которые вам стоит улучшить в себе, и за работу. Программируйте в удовольствие и наслаждайтесь этим.
> *Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.*
> Мартин Фаулер
***
*\* — достаточно вольный перевод слова work-arounds*
Теги:
- [программирование](https://habr.com/ru/search/?target_type=posts&order=relevance&q=[%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5])
- [разработка](https://habr.com/ru/search/?target_type=posts&order=relevance&q=[%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0])
- [советы](https://habr.com/ru/search/?target_type=posts&order=relevance&q=[%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%8B])
- [развитие](https://habr.com/ru/search/?target_type=posts&order=relevance&q=[%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B5])
Хабы:
- [Программирование](https://habr.com/ru/hubs/programming/)
\+168
377
[93](https://habr.com/ru/articles/112017/comments/)
[](https://habr.com/ru/users/andreycha/)
138
Карма
0
Общий рейтинг
Андрей Часовских [@andreycha](https://habr.com/ru/users/andreycha/)
Пользователь
Подписаться
Хабр доступен 24/7 благодаря поддержке друзей

Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать\!
[Перейти](https://career.habr.com/courses/?erid=2VSb5wDLYUH&utm_source=habr&utm_medium=sponsorship_hub)
[Комментарии 93](https://habr.com/ru/articles/112017/comments/)
## Публикации
Лучшие за сутки
Похожие
Показать лучшие за всё время
## Ближайшие события
Ваш аккаунт
- [Войти](https://habr.com/kek/v1/auth/habrahabr/?back=/ru/articles/112017/&hl=ru)
- [Регистрация](https://habr.com/kek/v1/auth/habrahabr-register/?back=/ru/articles/112017/&hl=ru)
Разделы
- [Статьи](https://habr.com/ru/articles/)
- [Новости](https://habr.com/ru/news/)
- [Хабы](https://habr.com/ru/hubs/)
- [Компании](https://habr.com/ru/companies/)
- [Авторы](https://habr.com/ru/users/)
- [Песочница](https://habr.com/ru/sandbox/)
Информация
- [Устройство сайта](https://habr.com/ru/docs/help/)
- [Для авторов](https://habr.com/ru/docs/authors/codex/)
- [Для компаний](https://habr.com/ru/docs/companies/corpblogs/)
- [Документы](https://habr.com/ru/docs/docs/transparency/)
- [Соглашение](https://account.habr.com/info/agreement/?hl=ru_RU)
- [Конфиденциальность](https://account.habr.com/info/confidential/?hl=ru_RU)
Услуги
- [Корпоративный блог](https://company.habr.com/ru/corporate-blogs/)
- [Медийная реклама](https://company.habr.com/ru/advertising/)
- [Нативные проекты](https://company.habr.com/ru/native-special/)
- [Образовательные программы](https://company.habr.com/ru/education-programs/)
- [Стартапам](https://company.habr.com/ru/hello-startup/)
Настройка языка
[Техническая поддержка](https://habr.com/ru/feedback/)
© 2006–2025, [Habr](https://company.habr.com/) |
| Readable Markdown | null |
| Shard | 134 (laksa) |
| Root Hash | 14843476518697139734 |
| Unparsed URL | com,habr!/ru/articles/112017/ s443 |