Найти тему
Николай Лазарев

Наблюдения. Неочевиные, но полезные моменты.

Jan 16, 2022

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

  1. Когда пишешь запутанный код, необходимо иметь перед глазами визуальную картинку с алгоритмом. Иначе легко запутаться и потратить гораздо больше времени. Потрать полчаса на картинку - сэкономь несколько часов:) Сначала написать псевдокод на бумаге действительно важно. Авторитетные люди подтверждают.
  2. Наименование переменных должно отражать смысл содержания. Избегать чисел в названии, всё равно потом забудешь смысл.
  3. Избегать вложенных циклов.
  4. Необходимо регулярно пользоваться линтерами.
  5. Потратив несколько минут на скрипт для автоматизации тестирования, в моем случае можно сэкономить в итоге до получаса или больше.
  6. По итогам каждой хорошей задачи или проекта, полезно создавать краткий конспект. Можно будет через некоторое время освежить память.
  7. Полезно проговаривать словами логику, когда кодишь. Можно вслух или про себя, но проговаривать. Это помогает сосредоточиться.
  8. При тестировании всегда учитывать крайние условия. Например, при удалении или добавлении в список значения учесть вариант, что список может быть пустым.
  9. При изучении какой-то новой темы, лучше делать несколько дублирующих конспектов. Первый обязательно в тетради. Когда пишешь, совсем другой эффект в усвоении информации. По крайней мере, у меня так). В электронном виде удобно конспектировать в OneNote. Ну и продублировать краткий конспект в личном блоге на GitHub.
  10. При кодировании, когда уже примерно понимаешь что делать, нужно засекать время кодирования. А в конце написания кода замерять скорость кодирования количество строк корректного кода в час. Это один из главных показателей эффективности, который можно и нужно замерять.
  11. Вероятно, полезно в начале обучения определить для себя (иногда с помощью старших товарищей) несколько дополнительных важных вопросов по теме, которые может и не разбираются на курсе, но по которым можно попытать преподавателя. Такой подход позволит получить от обучения немного больше, а иногда намного больше. Например, при изучении временных рядов, краеугольным вопросом оказалось обоснование параметров модели.

Буду периодически обновлять список своих наблюдений ;)