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


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.