Ошибки начинающих программистов

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

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

Розовые очки

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

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

Нереальные/неконтролируемые цели

Цель «Стать программистом» — очень большая и серьезная. Типичный «слон». А значит, есть его надо по кусочкам. Эту цель не взять с наскока. Будут дни, когда вы будете впадать в депрессию из-за того, что результатов нет, вы весь день промучились с какой-нибудь задачкой, которую так и не получилось решить. Рассылаете свое резюме джуниор-программиста, а в ответ тишина. В такие моменты очень легко потерять мотивацию, разочароваться, сменить направление деятельности.

Чтобы поддерживать себя в мотивированном состоянии и плодотворно учиться, стоит ставить себе контролируемые цели. Например, учиться программировать каждый день минимум по 2 часа (этого мало, если вы хотите получить быстрый результат, но это гораздо лучше чем три дня по 8 часов, а потом забросить на 2 недели). Можно разбить эти 2 часа на 4 «помидорки» по полчаса в течение дня. (гуглите «техника Помодоро») Еще лучше — если вы распишете, что конкретно будете делать, например заниматься на Хекслете, или по какой-то конкретной книге. В этом случае, если вам удастся придерживаться этого графика, вы 100% будете двигаться вперед.

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

Читайте также
Стать программистом можно и после 35 лет: история успеха студента Хекслета.

Зубрежка функций

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

Типа: Ой, Руби классный. Ой нет, Руби умирает, вот Питон супер, его рекомендовали в какой-то статье которую я краем глаза читал. А пхп так вообще ужас, да и к тому же полумертв. О, так джависты оказывается получают в 5 раз больше других программистов, мне срочно нужна Java! И так далее. Эти попытки разобраться какой язык лучше занимают уйму времени и плодят сотни новых вопросов на тостерах.

Какое занятие может быть еще бесполезнее? Это не выучив даже синтаксиса языка, до посинения читать форумы и пытаться разобраться, что же блин лучше React или Ангуляр.

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

Дети Ютуба

Где брать эти знания? Кроме очевидного -Youtube, Coursera, Stepic, Openedu, курсы Хекслета, стоит начать активно читать книги (бумажные или электронные — разницы нет). Видеокурсы все больше движутся в направлении развлечений, народ хочет зрелищ. (и хлеба в виде больших зарплат). А скучать никто не хочет. Под видео часто можно видеть отзывы типа “Скучно! Монотонно!”. Людей приучают развлекаться, и они постепенно привыкают. А ведь обучение по книге гораздо более эффективно, потому что информация в книге сконцентрирована, а в видео наоборот, размазана, чтобы было подольше да повеселее.

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

Что именно читать? Смотрите здесь, в книжной подборке Хекслета.

А вот отдельная статья про то, как выбирать и эффективно читать технические книги.

Перфекционизм

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

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

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

Спасибо за то, что дочитали до конца и удачи во всех начинаниях!

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

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

  1. Да зачем мне этот английский?
  2. Консервация проблем
  3. Гуглить — это долго: быстрее дёрнуть тимлида
  4. Тесты? Не, не слышал
  5. А давайте комментировать всё!
  6. Забивать на ревью и рефакторинг
  7. Минимум времени на общение с заказчиком
  8. Git — просто странное слово
  9. Игнорировать новые инструменты
  10. Высыпаться? Куда высыпаться?

1. Да зачем мне этот английский?

Начнём с того, что преобладающее большинство языков программирования основаны на английском (ну если только это не 1С). Например знание английского позволит быстро понять, что происходит в этом куске кода:

try:
    1 / 0
except:
    print("You cannot divide by zero!")

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

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

Решились подтянуть английский? Держите нашу подборку бесплатных материалов и книг по английскому языку:

2. Консервация проблем

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

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

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

В обоих случаях поможет следующий подход:

  1. Перед выполнением таска всегда составляйте план решения: так, обращаясь с вопросом, вы заочно продемонстрируете человеку, что готовились, а не просто сидели, сложа руки.
  2. Пробегитесь по документации, потыкайте поиск и Stack Overflow.
  3. Не помогло? Тогда как можно скорее просите более опытного коллегу о помощи. Чем дольше тянете, тем больше вопросов к вашему тайм-менеджменту.

3. Гуглить — это долго: быстрее дёрнуть тимлида

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

Держите мастер-класс для программиста «Как правильно гуглить»:

4. Тесты? Не, не слышал

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

Освойте методологию разработки TDD (test-driven development) — разработка через тестирование, которая основывается на повторении коротких циклов: написание теста, покрывающего изменения, а затем написание самого кода, который это реализовывает. Хотя TDD подходит не любому проекту, понимание и практика лишними не будут.

5. А давайте комментировать всё!

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

Пример так себе названий:

// Эта функция суммирует только нечётные числа в массиве
const sum = (val) => {
  return val.reduce((a, b) => {
    if (b % 2 === 1) { // Если текущее число нечётное,
      a+=b;            // добавляем это число
    }
    return a;          // Возвращаем результат
  }, 0);
};

И вот что будет, если называть переменные нормально:

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

6. Забивать на ревью и рефакторинг

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

Код должен быть вычищен от:

  • дублей;
  • временных переменных;
  • лишних условий;
  • избыточных комментариев.

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

7. Минимум времени на общение с заказчиком

Как же раздражает, когда менеджер проекта просит во всех подробностях расписать план действий по таску, правда? Ведь клиент тратит ваше драгоценное время: достаточно ответить «Yes, of course», и с места в карьер. Правильно?

А вот и нет: это очередная ошибка начинающего разработчика. Ненужные, на первый взгляд, детали сэкономят вам время в ближайшем будущем. Неверно интерпретированный таск заставит вас написать код, который после придётся переделывать. Расписывать заказчику вопросы и план действий — обязательное условие, даже если очень лень, даже если заказчика самого раздражает такая дотошность. Важно докопаться до истины и понять, что вы оба on the same page, а не каждый сам по себе.

8. Git — просто странное слово

Блокнот — вполне подходящая система контроля версий (VCS), пока вы учитесь. Но выход на профессиональный уровень, даже если это Trainee, потребует от вас умения работать в команде. И вот здесь начинается самое интересное.

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

VCS позволяет быстро отыскать баг, время его появления и главного виновника. В Git предусмотрен бинарный поиск bisect, который находит коммит, внёсший баг.

9. Игнорировать новые инструменты

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

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

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

  1. Не оставляйте всё на пятницу и выходные.
  2. Не игнорируйте болезни и берите больничный, даже если«просто простуда».
  3. Не отодвигайте отпуск, если чувствуете, что знатно устали.
  4. ВЫСЫПАЙТЕСЬ!

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

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

Первая ошибка начинающего программиста заключается в отсутствии плана

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

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

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

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

Начинающий программист недооценивает кодстайл

При написании кода важно учитывать его читабельность. Новички пренебрегают пробелами, полноценными и понятными именами переменных, предпочитая не обращать на эти вещи внимания и называть первую переменную “a”, вторую – “b” и т. д. Никогда не недооценивайте важность чистоты кода. В интернете есть множество статей, посвящённых кодстайлу для каждого из ЯП. Наши материалы по общим рекомендациям:

  • 10 принципов хорошего программного кода, который устроит всех
  • 6 простых советов по написанию чистого кода

Всегда думайте, будто парень, который будет поддерживать ваш код, – это жестокий психопат, который знает, где вы живёте.” – Джон Вудс.

Выбирает первое попавшееся решение

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

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

Как сказал Энтони Ричард Хоар, существует два принципа написания ПО:

  1. Первый: написать код настолько просто, что в нём не будет недостатков.
  2. Второй: сделать код настолько сложным, чтобы в нём нельзя было найти недостатки.

Не может бросить код незаконченным

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

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

Пятая ошибка начинающего программиста в том, что он не гуглит

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

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

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

Шестая ошибка начинающего программиста – он использует не подходящие структуры данных

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

Вот два небольших примера:

Использование списков (массивов) вместо хешей (объектов) для управления записями.

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

Неприменение стеков.

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

“Недорефакторинг”

Обычно под словом “рефакторинг” подразумевается улучшение кода для более ясного понимания и оптимизации. Однако не все новички умеют улучшать читабельность своего кода.

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

Пишет комментарии об очевидных вещах

Есть один способ избежать комментариев и сделать код более понятным – заменять комментарии на очевидно заданные элементы.

Вместо следующего кода:

// 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 even
      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;
  }
);

Девятая ошибка начинающего программиста – отсутствие тестов

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

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

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

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

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

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

Начинающие разработчики не ставят себя на место пользователя

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

То, чем заставляют заниматься в школах/ВУЗах, – изобретение колеса

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

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

Отторжение code review

Один из признаков начинающего программиста – восприятие code review как осуждение, критику. Он недоволен этой критикой, не ценит её или даже боится. Это в корне неправильное отношение к ревью. Если вы так себя чувствуйте, убедительно рекомендуем пересмотреть и изменить своё отношение. Смотрите на каждое ревью как на обучение, возможность узнать что-то новое. Самое главное, благодарите своих рецензентов, когда они вас чему-то учат. Большинство из них поделится с вами опытом, который, возможно, упростит вашу деятельность и положительно скажется на продуктивности.

Оригинал

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

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

1. Выбор платформы и языка программирования

1

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

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

Еще один более трудоемкий способ – это ходить на собеседования. Там вы не только сможете понять, нужны ли вы вообще хоть кому-нибудь с тем объемом знаний и навыков, которыми вы обладаете на данный момент. А еще вы поймете, какие требования есть у работодателей.

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

2. Слишком много сомнений

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

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

3. Слишком высокое самомнение

2

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

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

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

4. Не знать английский

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

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

5. Слишком много комментариев

3

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

Но вот что вам не стоит делать, так это оставлять комментарии вроде этого: “score += 5; // добавляет 5”. Это очевидно, и нет нужды еще раз писать об этом в комментарии. Конечно, комментировать каждую линию – это отличное упражнение для вашей первой программы. Но это не то, к чему вы должны привыкать.

6. Не доучиваться до конца

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

7. Учить один язык за другим

4

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

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

8. Пренебрегать дебаггерами

Если вы работаете с такими языками как Java, C# или ActionScript3, то вам стоит пользоваться дебаггером. Он не только облегчит вашу работу, но и обнаружит то, что вы можете не заметить.

9. Не делать бэкапы своей работы

5

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

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

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

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

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

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

Читайте также: 9 полезнейших сайтов для изучения программирования

Читайте также: Уроки по JavaScript для начинающих

Читайте также: 16 полезных уроков по CSS3 для начинающих

Эти ошибки могут стоить Вам позиции джуна. Что за ошибки и как их избежать?

1 Слишком много вопросов

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

2 Вопросов слишком мало

Некоторые вопросы невозможно решить самостоятельно, например, касаемо логики конкретного проекта. Лучше спросить, чем сидеть полдня за минутной задачей. Если Вы 1,5-2 часа просидели над задачей и всё ещё находитесь в тупике – точно задавайте вопрос. Старайтесь подходить к тимлиду или другому коллеге сразу со списком того, что у Вас не получилось, что сэкономить и его/её, и Ваше время.

3 Не проговаривать риски

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

4 Неосознанность

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

5 Не сделана домашняя работа

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

6 Зацикленность на технологиях, а не на проекте

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

7 Нет понимания бизнес-логики

Как код попадает на продакшн / тестируется / деплоится. Бизнес процессы позволяют увидеть big picture и посмотреть на проект со стороны заказчика. Так Вы будете более осознанным, эффективным и незаменимым сотрудником..

Помните: совершать ошибки абсолютно нормально. Это нужно принять, набраться опыта и совершенствоваться.

С какими ещё ошибками Вы встречались?

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

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

1. Комплекс «я сам»

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

Фото: «Росатом»

Фото: «Росатом»

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

2. Программирование без планирования

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

В крупных фирмах, в качестве примера возьмем «Росатом» (о работе в котором в сфере IT можно прочитать на Cybersport.ru), так не будет — в госкорпорации умеют ставить четкие задачи. Хотя «Росатом» включает в себя множество компаний (более 300), все они имеют конкретную цель или целостный проект в реализации, над которым работают на результат, а не ради написания кода.

3. Туннельное развитие в неподходящей сфере

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

«Я всем советую определиться с тем, чего вы хотите. Это будет сложно — ошибетесь, и бог с ним, потом измените. У меня есть друг, который за три месяца прошел длинный путь: сначала стал делать игры, потом понял, что там одна математика, и передумал — пошел делать приложения под Android. А в итоге вообще занимается 1C. Пока не попробуешь — не узнаешь, что тебе подходит больше».

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

4. Игнорирование иностранных языков

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

Фото: «Росатом»

Фото: «Росатом»

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

5. Написание кода на количество, а не качество

Сделать работу побыстрее и валять дурака всё остальное время? Звучит нереалистично, так как сценарий работы над кодом в последние часы перед дедлайном случается куда чаще. Избежать можно и того, и другого варианта, если кодить как мыслитель, а не машинист.

«Бывает, что проходит рабочий день и ты написал очень мало кода, потому что большую часть времени необходимо было больше думать. Многие считают, что программист — котик на видео, который постоянно по клавиатуре бьет [смеется]. Нет, программист — это больше, чем человек, который просто набирает код. Это продумывание некой архитектуры приложения: как будет удобнее, как лучше сделать, потому что от этого зависит дальнейшая жизнь программного продукта».

В хороших IT-компаниях практически невозможно услышать фразу: «Посмотри, как много кода я написал». Таким грешат только новички. Отказывайтесь от измерения длины кода раз и навсегда.

6. Невнимательное изучение технического задания

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

Фото: «Росатом»

Фото: «Росатом»

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

7. Отсутствие pet-проектов

Pet-проекты — это тот самый «кодинг для души». Ваша тайна (впрочем, ее можно разделить с близкими друзьями), любовь и совсем необязательно что-то цельное и понятное абсолютному большинству. Вы можете делать мини-игру с шутками, понятными только вам, кодить проект «умного дома» для мамы или бабушки, создавать собственное приложение по уходу за котом… В общем, лучше всего, если pet-проект будет как-то дергать ваши душевные струны, иначе заморачиваться с «работой в свободное от работы время» не стоит.

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

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

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

Фото: «Росатом»

Фото: «Росатом»

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

9. «Комплекс бога»

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

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

10. Зацикленность на работе

Многие программисты не умеют отдыхать. Размеренное написание кода подводит к дедлайнам, проекты сдаются, и начинаются новые — кодеры плывут по реке рабочих задач и не позволяют себе расслабиться. Многие программисты, официально работающие в крупных компаниях, не реализуют положенный по трудовому законодательству отпуск. И это реальная проблема. Многие крупные корпорации, в том числе «Яндекс», Google и «Росатом», стараются обеспечить сотрудникам смену деятельности даже вне официального отпуска. 

«Все думают: “Госкорпорация, уныние”. Но у меня тут есть возможность ходить в беговой клуб, заниматься в центре Москвы в открытом бассейне “Чайка”, заниматься парусным спортом, ходить на единоборства. Я могу написать список конференций и курсов, которые я хочу пройти в 2022 году, и все это мне предоставится бесплатно! Вот такие плюшки у нас имеются».

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

Понравилась статья? Поделить с друзьями:
  • Ошибки начинающих писателей фанфиков
  • Ошибки начинающих мотоциклистов
  • Ошибки наблюдения характерны для наблюдений
  • Ошибки на приборной панели вольво fh12
  • Ошибки на приборке опель мокка