2020年3月29日日曜日

ブラウザとザーバーの関係

こんにちは。

今日は、ブラウザとザーバーの関係について書いてみようと思います。

結論から言うと以下になります。

  • ブラウザとサーバーは常に接続している訳ではない
  • サーバーはテキストのみを出力する
  • ブラウザはテキストを解析する
Webサービスを開発していると、経験の浅いメンバーから処理をどこに書いたらいいのかと言う質問をされることがあります。

その場合、ブラウザとサーバーの関係を理解していないことが多いです。

なので、ここでまとめてみようと思います。

ブラウザとサーバーは常に接続している訳ではない

開発をしていると、画面と処理をサーバーに置くため、ブラウザでWebサイトを開くと常に接続状態になっていると勘違いするようです。

しかし、実際は、ブラウザに表示するリソースが取得できれば、ブラウザとサーバーの接続は切断されます。

ブラウザは、必要な時のみサーバーに接続します。

実際、常にブラウザとサーバーを繋いでおく事もできるのですが、今回は、もっとも基本的な処理を扱います。

サーバーはテキストを出力する

サーバーからは、html、css、javascriptのテキストが出力されます。

実際には、それぞれのテキスト内容がデジタル化された状態(0、1のデータ)でサーバーからブラウザへ送られます。

テキストをデジタル化する処理は、Webサーバーソフトが行います。

実際に開発するのは、htmlを作るための処理です。

ブラウザはテキストを解析する

ブラウザは、サーバーから受け取ったテキストを解析してサイトを表示します。

まず、ブラウザは、htmlで画面構成を解析します。

次に、cssから画面に装飾を行います。

javascriptは、画面の動作を定義します。

まとめ

つまり、サーバーとブラウザは、テキストを受け渡すことでサイトを表示しているのです。

そのテキストを作成することが、Webサイトの開発となるのです。

では、今日はこの辺で。


2020年3月27日金曜日

プログラマに必要なマインド

こんにちは。

今日は、プログラマに必要なマインドについて書いてみようと思います。

結論から言うと、以下になります。

  • 自分ならどうやって動かすかを考える
  • 動かない理由を考える
  • 考えることにストレスを感じない
この3点は、私が大切にしているマインドです。

自分ならどうやって動かすかを考える

私は、動いている物を見ると、どうやって動いているのだろう、というのが気になります。

まず、興味を持つことが、プログラマに必要なマインドだと私は考えています。

そこから、私ならどうやって動かすかを考えます。

まずは、自分でロジックを考えてみます。

そうすることで、実際にフレームワークを使う時に新しい知識がスンナリと入ってきます。

動かない理由を考える

プログラムは、書いたようにしか動きません

そこに、論理的な間違いがあった場合は動きません。

そこを考えることができないと、先に進むことができません。

つまり、動かない理由を考えることは、プログラマにとって必要なマインドなのです。

簡単に解決できる場合もありますが、デバッカツールを使っても分からない時もあります。

そこを、論理的に考え修正し先に進める必要があるのです。

考えることにストレスを感じない

上にも書いたように、長時間、論理的に考えることがよくあります。

その時間を楽しめるかどうかなのです。

考えることにストレスを感じていると、すぐに潰れてしまいます。

私も、長時間考えることを楽しめれているかは分かりません。

多分、少しずつストレスを感じているのかもしれません。

そのため、適応障害になったのかもしれません。

でも、考えている時間は、自分なりに楽しめれていますよ。

まとめ

私も、上に掲げた3つのマインドを全て持っている訳ではありません。

でも、だからこそ、この3つのマインドの必要性が分かるのかもしれません。

逆に言うと、上の3つのマインドを全て持っていなくても、プログラマにはなれるのです。

後天的に、上の3つのマインドを身に付けることができるのです。

では、今日はこの辺で。

2020年3月26日木曜日

プログラミングを勉強する時に大切なこと

こんにちは。

今日は、プログラミングを勉強する時に大切なことについて書いてみます。

結論から言うと以下になります。
  • まずは1つのプログラム言語をマスターする
  • フレームワークは学ぶ必要ない
  • Linuxコマンドをマスターする
この3点に注力すれば、3ヶ月でそこそこ動くプログラムを作ることができるようになります。

これは、社会に出たばかりの自分に伝えたいことです。

まずは1つのプログラム言語をマスターする

まずは、1つのプログラム言語を充分にマスターしましょう。

プログラム言語は、どの言語も似ている点が多いです。

また、基本となる処理は以下のみです。
  • 分岐
  • ループ
  • 関数
基本となる処理については、過去に書いた記事がありますのでそちらを参照してください。


1つのプログラム言語をマスターしてしまえば、違うプログラム言語を勉強するのも、すんなり入ってきます。

フレームワークは学ぶ必要はない

フレームワークは、初めのうちは学ぶ必要はありません。

実際に仕事をするようになると、フレームワークを使います。

しかし、企業によって使うフレームワークは違ってきます。

プロジェクトによって違う場合もあります。

なのでフレームワークを学ぶのではなく、まずは、1つのプログラム言語を十分に身に付けることを意識してください。

フレームワークは、実際に仕事をするようになってからで十分に学ぶことができます。

また、使用するフレームワークに詳しい先輩や仲間がいるので、分からないことは使いながら学ぶことが可能です。

しかし、プログラム言語を1つも知らなと仕事になりません。

Linuxコマンドをマスターする

実際にプログラマーとして仕事をすると、Linuxサーバでの作業が多いです。

開発するPCはWindowsでも、実際に動作するOSはLinuxが大半です。

Linuxコマンドが使えなと動作試験で苦労します。

Linuxは、デスクトップもありますが、コマンドで使えるようにしておきましょう。

GUIのツールがある場合もありますが、実際遅いです。

Linuxコマンドに慣れているだけで、プログラマーとしての生産性が結構違います。

まとめ

つまり、Linuxで1つのプログラム言語をとことん勉強するのが一番です。

私が社会に出たばかりの頃は、いろんなプログラム言語を勉強していました。

それに使えそうなフレームワークがあれば、いろいろと使ってみてました。

でも、フレームワークは、プロジェクトで決まっていることが多く、いろんなフレームワークを知っていてもあまり役に立ちませんでした。

結局、私はいろいろとやって遠回りをしてしまいました。

この3点に注力すれば、プログラミングの仕事は何とかなるのではないでしょうか。

では、今日はこの辺で。

2020年3月23日月曜日

アウトプットすることの大切さ

こんにちは。

今日は、アウトプットすることの大切さについて書いてみようと思います。

結論を言うと以下になります。

  • 理解が深まる
  • 人生に変化を付けられる
  • 失敗しても次へ進める
  • たまに大当たりがある
  • 行動が早くなる
私は、インプットばかりでアウトプットをしない人間でした。

でも、こうしてブログなどでアウトプットする事で、自分の理解力の低さを実感できています。

理解が深まる

自分では理解しているけど、友達に教えると難しいという経験、誰でもありますよね。

でも、誰かに説明しないといけないと思って調べたり、本を読んだりすると、結構身に入ってくるんですよね。

私も何度も経験しています。

兄弟に勉強を教える時とか、何でこんなことがわからないんだと思うことがよくありました。

でも一つ一つ教科書を見ながら説明していくと、自分でも理解してなかったことが解ったりということがよくありました。

大人になってからも、後輩にプロジェクトの説明をしながら自分で納得していることがよくあります。

インプットすることは、頭に知識として入っているだけで、何も役に立っていないことが多いのです。

アウトプットすることで、曖昧に理解していたことを、再度理解し直すことができます。

人生に変化を付けられる

毎日、淡々と仕事をしていると、仕事をしている意味が分からなくなることが私はよくあります。

そういう時、私は、本読むようにしています。

小説とかの本を読む事もありますが、大体、成功する本やお金持ちになる本が多いです。

読んでいるだけで、自分も成功しそうな気持ちになるので気持ちもいいんですよね。

でも、インプットだけでは、読み終わったらそこまでなんですよね。

私は、ここ数年、そういう本を読んだ後は、身近なところで、できそうなことを本の中から1つ選んで実行するようにしています。

うまくいったらそれだけで人生に変化を付けれますよね。

失敗したとしても、やっぱこの程度じゃ無理かと次の本に移れます。

失敗しても次へ進める

本に書かれていることは、著者がいろいろやって成功した内容なので、真似したところでそう簡単に成功することはありません。

でも、それを理解した上で実践すると、失敗を前提として実行しているから、失敗してもすぐに次へ進むことができるようになります。

初めのうちは、うまくいかないことを悩んだり私もしていました。

でも、失敗を繰り返しているうちに、失敗に慣れるというか、失敗してもいいかと思うようになってきました。

たまに大当たりがある

何度も本を読む、実践する、失敗するを繰り返していると、たまに成功することがあります。

それも、何度も失敗した上での成功なので、小さな成功も気分的には大当たりに感じることがあります。

私は、この大当たりがストレスを発散させてくれていたりします。

初めのうちは、失敗するとストレスが溜まっていきます。

でも、失敗を繰り返すと失敗もストレスではなくなります。

実践できた自分をほめれるようになると、失敗もストレス発散になるのかもしれませんが、私はまだそこまでではないですね。

行動が早くなる

これは、私だけかもしれませんが、失敗を前提で行動していると、行動が早くなった気がします。

それまでは、行動する前に考え過ぎで、行動が遅くなることが多かったです。

今でもたまにあるのですが、そういう時って、失敗することを前提で行動できてないんですよね。

とりあえずやってみるかくらいの勢いで行動すると、その後で手戻りも発生することがあるけど、これじゃダメだって気づくのも早いので、戻る時間があったりします。

まとめ

つまり、本などでインプットしたら、そのままアウトプットとしてみると、失敗でも成功でも何か得られるのです。

大きなリスクを取らないとうまくいかない物もあります。

でも、本に書かれている内容には、小さなリスクでもうまくいく方法が一緒に書かれています。

そうしないと、読む人がいなくなるので。

そういうのを実践して失敗を繰り返してみてください。

たまに大きな当たりあるかもしれませんよ。

では、今日はこの辺で。



2020年3月22日日曜日

私がプログラマーを目指した理由

こんにちは。

今日は、私がプログラマーを目指した理由について書いていきます。

私がプログラマーを目指したのは、17年前になります。

結論から言うと以下になります。

  • 世の中の役に立ちたい
  • プログラミングが好き
  • プロのプログラマーになりたい

世の中の役に立ちたい

学生時代、私は天文学を研究していました。

2年浪人して理系の大学へ行き、化学、数学、生物学、地学、物理学と研究室を転々としていました。

そして、最終的にたどり着いたのが天文学でした。

4年間、大学で勉強し、また、思いっきり遊び、バイトもたくさんしていました。

3年の後期から天文学を研究し始め、もっと研究したいと、大学院修士へ進みました。

天文学を研究していて、この研究が、世の中にどのように役に立つのかという疑問にぶつかっていました。

その答えを大学院で見つけることができず、就職することを決意しました。

就職するといっても、当時、自分にやれることがなく、あえてできるのがプログラミングでした。

研究結果のデータ分析で解析システムをカスタマイズしてたし、また、望遠鏡の制御プログラムのカスタマイズも行っていました。

この技術を使って就職し世の中の役に立ちたいと思っていました。

プログラミングが好き

先ほども書きましたが、大学院での研究にプログラミングを行っていて、自分が思うように動作するシステムを作るのが、私は好きでした。

「好き」という気持ちは、とても重要だと思います。

「好き」でないと、プログラマーの仕事は続かないと思っています。

システムは、プログラミングされたようにしか動作しません。

そのため、少しでも不具合があると、コンパイルも通らないし、コンパイルできたとしても正常に動作しないということはよくあることです。

思ったように動作しないと、それだけてかなりのストレスとなります。

また、動作しない原因を調査するために、デバッガを使って変数の値を見ながらステップを追っていくと、時には長時間ストレス状態にさらされます。

この作業は、「好き」でないとできない作業です。

プロのプログラマーになりたい

学生時代に行っていたプログラミングは我流でした。

本やWebで調べてプログラミングしていたので、多くの制約があり、もっと柔軟なシステムを作りたいと思っていました。

当時もすでにオープンソースが出ていたので、そのようなソースコードを読んでいました。

そういうソースコードを見ると、綺麗で柔軟なソースコードが書かれていました。

自分ももっと経験を積んで、綺麗で柔軟なソースコードを書きたいという思いが沸いていました。

まとめ

つまり、私は、研究でプログラムを使っていて、プログラミングが好きで、世の中の役に立ちたいという思いがあったので、就職しプログラマーを目指しました。

これから就職活動を始めようとしている学生の方へ言いたいのは、まずは好きなことを仕事にするのが長続きするコツです。

給与や福利厚生で仕事を決めるのは最悪です。

逆に、今はできないけど好きなことで就職をするのはありだと思います。

好きなら自分で勉強し行動することがストレスにならないでしょう。

今はできなくても経験を積めば、すぐに上へ行くことが可能で。

新型コロナウィルスの影響で就職活動も大変でしょうが頑張ってください。

以下に以前書いたブログのリンクを貼ってお行きます。
こちらも就職活動の参考になればと思います。

IT業界の今後について

私がプログラマーでいる理由

では、今日はこの辺で。