Может ли тратить время на Programmers.SE или Stack Overflow вместо хороших книг по программированию для новичка? [закрыто]

44

Могу ли я тратить время (и активно участвовать) на Programmers.SE и Stack Overflow, чтобы помочь мне улучшить мои навыки программирования, хотя бы близко к тому, что поможет мне потратить время на чтение книги, такой как Code Complete 2 (которая в противном случае была бы следующей в моем списке чтения).

Хорошо, может быть, ответ на этот вопрос для кого-то, кто начинает с программирования, может быть прямым нет, но я хотел бы добавить, что этот вопрос я задаю в контексте, когда человек знаком с языками программирования, но хочет улучшить его навыки программирования. Я читал этот вопрос на SO, а также эту книгу рекомендовали многие другие (в том числе Джефф и Джоэл ).

Чтобы быть более конкретным, я бы также добавил, что, хотя я занимаюсь программированием на 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 # Programming или другой нестандартный текст для начинающих, который мне был нужен. Я купил правильные книги, которые предназначались для областей навыков, которые я обнаружил, были недостаточными. Конечно, я нашел время, чтобы посмотреть, что порекомендовали эксперты по SO.

Во-вторых, SO дал мне возможность продолжить обучение у тех, кто (представлен репутацией) действительно знает, что они делают - синтаксически и философски. У SO, CodeReview и программистов есть определенное понимание, которое вы просто не можете получить из книги.

Очевидно, что SO не может заменить книги или все другие веб-ресурсы (хотя, если бы я мог объединить MSDN и SO в один контент-ресурс ...); вместо этого SO дополняет эти другие ресурсы. Однако лучшим учителем остается опыт .

IAbstract
источник
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
Книги (и блоги, и SO) могут познакомить вас с концепциями, которые вы, возможно, не придумали самостоятельно, но вы стали лучшим программистом, написав код.
Анника Бэкстрем
2
С другой стороны, если я никогда не буду уделять много внимания внешним советам, я не пойду слишком далеко. Другие люди изучили трудный путь, и было бы глупо не учиться на их опыте. Конечно, не полагайтесь исключительно на чтение и слух, но не делайте ошибку, пытаясь учиться без помощи других.
Фил
внешнее чтение идет в # 2
внешнее чтение необходимо для обнаружения неочевидных, уникальных или расширенных функций для конкретной техники, языка программирования или библиотек. Это вещи, которые не являются строго необходимыми для выполнения каких-либо задач, но могут улучшить способ, которым вы это делаете (например, метапрограммирование). Так как они никогда не являются строго необходимыми, люди редко приходят к ним в поисках экспериментов.
Ли Райан
2

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

тюремщик
источник
1

Критическая мысль и анализ все еще необходимы

Само по себе нет. Единственный способ сделать источник обучения (книга, блог, веб-сайт, SO и т. Д.) - это понимание, анализ, а затем повторное включение. То, что люди пишут на таких форумах, не является Евангелием и не должно восприниматься как таковое, независимо от того, сколько у него голосов. Вам нужно сделать свой собственный анализ мнения, чтобы выяснить, если это:

  1. Хорошая идея
  2. Идея применима к вашей ситуации

Лучший способ улучшить

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

dietbuddha
источник
0

Изучение Java стало намного, намного легче, когда я узнал о stackoverflow. Я не задавал вопросов, но начал ежедневно читать вопросы по Java. Многие вопросы были вне моего понимания, но время от времени кто-то задавал вопрос новичку. Многие люди спрашивают о концепциях, которые они читают из книги, но не понимают, и получают здесь более понятный ответ, часто с небольшим примером кода, чтобы более подробно объяснить проблему.

Zavior
источник