Типичная ошибка новичка

Типичные ошибки, которые совершают начинающие водители за рулём

Получение водительского удостоверения вовсе не означает, что вчерашний выпускник автошколы становится асом за рулем. Но пройти этот пусть с минимумом потерь можно, если учесть чужие ошибки.

13 недругов начинающего водителя

Если говорить начистоту, то в автошколах учат не водить, а сдавать экзамены. Отсюда зубрёжка билетов по теории, суть которой сводится к запоминанию правильных ответов, а не понимания конкретных ситуаций на дороге и поиска выхода из них на основании знаний ПДД. Ну а практические занятия зачастую превращаются в дрессировку курсанта на безошибочное выполнение манёвров на площадке, а также детальное изучение улиц и возможных «засадных» мест на тех маршрутах, где инспекторы проверяют успешно сдавших «теорию» и автодром.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

В итоге, преодолев все три стадии экзамена и получив заветные «права», новоиспечённый водитель оказывается в ситуации, когда он в состоянии без особых проблем проехать по знакомым улицам и выполнить заученные упражнения на учебной площадке, но ощущать себя в своей тарелке в реальном трафике могут далеко не все. В идеале осваивать самостоятельное вождение лучше с профессиональным инструктором на переднем пассажирском месте или хотя бы под контролем опытного водителя, но если такой возможности нет, то учится стоит на ошибках других новичков.

Неправильная посадка

Проблемы начинаются ещё на месте, когда начинающий водитель не в состоянии правильно настроить сиденье, руль и зеркала, а ведь всё это сказывается на удобстве управления автомобилем и, следовательно, на безопасности движения. Сидеть нужно не слишком близко к рулю, но и не на удалении от него, развалившись словно в домашнем кресле — обод руля должен «смотреть» в область грудной клетки, запястье правой руки должно лежать на руле, а левая нога при полностью выжатом сцеплении (на машине с автоматической коробкой передач — при выжатом тормозе) должна образовывать в колене небольшой угол. Руль ВСЕГДА необходимо держать ОБЕИМИ руками (представив обод в виде часового циферблата, правая должна быть в районе условных двух часов, а левая — на десяти часах). Зеркала заднего вида стоит настроить так, чтобы линия горизонта проходила примерно в середине, а в самом зеркале отражался краешек кузова вашей машины. 


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Запуск двигателя на передаче

Двигатель, если речь идёт о машине с механической коробкой передач, всегда должен запускаться на нейтрали — в противном случае автомобиль резко дёрнется вперёд и поездка может закончиться ДТП, толком и не начавшись. Возьмите за правило проверять нейтраль и запускать двигатель с выжатым сцеплением. На автомобилях с «автоматом» мотор завести можно только в режиме «паркинг», что гарантирует защиту от неприятных сюрпризов.

Езда на «ручнике»

Типичная ошибка новичка, который может забыть о том, что автомобиль зафиксирован стояночным тормозом — даже горящая предупреждающая лампа на панели приборов не всех останавливает. Случается, что водитель считает, что снял машину с «ручника», но на самом деле он лишь приотпустил его — затянутый на несколько щелчков тормоз надо проверить и убедиться, что он полностью отпущен. 


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Проблемы с разгоном, торможением и переключением передач

Далеко не все, даже получив «права», умеют правильно разгоняться, тормозить и переключать передачи. Связано это в первую очередь с недостатком опыта и отсутствием понимания собственной машины, на которую водитель пересаживается со школьной. Отсюда — слишком ранние смены передач, неоправданно позднее или раннее торможение, езда с невыключенным сцеплением. Решаются эти проблемы просто — с накатом и получением опыта.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Ошибки в контроле дистанции и понимании габаритов

У начинающих водителей нет не только «чувства педали», но и ощущения габаритов и безопасной дистанции. Вот и получается, что новички либо жмутся к обочине, либо едут между полос, а недооценка дистанции и проблемы с реакцией чреваты авариями-«догонялками», когда выпускник автошколы ошибается с началом торможения, недостаточно сильно жмёт на педаль или забывает учитывать погоду и скользкое покрытие. 

Отсутствие опыта езды в конкретную погоду

Из предыдущего пункта вытекает следующий: закончив автошколу летом, новичок не понимает как ведёт себя автомобиль в холода на снеге и льду и наоборот, отъездив курс зимой, на сухом асфальте начинающий водитель также может оказаться в необычных для себя условиях. Это та ситуация, которую лучше осваивать на закрытой площадке, прежде чем выбираться на улицы. 


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Несоблюдение скоростного режима

Здесь речь идёт скорее не о превышении скорости, поскольку новички достаточно трепетно относятся к этому, а к чрезмерно медленной езде, когда начинающий водитель провоцирует заторы. Винить в этом недавнего ученика автошколы сложно — стрессовая ситуация в самостоятельной поездке за рулём вынуждает ехать медленно, пока не будут доведены до автоматизма нужные навыки и не появится способность ехать со скоростью потока.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Незамеченные дорожные знаки

Обычно внимание начинающего водителя целиком сконцентрировано на впереди идущем автомобиле, на органах управления собственной машины, на контроле ситуации вокруг и отслеживании сигналов светофора. А вот дорожные знаки оказываются за пределами поля зрения, что может приводить к сложностям в ситуациях, когда новичок оказывается на нерегулируемом перекрёстке и не понимает, на главной он или на второстепенной дороге.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Контроль дороги только перед собой

С опытом приходит понимание того, что смотреть надо не только на дорогу перед собой, но и по сторонам, периодически пробегаясь взглядом по всем зеркалам заднего вида. Кроме того, смотреть стоит не прямо перед капотом своей машины, а вперёд, чтобы заранее увидеть препятствия на дороге и подготовиться к манёвру или загодя затормозить.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Игнорирование пешеходов

Ещё одна проблема, связанная с чрезмерной концентрацией на процессе управления автомобилем. Водитель всегда должен следить за пешеходами, особенно при приближении к переходу, поскольку далеко не все люди обращают внимание на машины и считают, что водитель им обязан уступать во что бы то ни стало. Вдвойне внимательным надо быть, если у дороги видны дети — они в любой момент могут внезапно броситься под колёса и к этому надо быть готовым.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Внезапное открывание дверей

По окончании поездки новичок не должен спешить открывать двери и выходить из машины — надо выработать привычку у себя и своих пассажиров предварительно оценивать обстановку позади автомобиля. Выходить из салона можно только тогда, когда это безопасно и не создаёт помех едущим — в лучшем случае всё закончится оторванной у вашей машины дверью, а в худшем вы сами рискуете оказаться под колёсами.

Забыть включить/выключить фары

Очень часто начинающие водители, обучение которых в абсолютном большинстве случаев проходит в светлое время суток, с наступлением сумерек забывают включить фары и ездят вслепую, осложняя поездку и себе, и другим водителям. Другая сторона медали — забыть выключить фары по окончании поездки, что чревато разрядом аккумулятора и проблемами с запуском двигателя в следующей поездке.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Оставлять документы в автомобиле

Ещё одна плохая привычка — оставлять документы на машину в самой машине. Конечно, за полный пакет бумаг на автомобиль вам скажут «спасибо» угонщики, а сами вы будете проклинать своё нежелание взять документы с собой, если вашу машину эвакуируют на штрафстоянку и придётся ездить туда-сюда, чтобы выручить её. ВСЕГДА берите документы на автомобиль с собой.

Перечисленные выше ошибки не единственные, которые совершают начинающие водители, но отчаиваться не стоит. Всё приходит с опытом и, освоившись за рулём, вы уже не будете допускать подобных промашек — самое главное для вас не наломать дров, набирая этот самый опыт.

Большинство людей начиная выполнять работу на новой должности совершают одни и те же ошибки. Эта статья о том, как избежать самые распространенные из них, чтобы вы получали больше результатов и удовольствия от работы.

Visotsky Consulting, Business Booster Александр Высоцкий

Любая новая должность означает, что вам что-то придется делать в той области, в которой у вас нет опыта. Например, вы — отличный продавец и пришло время стать руководителем отдела продаж. Вы отлично разбираетесь в работе продавца, в том, как работать с клиентами. Но когда вы принимаете должность руководителя у вас появляются совершенно новые для вас обязанности. Это — управление людьми. Работа руководителя — это целый набор новых обязанностей: нужно будет умело проводить совещания с продавцами, планировать деятельность отдела, ставить задачи и добиваться их исполнения. Поэтому первое, что нужно осознать: любая новая должность — это совершенно новая деятельность, в которой нет опыта и уверенности.

Большинство людей не способны получить большие результаты только потому что боятся начинать с нуля. Они просто боятся выйти из зоны комфорта, из области в которой хорошо разбираются, боятся столкнутся с новыми проблемами и необходимостью играть роль новичка и преодолевать все, что приходится переносить новичку. Но нет другого способа достичь выдающихся результатов, чем постоянный выход за пределы зоны комфорта. Это относится как к одному человеку, так и к компании в целом.

При этом есть вполне определенные сложности, с которыми сталкивается любой человек, осваивающий новую для себя должность. И есть способы, как с этими трудностями справляться. Ниже перечислены самые распространенные из них и рекомендации, как с каждой из них справиться с наименьшими потерями сил и времени.

Постепенность

Любую новую должность необходимо осваивать шаг за шагом. Самая сложная работа состоит из множества составляющих, в любой работе используется множество инструментов. Осваивайте их одни за другим. Попытка сделать все сразу значительно усложняет работу, приводит к замешательству и разочарованиям. Например, если вы принимаете должность руководителя отдела, вы выясните, что у вас появляется много разных обязанностей. Просто составьте небольшой план, и решите, в какой последовательности вы будете осваивать эти обязанности. Начните с чего-то не слишком сложного. Например, научитесь сначала проводить ежедневные совещания с продавцами. Такое совещание предполагает разбор и оценку результатов работы и планирование действий на день или неделю.

Добейтесь, чтобы у вас это получалось. После этого осваивайте следующий инструмент. Не пытайтесь освоить все сразу. Это как кататься на велосипеде — сначала вы просто учитесь сохранять равновесие, катаясь по прямой. Только через некоторое время сможете ловко маневрировать. Если бы вы попытались учиться кататься на велосипеде на лесной тропинке, которая петляет между деревьями, то быстро бы утратили интерес к этому занятию.

Вас игнорируют

Это всегда происходит с человеком, который только начинает осваивать какую-то работу в уже существующей компании. Вы уже три дня в новой должности, но такое ощущение, что никто вообще этого не замечает! Это — совершенно нормально, ведь в компании уже есть сложившийся уклад работы и отношений. Даже если он никогда не был написан на бумаге и даже если никто не может описать, в чем заключаются сложившиеся традиции, он все равно существует. Кто-то осознанно или неосознанно делает работу той должности, на которую вы пришли. У сотрудников есть сложившиеся привычки в отношении того, как решать вопросы.

Поэтому любой человек, который только что принял новую должность фактически не существует для окружающих до тех пор, пока он не начнет играть важную роль в процессах так, чтобы его присутствие заметили и изменили привычные рабочие процессы. Например, вы уже назначены начальником отдела продаж, а продавцы по-прежнему бегают за советами к вышестоящим руководителям, а те по-прежнему отдают им распоряжения напрямую. Неприятное положение, но неизбежное в самом начале деятельности.

Решение этой проблемы не заключается в том, чтобы ломать сложившуюся систему работы. Необходимо последовательно переключать на себя командные и коммуникационные линии. Как можно быстрее необходимо добиться, чтобы о вашем существовании узнали и вы заняли свое место в процессах компании. Чтобы это сделать быстро, необходимо с каждым из тех, с кем вам предстоит взаимодействовать в новой должности, сделать следующее:

  • Шаг №1 Составьте список всех людей, с которыми вам необходимо будет сотрудничать в новой должности. Например, для начальника отдела продаж в этом списке будут в первую очередь его непосредственный руководитель, его подчиненные — продавцы, руководители производственных подразделений и т.д.
  • Шаг №2.Необходимо пообщаться с каждым человеком из списка и донести до него, что сейчас вы будете выполнять эту работу и по определенным вопросам он должен обращаться именно к вам, хотя раньше он это делал по другому. Например, начальнику отдела продаж необходимо пообщаться из продавцами и объяснить им, каков круг обязанностей руководителя и какие вопросы вы будете решать. Будет уместно рассказать о вашем опыте и навыках и о своих планах в этой должности.
  • Шаг №3 Следующее действие — выяснить, что этот человек ожидает от вас в этой должности, а затем предоставить ему это. Нет лучшего способа сделать, чтобы вас признали и начали сотрудничать, чем выполнить то, что ожидается. Например, новый начальник отдела продаж в разговоре с продавцом выясняет, что продавец ожидает от руководителя, что тот добьется, чтобы производство выполняло заказы вовремя. Если вы это сделаете, то получите признание подчиненного и способность на него влиять. А руководитель отделения Распространения (непосредственный руководитель начальника отдела продаж) скорее всего будет ожидать, что начальник отдела продаж даст ему реалистичное планирование объемов продаж.

Выполнение этих действий не имеет ничего общего с действием под названием “новая метла по-новому метет”, когда новый руководитель не разобравшись в ситуации пытается навязать всем окружающим свою волю и очень часто при этом делает глупые ошибки. Вам нужно не порвать все существующие взаимосвязи, а просто шаг за шагом взять их под свой контроль.

Вас обходят

Такое бывает довольно часто — кто-то отдает вашим подчиненным распоряжения и таким образом мешает вам выполнять вашу работу. Этому может быть две разных причины, вам нужно разобраться, с какой из них вы столкнулись и действовать соответственно.

Первая причина — вы еще не взяли что-то под свой контроль. Это означает, что вас обходят просто по привычке. Например, директор компании привык напрямую отдавать распоряжения одному из продавцов в отношении работы с каким-то важным клиентом, с которым существуют особые договоренности. В этом случае вам нужно просто в отношении этого момента выполнить шаги, описанные в предыдущем пункте. То есть напомнить, что это относится теперь к вашим обязанностям, выяснить, каковы эти договоренности и забрать у директора эту работу. Как только он убедится, чтобы вы успешно с этим справляетесь, он перестанет вас обходить в этой области.

Вторая причина — вы с чем-то не справились. Например в области ответственности руководителя отдела продаж возникла какая-то проблема при работе с клиентом. Директор вмешался в эту ситуацию и решил ее. В таком случае необходимо просто выяснить, как и почему он действовал и научиться справляться с такими ситуациями. Если вы осознаете, что вы — новичок в этой работе и не можете знать и уметь все, то сможете добиться, чтобы вам объяснили, как правильно действовать. Фактически это действие в таком случае становится частью ваших обязанностей и освоив его вы навсегда избавитесь от обхода в этом вопросе. Вам нужно собрать и освоить весь успешный опыт, относящийся к вашей новой должности, на это потребуется время.

Перегрузка

Один из способов превратить работу на новой должности в ад — пытаться выполнить невыполнимое. Если вы еще не полностью освоили новую работу, вас даже сложно оценить, сколько требуется времени на выполнение той или иной задачи. Например, неопытный продавец планирует встречи с клиентами и выделяет на каждую из них один час. Так как опыта у него пока еще маловато, он не берет в расчет, что требуется некоторое время на подготовку, на дорогу, на небольшое опаздания клиентов. Поэтому он будет нервничать и провалит выполнение плана. Если бы у него был опыт, он бы запланировал и провел меньше встреч, но при этом выбрал наиболее приоритетные. И результат был бы выше и удовольствия больше.

Советую вам быть очень реалистичным и расчетливым в отношении своего времени, если по вашей оценке времени на все задачи недостаточно, не пытайтесь в план “впихнуть” все. Лучше выберите наиболее важные задачи и выполните именно то, что задумали. Если вы впервые делаете какую-то работу, лучше выделить на нее время с запасом. Если вы завершите раньше — сделаете что-то еще, но как минимум вы выполните запланированное. Надежда не подкрепленная опытом — плохой советчик при планировании.

Компетентность

Когда вы сталкиваетесь с ситуацией и не знаете, как действовать, самое лучшее — обратиться к руководителю или человеку, который раньше успешно выполнял эту работу и попросить его совета. Обычно люди с удовольствием делятся своим опытом и знаниями.

Если вы только начали осваивать новую должность, никто не ожидает от вас, что вы сможете справиться с любой проблемой самостоятельно. Может быть ни у кого нет решения, тогда вам придется применить смекалку и самостоятельно найти решение. Но это — трудный и медленный путь.

В организации людей ценят не за способность делать умный вид, а за способность давать результаты в работе. Так что если есть хоть малейшая возможность научиться, лучше этим воспользоваться.

— Александр Высоцкий

Источник фотографии

Мы собрали перечень некоторых ошибок начинающих агентов и проанализировали их с опытными специалистами. Как и ожидали, в основе длинного перечня лежат одна-две главные причины. Но об этом — позже.

А пока определимся с тем, кого мы называем начинающим агентом. Елена Недоспасова, директор АН «Виват-Риэлти», считает всех, кто проработал меньше года — стажерами: «Средний срок сделки — 2-3 месяца. За год новичок совершит около 4 сделок — это не тот опыт, после которого человека можно считать агентом». После года практики стажер становится молодым агентом. После 3-5 лет (20-30 сделок) агента можно считать опытным.

Сегодняшний клиент предпочитает опытного агента. Однако у стажеров есть свои преимущества. Об этом — тоже позже.

(Не) обязательный набор

1. Предоставление слишком большого объема информации в рамках бесплатного консультирования

Пришел человек, спросил, что его волнует, а ему все-все рассказали. Ну, все-все. И куда пойти, и какими документами запастись, и какие риски могут возникнуть, а как их избежать. Но кто же делится бесплатно своими ноу-хау?

— Это скорее ошибка агента, не стажера, — поясняет Елена Недоспасова. — У стажера большого объема информации просто нет, и потому он на первой встрече ведет себя так, как положено по технологии. Пытаются ошарашить клиента профессиональной информацией агенты, которые не владеют переговорными навыками, не умеют выстроить доверительные отношения с клиентами. И здесь возможны два следствия:

— клиент все выслушал, почувствовал себя увереннее и решил все сделать самостоятельно;

— клиент задавлен объемом полученных сведений и не понимает, сколько стоит услуга риэлтора.

На мой взгляд, стажеры на этом этапе работают более функционально. Ведь какова цель телефонного разговора? Взять контакт и назначить встречу. Какова цель встречи? Заключить договор. Этот алгоритм они знают как 2х2. И на первой встрече продают именно услугу, ведут себя более корректно.

2. Недостаточная информированность

Вдруг всплывет неожиданно, что у унаследованной квартиры есть другие претенденты, что бабушка продавца подписала документы в приступе маразма. Или что соседи-алкоголики не дают спать всему подъезду, а в подвале регулярно прорывает канализацию. Мало знать метраж продаваемой квартиры и ее цену. Желательно выяснить историю объекта и историю семьи клиента (если не до 7-го колена, то хотя бы до 3-го).

— Нужно сразу определиться, идет речь о представителе продавца или покупателя, — говорит Антон Кузнецов, заместитель директора АН «Чекни».

— Если агент представляет покупателя, то доскональную информацию о каждой просматриваемой квартире он знать не может, и по телефону никто ее не откроет. Если агент представляет продавца, то должен быть заключен договор между продавцом и агентством недвижимости. Договор подписывает не новичок, поэтому важные детали в нем учтены и прописаны.

Согласен, что во время первого контакта новичок может задать не все вопросы. Там, где профессионал по паре ответов может составить верное представление о клиенте, недвижимости и специфике сделки, новичку и 10 вопросов не помогут.

Хотя есть некий набор шаблонов, которые даются начинающему агенту при обучении, в реальности у каждого опытного риэлтора есть собственные фишки, свой алгоритм, по которому он ведет беседу.

3. Подождем, пока цена вырастет

Допустим, поначалу квартира продавца вызвала интерес, и у него (и у его агента) появляется желание подождать, пока подрастут цены на рынке. Кажется, что вал звонков и наплыв покупателей будет всегда.

— Это просто неумение обосновать реальную цену продажи, — считает Елена Недоспасова. — Однако риэлтор вправе заключать договоры, если ожидаемая цена на 10-15% превышает цену рынка. Ведь впоследствии можно постепенно ее корректировать в зависимости от реальной ситуации на рынке. Однако поддерживать завышенные ожидания клиентов — непрофессионально. Я считаю, что ни стажер, ни риэлтор не должны создавать у людей ложные иллюзии.

4. Хочет «хрущевку»? Значит, невелика птица

«Денег немного, ориентирован на жилье низкого качества. Где «хрущевка», там и «народная стройка» — агенту все понятно, штамп на человека поставлен.

— Важно понять систему приоритетов, которая есть у клиента, и есть ли она вообще, — разбирает ситуацию Антон Кузнецов. — У кого-то есть четкое понимание, что ему надо, значит, в зависимости от этого и нужно выстраивать общение. Опытный специалист быстро выясняет, знает ли сам клиент, что хочет. Новичок будет действовать шаблонно, и у него вероятность ошибки велика.

Если человек хочет купить 3-комнатную «хрущевку», нужно понимать, зачем она ему нужна. Может, его интересуют конкретные два дома, потому что тут живет его пожилая мама, а новостроек поблизости нет. Если говорит, что накопил 3 миллиона и хочет инвестировать, то возникает вопрос: может, лучше инвестировать во что-то более ликвидное?

5. «Вы хотите квартиру на Мещере? А давайте посмотрим на… Сортировке!»

Часто агенты навязывают потенциальному покупателю не то, что он хочет, а те варианты, которые есть в базе данных. — Цель первого контакта — выяснить потребности и мотивы, которые подтолкнули клиента на рынок недвижимости, — объясняет Елена Недоспасова. — Если агент неправильно понял клиента, он будет предлагать 7 микрорайон вместо улицы Родионова. Хотя опытный риэлтор может выяснить, что в 7 микрорайоне у клиента живут мама и папа. Да, на Родионова ночные клубы, тусовки, друзья и бывшие однокурсники. Но у клиента жена беременная. И суммы, за которую можно купить однокомнатную на Родионова, будет достаточно, чтобы приобрести двушку в 7 микрорайоне. Когда родится ребенок, у него будет своя комната, и мама может прийти понянчиться с внуком.

Опытный риэлтор умеет задавать вопросы и может подвести клиента к принятию оптимального решения, возможно, противоположного тому, что было изначально.

6. «Да вашего миллиона и на «гостинку» не хватит»

Приходит на встречу скромно одетый клиент и заявляет о желании улучшить жилищные условия. А ему сразу «обрубают крылья»: мол, ваши запросы нереальны. Но опыт показывает, что любой клиент всегда сначала рисует идеальную картину. Он просит по максимуму, а денег предлагает поменьше, что по-человечески вполне объяснимо. Риэлтор, работающий не первый год, не торопится с отрицательными выводами. И оценивает не столько слова, сколько уровень мотивации на совершение сделки.

— К тому же по внешнему виду бывает сложно понять, насколько платежеспособен клиент, — комментирует Антон Кузнецов. — Практика показывает, что люди, производящие скромное впечатление, часто оказываются весьма состоятельными. И наоборот, дорого одетый господин просто пускает пыль в глаза, и не может реализовать запросы, о которых изначально заявлял. Если человек говорит: «Подберите квартиру за 5 миллионов», сложно сказать, есть они у него или нет. А выписку из банковского счета заказывать не принято.

7. Вот тут-то мы цену и повысим

Стоит появиться реальному покупателю, как у агента возникает желание повысить цену за квартиру — мол, никуда он теперь не денется.

— «Выкручивание рук» покупателю свойственно не стажерам, а маклерам (подчеркиваю — не риэлторам, а далеким от профессиональной этики маклерам) с большим опытом работы и развитой интуицией, — считает Елена Недоспасова. Когда они понимают, где человек «запал» на квартиру, начинают им манипулировать. Стажеры этим не грешат, потому что на входе в профессию они не сторонники завышения цен, им важно, чтобы сделка состоялась.

Если действительно спрос на квартиру превысил предложение, в цивилизованных агентствах объявляют аукцион. Покупателей извещают о том, когда и как он будет проходить. Все остальное — манипуляции дикого рынка.

8. Слишком большое усердие

Частые звонки, большое количество вопросов, слишком много ненужной информации (о других предложениях, преимуществах фирмы и проч.) способны вызвать раздражение. — Здесь нужно понять, говорим мы об агенте продавца или покупателя, потому что цели будут разные, и подходы тоже, — рассуждает Антон Кузнецов.

— Агент продавца должен задать все вопросы в начале, и в дальнейшем, в процессе поиска покупателей, вопросов много быть не может. Агент покупателя действует по-другому. Конечно, основные вопросы нужно определять в начале пути, чтобы не получилось так, что покупатель хочет одно, у него есть четкая система приоритетов, а агент плохо его понял и начинает бомбардировать совершенно неуместными предложениями. Однако в процессе поиска ситуация может меняться и, естественно, вопросы могут возникать значительно чаще.

Частота общения (звонков) зависит от клиента. Люди бывают разные: кто-то доверился агенту, ему важен конечный результат и совершенно безразлично постоянное общение. А кому-то нужно ежедневное понимание того, как решается его задача. Обычно же агент звонит клиенту приблизительно раз в неделю. Если речь идет о продаже дорогой квартиры, может, и раз в две недели.

9. Неумение слушать клиента

— Это типичная ошибка и начинающих агентов, и даже тех, кто работает не первый год. Клиенту вовсе не нужны знания агента, — заявляет Елена Недоспасова. — Да-да. Ему на самом деле нужно понять пользу, которую может ему принести риэлтор. У каждого психологического типа есть свои ожидания, свое видение профессии риэлтора. Одному важен сервис, другому — безопасность, третьему — юридические услуги. Есть люди деловые и пунктуальные, которые знают, сколько стоит их час. Они обращаются к агенту, чтобы сэкономить время.

Если при первом контакте удается выяснить, на чем необходимо сделать акцент, дальше все пойдет легко.

Три главные ошибки

Все ошибки новичка, по мнению Антона Кузнецова, можно свести к одной. «Типичная ошибка начинающего агента в том, что он не слушает, что ему говорят руководители агентства недвижимости. Стажер похож на человека, который получил права и сел за руль. Через 2-3 месяца начинающий автолюбитель считает, что может уже в «Формуле 1» поучаствовать. Хотя профессиональные водители и гонщики говорят: «У меня 20 лет стажа, и я до сих пор учусь». Даже опытный агент, работающий на рынке 20 лет, может столкнуться с ситуацией, которой еще ни разу у него в процессе работы не встречалось, и известного алгоритма решения проблемы еще нет».

Елена Недоспасова согласна с ним и добавляет, что, по сути дела, на первой встрече от агента требуются всего три навыка:

— выяснить потребности клиента;
— показать, чем он будет полезен клиенту;
— презентовать риэлторскую услуг в широком смысле.

Хорошие стажеры овладевают этими навыками месяца за 2-3 и первые встречи проводят даже лучше, чем профессионалы.

А главные ошибки стажеров также можно свести к трем:

— неумение оценить потребности клиента;
— желание идти на поводу у клиента по поводу завышенной цены на недвижимость и боязнь продать услугу по адекватной цене;
— боязнь своего незнания.

«Лечатся» они опытом, учебой и желанием работать. Важно не стесняться говорить клиенту фразы типа: «Я все узнаю, проконсультируюсь, и мы обсудим этот вопрос», или «это повод для отдельного серьезного разговора».

Три преимущества стажеров

По мнению Елены Недоспасовой, не нужно бояться совершать сделку с участием стажера. Более того, у стажеров есть преимущества перед опытными риэлторами.

1. Они полны энтузиазма. Опытному риэлтору не требуется реклама, к нему приходят по рекомендации. И люди готовы ждать, когда у него появится время, чтобы заняться их делом. Хороший стажер не перегружен работой, он может технологично и энергично подойти к решению проблемы клиента.

2. Они лучше рекламирую объекты, потому что не ленятся заходить в интернет и поднимать объявления клиента на первые позиции.

3. Они лучше анализируют рынок и лучше владеют ситуацией. «Да, у них не хватает других навыков, — соглашается Елена Анатольевна. — Но если стажер работает в компании, где на всех этапах есть наставники, юристы, менеджеры, то клиент может быть совершенно спокоен. Где надо — подстрахуют, что нужно — проверят и обеспечат удачное завершение сделки».

Кстати, мы завели канал в Telegram, где публикуем самые интересные новости о недвижимости и риэлторских технологиях.
Если вы хотите одним из первых читать эти материалы, то подписывайтесь:
t.me/ners_news.

При перепечатке материалов указание автора и активная ссылка на сайт обязательна!

Научитесь выявлять их. Выработайте привычки избегать их.

Цель этой статьи не загнобить новичков за типичные ошибки, а научить выявлять их и избегать. Порядок перечисления – случайный.

От переводчика

Иногда бывает трудно объяснить простыми словами казалось бы банальные вещи: зачем использовать гит, в чем фишка инкапсуляции, зачем писать тесты, как планировать свой код, рефакторить чужой и т.д. Мне показалось, что в этой статье компактно собраны важные «гуманитарные» аспекты программирования. Что-то вроде морального кодекса, ориентира и мотиватора в принятии решений, связанных с написанием кода.

Как бы это смешно не звучало, я работал над этим текстом с середины марта, стараясь подобрать подходящие формулировки и упростить для восприятия. Ещё пару дней воевал с хабра-редактором. Поэтому, если вы найдёте недочёты, прошу не винить меня в нерадении, а оповестить, я их сразу же исправлю. Я думал украсить статью картинками, но решил, что это только раздует её до совсем неприличных размеров. Приятного чтения.

1) Программирование без планирования
2) Чрезмерное планирование
3) Недооценивание важности качества кода
4) Хвататься за первое решение
5) Не отступать
6) Не гуглить
7) Не использовать инкапсуляцию
8) Планирование неизвестного
9) Использование неподходящих структур данных
10) Ухудшать код
11) Комментирование очевидных вещей
12) Не писать тесты
13) Думать, если что-то работает, то это правильно сделано
14) Не подвергать сомнению существующий код
15) Одержимость лучшими практиками
16) Одержимость производительностью
17) Не ориентироваться на конечного пользователя
18) Не подбирать правильные инструменты
19) Непонимание, что проблемы с кодом вызывают проблемы с данными
20) Изобретение колеса
21) Неправильное отношение к инспекции кода (code review)
22) Не использование систем контроля версий
23) Злоупотребление общим состоянием (shared state)
24) Неправильное отношение к ошибкам
25) Не отдыхать

1) Программирование без планирования

Качественный контент не создаётся “на коленке”, а требует основательной работы. Программный код – не исключение.

Хороший код должен проходить через следующие стадии:

Замысел. Исследование. Планирование. Написание. Проверка. Изменение.

Каждому из этих пунктов надо уделить достаточно усилий.

Новички склонны кодить без предварительных раздумий. Это может сработать на маленьких автономных приложениях. Но на крупных может обернуться трагедией.

Прежде чем сказать что-то, вы обдумываете слова, чтобы потом не было стыдно. Точно так же избегайте непродуманного кода, за который однажды будет стыдно. И слова и код – это отображение ваших мыслей.

“Если ты зол, сосчитай до 10, прежде чем говорить. Если очень зол — то до 100”. (Томас Джефферсон)

Для нашего случая это можно перефразировать так:

“Когда проверяешь код, сосчитай до 10 прежде чем переписать 1 строчку. Если для этого кода нет тестов — то до 100”.

Программирование – это на 90% изучение существующего кода и его изменение посредством маленьких, легко тестируемых порций, вписывающихся в общую систему. Само написание кода это всего лишь 10% работы программиста.

Программирование – это не просто написание строк кода, а творчество, основанное на логике, которое надо развивать в себе.

2) Чрезмерное планирование

Планировать прежде чем нырять в написание кода – хорошая вещь. Но даже хорошие вещи могут навредить вам, если переборщить с ними. Даже водой можно отравиться, если слишком много её выпить.

Не ищите идеальный план. Такого не существует в мире программирования. Ищите достаточно хороший план для старта. Любой план изменится, зато он заставит вас придерживаться структуры в коде, которая облегчит вашу дальнейшую работу.

Линейное планирование всей программы “от А до Я” (водопадным методом) – не годится для большинства программных продуктов. Разработка подразумевает обратную связь и вы постоянно будете удалять и добавлять функционал, что никак нельзя учесть в «водопадном планировании». Планировать следует несколько следующих элементов. И каждый новый надо включать в план лишь после гибкой адаптации к реальности (Agile).

К планированию надо подойти очень ответственно, потому что и его недостаток и избыток могут навредить качеству кода. А качеством кода ни в коем случае нельзя рисковать.

3) Недооценивание важности качества кода

Если при написании кода вы можете сосредоточиться только на одной вещи, то это должна быть читабельность. Непонятный нечитабельный код это не просто мусор, а мусор, не подлежащий переработке.

Смотрите на программу как на составные части, общающиеся посредством кода. Плохой код — это плохая коммуникация.

“Пишите свой код так, будто его будет сопровождать агрессивный психопат, знающий, где вы живете”. (Джон Вудс)

Важны даже “мелочи”. Если вы бессистемно используете заглавные буквы и отступы, то у вас нужно отобрать лицензию программиста.

tHIS is
  WAY MORE important
than
         you think

Не используйте длинные строки. Строку длиннее 80 символов очень трудно читать. Используйте специальные инструменты для приведения кода в порядок (ESLint, Prettier для js).

Следите за количеством строк в функциях и файлах. Разделяйте код на мелкие части, понятные и тестируемые. Функция больше 10 строк – слишком длинная.

Не используйте двойное отрицание. Не не не делайте так. Это очень не не плохо.

Давайте переменным осмысленные, информативные, однозначные названия. Не используйте короткие, общие, или опирающиеся на тип, названия.

“В компьютерных науках есть только две по настоящему сложные вещи: инвалидация кэша и именование переменных”. (Фил Карлтон)

Используйте константы с содержательным названием для хранения примитивов. Если вам где-то нужно использовать число 12, сделайте сначала так:

const monthsInYear = 12; 

Не используйте костыли в коде ради экономии времени. Не бегите от проблем, смотрите им в лицо и побеждайте их бескомпромиссно правильным кодом.

Краткий код в большинстве случаев лучше длинного. Но стремление к краткости не должно вредить читабельности. Не используйте замудреные тернарные операторы, чтобы уложиться в одну строчку. Но и не удлиняйте код без особой надобности. Удаление ненужного кода – это лучшее, что вы можете сделать для улучшения любой программы.

“Измерять программирование строками кода, это то же самое, что измерять авиастроительство тоннажем произведенных самолетов”. (Билл Гейтс)

Не чрезмерствуйте с условной логикой. Очень часто то, что хочется написать через условие, можно написать иначе и это улучшит читаемость кода. Не переживайте за оптимизацию, пока это не станет явным. Избегайте в условиях присвоений и стиля Йоды.

4) Хвататься за первое решение

Новички, столкнувшись с проблемой, склонны хвататься за первое попавшееся решение, не подумав о побочных эффектах в перспективе. Хорошие решения, в отличие от первых, появляются тогда, когда вы находите разные решения и подбираете из них самое оптимальное для себя. Если у вас не укладывается в голове, что у проблемы может быть несколько решений, значит вы плохо понимаете саму проблему.

Ваша задача как профессионального программиста, найти не первое попавшееся решение, а самое простое. То есть то, которое наиболее просто реализуется, эффективно работает и легко поддерживается.

“Есть два пути написания программы: 1) сделать её настолько простой, что в ней, очевидно, не будет недостатков; 2) сделать её настолько сложной, что в ней никакие недостатки не будут очевидными”. (Тони Хоар)

5) Не отступать

Другая частая ошибка новичков – не отступать. Даже когда они поняли, что выбранное решение не самое лучшее. Подход “не сдаваться” хорош во многих сферах, но не в программировании. Программистам полезно признавать ошибки раньше и чаще. Как только вы засомневались в решении – отбросьте его и переосмыслите проблему. Не важно, сколько вы уже вложили в этот путь. Системы контроля версий типа Git позволяют создавать ветки и экспериментировать с разными решениями, активно пользуйтесь этим.

Не цепляйтесь за код только потому, что вложили в него много времени и сил. Плохой код должен быть отброшен.

6) Не гуглить

Если вы не пионер на острие новейшей технологии, велика вероятность, что вашу задачу кто-то уже решил. Гуглите, чтобы сэкономить драгоценное время.

Поиск может показать вам проблему с неожиданной стороны. И то, что вы считали решением и хотели реализовать, может оказаться усугублением проблемы. Даже когда кажется, что вы всё знаете для решения, гугл наверняка удивит вас.

Обратная сторона медали – новички любят копировать из гугла всё подряд без особых раздумий. Но даже если код решает вашу проблему, используйте его только когда ясно понимаете каждую его строчку.

Не будьте креативным в понятиях Брета Виктора, который сказал:

“Думать, что ты знаешь, что делаешь – самая опасная мысль креативного человека”.

7) Не использовать инкапсуляцию

Инкапсуляция полезна в общем, не только как часть парадигмы ООП. Не использование инкапсуляции приводит к возникновению трудно поддерживаемых систем.

Каждый элемент приложения должен описываться в одном месте, обычно это один объект. И этот объект предоставляет другим объектам ровно столько из своих данных, сколько нужно. Не из соображений секретности, а чтобы снизить уровень зависимости отдельных частей друг от друга. Это позволяет вам редактировать каждую отдельную часть, не ломая целое.

Логические единицы программы должны быть разделены на классы. Под классами подразумевается любое разделение, будь то класс, функция, модуль или пакет.

У новичков всегда бывает проблема с выделением логических единиц в классы. Если вы видите класс со смутным названием и выполняющий разношерстные операции – перед вами код новичка. Если вы сделали небольшое изменение в коде, и это вызвало по цепочке много других изменений – это ещё один признак новичка.

Если вам нужно создать новый метод, или расширить старый, хорошенько подумайте и прислушайтесь к интуиции. Не делайте это на авось, с мыслью “потом переделаю”. Делайте это прямо сейчас.

Стремитесь к тому, чтобы ваш код имел высокое зацепление и низкую связанность (High Cohesion and Low Coupling). Этот загадочный термин означает, что внутри класса должно быть максимально связей, а между классами – минимально зависимостей.

8) Планирование неизвестного

Когда вы пишете новую строчку кода, порой в голову лезут мысли: “а что если…” И вы начинаете фантазировать о разных новых фичах, которыми можно украсить программу. В большинстве случаев такие мысли вредны и не стоит на них ориентироваться.

Пишите только тот код, который вам нужен сегодня. Не пишите код, который возможно пригодится когда-то потом.

Всегда пишите минимум кода, необходимого сегодня и для конкретной текущей задачи. Конечно, предугадывайте и обрабатывайте экстремальные случаи, но не создавайте экстремальный функционал.

“Рост ради роста — это идеология раковой клетки”. (Эдвард Эбби)

9) Использование неподходящих структур данных

Начинающие программисты обычно уделяют много внимания алгоритмам. Умение подобрать нужный алгоритм и уместно использовать его – это очень хорошо. Но простое их заучивание не много прибавляет к вашему гению программирования.

В то же время заучивание сильных и слабых сторон разных структур данных вашего языка программирования, несомненно, повысит ваше качество как разработчика.

Неуместно использованная структура данных это кричащее предупреждение: “код новичка!”. Вот несколько примеров.

Обычный массив или ассоциативный?

Самая распространённая ошибка – это использование обычных массивов вместо ассоциативных для хранения списка записей.

Обычный массив:

[{id: 1, title: "entry1"}, {id: 2, title:"entry2"}, .... ]

Ассоциативный массив:

{ 1: {id: 1, title: "entry1"}, 2: {id: 2, title:"entry2"}, ....}

Да, вы не ослышались, для хранения списка записей нужно использовать ассоциативные массивы. Под списком записей я подразумеваю такие записи, где присутствует идентификатор. Массивы оправданы для хранения скалярных величин и если планируется активное использование методов, вроде push, pop, shift, unshift, которые обращаются к записям не через ключ, а через порядок в списке.

Дело в том, что поиск внутри ассоциативного массива намного быстрее, чем в обычном. Конечно, это особо актуально для больших коллекций, но лучше держать это в уме и при работе с маленькими.

Стек или рекурсия?

Оптимизировать рекурсии довольно сложная задача, особенно в однопоточной среде. Это усложняется, если рекурсивная функция вызывает себя 2 и более раз.

Но вместо рекурсии можно использовать такую структуру данных как стек. Помещайте вызовы функций в стек и затем извлекайте их, когда подойдёт очередь.

10) Ухудшать код

Представьте, что вам досталась такая бардачная комната. И теперь перед вами стоит задача поставить туда какую-то свою вещь. Многие склонны сразу же сделать это. Задача будет решена за секунды. Но так вы станете соучастниками этого бардака. Правильный подход — это упорядочить ту часть комнаты, куда вы добавляете что-то. Например, если это одежда, то приберитесь в шкафу для одежды, сложите туда всю одежду из комнаты, а потом уже положите свою вещь на отведенное ей место. Всегда улучшайте код хоть немного, но никогда не ухудшайте.

Вот несколько распространенных ошибок, приводящих к беспорядку в коде:

Дублирование

Если вы копипастите код, только чтобы изменить там одну строчку, вы вносите большой беспорядок в него. В аналогии с комнатой, это как будто вы покупаете стулья разной высоты на разные случаи жизни вместо того, чтобы купить один с регулируемым сидением. Держите в голове абстракции и корректируйте их для разных нужд, это упростит код.

Не использование файла конфигурации

В файл конфигурации обязательно надо помещать те величины, которые:
могут меняться в зависимости от окружения
встречаются в разных местах кода
Каждый раз, когда вы вводите в код новую величину, спрашивайте себя: “может быть её поместить в файл конфигурации?” И ответ будет почти всегда “да”.

Лишние условные операторы и временные переменные

Любой if разветвляет логику вашей программы, поэтому их наличие должно быть сведено к минимуму, насколько это возможно без вреда для читабельности. Самое сложное – определить правильный уровень для изменений: будете вы расширять текущий код или вынесете его во внешнюю функцию и вызовете её?

Вот яркий пример ненужного if:

function isOdd(number) {
 if (number % 2 === 1) {
   return true;
 } else {
   return false;
 }
}

Его можно переписать без единого if:

function isOdd(number) {
 return (number % 2 === 1);
};

11) Комментирование очевидных вещей

Большинство комментариев можно заменить названиями переменных и функций. Прежде чем написать комментарий, вспомните об этом.

Например, такой код:

// This function sums only odd numbers in an array
const sum = (val) => {
  return val.reduce((a, b) => {
    if (b % 2 === 1) { // If the current number is odd
      a+=b;            // Add current number to accumulator
    }
    return a;          // The accumulator
  }, 0);
};

Можно заменить таким:

const sumOddValues = (array) => {
  return array.reduce((accumulator, currentNumber) => {
    if (isOdd(currentNumber)) { 
      return accumulator + currentNumber;
    }
    return accumulator;
  }, 0);
};

Но иногда прояснить код можно только комментарием. В таком случае сосредоточьтесь на вопросе: “ЗАЧЕМ нужен этот код”, а не “ЧТО делает этот код”. Вот пример кода, где комментарии только засоряют код:

// create a variable and initialize it to 0
let sum = 0;
// Loop over array
array.forEach(
  // For each number in the array
  (number) => {
    // Add the current number to the sum variable
    sum += number;
  }
);

Не делайте так, если вы программист. А если вы работодатель таких программистов — увольте их прямо сейчас.

12) Не писать тесты

Если вы считаете себя экспертом в программировании, который не нуждается в написании тестов для своего кода, то вы – новичок.

Если вы не пишете тесты, вы всё равно так или иначе тестируете вашу программу вручную. Если это веб-приложение, то вы обновляете страницу и совершаете какие-то действия после каждых нескольких строк кода. Все так делают, в этом нет ничего зазорного. Так делают хотя бы, чтобы понять, как писать автоматический тест. Каждый раз, когда вы проделали что-то вручную, вернитесь в редактор кода и напишите тест, повторяющий эти же действия и ожидающий эти же ответы.

Вы человек и рано или поздно, по мере роста проекта, вы забудете проделать какой-то из прошлых успешных тестов. Пусть компьютер проделает их за вас.

Если можете, создавайте проверки даже прежде самого кода. Разработка через тестирование (test-driven development, TDD) создана не для прикола и хайпа. Она благотворно влияет на то, как вы продумываете, проектируете и реализуете программные элементы.

TDD подходит не каждому программисту, и не каждому проекту, но если вы можете хотя бы частично реализовать его, то обязательно делайте это.

13) Думать, если что-то работает, то это правильно сделано

Взгляните на эту функцию, которая суммирует нечетные числа. Всё ли там правильно?

const sumOddValues = (array) => {
  return array.reduce((accumulator, currentNumber) => {
    if (currentNumber % 2 === 1) { 
      return accumulator + currentNumber;
    }
    return accumulator;
  });
};
 
 
console.assert(
  sumOddValues([1, 2, 3, 4, 5]) === 9
);

Тест проходит. Жизнь прекрасна. Правда?
Проблема этого кода в том, что он не полный. Он корректно работает только для нескольких случаев и наш удачный тест проверяет как раз один из них.

Проблема 1

Нет проверки на пустой ввод. Что случится, если функцию вызвать без аргументов? Выведется ошибка.

TypeError: Cannot read property 'reduce' of undefined.

И это признак плохого кода по двум главным причинам:
Пользователи вашей функции не должны сталкиваться с деталями её реализации.
Сообщение об ошибке не информативно.

Для пользователя функция просто не работает и он не поймет, что делать для исправления ситуации. Было бы намного лучше, если бы ошибка выдавалась в таком виде:

TypeError: Cannot execute function for empty list.

А может вам следует изменить функцию, чтобы она игнорировала пустой ввод и выдавала ответ 0? В любом случае, надо что-то сделать, нельзя оставлять так как было.

Проблема 2

Нет валидации. Что если в функцию передадут вместо массива строку, число или объект? Вот что произойдет:

sumOddValues(42);
TypeError: array.reduce is not a function

Подвох в этой ситуации в том, что array.reduce — это как раз функция. Но так как вы назвали аргумент функции array (массив), то что бы вы не передали ей (в данном примере это 42), будет названо массивом внутри функции. На самом деле ошибка говорит о том, что 42.reduce — это не функция. Не лучше ли сделать вывод ошибки в виде:

ОшибкаТипа: 42 - это не массив, чувак. 

Проблемы 1 и 2 описывают стандартные исключения, которые легко предусмотреть. Но бывают и менее очевидные исключения, с которыми надо быть внимательнее. Например, что произойдёт, если в массиве будут отрицательные числа?

sumOddValues([1, 2, 3, 4, 5, -13]) // => still 9

Следует ли программе воспринимать -13 как нечётное число? Или игнорировать? Или выдать ошибку? Может следует переименовать функцию в “сумма положительных нечётных чисел”? Вы легко выберете нужный вам вариант. Но самое интересное здесь то, что если вы не пишите тесты, документирующие работу вашей функции, то те, кто будут их сопровождать, даже не смогут понять, баг ли это или преднамеренное допущение.

“Это не баг. Это задуманный функционал” — удобная отмазка тех, кто не пишет тестов.

Проблема 3

Не все валидные случаи правильно работают. Забудьте разные каверзные исключения. Эта функция неправильно работает и с вполне обыденным набором переменных.

sumOddValues([2, 1, 3, 4, 5]) // => 11

В данном примере 2 попадёт в сумму, хотя не должна. Это произойдёт потому, что в функцию reduce не передано initialValue, и поэтому в качестве исходного значения будет взят первый элемент массива. Поэтому важно написать тест и для такого случая. Если такого нет, то это ещё один признак кода новичка.

14) Не подвергать сомнению существующий код

Если вы не супер-пупер программист, который всегда работает в одиночку, то рано или поздно в своей жизни вы столкнетесь с тупым кодом. Новички склонны не замечать этого, тем более, если он исправно работает и давно написан.

Самое страшное в этой ситуации, что новичок может подумать, что это хороший код, и будет повторять существующие в нём неправильные подходы.

Иногда код может выглядеть плохо, потому что разработчик был вынужден написать его таким в силу объективных причин. В таком случае уместно оставить комментарии с описанием этих причин.

Новичкам можно посоветовать такое правило: любой недокументированный код, который вы не понимаете — возможно, плохой. Изучайте его. Спрашивайте о нём. Пользуйтесь командой git blame, выдающей автора каждой строки кода.

Если автор далеко или не может вспомнить свой код, изучайте его до тех пор, пока полностью не поймете. Только так вы сможете ответить на вопрос, плохой код перед вами или хороший. Никогда не решайте этого наугад без твёрдых знаний.

15) Одержимость лучшими практиками

Термин “лучшие практики” вредный, он ограничивает вас в исследовании, «ведь уже есть лучшая практика».

“Лучших практик” не бывает. Бывают хорошие практики на сегодняшний день и для этого языка программирования.

Довольно часто то, что вчера считалось “лучшей практикой” сегодня считается плохой практикой. Вы всегда можете найти более лучшую практику, если потратите достаточно времени для этого. Поэтому не парьтесь о “лучших практиках”, а сосредоточьтесь на том, что вы можете сделать хорошо.

Не делайте что-то, потому что где-то прочитали цитату об этом, или увидели как кто-то делает это, или кто-то сказал про это “лучшая практика”. Ставьте всё под сомнение, бросайте вызов всем теориям, знайте все возможные варианты, и принимайте только обоснованные решения.

16) Одержимость производительностью

“Преждевременная оптимизация – это корень всех зол в программировании (или почти всех)”. Дональд Кнут, 1974

Хотя программирование существенно изменилось со времен Дональда Кнута, его совет актуален и в наши дни.

Если не можете измерить предполагаемую “проблему производительности”, то не заморачивайтесь о ней. Если вы оптимизируете код до того, как начали исполнять его, то наверняка потратили это время и усилия зря.

Разумеется, есть очевидные правила оптимизации, которые всегда надо держать в уме при написании кода. Например, в Node.js нельзя заполнять цикл событий и блокировать стек вызовов.

В погоне за вымышленной производительностью вы можете наделать реальные баги в самых неожиданных местах.

17) Не ориентироваться на конечного пользователя

Когда вы добавляете новый функционал в приложение, вы думаете в первую очередь о себе или конечном пользователе? Допустим, надо добавить новый ввод. Проще его прикрепить к уже существующей форме? Или нужно добавить ссылку. Проще всего прикрепить её к уже существующему меню ссылок?

Не будьте таким разработчиком. Будьте профессионалом, который смотрит на приложение глазами пользователя, ощущает его нужды и предугадывает его поведение. Новички думают, как бы проще засунуть новый функционал в уже существующие элементы. А профессионал думает о том, как сделать его удобнее для нахождения и использования.

18) Не подбирать правильные инструменты

У каждого есть набор любимых инструментов. Каждый из них прекрасен для какой-то своей задачи, в то время как для другой он ужасен. Молоток хорош для забивания гвоздя и плох для закручивания самореза. Не используйте молоток потому, что вы любите его или потому, что он самый популярный на Амазоне с рейтингом голосов 5.0.

Ориентироваться на популярность инструмента, а не пригодность для конкретной задачи – признак новичка.

Если вы знаете мало инструментов, то даже “лучший” из вашего списка по факту не обязательно будет таковым. Поэтому надо всегда расширять свой кругозор и быть готовым браться за новые инструменты.

Есть кодеры, которые чувствуют себя комфортно с известным для них набором инструментов и не хотят изучать новые. Это неправильно.

Вы можете построить дом примитивными инструментами из старой кладовки и потратить на это много драгоценного времени. А можете вложиться в новые инструменты и построить дом намного быстрее, качественнее и красивее. Так как инструменты постоянно развиваются и появляются новые, вам надо привыкнуть непрерывно изучать их и использовать.

19) Непонимание, что проблемы с кодом вызывают проблемы с данными

Один из важнейших аспектов программирования — это управление данными. Программа – это интерфейс для добавления, редактирования и удаления записей.

Даже небольшой баг в коде может оказать огромное влияние на данные. Особенно, если валидация делается только на стороне программы с багом. Новички могут сразу не заметить проблему, если ошибка в данных влияет на второстепенный функционал. И эта ошибка будет программно множиться долгое время, прежде чем будет обнаружена.

Что ещё хуже, так это то, что исправление кода без исправления уже созданных кодом данных, может увеличить ошибки в данных вплоть до степени невосстановления.

Как защитить себя от такого? Можно использовать несколько уровней валидации: на фронтенде, бекенде, при передаче и в базе данных (БД). Как минимум, используйте встроенные ограничения в БД.

Хорошо знайте все типы ограничений в БД и используйте их все при создании новых столбцов и таблиц.

NOT NULL накладывает ограничение на столбец, чтобы он не принимал пустые значения. Это обязательно делать, если ваше приложение предполагает существование этой величины.

UNIQUE отслеживает уникальность величины столбца в масштабах всей таблицы. Идеально подходит для хранения логина или почты пользователя.

CHECK проверяет произвольное выражение, например, для процентов нужно проверять вхождение в интервал от 0 до 100.

PRIMARY KEY подразумевает одновременно уникальность и не пустое значение. Каждая таблица базы данных должна иметь такое поле для идентификации записей.

FOREIGN KEY говорит о том, что величины этого столбца содержатся в другой таблице.

Другая проблема новичков – они не умеют мыслить категориями транзакций. Если несколько операций изменяют один и тот же источник данных, от которого все зависят, то они должны быть обёрнуты в транзакцию, которая будет отменена в случае, если одна из операций выдала ошибку.

20) Изобретение колеса

В программировании зачастую полезно переизобретать колёса. Это довольно гибкая и стремительно меняющаяся сфера знаний. Никакая команда не может угнаться за всеми обновлениями и новыми требованиями.

Например, если нам нужно колесо, меняющее скорость вращения в зависимости от времени суток, возможно вместо переделки обычного колеса, есть смысл переосмыслить его и сделать заново. Но если вам нужно колесо для его обычных целей, то, пожалуйста, не переизобретайте его заново. Просто возьмите обычное колесо и используйте.

Иногда бывает сложно выбрать нужное колесо из-за многообразия. Проводите исследование. Пробуйте перед покупкой. Большинство “программных колёс” бесплатны и с открытым кодом. По возможности используйте заготовки с открытым исходным кодом (open source), их легко отлаживать, улучшать, заменять и поддерживать.

В то же время, если вам нужно только колесо, не надо покупать целую машину и прикручивать эту машину к другой машине на место колеса. Не подключайте целую библиотеку ради одной-двух функций. Если вам нужна функция shuffle из библиотеки lodash, импортируйте только её, не надо подключать весь lodash.

21) Неправильное отношение к инспекции кода (code review)

Один из признаков новичков, это восприятие инспекций кода как критицизма. Они не любят их, не ценят и даже боятся.

Это в корне неправильное отношение надо как можно быстрее изменить. Смотрите на каждую инспекцию кода как на ценную возможность обучения. Любите и цените их. Учитесь посредством них. И благодарите делающих замечания.

Надо принять тот факт, что программист – это вечный ученик, а инспекция кода – это одна из форм обучения.

Иногда сам инспектор ошибается и тогда приходит ваш черёд научить его чему-нибудь. Его неправильное замечание могло возникнуть по причине неочевидности вашего кода, тогда, возможно, вам следует доработать его. В любом случае, взаимный обмен знаниями крайне ценен для программистов и окупается многократно.

22) Не использование систем контроля версий (Git)

Новички склонны недооценивать пользу хорошей системы контроля версий/кода, вроде Git.

Обычно её используют, чтобы опубликовать свои изменения кода для других. Но её главное предназначение — это ясность истории. Код будут изучать и история его развития ответит на многие вопросы. Маленькие коммиты с осмысленными заголовками помогут сопровождающим код людям понять, как шаг за шагом образовывалась программа, пока не достигла текущего состояния.

Делайте коммиты часто и подписывайте их однотипно, например глаголом настоящего времени. Сообщения должны быть информативными и краткими. Если вам не хватило пары строчек, это признак того, что вы опоздали с коммитом и его лучше разбить на несколько.

Некоторые пишут в коммите, какие файлы они поменяли. Это лишний шум, потому что информация об измененных файлах и так содержится в самом объекте коммита и её легко извлечь при необходимости. Некоторые команды создают коммиты для изменений каждого отдельного файла и скорее всего это еще один признак слишком большого коммита.

Ещё одно предназначение системы контроля версий – понятность предназначения той или иной вещи. Допустим, вы столкнулись с функцией и вам надо понять её назначение и устройство. Вы можете найти коммит, в котором она появилась, и перед вами возникнет контекст её создания, что прольёт свет на всё остальное, связанное с ней.

Система контроля версий может даже помочь обнаружить баг, а именно, ту строку кода, с добавления которой программа дала сбой. В Гите есть бинарный поиск bisect, обнаруживающий коммит, внёсший баг.

Систему контроля можно использовать в разных целях, даже до того, как изменения кода превратились в официальные коммиты:

  • отслеживание изменений (staging changes)
  • выборочный патч (patching selectively)
  • сброс (resetting)
  • прятание (stashing)
  • перезапись истории (amending)
  • применение (applying)
  • просмотр изменений (diffing)
  • отмена коммитов (reversing)

Изучите все эти возможности, поймите, используйте и цените их. Чем меньше возможностей Git вы знаете, тем больше вы новичок.

23) Злоупотребление общим состоянием (shared state)

И снова это не про сравнение парадигмы функционального программирования с остальными.

Общее состояние является источником многих проблем. По возможности следует избегать его использования или свести к минимуму. Новички зачастую не понимают, что когда они определили переменную, она превращается в общее состояние. Это состояние содержит данные, которые могут быть изменены любыми элементами программы, находящимися в этой же области видимости. И чем больше область видимости, тем шире общее состояние и тем хуже. Старайтесь сохранять состояния в маленьких областях видимости и не давать им вылезать наружу.

Большая проблема общего состояния начинается тогда, когда несколько ресурсов меняют его в рамках одной итерации цикла событий (в событийно ориентированных средах). Возникает состояние гонки (Race conditions). И новички склонны решать эту проблему посредством таймера, особенно при блокировке данных. Это большой красный флаг. Избегайте этого. Ни в коем случае нельзя писать такой код или принимать его.

24) Неправильное отношение к ошибкам

Ошибки – это хорошо. Они говорят вам, что вы на правильном пути и подсказывают как добиться ещё большего прогресса. Опытные программисты любят ошибки, новички – ненавидят.

Если вас раздражают эти маленькие прекрасные сообщения об ошибках – вам надо изменить отношение к ним. Смотрите на них как на помощников, сотрудничайте с ними, опирайтесь на них, поднимаясь к новым высотам.

Некоторые ошибки следует превратить в исключения – запланированные за пользователем ошибки. Некоторые следует оставить как есть и позволить им уронить приложение и закрыть его.

25) Не отдыхать

Ваше тело и мозг нуждаются в отдыхе. Новички склонны увлекаться работой и забывать о перерывах. Обязательно включите в ваш рабочий процесс что-то, напоминающее об отдыхе. Вставайте, прогуливайтесь, думайте о том, какая работа на очереди и как лучше её сделать. Возвращайтесь за компьютер со свежими глазами.

Эту ошибку при планировании инвестиций я наблюдал уже не раз. Новичок приходит на рынок ценных бумаг, делает первые инвестиции. Они оказываются удачными. Например, купив на апрельском снижении рынка акций, уже можно было заработать несколько процентов прибыли менее чем за 1 месяц. И после первого удачного вложения, новичок начинает планировать свою прибыль на каждый месяц.

Вложив, например, 10 тысяч, и сделав из них 11 тысяч за месяц, возникает идея: почему бы в будущем не делать то же самое? Если в апреле я заработал тысячу рублей, это 10% прибыли! А давайте я буду делать стабильно 10% каждый месяц! Тогда вложив 100 тысяч в мае, я буду зарабатывать по 10 тысяч в месяц. Или возьму взаймы тысяч 500, чтобы зарабатывать по 50 тысяч в месяц на инвестициях. На горизонте сразу же вырисовывается сладкая жизнь: нужно вложить немного денег, взяв их из личных сбережений или даже взаймы, затем получать стабильный ежемесячный доход. С мыслью: «я же в этом месяце смог? Смогу и в следующем!»

Есть ли ошибка в расчетах?
Ошибки в расчетах здесь нет: действительно, если 10 тысяч за месяц превратились в 11, то это +10% за месяц. Действительно, если зарабатывать 10% в месяц, то на вложенные 500 тысяч, это будет по 50 тысяч в месяц.

Однако есть ошибка в логике!
Новички мира инвестирования часто ошибочно рассчитывают, что ежемесячно можно получать от рынка ценных бумаг одну и ту же доходность. Но рынок ценных бумаг каждый месяц разный. Это не означает, что принципы заработка меняются (они уже сотню лет примерно одни и те же), это означает, что меняются рыночные циклы. Или может быть так, что в апреле была отличная ситуация, когда можно было купить акции по низкой цене, а в мае такой не будет, и она повторится лишь летом. Или может в мае ваши инвестиции не покажут такой же высокий результат, как в апреле (такое тоже может быть).

Поддается ли инвестирование планированию?
После того, как начинающий инвестор узнаёт, что невозможно предсказать доходность на следующий месяц, может наступить уныние: зачем мне то, что я не могу спланировать? Однако нужно расширить горизонт. В мире инвестирования планировать доходность на месяц — дело бесполезное. А вот планировать на год — вполне возможно.

Опять же, точную годовую доходность спланировать невозможно. Но этого и не нужно, главное — это понимать примерный разброс. Например, в этом году я хочу по консервативному портфелю получить 20-30% годовых, а по агрессивному попробовать заработать 50-80% годовых. Безусловно, и от такого плана могут быть отклонения как в большую, так и в меньшую сторону. Но он даст вам примерное понимание и возможность спланировать свои сбережения.

Резюме. Типичная ошибка, которую новички допускают на рынке инвестиций: получив первую прибыль в несколько процентов, они планируют (или есть такое умное слово: экстраполируют) такую же прибыль и на следующие месяцы. Планирование на месяц не работает, так как в течение месяца могут быть разные события. Не допускайте ошибку «планирования дохода на месяц», планируйте на год. Тогда вы сможете намного точнее подойти к оценке вашего будущего капитала.

Чтобы заниматься бизнесом, необходимо иметь четкий план и быть достаточно дисциплинированным человеком, чтобы ему следовать. Запускать стартап не так просто, как думают многие. На самом деле это достаточно сложный процесс.  

В книге «Бережливый стартап» Эрик Райс так описывает работу в стартапе: «Из своих успехов и неудач я понял, что самое большое значение для бизнеса имеют именно скучные занятия. Успех стартапа — это не следствие удачного совпадения факторов или присутствия в правильном месте в правильное время. Стартап может быть успешен при условии, что предприниматель следует определенному плану, а этому можно научиться и научить».

В часть этого плана входят меры, которые необходимо предпринимать, чтобы избежать наиболее распространенных ошибок. Всего таких ошибок девять.

Как набивают шишки начинающие предприниматели?

1. Тратят недостаточно или слишком много денег

Деньги — главное беспокойство начинающих предпринимателей. Размер инвестиций на открытие бизнеса, как правило, близок к нулю, так что в качестве первоочередных ставятся задачи заработать и сэкономить.

Предприниматели-новички часто придерживаются двух точек зрения: «необходимо тратить деньги, чтобы их заработать» или «надо тратить минимум денег до тех пор, пока компания не начнет прилично зарабатывать».

Оба этих подхода при желании выжать все возможное могут сильно навредить. Тратьте деньги с умом, но не бойтесь инвестировать в хороших сотрудников и качественные продукты. В будущем такие инвестиции обязательно окупятся.

2. Думают, что у них нет прямых конкурентов

Восхищаясь своим продуктом или бизнесом, предприниматели часто забывают о конкурентах. Они думают, что изобрели что-то совершенно новое. Но всегда обязательно найдется тот, у кого уже есть доля в вашей нише. Тщательно изучите рынок, чтобы найти такие компании и понять, чем вы можете выгодно от них отличаться.

3. Принимают решения о найме сотрудников, думая о деньгах

Эта ошибка очень связана с первой, но она настолько важна, что заслуживает отдельного упоминания. Когда с деньгами туго, очень хочется сэкономить на сотрудниках. Однако проблема в том, что, приняв такое решение, в будущем вы заплатите в два раза больше.

Недорогие сотрудники обычно недорогие по определенным причинам: скорее всего, они неопытные, неквалифицированные или ненадежные.

4. Не ставят достижимые цели

Начинающие предприниматели иногда так увлечены своей «большой идеей», что вообще не думают о плане. На самом деле для достижения успеха устанавливать реалистичные цели необходимо.

Устанавливайте одновременно краткосрочные и долгосрочные цели, причем конкретные. Не стоит мечтать: «Я хочу заработать в этом году миллион долларов». Установите обоснованную цель, а затем определите, какие конкретные шаги вам нужно предпринять для ее достижения.  

5. Не думают о маркетинге

«Открою бизнес, и клиенты сами найдут меня». Обычно так рассуждает большинство предпринимателей-новичков, иногда осознанно, иногда нет. Они думают, что их продукты настолько революционны, что можно положиться на бесплатный PR и сарафанное радио.

compass

Экономьте время на поиске потенциальных клиентов. Повышайте эффективность продаж за счет сегментации и анализа B2B-рынка.

Узнать больше

На самом же деле большая часть стартапов очень нуждается в маркетинговых инвестициях. Сюда входят и SEO, и контент-маркетинг, и PR, и реклама. Посмотрите, на какой вид маркетинга тратят деньги ваши конкуренты, и спросите себя, как вы можете соперничать с ними и выгодно от них отличаться.

6. Устанавливают слишком низкие цены

Иметь устойчивую прибыль очень важно для успеха бизнеса. Если вы установите слишком низкие цены, то сильно усложните себе жизнь,  поскольку ваши клиенты не будут в восторге, когда позже вам придется поднять цену на продукт.

Взгляните на свой продукт, на текущие расходы и определите, насколько гибкими можете быть в ценовом вопросе. Сможете ли вы сократить издержки в будущем, если понадобится? Если нет, ориентируйтесь на более высокую ценовую планку уже сейчас.

7. Думают, что могут все сделать сами

Обычно это самая распространенная ошибка — быть уверенным в том, что никто не может сделать что-то лучше вас. Ведь кто лучше вас может знать продукт? Вы единственный, кто по-настоящему увлечен и хочет добиться успеха.

На самом деле это прямой путь к выгоранию, и такой подход может сильно задержать успех. Если у вас есть квалифицированный, опытный консультант или наставник, вы всегда можете получить объективный анализ бизнеса и рынка.

8. Постоянно испытывают страх и задают себе вопрос: «А что если?»

Роберт Ф. Кеннеди как-то сказал: «Только те, кто не боятся большого провала, могут многого достичь». Начинать собственный бизнес страшно, это занятие не для нерешительных. Конечно, страх быть отвергнутым или непонятым — нормальное ощущение. Ненормально позволить страху завладеть вами. 

Признание своих страхов — первый важный шаг, который необходимо сделать. После придет понимание, что через это проходили все.

9. Ставят продукт на первое место, а людей на последнее

Когда вы создаете свой продукт и определяете бизнес-модель, важно ставить потребности клиента на первое место. Многие предприниматели-новички настолько поглощены желанием заработать (и это понятно), что забывают о ключевом факторе успешного бизнеса — довольном, лояльном клиенте, который будет покупать у них постоянно.

Быть начинающим предпринимателем очень непросто, и ошибки в процессе  будут неизбежны. Но это не значит, что обязательно нужно повторять чужие ошибки.  

По материалам Entrepreneur.com

Автор: Джейсон Демерс, основатель и CEO AudienceBloom

Типичные ошибки репетитора-новичка

В каждой профессии карьерный путь труден и нелегок. Только методом проб и ошибок можно узнать, правильно ли ты поступаешь и верные ли решения тебе приходится принимать. Начинающий репетитор каждый раз гадает: «Могу ли я достичь желаемых результатов?», «Как сделать мои занятия эффективными?», «Что действительно подходит моему ученику и как привлечь больше клиентов?». Ответы на эти вопросы не дает ни одна книга – только опыт может подсказать, как быть в той или иной ситуации. Новички часто оступаются и следуют неверным указаниям своей интуиции, что еще больше приводит их к неверным решениям. Мы выявили самые типичные ошибки новичков и дали советы по тому, как их избежать.

1. Начинать с начала

Многие новички полагают, что, если к ним пришел ребенок с большим количеством пробелов в знаниях, то на репетиторских занятиях нужно пройти весь школьный курс от начала и до конца. Повторение азов, безусловно, идея хорошая – ребенку оно идет только на пользу. Однако плохое знание учебного материала не означает, что этих знаний совсем нет. Поэтому обучение с нуля будет лишь отнимать у вас время и силы. А если смотреть на это с позиции клиента, то ситуация складывается для вас совсем неблагоприятная: ребенок будет скучать от того, что ваши занятия дублируют школьные уроки, а родители могут посчитать, что вы их водите за нос. Известны случаи, когда недобросовестные репетиторы за повторением материала попросту вытягивали из своих клиентов деньги. Если вы не хотите прослыть таким репетитором, то советуем все-таки заниматься восполнением только пробелов знаний.

2. Неуверенность

Неуверенность – это слабость. Репетиторство слабых не терпит. Эта работа требует от вас проявления лидерских качеств, а неуверенность в своих силах рано или поздно приводит к провалу. Вместе с этим важно для себя понимать, что ошибаться и не знать – это нормальное явление, особенно в самом начале профессионального пути. Если вы вдруг столкнулись с ситуацией, в которой чего-либо не знаете, то не бойтесь показаться глупыми. Ищите ответ вместе со своим учеником – это самый лучший выход из ситуации.

3. Ко всем одинаковый подход

Обращаясь к репетитору, многие родители ждут того, чего не получил их ребенок в школе – особенного внимания к его проблеме. Индивидуальный подход действительно необходим многим, и в этом-то и кроется мастерство репетитора. Чем больше учеников вы сможете научить по индивидуальной программе, тем выше будет расти ваш профессионализм. И это обязательно отразится на вашей репутации: к внимательному, чуткому и наблюдательному репетитору всегда выстраивается огромная очередь.

4. Вести личные разговоры и обсуждать других педагогов

Распространенная ошибка не только новичков, но и опытных педагогов, – допускать панибратство с учениками на своих занятиях. Конечно, теплые задушевные беседы говорят о доверительных отношениях между педагогом и его подопечным, однако на учебных занятиях они совсем не уместны. Как неуместно и обсуждать школьных учителей. Распространена ситуация, когда ученик может обвинить в некомпетентности и непрофессионализме своего учителя. В этом случае репетитор не должен поддерживать ученика, чтобы не формировать у него неуважительное отношение к старшим.

5. Оказывать давление

Ученики вам могут попадаться разные – способные и не очень. В репетиторской практике часто бывает так, что с первого раза добиться поставленной цели невозможно. Всегда может пойти что-то не так, и, в этом случае важно не терять самообладание и не срываться на вашем подопечном: проявите себя не с лучшей стороны, а результата так и не добьетесь. Сохраняйте спокойствие и набирайтесь терпения. Профессиональное репетиторство – это непросто.

6. Закрывать глаза на пропуски

Вы – начинающий специалист, и вполне вероятно, что деньги нужны вам не меньше, чем желанная репутация и хорошие результаты. Однако что для вас важнее всего? Опыт работы и хорошие отзывы, способные дать вам еще больше профессионализма и еще больше клиентов, или же быстрый и легкий заработок? Мы советуем вам быть дальновидными и особым вниманием отнестись к вашей работе и работе ваших учеников. При частых пропусках надеяться на хороший результат будет просто невозможно. Именно регулярность занятий является залогом успеха в репетиторской подготовке. Поэтому взвесьте все «за» и «против» и определите, чего вы хотите от этой профессии.

Понравилась статья? Поделить с друзьями:
  • Типичная ошибка выжившего
  • Техническая ошибка при пополнении winline
  • Тимвьювер ошибка соединения нет маршрута
  • Тип ячейки excel как изменить
  • Техническая ошибка при переводе qiwi