ホームページ  >  記事  >  バックエンド開発  >  コンピュータ専攻者がプログラミングを上手に学ぶ方法について

コンピュータ専攻者がプログラミングを上手に学ぶ方法について

WBOY
WBOYオリジナル
2016-07-25 08:49:58793ブラウズ
この記事は低学年向けに書かれていますので、すでに働いている人は私の戯言を読んで時間を無駄にする必要はありません。
最近、自分の方向性をどうやって決めたらいいのかとよく聞かれますが、携帯電話をやっている人、ウェブページをやっている人、ゲームをやっている人などがいるそうですが、自分だけだと言います。知識はほとんどないが、何をすればよいかわからない、といったことです。私はいくつかのソフトウェア開発グループに参加していますが、そこには多くの学生や実務家がいます。その人たちは、基礎がしっかりしていないのに「具体的なプロジェクトをいろいろやる」ということに対して、衝動的であるという意見と、視野を広げることが良いという意見の2つを持っています。
大学はたったの4年間です。学校では通常、最初の 2 年間で数学と英語を学び、その後 1 年生で言語を学び、2 年生でデータ構造を学ぶように設定されています。 3年生では、より具体的で複雑なコースがあり、4年生では実際に仕事を探す必要があります。授業はなく、健康診断もありません。学校の寮を借りて暮らすのと同じです。
ということで、この短い 3 年間で、コンピューター サイエンスのさまざまな分野で好きなものを見つけて、それを勉強し、最終的に何かを達成するのは非常に難しいことです。そのため、周りで2~3人が突然とても充実したことをしているのをよく見かけます。私はこのような人に何人か会いました。私のクラスメートの一人は、彼が高校時代にコードオタクと呼ばれていたと言い、エミュールのコードを書き、その後、独自のインスタント メッセージング ツールを作成して販売しました。大学に入学してからずっとこのことを書き直していて、最終的にはテンセントにインターンシップに行きました。数日前、小学校の頃から Flash でアクション スクリプトをいじっていて、その後 Perl に切り替えたという人に会いました。彼は、1 年生になるまで 2,000 行を超えるプログラムを書いたことはなかったと言いました。検証しに行ったわけではなく、ただすごいと思っただけです。
そこで私は、これらの伝統的な方法に従って、まず言語をマスターし (「C++ 入門」)、次にデータ構造を学び (「アルゴリズム入門」)、次にいくつかのライブラリを学びましょう (「STL ソース コード分析」「入門」) と考えました。シンプルな方法での MFC」) を読んでから、いくつかのデザイン パターン (「デザイン パターン」) に取り組み、最終的には特定の管理システムを書きました (笑) が、これも少し退屈でした。目に見えて具体的なプログラムを考え出す前に、実際に非常に多くのことを学ばなければならないのは、まさに人々の意志の力が試されることです。ほとんどの人はコントロールをドラッグすることから始めます。白黒画面でアルゴリズムに取り組み始めた人は NOI または ACM の出身で、アルゴリズムに関するいくつかの質問を解くことに飽きることはありませんでした。しかし、最終的に何かを達成できる人はほとんどいません。学校では ACM の人々にたくさん会いましたが、最終的に Google に行ったのは 1 人だけでした。まだリスクが少し高いような気がします。
しかし、その逆もまた問題です。最初からインターフェースから始めると、人々はすぐに衝動的になってしまいます。その結果、多くの人がカラフルな世界の追求に陥っています (グループ内の人々の統計によると)。たとえば、ListView の前に木を描く方法に特に関心を持っています。そのような人々の中には、最終的には Windows SDK を追い、次に DDK に行き、最終的にはドライバーを作成して泥沼に足を踏み入れてしまう人もいます。もちろん、彼らは決して抜け出すことができません。人も少数派です。少数の人々が、残りの大多数の人々と同じようなことを言うたびに、「今日、Word でこれこれのファイルを開けないようにする方法がわかりました」と目を輝かせて、ひざまずいて懇願し始めます。ソースコードを必死で聞き、何の API を使っているのかを聞き、ようやくコードを入手したときは、あらかじめ用意しておいたフォルダーに入れて永久に封印し、二度と見ることはありませんでした。もちろん、常に書籍をダウンロードして rar のまま、決して解凍しないなど、他のバージョンもあります。かつて、グループ内で自分が何ギガバイトの電子書籍を持っているかを自慢していた人がいました。スクリーンショットを投稿してもらいましたが、結果はすべてrarでした。彼はそれをまったく見ていなかったが、彼自身がそれを認めた。
つまり、どちらの道も、どう考えても非常に危険であり、これが、4年生で成功できる人が常に少ない理由です。 それに陥るのはあまりにも簡単です。それはどういう意味ですか?人は常に、自分がうまくやることだけに興味を持ちます。まだやったことのないことに興味を持つことは好奇心であり、真剣に受け止める必要があります。人々は、最終的に何かをうまくやると、それを研究し続けるでしょう。これはもちろん良いことです。しかし、木を見て森を懐かしみ、世の中はプログラミングがすべてだと思っていると、必ず苦しむことになります。
ですから、まず私たちは視野を広げて、世の中にはできることがたくさんあるということを認識しなければなりません。 プログラミングが何なのかをほぼ理解したら、あれこれ試してみる必要があります。そうしないと、隣のクラスメートが Java を使用して電話で 1+1=2 を示す何かを実行しているのが見えます。その人は PHP+MYSQL を使用してメッセージ ボードを作成しました。 C++ の白黒画面で長時間作業していると、自分の自尊心が簡単に壊れてしまいます。
したがって、プレイ後に時間内に停止したい場合は、具体的に 1 つのことを行うだけです。なぜなら、現時点では、自分が見ているものはほぼそのようなものであることはすでにわかっているからで、その気になれば自分でもできますし、他の人がそのような派手なプログラムを書いているのを見ても、自分自身にそれほどプレッシャーをかけることはありません。一つのことに特化するということは、方向性を決めてから本を探し、人を見つけ、コードを読み、プログラムを書くことを意味します。 たとえば、ゲームを作るためにグラフィックスに取り組むこともできますし、スクリプト エンジンやコンパイラに取り組むこともできます。また、先生に従ってデータ マイニングや組み込みなどを行うこともできます。ある分野での綿密な研究の最大の用途は、複雑な問題にさらされることです。
もちろん、研究が深くなるとプログラムはどんどん大きくなり、その際に様々な問題がたくさん出てきます。例えば、プログラムがエラーを起こすと、完全に破壊してやり直す必要がある(これは非常に悲しい)。コードが多すぎて、関数やクラスなどを整理するのが難しい。または名前が不足しているなど。このとき、データ構造やアルゴリズム、デザインパターンなど、さまざまな理論的な知識が必要になります。もちろん、「この世に特効薬はない」ので言えることは限られており、あとは各分野の他者や自分の積み重ねに依存する部分はまだ少ないはずだ。自分の研究の才能がついに解決しました。
上記でできることはまだ理論的なものですが、実際には、コンピュータを扱う場合、プログラムは入力と出力に依存するため、学術分野があるだけでは十分ではありません。一般的にIOとして知られています。これは何ですか?言い換えれば、必要なデータがどこに保存されているかを知っているので、それを取得する必要があります。自分で何かを考え出し、それをどこに配置するかを知っており、それを配置できなければなりません。これには、キーボードと画面での一般的な入出力、ネットワークで使用されるソケットと Web サービス、表示されるウィンドウとコントロール、ハードディスクの読み取りと書き込みなど、多くのものが含まれます。特定のプラットフォーム上のこれらの専用 API の少なくとも 1 つに精通している必要があります。そうでない場合、このアルゴリズムとそのアルゴリズムを学習するだけで何の意味があるのでしょうか? たとえば、画像を圧縮したいと考えていて、その知識を具体的に学習したとしても、ハードディスク上の bmp を読み取ることができなければ、それは無意味ではないでしょうか。 ?
ここまで言っても、最初は世界を見て、それから一つ選んでゆっくり勉強し、最後にプログラムを勉強して勉強するということにすぎません。プログラムが大きくなると、当然多くの高度な問題に遭遇します。この時点で解いていけば、実は学部卒業に必要なレベルにほぼ達していることになります。
非常に多くの人が考えを変え、ついに現場の問題の研究に熱心に取り組み始めました。このフィールドは常に複雑であり、この時点では、アルゴリズムが複雑すぎて表現できない、ファイルの読み取り中にハングする、誤って境界線を越えてしまい、多くの奇妙な問題が発生する (C++) など、多くのプログラミング上の問題に遭遇することになります。の上。この種のデバッグ問題では、通常は自分自身に頼って、何度も間違いを犯し、最終的には成功するしかありません。もちろん、先人たちは自分たちの経験をまとめて「プログラムが失敗する理由」という本を書きました。読みたい場合は、自分でダウンロードできます。次に、特定のライブラリに関する書籍やドキュメントが常に多数存在するため、たとえば、Visual Studio を使用する人は全員 MSDN をインストールする必要があるため、もっと読む必要があります。
ほぼ話が終わりましたが、この記事は「普遍的なもの」でもあるので、私自身少し弱いと感じています。具体的に何をすればよいのかをよく考えなければなりません。この記事を、まだ迷路にいる大学1、2年生の弟や妹たちに捧げたいと思います。もし特別で難しい病気がある場合は、個人的に私に連絡してください。
要するに、いつでも、勉強できる問題を手元に置いておくのがベストです。
LAMP BrothersオリジナルPHPチュートリアルCD/『Essential PHP in Detail』を無料でプレゼント 詳細は公式サイトカスタマーサービスまでお問い合わせください: http://www.lampbrother.net
PHPCMS二次開発 http://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat開発
モバイルインターネットサーバーサイド開発 http:// yun.itxdl.cn/online/server/index.php?u=5
Javascriptコース http://yun.itxdl.cn/online/js/index.php?u=5
CTOトレーニングキャンプ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。