Jan 16, 2022
Эти правила, я пишу для себя. С учётом моих возможностей и индивидуальных особенностей. Никому ничего не доказываю, и не навязываю. На авторство не претендую. Записываю, чтобы не забыть!
- Когда пишешь запутанный код, необходимо иметь перед глазами визуальную картинку с алгоритмом. Иначе легко запутаться и потратить гораздо больше времени. Потрать полчаса на картинку - сэкономь несколько часов:) Сначала написать псевдокод на бумаге действительно важно. Авторитетные люди подтверждают.
- Наименование переменных должно отражать смысл содержания. Избегать чисел в названии, всё равно потом забудешь смысл.
- Избегать вложенных циклов.
- Необходимо регулярно пользоваться линтерами.
- Потратив несколько минут на скрипт для автоматизации тестирования, в моем случае можно сэкономить в итоге до получаса или больше.
- По итогам каждой хорошей задачи или проекта, полезно создавать краткий конспект. Можно будет через некоторое время освежить память.
- Полезно проговаривать словами логику, когда кодишь. Можно вслух или про себя, но проговаривать. Это помогает сосредоточиться.
- При тестировании всегда учитывать крайние условия. Например, при удалении или добавлении в список значения учесть вариант, что список может быть пустым.
- При изучении какой-то новой темы, лучше делать несколько дублирующих конспектов. Первый обязательно в тетради. Когда пишешь, совсем другой эффект в усвоении информации. По крайней мере, у меня так). В электронном виде удобно конспектировать в OneNote. Ну и продублировать краткий конспект в личном блоге на GitHub.
- При кодировании, когда уже примерно понимаешь что делать, нужно засекать время кодирования. А в конце написания кода замерять скорость кодирования количество строк корректного кода в час. Это один из главных показателей эффективности, который можно и нужно замерять.
- Вероятно, полезно в начале обучения определить для себя (иногда с помощью старших товарищей) несколько дополнительных важных вопросов по теме, которые может и не разбираются на курсе, но по которым можно попытать преподавателя. Такой подход позволит получить от обучения немного больше, а иногда намного больше. Например, при изучении временных рядов, краеугольным вопросом оказалось обоснование параметров модели.
Буду периодически обновлять список своих наблюдений ;)