Оволодіння мовою програмування не програмуванням?


9

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

Але Джефф Етвуд у своєму дописі стверджував, як стати кращим програмістом, не програмуючи, що він вважає, що єдиний спосіб стати кращим програмістом - це не програмування.

Ці статті протистоїть. Чи є наукові докази, які підтверджують підхід Джеффа Етвуда?


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 Я думаю, що Роберт доводить протилежний момент, що навички непрограмування можна засвоїти під час першого навчання програмуванню. Я погоджуюся і з цим, але радий, що особисто я не надто ускладнював навчальний процес. Моя увага була подібно до того, що ви згадали про пріоритетність навичок програмування, по-перше, навичок мислення по-друге, і зараз я постійно прагну вдосконалити обидва.
Корей Хінтон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.