PHPでプログラミングを最初から(自分で)開始する方法。なぜ多くの人が失敗するのですか?個人的な経験...試行錯誤

良い一日!

おそらく、ハッカーやクールなプログラマーについての映画を見た私たち一人一人は、この問題について少なくとも少しは理解したいと思っています。そして、いいえ、いいえ、そして彼らは私に同様の質問を投げかけることに注意します(私はプログラミングできますが、私はプロのプログラマーからはほど遠いです。そしてIT分野から遠く離れた人々にとって、これはまったく説明できません...)

一般的に、現在、インターネット上にはこのトピックに関するかなりの数の異なるトレーニングコース、本、記事があります。しかし、私自身がコードの最初の行「hello world!」から(彼らから言語を学んで)試したとき。PHPで、より深刻で人生に適用できるものに移行します-何も機能しませんでした!これらの本にいくらかのギャップまたは空虚があるかのように:いくつかの機能の非常に基本的な知識からもっと何かに移行する方法は明確ではありません...

時間が経つにつれて、私は自分のシンプルなCMS (CMSはサイトのエンジンです)を書くレベルまでPHPを理解することができ  、1つの記事がこれを助けてくれました(残念ながら、そのリソースはネットワーク上に存在しなくなりましたが、この「キック」についてその著者に非常に感謝しています「希望の方向に)。

その記事と私のビジョンを念頭に置いて、PHPでプログラミングを始めたいと思っている人のためにこのメモをスケッチしますが、失敗しています。一般的に、私はこの見解について私自身の非常に過激な意見を持っているので、ここでは本やコースに関するアドバイスは見つかりません-あなたの経験に基づいて正確に何をすべきかを見てください...

*

プログラミングを開始する場所(PHP)

ステップ1-趣味、いくつかの問題を解決したい

おそらく最も重要なことは、何らかのタスクで「火をつける」ことです(これがないと、何か新しいことを学ぶのは非常に困難です)。たとえば、PHPスクリプトが特定のテキストファイルを読み取り、テンプレートに従ってそのファイルからいくつかの部分を切り取ることができるようにするために、かつては本当に必要でした(非常に!)。一方で、すべてが単純に見える一方で、自分で2行のコードを記述したことがない人にとって、作業は非常に困難です。

この最初のスクリプトを購入する必要がありました...しかし、後で別の同様のスクリプト(そして別のスクリプト)が必要になりました。そして、ここ、ここ、私はPHPに夢中になりました...ちなみに、数晩後、私は1、2時間苦しんで、自分でそのようなスクリプトを書くことができました...

さて、一般的に、一般的に、プログラミングに興味がない場合は、すぐに調査を開始し、原則として、すぐに終了することに注意したいと思います。そして、私はコースや教師がそれを修正することはないのではないかと心配しています。

自分でコードを入力し始めて、表示される内容、変数の内容、および一部の関数を使用したときにデータがどのように変化するかを確認するまで、プログラミングを開始することはできません(これは純粋に私の意見です!)。「賢い」本の量はあなたを助けません。

夢見るのはいいことです!

ちなみに、多くの初心者(私を含む)には大きな間違いが1つあります。それは、さまざまなコースやビデオの準備、ダウンロードに多くの時間を費やしていることです。それから彼らはそれをすべて見て、研究し、ノートに書き留めます。しかし、彼らは最も重要なことをしません-彼らは自分でコードをタイプし始めず、それがどのように実行されるかを見ます...

さて、今は練習に近づいています(仕上げ哲学)。

ステップ2-Denwer、Open Server、Notepad ++、TotalCommanderツールをインストールします。開始!

最初のスクリプトと実験を作成するために、ホスティングを購入する必要はありません。無料のローカルWebサーバーであるDenwerまたはOpenServerを使用することをお勧めします(私は個人的にOpen Serverをお勧めします。ここで、その方法と方法を説明します)。ちなみに、Open Serverを選択した場合 は、最小バージョンで開始できます(注:サイトにはいくつかのバージョンがあり、ライブラリが異なります)。

コード(テキスト)の直接ダイヤルには、特殊を使用すると便利です。構文が強調表示されたメモ帳。私はこの点でメモ帳++に感銘を受けました。シンプル、軽量、無料で便利なメモ帳(組み込みのWindowsノートブックと比較して大幅に多くの機能)。

"こんにちは世界" (メモ帳++)

さて、私もある種の司令官を使うことをお勧めします。Explorerでさまざまなフォルダをナビゲートし、一度に複数のファイルを開くのは非常に不便です(迷子になり、どこにあるかを忘れてしまいます)。Total Commander(非常に便利で機能豊富な司令官)を選択することをお勧めします。

最初のスクリプト:準備!

1)OpenServerをダウンロードしてインストールした後、ディスク上の選択した場所に同じ名前のフォルダーが必要です。私の場合は「e:\ openserver5.2 \」です。このフォルダには「domains」ディレクトリが含まれている必要があります。その中に、サイトの名前でフォルダを作成する必要があります(たとえば、「my-site.ru」 -以下の例)。

このフォルダの名前を覚えておいてください。スクリプトを作成するときにブラウザのアドレスバーに入力する必要があるのはこのフォルダです。

OpenServer-「サイト」(ローカル)を作成する例

2)次に、「my-site.ru」ディレクトリにファイル「index.php」を作成し、次の行を入力します。

エコー「ハローワールド!」;

"こんにちは世界" 最初の「プログラム」!

ファイルを保存します。

注:誰かが初めてphpを使用する場合は、「echo」コマンドに注意してください。これは、その後のすべてを引用符で囲むことを意味します。

3)次に、OpenServerを起動します(または、実行している場合は再起動します)。また、ブラウザを閉じてから再度開きます。これは、OpenServerがWindows内のいくつかのファイルを変更できるようにするために必要です。これにより、作成したサイト「my-site.ru」がブラウザーで開きます。

OpenServer-ローカルWebサーバーを起動します

通常、OpenServerが正常に起動した場合は、トレイの緑色のチェックボックスが点灯している必要があります(赤色または黄色の場合は、再起動してみてください。場合によっては、管理者として実行する必要があります。いずれの場合も、赤色のチェックボックスはそれ以上機能しません。許可します...)

OpenServer-稼働中

4)実際には、ブラウザのアドレスバーに「my-site.ru」(引用符なし)を入力するだけで、作成されたindex.phpファイルからの挨拶が表示されます(下の画面を参照)。

動作します!

5)最初の例ですぐにテキスト行を表示した場合、次の例ではコードを少し変更したことに注意してください。原則として、スクリプトを開発するときは、文字列、数値など、さまざまなデータを含むことができる変数を扱います。

1つの変数( "$ p")を作成し、その中にテキストを入れましょう。以下の例を参照してください。

$ p = 'ハローワールド!';

エコー$ p;

最初の変数

以下に示すように、結果は同じになります!それら。ブラウザは文字列も出力します。ただし、コードは少し異なります。テキストは「$ p」変数に含まれ、出力されます...

変数からのデータの表示

6)以下の別の実例。今回は、2つの変数「$ p」と「$ p2」を作成し、これらの文字列を連結して、変数「$ p3」に入れました。文字列は単純なドットを使用して接続されていることに注意してください。

$ p = 'ハローワールド!';

$ p2 = 'それは私です!';

$ p3 = $ p。$ p2;

エコー$ p3;

別の例(2つの変数)

結果は予測可能です...

動作します...

理解と習得を早めるために、すべての例を手動で運転することが推奨されているという事実に注意を向けます。

ステップ3-タスクをそのコンポーネントに分解します。各ステップのデバッグ

おそらくこれはプログラミングを開始するための最も重要なステップです、それのために私はこの記事を始めました...

解決したいタスクがどれほど難しい場合でも、条件付きで3つの段階に分けることができます。

  1. 初期データの取得(データ入力);
  2. データ変換;
  3. データ出力:画面へ、または単に変数へ。(下のスクリーンショットを参照してください:記事の例の1つを条件付きでこれらの3つのステップに分割したので、それが何であるかが明確になります)

スクリプトをどの段階に分割できますか

原則として、データの取得と変換の段階は最も困難  です。そして、多くの初心者は、混乱したり間違えたりせずに100行のコードを書く方法を知りません。

実際、コードの各行の後で、変数に何があるかを確認できます。そして徐々に、一度に1行のコードを追加し、変数がどのように変化するかを見て、それらを目的の形式にします(そして問題を解決します!)。このため、PHPには素晴らしい関数「var_dump($ p);」と「print_r($ p);」があります。

そして初心者には、いつも使うことをお勧めします!はい、そのように、プログラミングは時々そのような退屈なものです...

以下の例を考えます。

「$ p3」変数に何があるかわからないと想像してみてください(コードでは、以下の例では、そこにロードされている行が表示され、理論的にはそこにあるはずです。しかし、より複雑な実際の問題では-これは常に発生するとは限りません。変数には、必要な行の代わりに完全な混乱が含まれている可能性があります...)。

したがって、変数の内容を確認するには、その後にコマンド「var_dump($ p3);」を挿入するだけです(ファイルを保存します)。

Var_dumpの例

その結果、ブラウザ(ページを更新したとき)に「string(31)....」と表示されます。それら。  var_dumpは、データタイプ(文字列-文字列)とこの文字列の長さ(31-文字)を示します。これは、長いプログラム(スクリプト)をデバッグするときに非常に役立ちます。

文字列(31)

例として、「var_dump($ p3);」の前に、値1を変数$ p3に割り当てました。結果は異なります(以下を参照)。

変数に数値を追加する場合

Int(1)

例:テキストファイルを読み取り、最初の文を切り取る

私が上で書いたすべては例でよく説明されるでしょう。例として、私は簡単なタスクを取りました。テキストファイルを開き、その最初のポイント(つまり、文の終わり)を見つけて、ファイルの最初からこのポイントまですべてを切り取ります。

一方では、PHPを行ったことがない人にとっては難しいように思えるかもしれません。一方、タスクをそのコンポーネントに分割し、デバッグ(var_dump)を使用することで、さらに複雑なものを書くことができます...

したがって、このタスクをいくつかの段階に分割することは論理的です。

  1. テキストファイルを変数に読み込みます。
  2. テキストファイル内のポイントを検索します(つまり、そのシリアル番号、たとえば35番目の文字を検索します)。
  3. 文字列の一部を切り取ります:最初の文字からポイント(その序数まで)まで。
  4. 結果を画面に表示します。

1)ファイルを文字列に読み込む

テキストファイルとして-この記事のテキストを取得して「text.txt」ファイルに入れ、「e:\ openserver5.2 \ domain \ my-site.ru \」フォルダにコピーしました(つまり、次の場所に置きます) 「index.php」を使用)。

次に、最初のコンポーネントを解決する関数を見つける必要があります。ファイルを変数に読み込むことです。ここで「Google」が大いに役立ちます。「PHPがファイルを読み取る」などのクエリがその役割を果たし、file_get_contents()関数を見つけるのに役立ち  ます。これが私たちが使用しているものです。

ちなみに、この点で、私は//php.netディレクトリをお勧めします(素晴らしいヘルパーです!)。

$ p = file_get_contents( 'text.txt'); //ファイルを変数に読み込みます

var_dump($ p);

ファイルを変数に読み込みます

その結果、すべてが正しく入力されると、「$ p」変数の内容が表示されます。これには長いテキスト(行)が含まれます。これが当てはまらない場合は、どこかで間違いがありました...

文字列(1278)

実際、これは私たちの初期データです。次に、記事の最初のドット( "。")を見つける必要があります。

2)ポイントシンボルを見つける

一般に、PHPには文字列を操作するための多くの関数があります。この例の最初のポイントを見つけるために、「strpos();」を使用することにしました。以下では、スクリプトコードの全文を示しませんが、関数自体と、var_dumpに追加した変数(ポイントの順序番号が表示される変数、つまり「$ t」、および変数「$」に注意してください。 p "-最初のステップですでにデバッグ済みです。テキストが含まれています)。

$ t = strpos($ p、 '。');

ここで、$ p-目的のシンボルを探している変数。

'。' -私たちが探しているもの。

ポイント検索

223はシンボルです、これはポイントです。彼女を見つけました!

3)ポイントにラインをカット

文字列をトリミングするために、PHPにはsubstr()のような関数があります。使い方はとても簡単です。例を挙げて説明します。

$ s = substr($ p、0、$ t);

どこ:

$ p-切り取る文字列。

0-始まりの通常の文字(目的のピースの始まり);

$ tは、通常の終了文字(目的のチャンクの終了)です。私たちの例では、これが私たちが見つけたポイントです。

その結果、完全なコードは次のようになります。

$ p = file_get_contents( 'text.txt'); //ファイルを変数に読み込みます

$ t = strpos($ p、 '。'); //行$ pの最初のポイントを探します

$ s = substr($ p、0、$ t); //文字列を0番目の文字からポイントまでカットします

var_dump($ s);

線を切る

この手順の後で、「var_dump($ s);」の変数も変更したことに注意してください ..。したがって、文字列が223文字と小さくなっていることがわかります。私たちは実際に問題を解決しました、あまり残っていません...

を中断する!

4)問題は解決しました!

一般に、「var_dump」を「echo」に置き換える、解決された例が得られます。これで、ブラウザで「my-site.ru」を開くと、テキストファイルの最初の文が表示されます。

スクリプトの準備ができました!

「echo」はデータタイプの詳細を出力しないことに注意してください。あなたはただの線を見ます...

提案はカットされました

ステップ4-新しい挑戦..。

ご想像のとおり、上記の例のタスクは海に落ちるだけです。もちろん、1行でよりエレガントな方法で解決することもできます(上記のすべては、本質と、数百行のスクリプトを作成するために移動する方法を示すための単なる例であり、はるかに複雑な問題を解決します)。

もちろん、ポイントだけでなく、特定のシンボル、画像、タグなどのシーケンスも検索できます。ファイルを読み取る(つまり、ファイルから初期データを取得する)だけでなく、他のサイトのページを読み取ったり、ユーザーの現在のURLを読み取ったり、ユーザーが入力したフォームからデータを取得したりすることもできます。

したがって、1つの大きなタスクをいくつかの中程度のタスクに分割し、中程度のタスクをいくつかの小さなタスクに分割し、小さなタスクをコード行と特定の関数(それぞれ手動で実行してデバッグする)に分割すると、非常に大きな問題でも解決できます。はい、最初は曲がっていて斜めになっている場合でも、主なことは自分でやることであり、ある程度の学習レベルに到達することに興味を持つでしょう。

さらに、新しいラインごとに、経験、開発のスピード、スキルが向上します。もしそうなら、おそらく私は理由のためにこれらの行を書いた...

したがって、新しいタスクを設定して先に進みます。関数を段階的に探し、変数を変更し、小さな問題を段階的に解決します。主なことは、本やトレーニングコースに夢中にならないことです-自分でそれを始めるまで、あなたは学びません...

本やコースの広告で彼らが話していないこと

彼らは通常、1週間または1か月(最大2)でプログラミングを教えることを約束し、高額の給与と高いステータスを約束します。しかし、彼らはいくつかの重要なことを追加することを完全に忘れています、それは私が以下に言うでしょう...

1)重い目の緊張

一日中座って、コードを並べ替えたり、編集したりします。-これは、椅子でリラックスして一日中映画を見るのとは程遠いです。私を信じないでください-少なくとも半日は、WordまたはExcelドキュメント(ほぼ同等)を慎重に編集してみてください。

2)常に学ぶ必要性

今日、多くの職業では常に学ぶ必要がありますが、プログラマーは10倍以上です!一般に、一般的に、IT分野は毎年飛躍的に進歩し、それに追いつきます(約10年前、インターネットは都市でのみ登場し始め、今では村でもビットコインについて話していることを思い出してください...) ..。

3)座りがちな仕事

多くの分野で、仕事の一部を「歩く」場所で過ごすことができる場合、プログラマーの職場はPCだけにあり、他の場所にはありません...それにもかかわらず、この生き方は時間の経過とともに健康に影響を及ぼし始めます。手、肩、目...-一日の終わりまでに彼らは非常に疲れ始めます。

4)普通のプログラマーの給料は必ずしも高いとは限らない

あなたが経験を積むまで、おそらく、あなたは他の活動分野と比較して、それほど多くを受け取ることはありません。私の意見では、この地域の高すぎる給与の時代は過ぎ去っています(過ぎ去った?)。しかし、この分野の優れた専門家の仕事は十分に支払われています!

5)他の人の問題を解決するのは退屈です...

プログラミングしてアイデアを現実に「翻訳」することに興味がある場合、これは他の人の問題を解決することが興味深いという意味ではありません。これはまったく同じではありません。時々、コードを掘り下げることはとても退屈で灰色になります...「遠吠え」さえ(私は誰もがこれらの行を理解するとは限らないと思います)

PS:現在の仕事を辞めて、プログラマーになろうとすべきですか?

非常に人気のある質問...特に一部のカテゴリーのプログラマーの非常に高い給与をきっかけに。

すべてを一度に終了することは絶対にありません(少なくとも、私の見解では)。それが何であれ、そしてあなたが決定したことは何でも、効果的に運動し、脳に負荷をかけ、新しいことを学ぶ-人は1日2〜2.5時間しか能力がありません(これは本当にそうです、あなたは週末でも自分でチェックすることができます-より多くのことができます)。ですから、あなたの新しい技術を学び始めるために-仕事の終わりの朝または夕方に、休日の一部を「盗む」ためにどこかで1時間を切り開くことはかなり可能です。

成功すれば、ある程度の経験を積むことができます。-休暇を取ってインターンとしての仕事に就くことができます(おそらくハーフタイム)、すべてが好きかどうかを確認して、うまくいく...

また、雨の日のために金銭的な「枕」を持っていることは不必要ではありません、さもなければあなたは決して知りません、突然新しい仕事は期待に応えません。少なくとも、このアプローチでは、何か問題が発生した場合でも、困難な生活状況に陥ることはありません...

*

さて、これで私は私の「マニュアル」を終えます。トピックや批判について何か追加があれば、歓迎します(コメントは公開されています)。

ではごきげんよう!