Овладение языком программирования без программирования?

9

Ученый-компьютерщик Питер Норвиг в своем эссе « Научи себя программировать за 10 лет» утверждал, что тебе нужно около 10 000 часов практики.

Но Джефф Этвуд в своем посте « Как стать лучшим программистом, не программируя», утверждал, что он считает, что единственный способ стать лучшим программистом - это не программирование.

Эти статьи находятся в оппозиции. Существуют ли научные доказательства, подтверждающие подход Джеффа Этвуда?

bywronski
источник
12
Я не вижу, как они вообще противоречат, когда смотрят мимо названий. Оба важны, но на самом деле программирование, а также работа на непрограммистских навыках, используемых на работе. Никто не говорит, что вы не должны делать другого. Каждый из них говорит, что одна вещь важна в дополнение к другой.
Обслуживание
2
Давайте переместим мета-комментарии в мета, пожалуйста. meta.programmers.stackexchange.com/q/6137/53019

Ответы:

28

Вы упускаете суть.

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

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

-- Билл Гейтс

Смысл Питера Норвига в том, что вы не можете просто взять копию «Станьте главным программистом за 24 часа» и ожидать, что это сработает. Но именно столько людей, которые задают вопросы в Stack Overflow, похоже, подходят к программированию. Они думают, что могут загрузить Eclipse, выучить несколько ключевых слов и написать следующие Angry Birds. Это займет немного больше, чем это.

Роберт Харви
источник
5
Нет, злые птицы, вероятно, похожи на 2 или 3 ключевых слова, повторяемые до тошноты со смешными фотографиями птиц. Ага. Это база данных для орнитологов, верно?
Джимми Хоффа
Хорошо, но в определенном смысле точка зрения Питера Норвинга относится к факту «овладения» незнанием поверхностного (это центральная точка его статьи) языка программирования. На самом деле Питер и Джефф Этвуд называют себя «хозяином». Точно так же, как вы описываете позу Джеффа Этвуда, я описываю, что Питер Норвинг говорит, что для того, чтобы стать отличным программистом, требуется много программирования (с неявными темами обучения) и практики.
Bywronski
2
@Wronski: Ах, ты вернулся, я вижу! Рад видеть тебя снова. Пока тебя не было, мы обсуждали твой вопрос, закрывали его и снова открывали. Во всяком случае, так что именно вы говорите? Суть Питера Норвинга в том, что вы не можете быть мастером за 24 часа или даже 21 день. Дело Джеффа Этвуда в том, что вы не можете быть мастером, только написав код. Они оба правы.
Роберт Харви
@RobertHarvey Зачем закрывать и открывать? Должен ли я интерпретировать статью Питера Норвинга как нечто «хорошее», а статью Джеффа Этвуда как «инженер»? Я немного запутался.
Bywronski
1
@Wronski: Мастера - и хорошие программисты, и хорошие инженеры.
Роберт Харви
10

Часть «Не программирование» должна появиться после большой практики программирования.

the only way to become a better programmer is by not programming

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

ОБНОВИТЬ:

Как предлагается в комментариях, вы все еще можете извлечь выгоду из «не программирования ака: (думая)» при первом запуске в качестве программиста, но я бы не отошел от клавиатуры только потому, что кто-то говорит, что я должен делать это, чтобы стать лучше, скорее Вы должны сделать это, потому что знаете, что вам нужно больше думать об этом.

Корей Хинтон
источник
2
Может быть. Но дизайнерские навыки не так уж далеко, даже когда начинаете; и навыки людей ценны, независимо от ваших навыков кодирования.
Роберт Харви
@RobertHarvey Да, но статья Джеффа Этвуда, похоже, больше посвящена решению проблем и отходу от компьютера, чтобы подумать о том, что вы программируете.
Корей Хинтон
2
@KoreyHinton Что-то, что было бы вполне уместно для кого-то, чтобы решить свою самую первую проблему программирования. Вы можете и должны делать это с первого дня, а не после того, как вы уже овладели навыком, это то, что говорит Роберт.
Обслуживание
1
@KoreyHinton Именно поэтому никто (ни статья, ни кто-либо из людей, отвечающих здесь) не говорят, что вы должны делать только одно или другое. Они говорят, что важно делать много обоих, потому что навыки дополняют друг друга.
Обслуживание
1
@Wronski Я думаю, что Роберт доказывает противоположную точку зрения, что непрограммистские навыки могут быть изучены при первом изучении программирования. Я также согласен с этим, но я рад, что лично я не слишком усложнил учебный процесс в начале. Я сосредоточился на том, что вы упомянули, что сначала у вас есть навыки программирования, а потом - навыки мышления, и теперь я постоянно стремлюсь улучшить оба.
Корей Хинтон