誰かがプログラムの仕方を学ぶための最良の方法を尋ねると、人々は通常、さまざまな作者が書いたたくさんのテキストへの参照を彼らに提供します。
しかし、多くの人が本からプログラミングを学ぶとはまったく思っていません。私は通常、彼らは困難に直面しており、それを克服するためのツールとしてプログラミングを使用しています。
たとえば、自分がプレイしているゲームのサーバーを起動したかったので、プログラミングに「入り込んだ」ので、ググってその特定のサーバーのサポートに目を通し、開発したスキルのみを使用して、採用されたソフトウェアエンジニアになりました(さらに開発された)あまり人気のないサーバーパッケージ用にC#スクリプトをコーディングする。
だから私の質問は、一般的に人々はこれらの本から学ぶ方が簡単だと思いますか?私はそれらのいくつかを見て、私がそれを終えるように促すにはあまりにも「乾燥している」と気づいたことを知っています。
一般的に言えば、ここに私が学ぶ方法があります:
注:3番目のポイントが最初に来る場合があります。
編集:「なぜ」という質問に答えるには
Googleは何かをする方法を見つけることは素晴らしいですが、あなたが知らないことを見つけることは素晴らしいことではありません。 C#にデリゲートと呼ばれる概念があり、取り組んでいる問題を解決するのに役立つ可能性があることを最初に知らなかったのに、なぜ「C#デリゲート」をググるのでしょうか。
また、S/N比が少し高くなる場合もあります。頭に大まかなアイデアがあり、何かが行われている場合は、読んでいる記事が正しいかどうかを簡単に確認できます。しかし、手がかりがなければ...もっと大きな混乱に陥る可能性があります。
書籍が依然として関連しているいくつかの理由:
しかし、本はあなたをずっと連れて行くことは決してなく、それはあなたを正しい方向に押し進めるだけです。
1980年代の本でプログラミングを学んだとき、プログラミング言語全体を完全に学ぶための情報源は多かれ少なかれありました。さらに、コンピューター雑誌を購入することもできますが、その内容はランダムで興味深い記事でした。
今日では、インターネット上で必要なすべての情報を見つけることができます。完全なチュートリアルは本に十分似ていると思いますが。
学習方法は、個人的な好みや実際のニーズによって異なります。
「完全なテキスト」の利点は、本またはオンラインチュートリアルの場合、実際には必要ではないが後で役立つ資料をカバーしていることです。何かが可能であることを知り、それを見つける場所を知ることです。特に、複雑な環境や、C++のような非常に複雑な言語について学ぶ場合。 Ruby on Rails on Ajax やセキュリティの問題について聞くことなく、多くの小さなブログを読むことができます。遊んでみても問題はないかもしれませんが、もし私が偶然にも、数週間以内にプロフェッショナルRuby on Railsの開発)に参加したい場合は、次に、すべての重要なポイントをカバーするテキストで作業すると、非常に役立ちます。
他の書籍では、プログラミングスタイル、ベストプラクティス、設計パターン、または特定のアルゴリズムグループについて詳しく説明しています。あなたはそれらを使用することができ、おそらくすべてのデザインパターンのうち、非常に小さなサブセットのみを適用するでしょう。それでも、それらを知り、それらを見つける場所を知ることは役に立ちます。そしてそれは単に、「何らかの形で実行する」よりも「ソリューションを構築する」ことにもっと関心がある方向に思考プロセスを訓練する方法です。
個人的には読書が好きなので、本が乾いている気がしません。もちろん、本があなたの実際の知識レベル以上であることは重要です。 C#のすべての基本をすでにマスターしている場合、初心者向けの本を読むことはあまり意味がありません。
本(または本のように構造化されたWeb文書)は、ほとんどの言語を学習するための私の好ましい方法です。
あなたが言語に飛び込んで自分のために何かを見つけた場合、あなたは適切な本が適切なタイミングであなたに届けられるであろう重要な側面を見逃す可能性が高いです。
たとえば、私の同僚の何人かは、本なしで飛び込むことでJavaを学びました。彼らはJavaで何年もプログラミングしていました。 .substring()を使用して配列を文字列に変換し、次に文字列を配列に変換することにより、byte []の配列を定期的に操作します。System.ArrayCopy()は、の155ページに導入されていますJava In A Nutshell
先生の方が一人で学ぶよりも学習が簡単であることをご理解いただければ幸いです。良い本は良い先生の安い代用品です。慎重に計画された順序で概念を紹介するので、十分に理解するだけでなく、十分に理解することができます。
あなたは何かに夢中になっていると思います。少なくとも私にとって、私のスキルのほとんどは、「X」を実行するプログラムを必要とすることから生まれています。
たぶん、この方法を学ぶ人々は助けを求めていません。彼らはそれを成し遂げるのに忙しすぎます(貧弱ですが、途中で学んでいます)。プログラマーになりたい(その最初のグループに提案された)人々は、プログラマーになる方法、またはプログラミングする方法について多くの質問をします。ただし、必ずしも解決する問題があるわけではなく、これらは必ずしもそうではありません。直接回答付きの質問。
そして、私たちは本にパントします。 「そうそう、 『Dive into Python』のコピーを手に入れよう。」「そうやって学んだの?」 「いいえ」「ええと...」「ちょっと忙しいけど、困ったら助けてあげる」「ええと・・・まあまあ」
一方、私は、学習しているときは、優れた読み物を一目見ているので、解決しようとしている問題がより熟練した著者によってどのように解決されているかを確認できます。 「初心者」のテクニックは、私が途中で習得できなかったかもしれません。
[〜#〜] tldr [〜#〜] :本は良いです、することで学ぶことは良いです、本をすることで学ぶことは???
専門書を読むのが大好きです。すべての技術書ではなく、私が興味を持っている特定の主題に関する本だけだと、Sharepointは言います。 Charles Petzoldによる「Windowsのプログラミング」を本当に何度も読んだ最初の本を思い出します。これと他の多くの理由により、メモリからWin32アプリケーションを作成することができました。 APIを調べる必要はほとんどなかったので、代わりにビジネスの部分に集中できました。
本は何かをするための「権威ある」方法を提供しているように感じます。おそらく私よりも良い方法を知っている人によって。私が学んでいることは、あえて言ってみれば、私の問題を解決する最良の方法だと信じています。もちろん、それは私が著者を信頼している場合です(アマゾンのレビュー領域が大好きです)。
問題を解決しようとすると、ますます「グーグル」になり、コピーして貼り付けられるようになりましたが、私はかなりの時間を費やして、コピーしている(またはインスピレーションを得ている)ものが信頼できるものであることを確認しています私のコードを入れることができます。私がWebで解決策を見つけたからといって、それが必ずしも最良であるとは限りません。
私は他の多くのプログラマーと同様に、今では答えをググるだけですが、それでも私は自分が既知の作家から本を入手していることに気づきます。このコンテンツは、それを説明する(教える)のが得意な人が持ってきたものだと感じており、Googleの結果からすべてのジャンクをフィルタリングする必要がなくなります。
あなたの質問は「なぜHTMLページの代わりに印刷された本のような古いテクノロジーを使用するのか」ではなく、「なぜ1人または数人の作者が書いたプログラミングに関する長いテキストを読むのか」という意味ではなかったと思います。
本は、特定の主題に関する情報の構造化されたコレクションと考えることができます。それは誰かがトピックを理解しやすくするためにお互いに各章を構築する努力をしたことの利点があります。通常、情報の境界が何であるかについても説明されます(対象となるものと、他の場所で注意する必要があるものは何ですか)。それを読んで作業した後、あなたは特定のスキルを達成したことを確信することができます。早送りボタンを押したまま学習したい場合は、少なくとも本の構造が信頼できる場合、本は退屈な部分をスキップせずにあらゆる側面を学習するように強制できます。 「book」という名前のコレクションも、リファレンスとして最も役立つことがよくあります。
インターネットの使用、ブログ、「いじくり回す」などは通常、一種の非構造化情報に分類されます。あなたはたくさんの知識と知識を手に入れますが、知識を積み重ねるためには、さらに多くの検索作業を行う必要があります。なぜなら、「最初にこれを学ぶか、あなたがそのもののメリットを見ることはできないでしょう」と誰もあなたを案内しないからです。グーグルアップしました。」退屈すぎたり、重要だと誰にも言われなかったりして、特定の部分を見逃すことがあります。インターネットで書かれたすべてが最高品質であるとは限らないので、あなたは間違ったことを学ぶかもしれません。無駄な検索結果を除外するために多くの時間を費やす可能性があります。特定のデザインパターンやプログラミング構造を知らず、誰も言わなかったからといって、自分で何かを成し遂げることに何日も費やす可能性があります。あなたが知らないほど、非構造化された情報の見方が悪くなります。
少し挑発的に言えば、私は建築家が橋の建設や構造解析に関する本を読んだことがないが、Googleをいじって使用するだけでそれを学んだと言ったら、私が毎日渡らなければならない橋を建設するとは決して信じません。 ...
Cプログラマーであれば、本や先生がいなくてPythonをどのように学ぶと思いますか?
基本的な構文を学び、すぐに飛び込むと、PythonでCコードを書くことになるであり、Pythonは冗長であるという誤った結論に至るCのように苦痛.
通常、Googleはコードの小さなスニペットまたはオープンソースライブラリを見つける場合にのみ適しています。一部のライブラリ/プログラムのドキュメントは、せいぜい信頼できません(存在する場合、単純な例または一般的な例のみを示しています)。
私はプログラミングの本はあまりありませんが、OpenGLに関する本を持っていること、そして3Dエンジンのコードの大部分が含まれていることを今すぐに伝えることができます。簡単にコピーできますが、理論も読んでください。数ページめくるだけで、コードの説明がそこにあり、読むのを待っています。今日、おそらくネット上でいくつかのオープンソース3Dエンジンを見つけることができますが、コードを大幅に変更する必要がある場合は、おそらく問題が発生しています。通常、ヘルプフォーラムが存在せず、SOは、それが非常に専門的である場合、あなたの質問に対する答えを知りません。本当に専門的なことになると、世界中のほんの数ダースの人々だけが、何時間も費やすことなくあなたの質問に答えることができます。答えを出すために十分な位置にいることを理解します。C#でリンクリストを実装する方法を尋ねると、SOで最初の5つ以上の答えが得られます。 10分ですが、three.jsに複雑なシェーディングアルゴリズムを実装するための最良の方法は何かと尋ねると、質問は最初のページから岩のように消えてしまいます。
その上、本は読者が関係する理論について学びたいという観点からほとんど独占的に書かれているのに対し、グーグルはただランダムなジャンク-コードスニペット、誰が話しているのか誰も知らない主題についてのアーカイブされた議論-を生成するだけです、など。インターネット上の情報源は大幅に改善されています。SO、Moz Dev Network、MicrosoftのWebサイト、ブログなどですが、歴史的には本ははるかに優れており、インターネットの情報源は今、追いついています。
最高の本の執筆の質は、あなたが始める前に多くの非自明の問題がレイアウトされるほどです。多くの経験を持つ著者は、予期しない副作用、長期的な影響、文書化されていない機能、一般的な使用シナリオなどについて説明することを知っています。
基本的に、あなたは問題を通り抜けて本当に興味深いビットを指摘する多くの経験を持つ作家の利益を得ています。
これはオンラインの参考文献でも見つかることがありますが、オンラインで入力するための障壁が低いため、多くの情報が基本的すぎたり、詳細が欠けていたり、まったく間違っていたりします。これは本でも発生する可能性があるので、常に優れたレビューが付けられた古典的な本だけを信じてください。他の本も役立つ場合がありますが、ソースの1つとしてのみ、相互参照または自分で試して情報を確認する必要があります。
本には、構造化された形式で大量の情報が付属する傾向があります。 Googleには膨大な量の情報が含まれる傾向があり、必ずしも特別に構造化されているわけではなく、何をする必要があるかを整理するのが難しい場合があります。
私は実際に紙の本を実際に読むことはもうありません-私のそばに電子リーダーがあり、ラップトップにはKindleソフトウェアがあり、探している情報にアクセスできます。
Googleが役立つのは、プログラミング方法の構造化された概要を探しているのではなく、特定のタスクをプログラミングする方法の詳細が必要な場合です。ほとんどの場合、誰かがそのタスクの前に、または少なくとも、そのようなコードを書いています。
プログラミングの学習と特定のタスクのプログラミングの学習には違いがあると思います。特定のタスクをグーグルで学んだことのない人がプログラミングの方法について適切な概要を実際に取得したことがない場合、そのコードの品質に疑問を投げかけます。これは言語固有ではなく、より概念的なものです。
本は、主題についてさらに深く知りたい場合に役立ちます。確かに、いくつかのチュートリアルを実行し、いくつかの(ペット)プロジェクトを作成することでC#を学びました。しかし、C#詳細は、その下で何が行われているのかを確認し、いくつかの新しいことを学ぶのに役立ちます。
また、私はプログラミングの本を持って、太陽の下で自分の風呂または屋外でそれを読むを取ることができます。デスクトップPCではできません。
他のプログラマーから学ぶのに便利な方法だからです。
本は補足です。これまでのところ、自分で作業するのはとても速いだけです。本を読むだけではなく、より良いプログラマーがあなたに何かを教えようとするプロジェクトに参加したくないのは誰ですか?
私は、「プログラミングについて知っておく必要のあるすべてのもの」ではなく、リファレンスとして使用する傾向があります。
書籍を使用すると、一連の情報を「パッシブ」な方法で吸収できます。あなたは可能性のサブセットを提示されたときに何が可能であるかを探す必要はありません。私がC#を学んでいたとき、この本は可能性を指摘するのに非常に役立ち、C++で同等のものは何だろうと思いました。もちろん、マスタリングは(実際のサイズの)プロジェクトで使用するときに行われました。しかし、本は違いと可能性を指摘するのを本当に助けました。
プログラマになりたいので、プログラミングの本を使っています。本を読むことで、プログラミングの専門家になることができます。
私はプログラミングの本を長い間読んでいません。以前はリファレンスガイドとして使用していましたが、今ではほとんどの言語とフレームワークでインターネットの方が簡単だと思います。
とにかく、プログラミングの本から学ぶのに一番いいのはコア言語だと思います。たとえば、私の最初の実際の言語はCでした。OSを書くことでそれを学びました(これはお勧めしません)。その結果、Cに関する私の知識は、2、3年プログラミングした後でも、かなり不自由なものでした。私は言語についての良いコア知識を得たことはありません。この15行の乱雑なコードをきれいな2行のコードに変換できることを知りませんでした。だから問題は解決できましたが、Cを最大限に活用していませんでした。
その後、ある時点でC++を学ぶことにしました...(Cを学び始めてから約2年後)。それで、私が持っていた唯一のC++の本、C++ For Dummies Bookを読みました。私はその4分の3をまっすぐに読み、その間はほとんど「実行」していませんでした。その結果、15行の乱雑なコードに慣れるのではなく、最初のプロジェクトに飛び込んだとき、それを行うためのより簡単な方法(たとえ私がそれを調べなければならなかったとしても)。
C#/ ASP.NETを学んだときも同じことをしました。本の約4分の3を読み終えるまで、私はほとんど何もしませんでした。そして、私が学んでいないことについて、興味深いC#の質問のためにスタックオーバーフローを閲覧しました。最初のプロジェクトに足を踏み入れたとき、私のコードのほとんどは比較的クリーンであり、それ以来「大規模に」リファクタリングする必要があるのは一度だけでした。
ですから、本はフレームワークや言語の能力を学ぶのにとても役立つと思います。それを超えて、もちろんそれらは、もちろん強力な理論的で特別に設計された参考資料として設計された本を除いて、インターネットによってほとんど役に立たなくなります。
要するに、本は高いレベルでより役立つ傾向があると思います。彼らはあなたに設計ガイダンスを与え、それらを解決する代わりに問題を防ぐのを助けることができます。
本には確かに欠点があります。 Programming Pythonの私のコピーはPython 2.0をカバーしていますが、使用するランタイムは2.6です。
しかし、本の重要な側面は、自分につまずかないようなものを見つけることができるということです。 Googleは特定の問題を解決する手助けをしますが、本はデザインを手助けします。デザイン本だけではありません。言語のデザインを理解するのに役立つ良い本を読んだら、その言語の使い方をよりよく理解できるでしょう。
他の本はあなたの知識を磨くのに適しています。 Scott MurphyのEffective C++の本が良い例だと思います。この本はC++の学習にはあまり適していませんが、(まだ)遭遇したり、回避したりしていない、アルゴリズム/インターフェース/継承設計の問題を確認するのに役立ちます。簡単な解決策を見つけるのは簡単かもしれませんが(後で他の問題を引き起こす可能性があります)、言語をよりよく理解することで、最初にこれらの問題を回避するようにソフトウェアを設計できます。
もちろん、本が紙に印刷されているのは、本を価値のあるものにするものではありません。それらを作成する際の注意と努力、および厳密な教育を提供したいという欲求が、本に価値を与えています。多くの場合、副作用として C++ FAQ lite のような便利なオンラインリソースや Dive into Python のような電子ブックがあります。オンラインもあります-完全で有用な学習ツールであるチュートリアルのみ(一部のプラットフォーム/言語/ライブラリのドキュメントなど)。
ウェブ上のスニペットはあなたの質問に答える良い方法ですが、あなたが何を尋ねるべきかをあなたに伝えることはめったにありません。
それはあなたが読んだものではなく、どれくらいかということです。私はプロジェクトに取り組んでいる間、外出先でプログラミングの本をいくつか持っているのが好きです。時々(思っているよりも頻繁に)、現在のプロジェクトに適用できる手法について読みます。
現実のソリューションに実装すると、情報が残ります。
本を読まなくても問題を解決できますが、その問題を解決するためにプログラムの背後で何が起こっているのか本当にわかりますか?
あなたは何が起こっているのか、そして何がより良い代替案であったのかを知る必要があります。そのためには良いプログラミングの本が必要です。もちろん本を読むだけでは十分ではありません。内容を理解し、他の本を読み、問題を解決するためのさまざまなアプローチを考える必要があります。学習は本があってもなくても続けられます。
あなたが取り組んでいるテクノロジーの状態のスナップショットを提供していると思うので、私は本を使用することを好みます。著者は、Y言語/ライブラリのX.Xバージョンでは、これが問題Zを解決する方法であると述べています。
本はしばしば、この解決策が問題を解決する「理由」をカバーしていますが、オンラインドキュメントは通常、コピーアンドペーストです。
多くの場合、すべての参照へのリンクを失ったり、移動したり、下に移動したりする可能性があります。私は自分の本を投資のように保護し、世話をします(そうです)。
私は本とウェブのような「ジャストインタイム」ソースの両方から(プログラミング)を学ぶ傾向があります。どちらも良いかもしれませんが、全体的に私は本から学ぶことを好みます、これが理由です:
プロジェクトの一部を完了するためにすぐに知っておく必要があることだけを学ぶと、全体像を見落とすことがあります。最高の本は単なる参考資料ではなく、ある意味で、技術の概観と一般的な問題の最善の解決策に関する多くの経験豊富なアドバイスを提供することにより、見習いに近いものを実現します。
ジャストインタイム学習は、満足のいく問題に非常に簡単に苦しむ可能性があります。解決したい問題を特定したら、機能していると思われる最初のソリューションにジャンプし、インターウェブに走ってそれを実装する方法を見つけます。 。ただし、問題が発生することがよくあります。経験豊富なプログラマーと問題について会話できた場合、「ここではXの方法を教えてください」とは言わず、代わりに「しないでください」と伝えます。 X、代わりにYを実行してください。」そして、これはあなたが最高の本から得がちな知識の一種です。実際、一部の本は Javascript:The Good Parts のように、完全にこの種のものに関するものです。
JIT学習で発生する可能性があるもう1つの問題は、学習曲線がはるかに遅いことです。 JIT学習では、必要なことだけを学習する傾向があります。しかし、多くの場合、基本的な知識のコアがあるだけで、新しい言語またはフレームワークの学習を加速できます。基本につまずく代わりに、しっかりとした基盤から始めて、そこから構築します。本を読んでいる間にカバーできるかなりの資料は、すぐには役に立たないかもしれませんが、その背景知識があると、意思決定を導き、特にあなたがさらされている新しいコードを理解するのに役立ちます。もちろんトレードオフもありますし、読んだ後で思い出せない無用な事実を積み重ねただけの悪い本もありますが、基本的なことをしっかりと理解してくれる良い本もあり、何ができてもその知識を日常的に使用する必要はありません。
開発者として成熟するために不可欠だと思う、単一の技術的主題よりも高いレベルの本もあります。 コード完了 、 リファクタリング 、 レガシーコードで効果的に動作する などの本。これらの本から知識を手に入れるつもりはありませんJIT学習を通じて。
私は本を読むために行くと思います。特に電子ブックをダウンロードします。章のすべての部分を読みます。コードをコピーします。プログラミングエディターに貼り付けて、出力を確認します。次に、そのロジックを変更してみます。高速に動作するように、ダウンロード可能な電子ブックについて説明しました。本は本当にすばらしいです。私は嘘をついていませんが、昨年11月から今日までです。約20冊の本。すべて読むには愛情が必要です。初心者が行うことは、インターネットから助けを借りて特定の問題を解決することです。しかし、実際の複雑なタスクが彼らに与えられると、彼らはあきらめます。理由、タスクに関する知識がなく、たとえば、コントロールをデータテーブルにバインドしていて、データセットが何をするのかわからない場合や、データベーステーブルのメモリ常駐コピー間の関係を作成するタスクが提供されているため、実行できません。
C++を学んでいたとき、頭の中で何かがクリックされるまで、ほとんどの文献はかなり役に立たないことがわかりました。今日までそれが何であったかはわかりませんが、すべてが理にかなっています。それから本とウェブサイトははるかに理にかなっています。 C++でプログラミングする方法を学ぶには2冊の本が必要でしたが、どちらも真のC++の本ではありませんでした(これらは主にMFCに焦点を合わせたVisual C++の本でした)。
あなたが正しい本を手に入れれば、それは本当に役に立つでしょう。私の友人はuniでいくつかのDietelの本を読んでおり、私はそれらが非常によく書かれているのを見つけました。 「... for Dummies」の本が私にとって正しい方法で説明されていないので、役に立つ本を見つけたことはありません。最高のアドバイスは、書店に行って本を試してみることです。そうすれば、非常に高価な本になりがちな本に大量のお金を無駄にしないようにできます。
いくつかのプログラミングトピックについては、いくつかの本を読んだり、Googleを介して調査を行ったり、実験したりすると便利です。 J2MEでチェッカーゲームを作成しているときにAIアルゴリズムを作成しているときに、これを頻繁に実行していることに気付きました。また、カスタム構文用のコンパイラコンパイラの作成方法を学んでいるときにも、これを行っていました。非常に多くの異なるバリエーションとビューがあります。
複数のビューを理解していると、他の方法ではわかりにくい接続を作成できる場合があります。
新しいプログラマが実際にプログラミングが何であるか、それがどれほど深いかを理解することは非常に困難です。
だれでもコンピュータに指示するプログラムを書くことができます-ほんの少しの学習で、ほとんど何でも、これは難しくありません!難しいのは、サポート可能で、チームの他のメンバーがすばやく理解し、深く理解できるプログラムを作成することです。この部分には数十年かかります。
さらに、チームの効果的な部分として働くことを学ぶことは、ちょっとしたカーブです。
では、本はこれらの「本当の」プログラミング問題をWebで参照を検索しない方法で解決するのにどのように役立つのでしょうか。
私の好きな本の2つは、「デザインパターン」と「リファクタリング」です。
リファクタリングは、悪いコードを認識する方法を説明する素晴らしい本です。コーディングリファレンスを調べて学習した場合、この本(よくリファクタリングの本の1つ)は非常に重要です。
デザインパターンは、優れたプログラマーが理解できないほど多くのものを提供するわけではありませんが、コードですでに誰もが使用している幅広いパターンに名前を付けました。これにより、プログラマーはより効果的にコミュニケーションをとることができ、一部のプログラマーは問題を攻撃する新しい方法を見つけることができました。ウェブ上でデザインパターンを見つけることができますが、デザインパターンの名前をGoogleで検索する方が、Googleがやろうとしていることよりもはるかに簡単です。
私はインタビューでこれら2冊の本と彼らが達成しようとしていることを説明するように求められました、これは非常に有効なインタビューの質問だと思います...これら2冊を知らなかったプログラマーに注意を向けたいと思います彼が非常にジュニアのポジションを申請していない限り、本。
私は本から直接プログラミングすることを学びました。グーグルとネットが普及する前の約20年前。素晴らしいリソースだと思います。しかし、ほとんどの現代の本は、メーカーによる技術記事を引用しています。だから私は今、オンラインで学ぶ方が良いことに同意します。次のように警告の言葉で:
私はたくさんの本を読んでいて、それが財政的に実現可能だったので、ほとんどインターネットにアクセスできましたが。私は、あらゆる種類の大きなプロジェクトを完了することはできませんでした。確かに私はそれを順を追って説明するために20の章をとる大きな上級書で多くのかなりのプロジェクトを行うことができましたが、私自身の現実世界のプロジェクトになると、私は何の例外もなくいつもレンガの壁にぶつかりました。私はあなたに言わなければならない、私はいくつかの重い本を読みました。
私は生涯大学に入学するのに問題がありましたが、3年目になりました。初年度は4年目に出会い、修士号を取得し、AI、HCI、アセンブラ、コンパイラ開発などの理論について生産的な会話をすることができました。しかし、このすべての知識があるにもかかわらず、合理的なプログラムを作成できませんでした。何が欠けていたのか...どんな本やオンラインでも手に入らないもの。
構造。初年度、私は技術的な性質については何も学びませんでした(すべては十分に知っていて、日帰りの研究なしでそれを突破しました。数学と設計は私にとってかなり新しいものでした)、構造とチームワークを学びました。私の最初の夏休みに、私はこれまで以上に私の最初の実際の仕事を完了するために近づきました。
2年目には、新しい技術に関することをたくさん学びました(まだ基本は私が知っていることと比較していますが、私が知っている理論を実際に実践していました)。これにより、構造の重要性が繰り返し強調されました。私は最初の実際のプロジェクトを完了していません。私は自分をプログラマーだと思っています。
私はプログラミングを学ぶために本を読む必要があるとは思わない。しかし、それは助けです。しかし、私は本やウェブサイトで、2年間の大学で学んだことを教えたり教えたりすることはできないと確信しています。大学に行かずにフェアプレイでプロジェクトを完了することができた場合、それは年齢に関係なく強くお勧めする経験です。
本は良いです、インターネットは良いです、グーグルとあなたのチューブは素晴らしいですが、私の意見では古き良き有名な大学に勝るものはありません。そして、私はこれまでにグーグルやユーチューブの量が増えることはないだろうと思っています。
(ほとんどの人が述べたように)プログラミングだけを本から学ぶことはできないと思います。たくさん練習する必要があり、インターネット上で利用できるリソース(記事、ビデオ、サンプルなど)はたくさんあります。
しかし、良い本はあなたの知識のギャップを埋めます。本の表紙を読んだ後は、主題についての知識に大きな穴がないことを確信できます。挑戦は主題についての良い本を見つけることですが。
私は見当もつかない。私は本のプログラミングに反対しています。ほとんどの場合、追加情報を検索するには、インターネットで調査する必要があります。
プログラミング言語を学びたいですか?それのためのグーグル。 jQueryは一見大変だったので嫌いでした。それからStack Overflowに来て、それから多くのことを知っています。本の助けなしに。