На бесплатном курсе «Основы программирования» мы стараемся в максимально доступной форме дать новичкам информацию, которая помогла бы им оценить свой интерес к разработке и правильно выбрать направление для развития. Каждый из нас хочет достичь высот в выбранной профессии, и к нам приходят ребята, которые хотят стать не просто программистами, но хорошими / лучшими программистами.
Разбираясь в том что отличает просто программиста от хорошего программиста, мы вспомнили о старой, но интересной статье опубликованной еще в 2011 году, но не потерявшей своей актуальности. Вольный перевод этой статьи мы и представляем вашему вниманию.
Помню, как будто это было вчера. Это был 2000 год, доктор Паргас стоял перед нашим курсом и рассказывал о структурах данных, пока на стену перед нами проецировалась SSH-сессия. Кто-то задал вопрос, и он ответил что-то вроде: «Ну, если вы хотите стать настоящим специалистом, вам стоит начать использовать vi».
Думаю, он улыбался, когда говорил это, и в ретроспективе несколько лукавил, но будучи молодым и восприимчивым, каким я был тогда, я вернулся в общежитие и сразу же взялся за изучение vi. Это был грубый ход, но как только я начал работать с vi, я нашел кучу вещей, которые можно было делать быстрее.
Перенесемся вперед на шесть лет, когда я был очарован TextMate. Я занимался разработкой на Java, и одновременно изучал Rails и работал над проектами на Rails в свободное время. У меня было ощущение, что каждая статья и каждый скринкаст показывал дзен редактирования текста в TextMate. Тот факт, что я был вынужден работать в Eclipse каждый день, приводил меня в ярость. Так что я купил Мак и через десять минут после включения купил TextMate.
Могу честно сказать, что не смена текстового редактора сделала меня как программиста лучше.
Фото espensorvik
Хорошие инструменты не делают вас намного лучше. Инструменты важны. Они замечательны, правда. Но Тайгер Вудс побьет нас всех с набором дешевых клюшек, Месси переиграет каждого из нас даже без обуви, а Рафаэль Надаль скорее всего обыграет любого из нас на теннисном корте с классической ракеткой из 60-х. Черт, да он обыграет меня с веслом вместо ракетки! Умения, знания и опыт, которые вы приобрели — вот важнейшая часть уравнения.
Итак, инструменты не делают программиста. Тогда что делает? Думаю, это зависит от того, над чем вы работаете, с кем вы работаете, но есть и общие качества у людей, которые успешно разрабатывают ПО. Я не уверен, можете ли вы развить в себе эти качества, или они должны быть врожденными, но я точно знаю, что был бы лучше, если бы работал над этими качествами вместо того, чтобы выбирать текстовый редактор.
Лучшие программисты, которых я знал, всегда ставили людей на первое место. Они понимали, что ПО, которое они пишут — для людей, даже если это внутренности сложной системы или протокол, который будут использовать только другие программисты. Они пишут документацию, потому что она важна. Они помогают другим использовать их код. Они готовы поработать побольше и разобраться со сложностями, чтобы помочь людям, использующим их ПО, принять верное решение.
Удивительные программисты до смешного жаждут знаний. Они всегда рассказывают вам что-нибудь новое или интересное. Они много читают, как в сети, так и вне ее, и любят пробовать новые вещи и учиться на собственном опыте. Они никогда не боятся пробовать новые языки или новые платформы.
С опытом написания ПО вы начинаете видеть проблемы, похожие на те, что вы уже видели. Ценный навык — уметь видеть схожесть проблемы и использовать старое решение для новой проблемы, каждый раз улучшая его.
Однако это не значит, что вы можете слепо использовать старое решение просто потому что оно сработало один раз. Вот где нужно использовать умение разбираться в проблеме. Смотрите внимательно, чтобы понять, где можно применять старый подход, а где нет.
Мой брат пошел на курс по Python, и когда я спросил, как ему это понравилось, он сказал мне, что программистом может быть только безумный, и это одна из скучнейших вещей, которыми ему приходилось заниматься. В некотором смысле он был прав. Я общаюсь с компьютерами гораздо больше, чем с людьми.
Мне доставляет удовольствие собирать строчки кода в рабочую программу. Не каждый человек будет в восторге от такого занятия, но лучшие программисты, которых я знаю, любят создавать программы.
Разработка программ — процесс более медленный, чем хотелось бы. Он занимает время. Нужно быть достаточно терпеливым, чтобы механически писать код. Иногда мы, как разработчики, пишем действительно интересный код, но иногда мы вынуждены писать много кода, который писали уже сто раз до этого. Я думаю, что лучшие разработчики продолжают работать, потому что они видят общую картину того, над чем работают, и им нравится сам процесс построения программы часть за частью.
Вот черты, которые я считаю важными для действительно хороших программистов. А что думаете вы насчет того, что важно? Рассказывайте.
Разбираясь в том что отличает просто программиста от хорошего программиста, мы вспомнили о старой, но интересной статье опубликованной еще в 2011 году, но не потерявшей своей актуальности. Вольный перевод этой статьи мы и представляем вашему вниманию.
Помню, как будто это было вчера. Это был 2000 год, доктор Паргас стоял перед нашим курсом и рассказывал о структурах данных, пока на стену перед нами проецировалась SSH-сессия. Кто-то задал вопрос, и он ответил что-то вроде: «Ну, если вы хотите стать настоящим специалистом, вам стоит начать использовать vi».
Думаю, он улыбался, когда говорил это, и в ретроспективе несколько лукавил, но будучи молодым и восприимчивым, каким я был тогда, я вернулся в общежитие и сразу же взялся за изучение vi. Это был грубый ход, но как только я начал работать с vi, я нашел кучу вещей, которые можно было делать быстрее.
Перенесемся вперед на шесть лет, когда я был очарован TextMate. Я занимался разработкой на Java, и одновременно изучал Rails и работал над проектами на Rails в свободное время. У меня было ощущение, что каждая статья и каждый скринкаст показывал дзен редактирования текста в TextMate. Тот факт, что я был вынужден работать в Eclipse каждый день, приводил меня в ярость. Так что я купил Мак и через десять минут после включения купил TextMate.
Могу честно сказать, что не смена текстового редактора сделала меня как программиста лучше.
Фото espensorvik
Хорошие инструменты не делают вас намного лучше. Инструменты важны. Они замечательны, правда. Но Тайгер Вудс побьет нас всех с набором дешевых клюшек, Месси переиграет каждого из нас даже без обуви, а Рафаэль Надаль скорее всего обыграет любого из нас на теннисном корте с классической ракеткой из 60-х. Черт, да он обыграет меня с веслом вместо ракетки! Умения, знания и опыт, которые вы приобрели — вот важнейшая часть уравнения.
Итак, инструменты не делают программиста. Тогда что делает? Думаю, это зависит от того, над чем вы работаете, с кем вы работаете, но есть и общие качества у людей, которые успешно разрабатывают ПО. Я не уверен, можете ли вы развить в себе эти качества, или они должны быть врожденными, но я точно знаю, что был бы лучше, если бы работал над этими качествами вместо того, чтобы выбирать текстовый редактор.
Для людей
Лучшие программисты, которых я знал, всегда ставили людей на первое место. Они понимали, что ПО, которое они пишут — для людей, даже если это внутренности сложной системы или протокол, который будут использовать только другие программисты. Они пишут документацию, потому что она важна. Они помогают другим использовать их код. Они готовы поработать побольше и разобраться со сложностями, чтобы помочь людям, использующим их ПО, принять верное решение.
Аппетит к знаниям
Удивительные программисты до смешного жаждут знаний. Они всегда рассказывают вам что-нибудь новое или интересное. Они много читают, как в сети, так и вне ее, и любят пробовать новые вещи и учиться на собственном опыте. Они никогда не боятся пробовать новые языки или новые платформы.
Умение разобраться в проблеме
С опытом написания ПО вы начинаете видеть проблемы, похожие на те, что вы уже видели. Ценный навык — уметь видеть схожесть проблемы и использовать старое решение для новой проблемы, каждый раз улучшая его.
Однако это не значит, что вы можете слепо использовать старое решение просто потому что оно сработало один раз. Вот где нужно использовать умение разбираться в проблеме. Смотрите внимательно, чтобы понять, где можно применять старый подход, а где нет.
Немного безумия
Мой брат пошел на курс по Python, и когда я спросил, как ему это понравилось, он сказал мне, что программистом может быть только безумный, и это одна из скучнейших вещей, которыми ему приходилось заниматься. В некотором смысле он был прав. Я общаюсь с компьютерами гораздо больше, чем с людьми.
Мне доставляет удовольствие собирать строчки кода в рабочую программу. Не каждый человек будет в восторге от такого занятия, но лучшие программисты, которых я знаю, любят создавать программы.
Настойчивость
Разработка программ — процесс более медленный, чем хотелось бы. Он занимает время. Нужно быть достаточно терпеливым, чтобы механически писать код. Иногда мы, как разработчики, пишем действительно интересный код, но иногда мы вынуждены писать много кода, который писали уже сто раз до этого. Я думаю, что лучшие разработчики продолжают работать, потому что они видят общую картину того, над чем работают, и им нравится сам процесс построения программы часть за частью.
Вот черты, которые я считаю важными для действительно хороших программистов. А что думаете вы насчет того, что важно? Рассказывайте.