ホームページ >php教程 >php手册 >初心者の学習まとめ

初心者の学習まとめ

WBOY
WBOYオリジナル
2016-06-21 08:51:54857ブラウズ

1週間の疲れを癒すためにこの記事を書いている一方で、私の学習経験を皆さんに紹介し、ホームページへの推薦申請もしたいと思っています、ありがとうございます~

私は Linux C プログラマーで、サーバー プログラミング、サーバー アーキテクチャと最適化に重点を置いています。読んだソース コードには、lighttpd、nginx、jabberd2、memcached などが含まれます。主に、lighttpd などの Web サーバーの設計と実装を研究することに興味があります。 、Apache、nginx などとそのアーキテクチャについて、設計の詳細をソース コード レベルで理解していること。

一日中C言語を打ち続けることに苦しみ、鈍感になってしまった私には、将来の起業に対する一定の理想や展望があるので、コーディングや設計の底辺の段階に留まりたくないので、上部構造もそうであってほしいと願っています。ある程度昇華して下層構造を補助し、上位層と下層層の両方に対応できる優秀なプログラマーとなる。

前述したように、私は最初は Apache のソース コードに焦点を当てていましたが、数日間読んだ後、これほど大きなものにすべてを費やすには人生は短すぎると感じたので、「Apache Source Code Analysis」を購入してこれを使用しました。 Apache をプリフォークするための魔法の本では、マルチプロセス アーキテクチャとワーカーの実装の詳細がすべて考慮されています。 Apache は学習を手抜きしており、http 関数や mod 関数はまったく不明瞭な関数が多すぎることが判明したため、軽量ソース コード lighttpd を使用して詳細なソース コード分析を行い、決してあきらめることはありませんでした。

memcached のソース コードを読んだ経験があるため、ソース コードを読むことは最初はそれほど難しくありませんでした。そのため、(コア コードと比較して) 周辺コードを快適に読むことができ、非常にやりがいがあります。コア コードを読み進めると、HTTP サーバーと WEB サーバーに関する基本的な知識が非常に不足していることがわかり、先に進むことが困難でした。

そこで、「Building High-Performance Web Sites」という本を購入し、3 日以内に読みました。その恩恵は計り知れません。Baidu で優れたブログ投稿を探し続け、HTTP プロトコル、WEB サーバーのアーキテクチャ設計、現時点ではあまり洞察も知識もありませんが、この点に関しては非常に重要な進歩が見られます。ソース コードを読んだり検索したりし続けていると、lighttpd コードを完全に読んで混乱してしまい、いくつかのプラグイン (Mod) を読み飛ばしてしまいました。プラグイン アーキテクチャの設計については、ソース コード レベルでまだ疑問が残っています (これは質問Jabberd2 とその後の社内インターンシップでの実際の開発の組み合わせを通じて、それを完全に理解しました)。

この後も、lighttpdのソースコードを考え続けて、常に問題点を発見することになるので、さらに探して考えて、ソースコードの詳細を見直し、ソースコード体系を再編成していきます。しかし、まだ疑問がいくつか残っているので、答えが見つかることを期待して nginx コードを読み始めなければなりませんでした。もちろん、私はソース コードのほんの一部、主に http リクエストとマルチ リクエストの解析部分だけを読みました。 -プロセスの作業モデル。

この時点で、「Building High Performance...」という本で http プロトコルを詳しく紹介したことで、HTTP プロトコルの対話型実装原理をある程度理解できました。また、すべての http フィールドについてもより完全に理解できました。 。

この時点で、言いたいことが多すぎることがわかったので、すぐに Web 学習の段階に移行する必要がありました。

Web を学ぶ理由は非常に単純で、記事の冒頭でも述べたように、自分のことをやりたいからです。一番手っ取り早いのは、モバイル端末か Web アプリケーションの両方に適用できるからです。 PC およびモバイル端末、および Web アプリケーション。第 2 に、Web サーバーは独自の分散プロトコル (Http)、簡単なアクセス方法 (get/post) を迅速にセットアップできます。ステートレスな短い接続機能自体は完璧な成果物であり、特に Web サーバーの実装を研究してきた私のような人にとっては、プロトコルの下のバイト ストリームさえ確認できます。 。 。 (笑)

というのは、その後、私はその会社にインターンシップに行き、すぐに仕事の関係で、HTTP サーバーを開発するために C 言語に触れるようになりました。HTTP サーバーは、合法的な HTTP リクエストを受け入れ、そのデータを保存および転送する必要がありました。 。このプロセスは、XML+Nginx によって提供される http_parser ライブラリを使用して迅速に開発および実装されます。これは、epoll のマルチプロセス アーキテクチャに基づいており、jabbered2 のソース コードを読み取る必要があります (読み取るのに 1 週​​間以上かかりました)。 RFC プロトコルとソース コードは社内で使用されます)。

Web を扱う人がますます増え、会社では全員に C/PHP をマスターするよう要求しているため、Web の学習パスが急速に議題に上ります。

0から始めるのは常に難しく、忍耐力が必要です。最初は、正しい勉強方法が見つかりませんでした。CSDN に来て、みんなの提案に耳を傾け、自分の計画にアドバイスを与えることに慣れていました。今では、ある程度の成功を収めたように、記事を書くのが好きです。共有してリラックスしてください(そして自慢してください〜)。相談を受けて、目の前にあるhtml、css、js、ajax、phpはどれも魔法のようなものだと感じました。どうしたらそんなにたくさんのことを学ぶことができるのでしょうか?私は、無限の知識欲を持ってゆっくり学ぶしかなく、w3school で 3 日間かけて、左のコンテンツを含む html、xhtml、css、js、ajax、php、mysql をすべて読みました。コラム終わりました。しかし、コードを 1 行も入力したことはなく、読んだ後はすぐに忘れてしまいました。

数日間放置してしまいましたが、もう一度読む気力がありません。この時点、つまり 2 週間前には、DIV+CSS の配置を理解しなければ、固定ページを書くことさえできないと感じていました。 js.jQueryについて話しましょう。私はビデオを見て学習することにしたので、会社の高帯域幅を使用して、eMule で心ゆくまで汗を流しました。 。 2 つのシリーズのビデオをダウンロードしました。1 つは html+css に関する Chuanzhi ポッドキャスト ビデオで、もう 1 つは Lamp Brothers の PHP ビデオです。どちらも html+css+js+ajax について話しています。私は最初に Lamp ビデオを視聴しました。会社では一日中ヘッドフォンで観ていて、仕事から帰って夜中に観ています。 。 。両方のシリーズの html+css 部分を約 3 日で読み終えたので、家に帰ってルーターに Linux サーバーをセットアップし、lnmp をデプロイしました。ルーターの NAT は外部ネットワークから直接アクセスでき、ピーナッツ シェルを設定しました。 DDNS を開始し、CSS+DIV を練習するために静的ページの作成を開始しました。

静的ページを作成するには、Web サイトを見つけてそれを模倣し始めます。外観は模倣しますが、コードは模倣しません。 。 。それで、書くのはとても簡単だということがすぐにわかりましたが、IE を使用するときに問題が発生し、何度も調整しようとしましたが、うまくできなかったので、一日休みを取ってしまいました。 CSDN に問い合わせたところ、IE には、float ブロック要素のマージンが 2 倍になるなど、特別な処理が必要なバグが多数あることがわかりました。私の非互換性の主な理由は、私のページが IE と非 IE で一貫性を持ち始めたため、Yibai などの単純なページのコードを参照して何度か書き直し、ポップアップ ドロップダウン メニューとスクロールを追加しました。ちなみに、私は js と dom も練習しました。(C の背景から) 大学時代にアルゴリズムをいじっていたので、少し自信が持てるようになりました。説明するためではなく、誇示するためです)。

Web を学びたいと思ってから実際に Web を学ぶまでの期間、私は「Python 学習マニュアル」を買ってすぐに読んだものの、すぐに忘れてしまうなど、基本的にいくつかの間違いを犯しました (実際には Python が嫌いです)。関数を 1 つずつライブラリにカプセル化します。私は単純な問題を複雑にするのが嫌いです)。この後、つまりフロントエンドの基本的なことをマスターした後、PHP をさらに深く学習する必要があると感じます。このビデオは理解するのに非常に役立ちます。 WINDOWS 開発を学びたいと思ったとき、Yan Weimin のデータ構造ビデオを見たことが今でも覚えています (冬休みに足を組んでビデオを見て過ごしたこともあります)。データ構造を毎日入力しています) ビデオが入門用の魔法の武器であることは認めざるを得ませんが、真に深く学習するには、コードをさらに考え、要約し、実験することによってのみ、技術的な自信を得ることができます。プログラマーとして。

どの本を買って勉強するかについての参考も、アマゾンは長い間それを観察してきましたが、最終的に同じことを信じることにしました

「聖書」「PHP と MYSQL Web 開発」、私は「UNIX 環境での高度なプログラミング」や「UNIX ネットワーク プログラミング」を信じるのと同じように、聖書の力を常に信じており、聖書を敬虔に崇拝しています。私は、書評で「聖書」の本が「簡単すぎる」、「印刷品質が悪い」、「CD がついていない」などと言うような不快な行為に真剣に疑問を持ち、非難します。それらは私の正しい判断にある程度影響を与えました。 。

『PHPとMYSQL Web開発』は先週半ばから読み始めて、5、6日前の今日水曜日に読み終わりました。多くの人が私の読書やビデオの視聴の速度と品質に疑問を抱いているはずです。お気軽に質問してください。 。 。実際、私はこの本を読んでいるとき、次の計画を立てて読みました: 1. 構文の詳細に習熟する! 2. addslashes、stripslashes、htmlspecialchars、urlencode などのセキュリティ関数の使用に注意する (実際には時間がかかります)使い方を正しく理解するための追加の紹介がたくさんあります。以前は本当に多くの誤解があり、ひどいものでした) 3. 後半のすべてのサンプル開発に注意してください。 4. Web 開発に十分な自信を得る。

知識欲が尽きず、一日中休まず本を読み、分からないときはただ入力するだけでしたが、年齢を重ねると頭が働かなくなることが多くなりました。分からないので、脳が覚えていて後でもう一度確認すると思いましたが、しばらくすると何も思い出せなくなったので、本を閉じて、今混乱していたことをじっくり考えました。 。 。この問題を発見した後、私はメモを取り始めました。もちろん、それは自分が知っていることを記録するためではなく、後でこの問題をテストするためにコードを入力することを書き留めるためでした。

この本を読んだ後、私はそれをすべてマスターしたと感じました。これはある種の技術的な自信です。まず、私は一般的な Web プログラマーよりも低レベルの知識を持っていると信じています (クライアント側の JS エンジンを除く)。さらに、ウェブサイトを開発するのに十分な能力があると信じています(フロントエンドとバックエンドのオールインワン。最初は簡単かもしれませんが、仕事でウェブ開発タスクを要求することで向上したいと考えています) 。

PHP については多くのことは言いませんが、私は初心者です。しかし、どの本でも一通り読むと体系化され、多くのことを学ぶことができます。あなたが誤解していたり​​、注意を払っていなかったりする問題について。さらに、私が読書と言うときは、1,000 ページ未満の本を読むのに 2 ~ 3 週間以内に設定することを意味します。このような忍耐力がないと、本を読み終えることができないか、1 ~ 2 か月経っても何も覚えていない可能性があります。本当に価値がありません。



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