За эти годы я прочитал много кода от разных людей и понял, что самая важная вещь, которая заставляет разработчиков создавать дрянные решения, — это неспособность подвергнуть сомнению все.

Это не отсутствие интеллекта. Это не отсутствие опыта. Дело даже не в отсутствии дисциплины.

Это ужасный анти-навык не подвергать сомнению вещи, которые вы изучаете подсознательно наряду с обычным обучением.

Видите ли, когда вы начинаете чему-то учиться, почти все знают больше вас и имеют больше опыта. Таким образом, вы склонны предполагать, что у них есть очень веские причины поступать таким образом. Вы берете все, что вам говорят, и сохраняете это в своей памяти, не задумываясь.

Постепенно ваша способность критически оценивать всю поступающую информацию уменьшается, и вы перестаете задавать вопросы.

Вы никогда полностью не преодолеете это чувство низкой самооценки и неполноценности, которое у вас было, когда вы только начали учиться.

Вы не развиваете в себе достаточно высокомерия, которое дает вам смелость игнорировать все, что говорят вам авторитетные лица.

Microsoft сообщила миллионам программистов неправильную венгерскую нотацию, и миллионы слепо последовали за ней.

Это никогда не имело для меня никакого смысла, поэтому я не имел. Примерно через 10 лет Microsoft, наконец, отказалась от него и сказала всем не использовать его, а вместо этого полюбить CamelCase.

Или вы видите это:

function(){
 …
}

вместо этого:

function()
{
 …
}

и вы никогда даже не перестанете спрашивать себя, какой из них имеет больше смысла ...

Чтобы стать великим программистом, вам нужна смелость отвергать все, что не имеет смысла, независимо от того, от кого оно исходит: от Microsoft, Стива Джобса, самого Папы Римского...

Вам нужна смелость, чтобы делать все по-своему и не участвовать в вечном цикле распространения одной и той же чуши вокруг и среди следующего поколения.

Еще я заметил, что люди, которые рано начали изучать программирование, возясь с вещами, а не формальным образованием, как правило, сохраняют способность задавать вопросы.

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

Так что если вы хотите стать лучшим программистом — начните сомневаться во всем. И я имею в виду все! Не бойтесь делать это. Вырасти пару! Сделайте из этого привычку.

И если вы хотите, чтобы ваш ребенок научился программировать — не учите. Дайте ему возможность возиться с вещами без каких-либо авторитетных фигур. И скажи ему, чтобы он задавал вопросы и думал сам, черт возьми!

Это сделает его не только лучшим программистом, но и лучшим человеком.

Слишком многие люди просто идут по жизни с отключенным мозгом, слепо принимая все, что им говорят…