Чи можете витратити час на Programmers.SE або Stack Overflow заміною хороших книг програмування для початківців? [зачинено]


44

Можливо, витратити час (і брати активну участь) на Programmers.SE та переповнення стека допоможе мені покращити свої навички програмування, ближче до того, що допоможе витратити час на читання книги на зразок Code Complete 2 (що в іншому випадку буде наступним у моєму списку читання).

Гаразд, може бути відповіддю на це запитання для того, хто починає програмування, може бути прямим "ні", але я хотів би додати, що це запитання я задаю в контексті, коли людина знайома з мовами програмування, але хоче вдосконалити його навички програмування. Я читав це питання на ЗО, а також цю книгу рекомендували багато інших (включаючи Джеффа та Джоела ).

Щоб бути більш конкретним, я також додам, що, хоча я програмую на C, Java, Python тощо, але все ще не задоволений своїми навичками кодування та читанням огляду CC2, я зрозумів, що мені все ще потрібно багато вдосконалити .

Отже, я в основному хочу знати, який найкращий спосіб для мене вдосконалити навички програмування - витрачати більше часу на тут / SO або продовжувати CC2 і, можливо, приїжджати сюди як і коли дозволяє час.


1
Можливий дублікат / пов’язане з цим: Переповнення стека як спосіб дізнатися нові речі

1
Це, безумовно, непосильне для початківця програміста.
surfasb

Відповіді:


102

Ні, це не заміна, а досконале доповнення . Я відчуваю, що їх поєднання тримає багато сил.

Чому гарна лекція вчить вас більше, ніж просто читати книгу? Взаємодія та вміння задавати питання.

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


+1 для ідеального доповнення. Я можу лише уявити собі, якими були б вісімдесяті роки для мене, якби оточували SE чи SO вони великі ресурси.
Майкл Райлі - AKA Gunny

1
+1 як ідеальний комплімент за ідеальне доповнення. Просто читати "реальні" запитання та намагатися відповісти (чи дублювати рішення існуючих відповідей) - це чудові міні-ката для підвищення майстерності, знань та інтуїції
Дейв Ньютон

Якщо що-небудь, можливість висловлювати проблеми та рішення на легко зрозумілому та доступному каналі покращує вашу здатність розробника, крім покращення ваших навичок спілкування.
surfasb

+1 (знову) за ідеальний комплімент. Я читаю P.SE щодня. Я не завжди читаю всі відповіді, але я читаю більшість питань та найвищі відповіді. Це чудовий спосіб задуматися над речами у цій галузі, до яких ви інакше не могли б зіткнутися. Іноді я бачу щось у запитанні і відповіді не безпосередньо на те, що я роблю, що в кінцевому підсумку є і корисним, що приємно.
Енді Хант

12

Я (на даний момент) був членом StackOverflow протягом 1 року та 10 місяців. За цей час я став дисциплінованим студентом мистецтва: пізнавачем архітектури, зразків, роз'єднанням, тестуванням одиниць і списком міг би продовжуватися ... але яку роль відіграв ТАК ???

По-перше, він відповів на мої найближчі запитання. Але коли я почав досліджувати SO, я виявив, що я дуже поганий програміст. Бажаючи бути майстром у своєму ремеслі, я купував книги ... але це не було C # Unleashed, Learn C # програмування чи інший нестандартний текст для початківців, який мені потрібен. Я купив потрібний вид книг, де націлені на майстерність сфери майстерності були недостатніми. Звичайно, я зайняв час, щоб побачити, що рекомендують фахівці з ТА.

По-друге, ТА надав мені місця продовжувати навчання у тих, хто (представлений репутацією) справді знає, що робить - синтаксично та філософсько. Існує певна інформація про SO, CodeReview і програмістів, яку ви просто не можете отримати з книги.

Очевидно, що SO не може замінити книги чи всі інші веб-ресурси (хоча, якби я міг поєднати MSDN та SO в єдиний контент-ресурс ...); натомість SO доповнює ці інші ресурси. Найкращим викладачем, однак, залишається досвід .


11

Який найкращий спосіб для мене вдосконалити навички програмування?

Програмування більше. Читання книг та веб-сторінок є другорядним.

Ти найкраще вчишся, роблячи.


17
Так і ні. Робити більше можна, не навчаючись більше. Я міг програмувати на певній мові рік за роком і нічого нового не вивчати. Читання та школа навчає вас виходити за межі своєї "зони комфорту". Недостатньо для голосування, але все ж не гарний коментар imo.
WernerCD

1
Правда, я багато програмував, не навчаючись. Тому я робив веб-сайти в PHP, не знаючи об'єктів і не використовуючи рамки. Ви повинні відійти від коду і піти і вчитися
Bojan Kogoj

@ Вернер - дуже правда. Я мав на увазі «програмувати більше» у значенні «знайти щось, що хочеш будувати, і будуй це, в ідеалі по-новому, щоб дізнатися щось нове»
Хамфрі Богарт

Пам'ятаю, коли я був стажистом, "вчитель" на роботі іноді давав нам завдання з програмування, очікуючи, що ми найкраще вчимося, роблячи. Проблема полягала в тому, що яка б проблема не була, ми часто ще просто не знаходилися на такому рівні. І коли хтось запитає у неї запитання про це, вона продовжує говорити: "О, це так просто! Вам потрібно це зрозуміти. Ви найкраще вчитеся саме так". Мине кілька годин, ми переглядаємо документацію, випробовуємо речі тощо. Коли вона нарешті сказала б нам відповідь ...
Panzercrisis

... це було б щось, що нам просто не дали інформації, необхідної для з'ясування . Щоб знайти потрібну інформацію, коли б у нас не було часу, і коли інформація просто не була доступна ні нам, ні широкій громадськості, знадобилося б цілий тиждень або більше. Тож достатньо сказати, що дуже важлива інструкція, і просто сказати комусь самостійно розібратися, добре, коли і лише тоді, коли вони будуть готові і до цього рівня.
Panzercrisis

5

Для навчання потрібні деякі інгредієнти:

  1. Учень (який, звичайно, ви)
  2. Час (який слід керувати та присвятити)
  3. Ресурси (з яких сайти SE - лише невелика частина)

Ви хороший учень? Ви витрачаєте достатньо часу на навчання? Якщо відповідь на ці 2 запитання - так , то у вас вже є достатній потенціал, щоб навчитися майже з будь-якого ресурсу.

Але, щоб відповісти на ваше запитання, так, я особисто багато дізнався з сайтів SE. ІМХО, вони не повинні стати вашим єдиним джерелом навчання, але вони вигідні.


5

Дві речі, пропоновані SO та P.SE, які не пропонують ні читання інших книг, ні письмовий код: тестування та викладання. Якщо ви просто сліпо ставите такі питання

Чому це не компілюється

wall
of
code
100
lines
long

А хтось каже "у рядку 33, що кома повинна бути крапкою з комою", і ви приймаєте відповідь і продовжуєте і продовжуєте задавати ті самі запитання назавжди, то ви, можливо, не вдосконалитесь.

Але, якщо ви читаєте питання інших людей, думаєте про відповідь, дивитесь, які відповіді надходять і як вони порівнюються з тим, що ви знаєте, це дійсно покращить вас. Якщо ви введете якийсь код у свій улюблений редактор і спробуйте кілька речей, щоб побачити, що відповідь, це дійсно покращить вас. І коли ви почнете намагатися пояснити поняття (а люди там чекають, щоб «уточнити» те, що ви говорите), це також покращить вас.

Вже близько 30 років я виявив, що ніколи не вивчаю тему так добре, як коли, вважаючи, що я це знаю, я взявся за її викладання. Для мене це головний внесок сайтів * .se у мої навички розробника. Плюс до цього, коли я просто хочу знати простий факт, це моє місце номер один, щоб подивитися (або періодично запитувати).


3

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

  1. написати код на основі поточних знань
  2. оцінити результат
  3. вчитись з оцінки того, що робити, а що не робити.
  4. перейти до 1

Практика робить ідеальною. Те, що виглядає приємно в блозі чи в книзі, може виявитись громіздким у використанні з якихось причин, не зрозумілих письменнику блогу, або того, що автор книги не висвітлював.


2
Книги (і блоги та ТАК) можуть піддавати вас поняттям, якого, можливо, ви не придумали самостійно, але ви стаєте кращим програмістом, написавши код.
Annika Backstrom

2
З іншого боку, якщо я ніколи не звертаю багато уваги на зовнішні поради, я не заграю занадто далеко. Інші люди навчилися важкому шляху, і було б нерозумно не вчитися на своєму досвіді. Звичайно, не покладайтеся тільки на читання та слухання, але не робіть помилок, намагаючись навчитися і без допомоги інших.
Філ

зовнішнє читання надходить у номер 2

зовнішнє читання необхідне для виявлення неочевидних, унікальних або розширених функцій для певної техніки або мови програмування або бібліотек. Це речі, які не є строго необхідними для виконання будь-яких завдань, але можуть покращити те, як ви це робите (наприклад, метапрограмування). Оскільки вони ніколи не є суворо необхідними, люди рідко приходять шукати їх, експериментуючи наодинці.
Лі Лі Раян

2

Як ви самі собі відповіли, ні, але витрачати тут час є корисним доповненням до більш структурованого навчання. Я б не залежав від цього самостійно, оскільки можуть бути прогалини в деяких поняттях, які не можуть бути покриті. Однією з найкращих ставок на покращення кодування для хлопців на проміжному рівні є читання коду хорошого розробника, витрачаючи час на GitHub або інший сховище з відкритим кодом.


1

Критична думка та аналіз все ще потрібні

Само по собі ні. Єдиний спосіб зробити джерело навчання (книга, блог, веб-сайт, SO тощо) - це розуміння, аналіз, а потім повторне включення. Те, що люди пишуть на таких форумах, не є євангелієм і не слід розглядати як таке, незалежно від того, скільки голосів у ньому є. Вам потрібно зробити власний аналіз думки, висловленої, щоб з'ясувати, чи є:

  1. Гарна ідея
  2. Ідея, застосовна для вашої ситуації

Найкращий спосіб вдосконалити

Часто специфічний для людини. Деякі люди стають кращими через читання та дослідження. Деякі люди стають кращими через гру та експерименти. Інші можуть навіть покращитись завдяки саморефлексії та аналізу. Спробуйте будь-які звернення до вас і подивіться, чи працює він краще для вас.


0

Навчання Java стало набагато, набагато простіше, коли я дізнався про stackoverflow. Я не задавав питань, але я почав щодня читати питання Java. Значна частина питань не розуміла мене, але раз у раз хтось задавав питання для початківців. Багато людей запитують про поняття, які вони читають з книги, але не розуміють, і отримують набагато зрозумілішу відповідь тут, часто з невеликим зразком коду для подальшого пояснення проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.