7 вещей, о которых стоит знать начинающему программисту

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

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

  • Используйте отладчик (устанавливайте места останова, пошагово просматривайте код и наблюдайте за изменением значений переменных)
  • Проводите отладку путем вывода на консоль
  • Пользуйтесь асертами (assertion)
  • Используйте логи (log)
  • Используйте профилирование

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

  • Стратегии для решения основных проблем:
    • Понимание ожидаемого поведения
    • Понять проблему
    • Воспроизведение и проверка проблемы
    • Проверяйте историю изменений для того, чтобы понять почему и когда появилась проблема
    • Описывайте свою проблему кому-либо еще, так как формулируя проблему вы сможете лучше понять её
    • Попробуйте найти первопричину
    • Изолируйте проблему
    • Разбейте проблему на несколько кусков для того, чтобы быстрее справиться с ней

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

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

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

    Git
    SVN
    CVS
    Mercurial
    Bazaar

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

    • Пробуйте искать альтернативные термины
    • Ограничивайте, запрашиваемую информацию (например, за последний год), чтобы избежать устаревшей
    • Ищите информацию на специализированных сайтах (например, StackOverflow, MDN, и т.д.), чтобы избежать неуместных результатов
      • Google – Добавляйте в запрос ключевые слова сайта, например:
        • MDN: сайт:developer.mozilla.org
        • StackOverflow: сайт:stackoverflow.com
        • MDN: !mdn
        • StackOverflow: !so

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

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

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

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

        Стандартные структуры данных

        • Список
        • Массив
        • Стек
        • Хэш-таблица/Словарь
        • Связный список
        • Множество
        • Очередь

        Стандартные примитивные типы:

        • Целые (int, byte, short, long — signed and unsigned)
        • С плавающей точкой (float, double)
        • Строка (string)
        • Символ (character)
        • Boolean
        • Decimal

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

        • Пишите юнит-тесты
        • Проектируйте ваше приложение на нескольких уровнях
        • Используйте различные вспомогательные инструменты (например, ReSharper для C#)
        • Проектируйте ваше приложение на абстракциях и инкапсулируйте
        • Выделяйте и повторно используйте

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

        Если вам требуется писать эффективный код (хотя вы всегда должны писать такой код), то вам следует знать о: