Более 10 000 программистов на Twitter поделились своими смертными сожалениями. Многие из них актуальны для начинающих разработчиков.
Незавершенные Проекты
«Мне бы хотелось завершить больше проектов. Но я отношусь к этому философски: если проект не завершен, то нужно ли было его начинать?» Вопрос целесообразности начатых, но незавершенных проектов остается открытым. Сложность и объем работы часто приводят к незавершенности проектов.
Избыточная Сложность Кода
«Когда я начинал, мне казалось, что чем сложнее код, тем круче я. Потом понял, что программирование — это борьба с постоянно нарастающей сложностью системы. Я жалею, что потратил много времени на дешёвые понты. Лучше бы изучал новые технологии или делал полезные программы». Простота и эффективность кода важнее его сложности и запутанности.
Позднее Начало Обучения
Мне бы хотелось научиться программировать раньше. Если начать учить код в 2-3 года, то к 13 годам можно получить шестизначную зарплату». Хотя программирование осваивается в любом возрасте, раннее начало даёт неоспоримое преимущество.
Низкоуровневое Программирование
«Я начал с низкоуровневого программирования. Жалею ли я? Не знаю. Если бы не знал — наверное, жалел бы.» Вопрос необходимости изучения низкоуровневых языков программирования спорен. Некоторые считают это важным для глубокого понимания работы компьютера, другие — лишним для большинства задач. Знание ассемблера, например, может быть интересным, но не всегда полезным навыком.
Избыточные Задачи и Тренировки
«Об избыточном времени, налитом в код… Жалею ли я о решенных олимпиадных задачах? Нет. Это было отличное хобби. Но тратить время на LeetCode и подобные платформы ради улучшения навыков — не всегда эффективно.» Регулярное решение задач на платформах вроде LeetCode может быть увлекательным хобби, но его эффективность для развития профессиональных навыков часто переоценивается.
Нерациональный Выбор Языков
«Я начал с Java и PHP. Если бы мог вернуться, сначала выучил бы C — отличная основа для всего остального. Или нет? Это тренирует какие-то навыки, помогает лучше понимать память, но нужно ли это программисту на PHP или JavaScript?» Выбор первого языка программирования важен, но не определяет дальнейшую карьеру. Изучение C может дать глубокое понимание принципов работы компьютера, но не всегда необходимо для веб-разработки.
Недооценка Временных Затрат
«Есть правило 90/90: когда чувствуешь, что закончил проект на 90%, ещё 90% осталось. Мы сильно ошибаемся в прогнозах проектов, не учитываем сложности.» Недооценка времени, необходимого для завершения проекта, — распространенная проблема. Важно учитывать все возможные сложности и закладывать достаточный запас времени.
Отсутствие Высшего Образования
«Мне жаль, что я не получил степень в области компьютерных наук. Но я не жалею, что не закончил высшее образование. Всё, что хотел, я узнал и доказал сам.» Высшее образование в области компьютерных наук может быть преимуществом, но не является обязательным условием для успешной карьеры программиста. Практический опыт и самообучение также очень важны.
Опыт показывает, что сожаления опытных программистов часто связаны с нерациональным использованием времени, выбором приоритетов и недооценкой сложности проектов. Понимание этих потенциальных ошибок поможет молодым разработчикам избежать аналогичных проблем в будущем.