7 вещей, о которых стоит знать начинающему программисту
Здесь вы найдете несколько вещей, которые вы, возможно, еще не знаете, но, как разработчику, вам будет полезно их изучить, ведь это основы любого программиста.
1. Отладка, нахождение ошибок
Давайте начнем с того, что вам придется провести большое количество времени в поиске ошибок в коде, поэтому надо хорошо разобраться в этом. Приведем несколько стратегий по нахождению и анализу проблем:
- Используйте отладчик (устанавливайте места останова, пошагово просматривайте код и наблюдайте за изменением значений переменных)
- Проводите отладку путем вывода на консоль
- Пользуйтесь асертами (assertion)
- Используйте логи (log)
- Используйте профилирование
Также приведем несколько стратегий, которые помогут решить ваши проблемы:
- Стратегии для решения основных проблем:
- Понимание ожидаемого поведения
- Понять проблему
- Воспроизведение и проверка проблемы
- Проверяйте историю изменений для того, чтобы понять почему и когда появилась проблема
- Описывайте свою проблему кому-либо еще, так как формулируя проблему вы сможете лучше понять её
- Стратегии для решения сложных/больших проблем
- Попробуйте найти первопричину
- Изолируйте проблему
- Разбейте проблему на несколько кусков для того, чтобы быстрее справиться с ней
2. Система контроля версий
На сегодняшний день контроль версий — это просто необходимость, но к сожалению, как и что это многие не знают. Система контроля версий поможет вам контролировать изменения в вашем коде. Приведем несколько причин почему нужно пользоваться контролем версий:
- Очень простое взаимодействие
- Упрощает понимание того, что вы делаете, для чего и зачем
- Позволяет вернуть изменения, которые вы не хотите сохранять
- Позволяет управлять несколькими версиями программного обеспечения
- Вы можете видеть разницу между двумя версиями
- Позволяет параллельно разрабатывать новые фичи
- Возможность делать бэкап
Список часто используемых, бесплатных систем контроля версий:
Git
SVN
CVS
Mercurial
Bazaar
3. Ищем ответы
Самообучение и обучение в целом – это одна из главных составляющих становления разработчика, и вы потратите огромное количество времени на поиски информации и решений в Интернете. Приведем несколько стратегий, которые могут помочь вам:
- Пробуйте искать альтернативные термины
- Ограничивайте, запрашиваемую информацию (например, за последний год), чтобы избежать устаревшей
- Ищите информацию на специализированных сайтах (например, StackOverflow, MDN, и т.д.), чтобы избежать неуместных результатов
- Google – Добавляйте в запрос ключевые слова сайта, например:
- MDN: сайт:developer.mozilla.org
- StackOverflow: сайт:stackoverflow.com
- DuckDuckGo – Используйте в запросах разговорный синтаксис, например:
- MDN: !mdn
- StackOverflow: !so
- Google – Добавляйте в запрос ключевые слова сайта, например:
После того, как вы нашли, интересующую вас информацию, убедитесь, что вы тщательно изучили её. Также хорошей практикой является тестирование того, что вы ищите, то есть по мере поисков откройте свою среду разработки и попробуйте запустить найденный код, понять его и протестировать.
4. Взаимодействие, командная работа
Взаимодействие не является сильной чертой программистов, но для любого разработчика, который хочется добиться успеха это обязательно, также это цениться при командной работе.
5. Стандартные структуры данных и примитивные типы
Возможно в школе вы что-то читали структурах данных и примитивных типах, но готов поспорить, что вы не понимаете насколько они, по-настоящему, важны.
Здесь вы можете увидеть лишь несколько из них, убедитесь в том, что вы хорошо знаете для чего и в каких случаях используется каждая:
Стандартные структуры данных
- Список
- Массив
- Стек
- Хэш-таблица/Словарь
- Связный список
- Множество
- Очередь
Стандартные примитивные типы:
- Целые (int, byte, short, long - signed and unsigned)
- С плавающей точкой (float, double)
- Строка (string)
- Символ (character)
- Boolean
- Decimal
6. Как проводить рефакторинг кода
В школе вы могли научиться писать код, но рефакторинг (реструктуризация существующего кода, без изменения его внешнего поведения) является очень важной составляющей. Со временем ваш код может стать неэффективным, багованым, сложным для расширения и управления, и переписав его вы можете добиться большого успеха. Приведем несколько стратегий, которые помогут вам проводить рефакторинг вашего кода:
- Пишите юнит-тесты
- Проектируйте ваше приложение на нескольких уровнях
- Используйте различные вспомогательные инструменты (например, ReSharper для C#)
- Проектируйте ваше приложение на абстракциях и инкапсулируйте
- Выделяйте и повторно используйте
7. Базовое понимание того, как работают программы и компьютер
Чистое образование в области веб-разработки, могут не дать понимания того, как на самом деле работают программы и компьютер. Но нужно ли мне, веб-разработчику, знать, как все работает на низком уровне? И я бы сказал да, даже если вы просто пишите на JavaScript, ваш код все равно запускается на ВМ и компилируется в машинный код.
Если вам требуется писать эффективный код (хотя вы всегда должны писать такой код), то вам следует знать о:
- Управлении памятью
- I/O
- Стеке и куче
- Компиляции, интерпретации, байт коде, ВМ, IL и так далее
Ссылка на оригинальную статью
Перевод: Александр Давыдов