プログラミング|初心者
C# トレンドの思い出 - 初心者プログラマーへのアドバイス (再投稿)
出典 http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39041202,00.htm
私はいつも信じています初心者にはIT業界の技術トレンドに追いつくことは不可能であり、追いつく能力もありません。私の DDMM が教科書を捨てて、C# や VB.Net などの高価な本を売っているのをよく見かけ、とても悲しい気持ちになります。 C# でポインターが何について話しているのかを理解していない多くの BBS ユーザーがポインターなしでできるのは面白いと思います。 C# は当時の ASP と同じで、「一晩で突然春風が吹いて、何千もの梨の花が咲きます。」その結果、多くの学校の情報大学が「Web 大学」になりました。 1996 年と 1997 年の学年の多くの大学生が Web に取り組んでいます。もちろん、特定の業界を差別するつもりはありません。これらのファッショナブルなテクノロジーに追いつくために基礎コースにもっと時間を費やせば、さらに先へ進むことができると私は思います。
いくつかの誤解
初心者が C# トレンドを追い求めることは、実際には、学習プロセスでよく遭遇するいくつかの誤解の 1 つにすぎません。これらの現象を説明するために、いくつかの実践的な例を使用します。自分がこれらの 1 つまたは複数に属しているかどうかを段階的に確認できます。
コンピューター技術はプログラミング技術と同等であると考えてください:
持っていない人もいます。無意識のうちにこのような考えが中国にもあります。不思議に思ったのは、情報学部の学生にもそのような考えを持っている人が多いということです。コンピュータ サイエンスの専攻はプログラミングの専攻であると信じている学生は、プログラミングに関係のないコースやあまり関係のないコースをすべて無視します。その本に「プログラミング」という言葉が含まれていない限り、本を読むことはありません。
実際、プログラミングは、コンピューター技術の応用において最も単純な労働にすぎません。これが、IT 業界の底辺にいる人々がプログラマー (CODER) である理由です。コンピュータ技術には、マルチメディア、コンピュータネットワーク、人工知能、パターン認識、管理情報システムなどが含まれます。プログラミング作業は、これらの特定の技術の理論研究または工学的実践の過程でアルゴリズムを表現するプロセスにすぎません。プログラミングを行う人は、必ずしもコンピュータ テクノロジについて高度な理解度を持っているわけではありません。興味深い現象は、修士レベルのコンピューター技術研究者の多くがプログラミングを理解していないことです。オンラインでの誇大宣伝と現実の良い雇用手当により、プログラミングの労力はわかりやすくなりました。実際、すべてのプログラマーは、これらのことを学ぶのが他の専攻よりも難しくないことを心の中で知っているので、当然、それはハイエンドではありません。
Kong Jiji の傲慢な言葉遣い:
この小学生のような女の子が本に横線とメモを埋め尽くしているのを見たことがありますが、それよりも優れているに違いありません。教科書はかなり分厚いです。私が理解できないのは、コンピューターネットワーク原理のようなコースではメモを取る必要があるのかということです。私たちの試験指向の教育は、実際に多くの学生に害を与えてきました。「原則」などの科目を履修する際、多くの学生は「マルクス・レーニン主義の原則」を学ぶかのように、その内容を一字一句暗誦し暗記します。これは私が今まで見た中で最も愚かな行為です。いわゆる「原理」とは、なぜそのような動作をするのかを理解し、方法ではなく理由を学ぶ必要があることを意味します。非常に真面目な学生は、イーサネット ケーブルの最大長、データ フレームの長さ、各フィールドの意味、IP ヘッダーの形式などを暗記しますが、ルーティングの原則と TCP/IP プロトコル設計の目的を忘れます。 。つまり、多くの人は本の暗記に多くの時間を費やしても、何も学べないのです。
プログラミングを学習している生徒たちにも同じことが当てはまります。彼らは C++ 構文の細部をすべて正確に覚えています。 C++ チュートリアルを読んだ後、「Thinking in C++」(本当に良い本)、「Inside C++」、「C++ リファレンス」、この C++、あの C++...、そしてインターネット上の C++ 構文に関するさまざまな逸話を読みました。 、そして、C++ の構文を忘れていることに気づき、最後にそれを補うために戻ってきました...後輩は「C++は難しすぎる。ここで学んだ後はそこのことを忘れてしまうし、継承を学んだ後はテンプレートのことも忘れてしまう。」と言いました。私の答えは「学ばなければ簡単です。」でした。 」私は彼に悪いことを教えたわけではありません。C++ の構文に固執することは、Kong Yiji がフェンネル豆のフェンネルという単語の書き方をいくつか紹介するのと同じくらい無意味だと彼に伝えただけです。 C++ 構文についてあまり気にする必要はありません。何も覚えていない場合は、MSDN を調べてすぐに理解してください。実際の開発プロセスにおいては、プログラム構文の理解が最も些細な知識であるという結論に達しました。これが、クラスメート向けに Basic で小さなプログラムを書いたとき (これまで習ったことがありませんでした)、構文を確認するのに 30 分だけ費やし、その後プログラムを完成させるのにさらに 30 分かかり、さらに 1 時間後にもう一度プログラムを作成した理由です。 Basic のキーワードを完全に忘れていました。
基本を無視して、流行のテクノロジーを盲目的に追い求める:
ようやく本題にたどり着きました。ほとんどの人は、自分の持ち物がすぐにお金に変わることを望んでいます。プログラマやプロマネになったプロマネであればこの考えはもっともであり、IT技術の進歩は速いのでフォローしていないと失業してしまいます。しかし、初心者(特に時間のある大学生)にとって、この考えは不可解です。業界の競争に参加していない初心者の最大の資本は、基本的なことを学ぶことに集中し、「方法」ではなく「理由」を学ぶのに十分な時間があることです。流行のテクノロジーは習得が容易なことが多く、ソフトウェア開発コストを最小限に抑えるために、商業的利益によって習得が容易になりつつあります。しかし、IT 分野の現実は、何かを習得するのが簡単であればあるほど、より多くの人がそれを習得し、より早く排除されます。新しいテクノロジーが登場するたびに、多くの初心者はフォローアップに多くの時間を費やします。なぜなら、彼らはそれを習得する頃には、そのテクノロジーはすぐに排除されてしまうからです。データ構造やオペレーティング システムの原理などの基本コースでは、すぐに Linux を実装できるわけではありませんが (これが、多くの人が理論コースの役に立たないことを笑う理由です)、新しいテクノロジを学ぶ際の学習曲線を大幅に短縮することができます。スロープ。さらに、多くの主要なテクノロジ (Win32 SDK プログラム設計、DDK プログラミングなど) にとっても不可欠です。
生きた例は、私のクラスメートの一人と私です。私が新入生のとき、私は電源ボタンを見つけることができませんでしたが、彼はすでにいくつかの簡単なアセンブリプログラムを書くことができました。私は 2 年生のすべてをアセンブリ、コンピュータ アーキテクチャ、データ構造、オペレーティング システムの原理などの勉強に費やしましたが、彼は HTML と VB を学び始め、ASP のトレンドに追いつきました。 3 年生のときに、Windows オペレーティング システムと SDK プログラミングの原理を学び始めました。それから、VC を使用してまともなアプリケーションを開発できるようになりました。私がまだダイアログ ボックスの作成方法を学んでいる間に、クラスメートのプログラムがすでに実行されていたため、イライラしたことがありました。しかし、自分の選択がいかに正しかったかに気づいたのは卒業したときでした。私が交渉していた会社は彼の2倍以上の給与を提示した。これは不適切な例えです。VB プログラミングの学習に 4 か月かかり、基礎コースと VC プログラミングの学習に 1 年かかると仮定します。したがって、最初に VB を学習してから後者を学習する場合、時間は短縮されません。一方、後者を先に学習してから VB を学習する場合は、かなりの時間を学習できる可能性があります。わずか1週間で上達します。
いくつかの重要な基礎コース
学生の方、または十分な時間がある方。次の知識を注意深くマスターすることをお勧めします。 IT技術で何かを達成したい初心者へのアドバイスです。同時に、まだ書店で入手できるであろう本もいくつかリストしました。正直に言うと、他の人の記事を読んでいるときの私の最大の願いは、著者が本のリストを作ってほしいということです。
大学英語 - 冗談を言わないでください。専門的な文書なしで読む能力は想像を絶するものであるため、このコースを強くお勧めします。中国語の翻訳は申午年に出版されることが多いですが、多くの出版社は現在、単に E 版を直接印刷しています。学習方法は、オリジナルの教科書を強制的に読むことです。最初は理解できませんが、繰り返し使用することでより熟練します。困難に耐え、冷酷になれることは、どの業界でも間違いなく必要な資質です。
コンピューター アーキテクチャとアセンブリ言語 - アーキテクチャに関する本はどこにでもあり、それらは似ていますが、アセンブリについては非常に優れた本があります。 『80x86 アセンブリ言語プログラミング チュートリアル』 (清華大学出版局、黒表紙、楊吉文著)。 386 以降の保護モードのプログラミングの学習に集中する必要があります。そうしないと、現代のオペレーティング システムの基礎となる事柄を学ぶと、天国から本を読んでいるような気分になるでしょう。
コンピューター オペレーティング システムの原則 - 私たちの開発は常に特定のオペレーティング システム上で実行されます。そうでない場合、可能性は 1 つだけです。それは、お客様自身でオペレーティング システムを実装しているということです。いずれにしても、「オペレーティング システムの原則」は必読です。これは、チップの周辺デバイスを作成するときに、チップの基本的な動作シーケンスを理解する必要があるのと同じです。このカテゴリーの本はたくさんありますが、目立った本は見つかりませんでした。これらの本を読んだ後、時間があれば「Inside Windows 2000」を読んでみようかなと思っているところです(Microsoft Press、私はE版を読みました。中国語のタイトルは「Windows 2000 Technical Insider」か何かのはずです)。学習の必要性については、ZDNETの別の記事ですでに論じられています。
データ構造とアルゴリズム - このコースは、人のプログラミング レベルのレベルを決定することができ、コア コースです。私の第一希望は清華版(朱戦麗、劉天詩)です。多くの人は C++ バージョンを購入することを好みますが、私はそれが必要だとは思いません。 C++ の構文により、アルゴリズムの実装プロセスがより複雑になるため、多くの教師はモジュールを使用してアルゴリズムをより複雑にすることを好みます。 C バージョンを読み終えた後に、C++ バージョンの書籍を参照することをお勧めします。
ソフトウェア エンジニアリング - このコースは、後になってわかるほど重要性が増しますが、最初に読んだときは、Ma Zhe を見ているのと同じくらい混乱しました。私の提案は、『実践ソフトウェア工学』(清華大学、黄色) を読むことです。ルールを覚えるのにあまり時間をかけず、理解できない場合はスキップしてください。ソフトウェア設計タスク (演習であれ、仕事であれ) を完了するたびに、それをレビューすることで、毎回何かを得ることができます。
Windows プログラミング - 「北京大学出版局、ペッツォルト著」 Windows プログラムを設計しようとしている人は、VC を学ぶ前に注意深く学習することをお勧めします。また、前著「Inside Windows 2000」は、この本の最後に読むのが最適です。この本には、C++、GUI、コントロールは含まれていません。オリジナルの C 言語を使用して Windows プログラミングを完了する方法もいくつかあります。学習すると、VC は実際には非常に簡単に学習できることがわかります。この本を読む前に VC について事前に学習しないでください。まったく触れないのが最善です。私の知る多くの有名学校でも授業の教材として使用されています。これはその重要性を示しています。
上記のコースは (Windows プログラマーになりたい場合) 必ず学ばなければならない重要なコースだと思います。
その他の科目については、以下のような簡単な選択方法があります。コンピュータ学科の場合は、専攻の基礎科目をすべて学習してください。そうでない場合は、CS 部門のコーススケジュールを参照してください。本を読み続けることができないと感じた場合は、本の最後まで行って参考文献を調べ、見つけて研究してから、その本に戻ってください。タイトルに「原則」という言葉が含まれている本の場合は、内容を暗記してはなりません。少なくとも 1 日 50 ページのペースでその要点をマスターする必要があります。理論やアルゴリズムをできるだけ頻繁にコンピューター上で練習します。
CSDN で多くの書評を読むこともできます。これらの書評は、どの種類の本を読むかを決めるのに役立ちます。
1日3回自分について考えてみましょう
毎日たくさんの本を読みすぎると、人は簡単に道を見失いやすくなります。毎晩何を学んだのか、他に習得する必要がある関連事項は何か、最も興味のあることは何か、本に費やす時間が長すぎるのか、それとも十分でないかなどについて考えなければなりません。同時に、テクノロジーのトレンドを追うのではなく、テクノロジーのトレンドをリードできるように、将来登場する可能性が最も高いアプリケーションについてもさらに考慮する必要があります。同時に、私たちは今習得した技術と理論を使用して、新しく革新的なものを生み出すよう努めています。これを続けることで、単なるコーダーではなく、真のソフトウェア「開発者」になることができます。
学習に最大限の時間を費やしましょう
これが初心者への最後のアドバイスです。毎週 SC または CS をプレイする時間を最小限に抑え、プレイしないことが最善です。同時に、あなたの ASP テクノロジーがすでにお金を生み出すことができたり、会社からパートタイムで働くように頼まれたりした場合、これはあなたの才能が、熱心に勉強した後により良い利益を確実に生み出すことができることを証明しているので、より複雑なことをする必要があります。もの。長期的な視点を持つことは誰にでも当てはまります。
C# を学習するかどうか、いつ学習するかをすでに決定できると思います。
---------------------------------------------- --- ----------------------------------
Liu Wei - シニアプログラマー、ソフトウェアデザイナー、以下の分野に精通しています。 VC、VB、COM、プラットフォームSDK、DDK、TCP/IP。さまざまな Windows アプリケーション、WDM USB ドライバー、ネットワーク アプリケーションを独自に開発しました。暗号化テクノロジと LINUX での C/C++ 開発に精通している。