PHPを学びたいのですが、PHPのおすすめの入門書はありますか?
Android を学びたいのですが、始めるには Java についてどのくらい知っておく必要がありますか?
C/C++ は初めてですが、Python を直接学ぶことはできますか?
これらは初心者がよく抱く疑問です。私たち自身の現状と達成したい目標の間には、必ず「前提条件」という大きな川があり、この川を泳ぐのに多大なエネルギーを費やすしかないようです。残念ながら、ほとんどの人は目標に近づく前に強い流れに流されてしまいました。しかし、アラジンの魔法のじゅうたんに乗って、遅滞なく向こう側に到達するような人々がまだ数人います。まるで、どんなスキルを学ぶのもそれほど大変ではないかのように。これはどうなっているでしょうか?
新しい言語や新しいテクノロジーを学ぶことは、能力というよりは手段です。人はどのような人、あるいは人生のどの段階で最も効率的に学習するのでしょうか?最高の効果?答えは明白です:幼児期です。 2歳未満の娘は、おそらく数十の名詞、12の動詞、3~5の形容詞と前置詞しか知りませんが、毎日何百もの単語を話します。 「こんにちは、みなさん、会えてうれしいです」と完全に言えるようになるまでに、何年英語を学ばなければならないか考えてみてください、中学生ですか?高校?それとも大学? 3,000 語あるときにどれだけうまくコミュニケーションできるか考えてみましょう。
注意深く観察すると、赤ちゃんの学習方法が非常に実践的であることがわかります。模倣、試行錯誤、実践、いわゆる「権威ある」文法や用語に関係なく、すべては応用に基づいています。私の娘を例に挙げてみましょう。彼女の表現は主にフレーズや文に基づいています。
彼女は話す文のほとんどの各単語の具体的な意味を知りませんが、文の漠然とした意味は知っています。大人の反応から、自分が理解している意味が正しいかどうかを知り、真似をし、何度も試行錯誤し、フィードバックを得て、直接使える「知識」を蓄積し続けます。
これはプラグマティストの学習方法です。障害を回避し、トピックに直接進み、すぐに学ぶ必要があることに集中します。数年前、私は何かを学び始める前に、入門書から上級者、専門家まで、インターネットでほぼすべての本を検索していました。さまざまなレビューを読んだ後、その本を購入することに満足していました。 -それを「高品質の製品」と呼んで、それを家に持ち帰り、勉強する前に必要な儀式であるかのように机の前に置きます。しかし、このアプローチは Douban と Amazon を成功させただけで、私が最初の本の第 X 章 (X
実際、これらの「基礎知識」については気にする必要はなく、脇に置いておいて、使うだけ学んでいきます。たとえば、Rails を学びたい場合は、Ruby に関連する文法上の障害に遭遇した場合は、その障害をクリアしたら、Ruby ドキュメントの関連するコンテンツに戻ります。 Ruby の立ち上がりから始めるのではなく、すぐに Rails 自体に戻ります。ご存知のとおり、Rails で使用される Ruby の機能は、Ruby 言語およびクラス ライブラリの機能全体の 20% 未満を占める可能性があります。 Rubyの学習から始めて、間違った道を選んでしまいました。
ソフトウェア開発は技術であり、その学習はめったに使用されないあらゆる種類の知識の蓄積ではありません。すべての理論的知識が準備されてから学習を開始することはできません。 Scala の作者が Java の非効率性を批判したとき、Java はプログラムを書くのが儀式になってしまうので、まったく楽しくないと言いました。では、初心者から専門家まであらゆる種類の本を机の前に積み上げると、学習は盛大で厳粛な儀式に変わるのでしょうか?重要なのは、どれだけの知識を蓄積したかではなく、学んだことをどのように応用するかです。
ただ集中して要点を理解するだけでは十分ではありません。たくさん練習して、学びながらフィードバックを得る必要があります。 赤ん坊は3,000の言葉を蓄積してから話すのではなく、体と脳が準備ができた初日から話すようになり、失敗だらけでも、どんどん勇気を出して戦争に失敗します。同様に、ipython を使わずに Python を学習し、REPL 環境でさまざまな使用テクニックを試す場合、実行可能な Web プロジェクトの構築から始めずに django を学習する場合、学習効率は決して高くなく、効果はそれほど高くありません。 -それで。ジムでは、自分で試したり、他の人の修正提案を受け入れたりせずに、インストラクターの動きを何百回見ても、正しい動きを習得することはできません。私は、人々が本の中の例を 1 つずつエディタに入力し、それらがすべて正しく実行され、このテクノロジーを「習得」したと満足しているのを見てきました。誰もが知っているように、この種の「練習」は価値のある練習ではありません。赤ん坊が一歩を踏み出し、真似をし、一歩踏み出し、転んで立ち上がってまた一歩踏み出すように、試行錯誤が必要なのです。間違いを犯すことも学習の一部です。チュートリアルを読み、そこに記載されている内容を習得したら、自分でアプリケーションや使用シナリオを考え、最初から作成することができます。たくさんの質問が見つかり、チュートリアルの理解が深まります。自分で質問に答えることができない場合は、開発関連の質問のほとんどは stackoverflow で解決できます。常に練習してフィードバックを得ることにより、開発スキルは急速に向上します。多くの非体系的な知識や能力(洞察さえも)は、継続的な練習と試行錯誤を通じて潜在意識で習得されます。それらは非常に静かに身につくため、あなた以外の他の人はそれらを一種の才能と見なします。
それでは、いつ体系的に勉強する必要があるのでしょうか?実戦に必要なスキルや経験を持ち、それをマクロレベルで昇華する必要がある場合、または実戦能力がネックになった場合。 「Rails を上手に使うのに優れた Ruby エンジニアである必要はないが、優れた Rails エンジニアになりたいのであれば、Ruby をしっかりマスターする必要がある」というよく言われることわざがあります。残念ながら、多くの初心者の問題は、テクノロジーをすぐに使い始めたいのに、体系的な学習方法を使用し、始める前に困難な練習の道に陥ってしまうということです。
Brothers PHP オリジナルビデオチュートリアル CD を無料で受け取ります。詳細については、公式 Web サイトのカスタマーサービスにお問い合わせください:
http://www.lampbrother.net
|