web-dev-qa-db-ja.com

グーグルなしでは高速にプログラミングできないことを心配すべきですか?

可能性のある重複:
Googleはプログラマにとって良いのか悪いのか?

私は現在、ソフトウェアエンジニアになるために大学にいます。私たちに教えられた主な原則の1つは、自分のために学ぶ方法と、疑問があるときにWebを検索する方法です。これは積極的な態度につながります-私が何かを必要とするとき、私はそれを取りに行きます。

最近、インターネットにアクセスしなくてもどのくらいの開発が可能になるのか疑問に思い始め、その答えにはかなり悩みました。言語の概念とその使用方法は知っていますが、Googleが開発を手伝わなくては「遅い」ことには驚かされました。私が抱えている問題のほとんどは、特定の構文に関連しています。

たとえば、Javaでのファイルの読み取りと書き込み。私はこれを私の人生の中で十数回やったことがありますが、それをする必要があるたびに、「ファイルJavaの読み取り」をググググしてメモリをリフレッシュすることになります。私はコードを完全に理解し、その機能を完全に理解していますが、Googleがなければ、コードを正しく取得するために数回の試行が必要になると確信しています。

これは正常ですか?私は心配して、プログラミングの振る舞いを変更しようとする必要がありますか?

22
seth

インターネットなしで働くことはスキルです。ほとんどの開発者のように、それはありません。

あなたが心配する前にあなた自身に尋ねなければならないことはあなたがあなたの人生でこのスキルが必要かどうかです。 Joel Testがゼロより高いすべての開発者の仕事で、高速のインターネットアクセスが得られる可能性があるためです。

次に、選択肢があります。

  • IDE(構文の強調表示なしのテキストエディターのみを使用)なしで、さらに高レベルのオペレーティングシステムなし(つまり、コンソールモードのみ)でさえ、インターネットなしで効果的に作業する方法を何年も費やします。

  • または、毎日の仕事で実際に使用することを学ぶのと同じ時間を費やします。

最初のものは、いくつかの場合に役立ちます黙示録的な世界、IDE、オペレーティングシステム、インターネットがない、そしてほとんどの開発者がキャリアを続けることができないためスキルの欠如。

2つ目は、今日、現在、そしておそらく近い将来、あなたが生きている世界であなたを助けます。

23

あなたが示唆しているように、GoogleとWebを使用して、使用方法を知っている情報を収集し、(理想的には)他の地元の情報源(印刷された本など)から入手できる場合、完璧な開発者のライブラリがあれば)、それはIMOで結構です。事実上、すべての開発者が最近これを行っているようです(Googleやインターネット以前の開発経験がある私たちもそうです)。賢明に使用すると、Webは確かに、紙ベースの本や図書館で情報を検索し、それを最新の状態に保つなど、繰り返しの遅いタスクを解決することで、驚くべき生産性の向上をもたらします。

構文の詳細も私にとって典型的なものです。今日、私は少なくとも4つの異なる言語のいずれかを使用する必要があるタスクを持つことができますが、そのうちの3つはマスターではありません。したがって、このような特定の詳細を調べることは、私にとって定期的な活動です。それでも、正しい方法で正しいコンテキストで見つけたコード例を(多かれ少なかれ)使用するには、これらの各言語を十分に理解しています。

OTOH、何がどのように行われているかを完全に理解せずにネットから本番コードにグーグルでコピーしたコードのスニペットをコピーして貼り付けることは間違いなく悪いことであり、そうでなければ遅かれ早かれ裏目に出ることになります。

更新

Javaでのファイルの読み取りと書き込み。私はこれを私の人生の中で数十回行っていますが、それを行う必要があるたびに、「ファイルJavaの読み取り」をググググしてメモリをリフレッシュすることになります。

Javaが現在の私の主な言語ですが、ほとんど同じことを行います:-)サーバーサイドでの開発はほとんど行っているので、ファイル操作を行う必要はほとんどありません。したがって、これらのことは私の(限られた)短期記憶にはありません。

特定のAPI /フレームワーク/言語/私たちに知的満足を与えるものの詳細を記憶しますが、最終的にそれは私たち(私たち自身と顧客)の実際の問題の解決に役立つ限りにおいてのみ有用です。最近問題を解決するためにJava File I/O API(s))の要点を必要としていない場合、それをメモリに保持することに価値はなく、それをIMOします完全に論理的で、私の短期記憶でより有用なものに置き換えるのに役立ちます(関連情報のソースへの簡単な参照のみを保持します)。

13
Péter Török

最近の研究 は、プログラミングだけでなく、種として、私たちが物事を記憶する方法をインターネットが完全に変えたことを示唆しています。情報全体を暗記するのではなく、情報を見つける方法を覚えることを学習しています(たとえば、私は、そのリンクを見つけるためにGoogleで「メモリグーグル」と検索しました)。これは悪いことではなく、限られた脳空間のより効率的な使用です。データベースインデックスの複雑なバージョンと考えてください。

私は、MSDNライブラリ全体を本の形で机の上に山積みしていた日を覚えている年齢です。大きかった。そして、私が持っていた本の完全なコレクションにさえ近づきませんでした。でも、それらの本を探すのは大変だったので、たくさん覚えました。生産性を高めることが不可欠でした。

最近は何も覚える必要はありません。グーグルのスキルを磨く必要があります。それでも問題が解決しない場合は、質問をして応答を待つ必要がある場合でも、通常、Stack Exchangeから質問への回答を数分で取得できます。

一日に20回やらなければならないことなら、検索はもちろんのこと、何も考えずにすぐに学べます。しかし、それが私が毎月行うことである場合、それを覚えておくのは私の脳の効率的な使用ではありません。むしろ、それを見つける方法を知ることは私にとって役に立ちます-ブログへのリンクを保持するか、企業のwikiにいくつかのメモを書くことさえします。

しかし、その情報なしで仕事に戻らなければならなかったとしたら、間違いないでしょう。あなたもできる可能性が高いです。私たちは人々としてそのように適応します。これがまさにレースとして進歩した方法です。 (「生き残るのは最強の種でも、最もインテリジェントな種でもありませんが、変化に最も敏感な種です。」-ダーウィン。)

おそらく私たちがする必要がないことを本当に感謝します。

9
pdr

これは完全に正常だと思います。

インターネットと効果的な検索エンジンの生産性への影響を過大評価することはできません!

インターネットを利用する前は、書籍やその他の印刷された情報源に頼って物事を調べなければなりませんでした。男の子、それはslooooooow ...(ok、yes、I amold-Googleの前の時間だけでなく、インターネットの前の時間も覚えています!)

Javaでファイルを読み書きする例について:VBAでこれを12回以上行ったことがありますが、今すぐ実行したい場合は、とにかくそれを行う方法を調べる必要があります。 C#ではこれは必要ありません。なぜなら、それが現在プログラミングしているものだからです。しかし、VBAは私が日常的に使用しているものではありません(神に感謝します)。したがって、知識は私の心にはありません。

あなたが毎日それをしていて、2週間後にそれを調べる必要があるなら、私はあなたが中期記憶に問題があり、心配するべきだと言います(そしておそらくそれについて医者に行きます)。しかし、少し前に学んだことについて復習が必要だが、現時点では覚えていない場合は、それで問題ありません。

5
Treb

それはあなたがグーグルすることに依存します。

正確な構文定義やあいまいな参照を探してソリューションに適用する場合は問題ありません。グールなしで、時間と本があれば、あなたはそれを解決するでしょう

一方、問題を解決する方法をググる場合は、問題があります。

編集:私が「問題を解決する方法」と言うとき、私は「アイデアはあるが明確にする必要がある」ではなく、「コードを入手できますか?」

2
Amy

セキュリティ上の理由でインターネットからエアギャップされているコンピューターで比較的不慣れな言語で作業する必要がある開発者として、私はおそらくこれについてほとんどの人よりコメントすることができ、他のほとんどの回答の一般的な意見に同意します。

まともなIDEのオートコンプリートは、標準クラスライブラリで必要なものの約95%を見つけることができます。ネットワーク化されたコンピュータとの間を行き来する(そしてときどきメモを取る/印刷する)と、1か月あたりのコーディングの生産性が1〜2時間低下するだけです。

大規模なクラスライブラリを記憶しようとするのは、費やした労力に値しません。数百時間を費やして他のことを学ぶと、費やされた時間のリターンがはるかに高くなります。

私は「インターネット以前」の時代にプログラミングを行いました。当時、私はMASMとCに必要な情報を調べるためにいくつかの本を手元に置いていました。目次または索引を調べて、必要なものを見つけました。それが私の本のいずれにもない場合は、書店に行って購入した本を購入するか、場合によっては店頭で注文して、本が配達されるのを待つ必要があります。

Compuserve、Genie、その他の有料サービス、Usenet、または掲示板システム(FIDOnetなど)を介して他のプログラマーとも通信します。今日のGoogle検索ほど効率的ではありませんでしたが、SOまたは他のオンラインフォーラムとそれほど変わりませんでした。

したがって、より多くの情報をより迅速に入手できるため、インターネットはプログラマーをより効率的にしました。たくさんの本を持ち歩き回ったり、何十もの異なるソースから接続されていない大量のテキストを検索したりする必要はありません。

1
jfrankcarr

私はあなたの説明に私自身を見つけます、そして私が言えることは、言語自体の経験がなくてもc ++プロジェクトで期限を迎えることができたからです。

あなたが指摘したように、c ++でファイルを読む必要があったとき、私はそれをググっていくつかのページに行きました、いくつかのOO知識のおかげで、私は私の問題の最も正確な解決策を見つけることができました提案されたソリューションの1つで論理エラーを見つける贅沢。

グーグルで何をしているか、チートシートで置き換えることができます、Eclipseはctrl + nを実行するとウィザードに非常に素晴らしいユーザーアシスタンスセクションがあり、これを使用して独自のチートシートを作成できますコードを1回、数回貼り付けます。

いくつかの回答が指摘したように、インターネットはあなたの生産性を高めます!それを使用することを恐れないでください:)

0
user50236

この種のことがUNIXの世界にmanページがある理由です...インターネットはこの種のものをより良くしました。

0
Spudd86

回答のグーグルに問題はありませんが、すでに見つけた情報を取得することは最適ではありません。ここにいくつかの提案があります:

  1. 各言語で独自のライブラリを開発します。その後、ファイルに書き込みたい場合は、ライブラリを使用できます。そして、それを使って構文を調べることもできます。
  2. 「脳のバックアップ」システムを作成します。私はEvernoteを使用していますが、すばらしいと思います。その他のアイデア: https://softwareengineering.stackexchange.com/questions/113462/how-do-you-manage-all-of-the-information-you-have-learned-and-found
  3. 暗記が上手になります。暗記は学校で教えられていないスキルです。優れたプログラマであることはほとんど重要ではありませんが、何かを覚えておくことは、Googleに頼るよりも優れています。他のすべてのスキルを向上させるのと同じ方法で、メモリのスキルを大幅に向上させることができます:効果的なテクニックを学ぶ練習.

ところで、私はSPOJサイトで脳のパフォーマンスを改善するこの興味深いツールを見つけました: 脳の健康とパフォーマンスを向上させる

0
B Seven

あなたが要点を見逃していることを信じてください、それは言語であることは自然にbootstrapは、それらの使用から生じる交換からのものです。

インターネット、コンピューター、またはWordの前でさえ、人々または「ピープルウェア」は自然な形の通信を使用しており、ロジックベースのシステムの交換と開発をブートストラップするダイアログをもたらしました。

0
blunders