Programmers.SEやStack Overflowに時間を費やすことは、初心者向けの優れたプログラミング本の代わりになるでしょうか?[閉まっている]


44

Programmers.SEとStack Overflowに時間を費やす(積極的に参加する)ことで、Code Complete 2のような本を読むことに費やす時間(それ以外の場合は読書リストの次になる)に近いプログラミングスキルを向上させることができます。

OK、プログラミングを始めている人にとってはこの質問に対する答えかもしれませんが、プログラミング言語に精通しているが改善したいときにコンテキストで尋ねるこの質問を追加したいと思います彼のプログラミングスキル。私はこの質問をSOで読んでいて、この本は他の多くの人(ジェフジョエルを含む)にも推薦されています。

具体的には、C、Java、Pythonなどでプログラミングを行っているにもかかわらず、コーディングスキルやCC2のレビューを読んで満足していないのに、さらに改善する必要があることに気付きました。 。

だから、基本的に私はプログラミングスキルを向上させるための最善の方法を知りたいです-ここ/ SOにもっと時間を費やすか、CC2を続けて、時間が許せばここに来るかもしれません。



1
初心者プログラマーにとっては間違いなく圧倒的です。
surfasb

回答:


102

いいえ、それは代替ではなく、完全な補完です。この2つの組み合わせが大きな力を持っていると感じています。

優れた講義が、単に本を読む以上のことを教えるのはなぜですか?相互作用と質問する能力。

本を読むだけでは、答えが見つからない質問がポップアップ表示される場合があります。ここでそれらの質問を探すか、以前に議論されたことがないかどうかを尋ねます。


完璧な補完のために+1。SEまたはSOがいれば、80年代が私にとってどんなものだったのか想像することができます。彼らは素晴らしいリソースです。
マイケルライリー-別名ガニー

1
完璧な補完のための完璧な賛辞として+1。ただ、スキル、知識、および直感を高めるために偉大なミニkatasある「現実世界」の質問を読んで、その答えにしようとする(または既存の答えのソリューションを複製)
デイヴ・ニュートン

どちらかといえば、コミュニケーションスキルを向上させることに加えて、わかりやすくアクセスしやすいチャネルで問題と解決策を表現する能力は、開発者としての能力を向上させます。
surfasb

完璧な賛辞のために+1(もう一度)。私は毎日P.SEを読みます。私はいつもすべての答えを読むとは限りませんが、ほとんどの質問と一番上の答えを読みます。それはあなたが他の方法では出会わないかもしれない分野のことについて自分自身を考えさせる素晴らしい方法です。時々、Q&Aで、自分がやっていることに直接ではなく、最終的には実際に役立つものを見つけますが、それは素晴らしいことです。
アンディハント14

12

私は(現在)1年10か月間StackOverflowのメンバーです。この間、私は芸術の規律ある学生になりました:アーキテクチャ、パターン、デカップリング、単体テストを認識し、リストが続く可能性があります...しかし、SOどのような役割を果たしましたか?

最初に、それは私の即時の質問に答えました。しかし、SOを探索し始めたとき、私は非常に悪いプログラマーであることがわかりました。私は工芸の職人になりたいと思って本を買いました...しかし、C#Unleashed、Learn C#Programming、その他の標準以下の初心者向けテキストではありませんでした。不足しているとわかったスキル分野をターゲットにした適切な種類の本を購入しました。もちろん、SOの専門家が推奨する内容を確認するために時間をかけました。

第二に、SOは、自分のやっていること(構文上および哲学上)を本当に知っている(評判で代表される)人たちから学び続ける場所を与えてくれました。SO、CodeReview、およびプログラマーで得られる洞察には、本からはまったく得られないものがあります。

明らかに、SOは書籍または他のすべてのWebリソースを置き換えることはできません(ただし、MSDNとSOを単一のコンテンツリソースに結合できる場合)。代わりに、SOはこれらの他のリソースを補完します。しかし、最高の教師は経験を積んでいます。


11

プログラミングスキルを向上させる最良の方法は何ですか?

もっとプログラミング。本やウェブページを読むことは二次的です。

あなたがすることで最高の学習をします。


17
はいといいえ。さらに学習することなく、より多くのことを行うことができます。私は毎年特定の言語でプログラムでき、新しいことは何も学ぶことができませんでした。読書と学校では、「快適ゾーン」の外にあるものを教えます。投票には十分ではありませんが、それでも良いコメントではありません。
WernerCD

1
真実は、私は学習せずに多くのプログラミングをしていました。だから、オブジェクトを知らずに、またはフレームワークを使わずにPHPでWebサイトを作成しました。あなたはコードから離れると行くと学ばなければならない
ボヤンKogojを

@ Werner—非常に真実です。私は、「複数のプログラム」「あなたが構築したいものを見つけ、新しい何かを学ぶためにように理想的な新しい方法で、それを構築する」の意味での意味
ハンフリー・ボガート

私がインターンだったとき、仕事の「先生」がプログラミングの課題を与えてくれたことがあります。問題は、問題が何であれ、私たちはしばしばそのレベルにまだ達していないことでした。そして、誰かが彼女にそれについて質問するとき、彼女は「ああ、これはとても簡単です。あなたはそれを理解する必要があります。あなたはそのように最もよく学びます」と言い続けるでしょう。私たちがドキュメントを
熟読

...それは私たちが理解するために必要な情報を単に与えられなかったものになるでしょう。時間がなく、必要な情報を見つけるのに1週間以上かかったのは、私たちや一般の人々が情報を入手できなかったときです。したがって、指示は非常に重要であり、単に自分で物事を把握するように誰かに伝えることは彼らが準備ができてそのレベルまでであるときだけ良いです。
パンツァークライシス14

5

学習にはいくつかの材料が必要です。

  1. 学習者(もちろんあなたです)
  2. 時間(管理し、専念する必要があります)
  3. リソース(そこから、SEサイトはほんの一部です)

あなたは良い学習者ですか?学習に十分な時間を費やしていますか?これら2つの質問の答えがyesの場合、ほぼすべてのリソースから学習するのに十分な可能性がすでにあります。

しかし、あなたの質問に答えるために、ええ、私は個人的にSEサイトから多くを学びました。私見、彼らはあなたの唯一の学習ソースになるべきではありませんが、彼らは有益です。


5

SOとP.SEが提供する2つのことは、他の本を読んだり自分でコードを書いたりすることではないということです:テストと教育。盲目的に次のような質問をすると

なぜこれがコンパイルされない

wall
of
code
100
lines
long

そして、誰かが「33行目でコンマはセミコロンであるべきだ」と言って、あなたは答えを受け入れて続行し、永遠に同じ質問をし続けると、あなたは改善しないかもしれません。

しかし、あなたが他の人の質問を読んで、答えについて考え、どの答えが入ってくるか、そして彼らがあなたの知っているものとどのように比較するかを見て、それが本当にあなたを改善します。お気に入りのエディターにいくつかのコードを入力し、いくつかのことを試して答えを確認すると、本当に改善されます。そして、あなたがあなたを改善する概念を説明しようとし始めたとき(そしてあなたの言うことを「明確にする」ために人々がそこに待っています)。

約30年間、私はトピックをあまりよく学んでいないことを発見しました。私にとって、それは開発者としての私のスキルに対する* .seサイトの主要な貢献です。さらに、単純な事実を知りたいだけの場合、それは私の一番の場所です(または時々尋ねます)。


3

あなたのプログラミングスキルは、ウェブサイトや本を読むことによってではなく、繰り返すことによって最高に向上します

  1. 現在の知識に基づいてコードを書く
  2. 結果を評価する
  3. 何をすべきか、何をすべきでないかについての評価から学びます。
  4. 1に行く

練習は完璧を作る。ブログや本で見栄えの良いものは、ブログの作者が理解していない何らかの理由で使用するのが面倒であるか、本の著者がカバーしていないことがわかります。


2
書籍(およびブログ、SO)は、自分では思いつかなかったかもしれない概念にあなたをさらすことができますが、コードを書くことでより良いプログラマーになります。
アニカバックストローム

2
一方、外部からのアドバイスにあまり注意を払わなければ、やり過ぎないでしょう。他の人々は困難な方法を学んでおり、彼らの経験から学ばないことは愚かでしょう。確かに、読みと聴力だけに頼るのではなく、他の人の助けも借りずに学ぼうとするミスをしないでください。
フィル

外部読み取りは#2

特定の手法またはプログラミング言語またはライブラリの非自明な、独自の、または高度な機能を発見するには、外部参照が必要です。これらは、タスクを実行するために厳密に必要なものではありませんが、その方法を改善する可能性があります(メタプログラミングなど)。それらが厳密に必要になることは決してないので、人々は実験だけでそれらを探すことはめったにありません。
ライライアン

2

あなたが自分自身に答えたように、いいえ、しかしここで時間を過ごすことは、より構造化された学習への有用な補助です。一部の概念にはカバーされていないギャップがあるかもしれないので、私はスタンドアロンに依存しません。中級者向けのコーディングを改善するための最善策の1つは、GitHubまたは他のオープンソースリポジトリに時間を費やして、他の優れた開発者のコ​​ードを読むことです。


1

批判的思考と分析がまだ必要です

それ自体はありません。学習のソース(書籍、ブログ、ウェブサイト、SOなど)を作成する唯一の方法は、理解、分析、そして繰り返し取り入れることです。このようなフォーラムで人々が書いていることは福音ではなく、賛成票の数に関係なくそのように扱われるべきではありません。あなたがそれが以下であるかどうかを判断するためにレンダリングされた意見で独自の分析を行う必要があります:

  1. いいアイデア
  2. あなたの状況に当てはまるアイデア

改善する最良の方法

多くの場合、人に固有です。一部の人々は、読書や研究を通じて良くなります。一部の人々は遊びと実験を通して良くなります。他の人は、自己反省と分析を通してさらに良くなることができます。あなたにアピールするものは何でも試してみて、それがあなたにとってうまくいくかどうか確かめてください。


0

私がstackoverflowについて知ったとき、javaを学ぶことはずっとずっと簡単になりました。私は質問をしませんでしたが、Javaの質問を毎日読み始めました。質問の多くは私の理解から外れていましたが、時々誰かが初心者の質問をしました。多くの人が本から読んだ概念について尋ねますが、理解できず、ここでより多くの理解可能な答えを得ます。多くの場合、問題をさらに説明するための小さなコードサンプルがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.