Буквально только сегодня натолкнулся на давнее интервью с Бьерном Страуструпом. Там интервью всё само по себе очень интересно, но вот именно тот момент, о котором я так эмоционально писал совсем недавно, наиболее отчетливо был обозначен в его ответе:
Итак, вопрос: можете ли вы что-то посоветовать начинающим программистам?
Ответ от Бьерна:
Изучайте основы программирования: алгоритмы, архитектуру машин, структуры данных и т.д. Не копируйте слепо подходы и методы из одного приложения в другое.
Вы всегда должны знать, что вы делаете, быть уверенными, что ваша программа работает, и твёрдо знать, почему она работает. Не думайте, что вы можете предсказать, какой будет индустрия программирования через 5 лет и чем именно придётся заниматься вам, поэтому учитесь более общим и полезным приёмам и подходам. Старайтесь писать код, который лучше, код, который больше соответствует вашим принципам программирования.
Работайте так, чтобы программирование в большей степени было профессиональной деятельностью, а не низкоуровневым «хакерством» (программирование – это и ремесло, но не только ремесло). Учитесь на классике в области разработки и с помощью лучших книг, не надо полагаться на «how to» и документацию в онлайне – она недостаточно глубоко затрагивает вопросы программирования.
И интересно, что любителям “по-изучать множество языков” он советует (даже не решусь это переводить, звучит кааак красиво):
Focus. Do something and do it well. Do not try to boil the ocean.
И хотя выражение “boil the ocean” типично для английского, но всё равно – как точно и ёмко выражает суть. Так и хочется дописать – Аминь.