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


44

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

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

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

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



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 дополняет эти другие ресурсы. Однако лучшим учителем остается опыт .


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. Идея применима к вашей ситуации

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

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.