2020年3月7日土曜日

プログラムの基本処理

こんにちは。

今日は、プログラムを学習するときに押さえておきたい点について書いていきます。

結論から言うと以下の処理を押さえておけば、プログラムを読むことはできるようになります。

  • 分岐(if文)
  • ループ(for文、while文)
  • 関数

プログラムの基本処理

プログラムは、全てが四則演算でできています。

入力された値を変数に入れて、足したり、引いたりと加工し、出力した値を作り上げます。

私は、いろいろなプログラム言語で開発した経験があるのですが、コーディングを開始する前に、まず確認するのが、分岐、ループ、関数の書き方、呼び出し方です。

分岐(if文)

まず必ずと言って良いほど必要なのが「分岐(if文)」です。

条件によって処理を分岐することは必ず発生します。

Javascriptだと以下のような書き方になります。

if (<条件>) {
// 処理
}


分岐を理解するだけでも、プログラムは読めるようになります。

ループ(for文、while文)

同じ処理を繰り返し行う場合は、ループで処理します。

同じ処理を何度も書かないということは、不具合を減らすためにとても大切なことです。

Javascriptでは以下のように書きます。
for (<初期値> ;<条件> ; <加算> ) {
// 条件が不一致となるまで実行する処理
}


ちょっとわかり辛いですかね。
具体的なソースコードを書いておきます。

var a = 0;
for ( var i = 1 ; i < 5 ; i++) {
a = a + i;
}
// a = 10


a の初期値は0です。
i の初期値は1で、5より小さい値の間、i を1づつ加えて処理します。
つまり、a の値は以下のように変化します。

a = 0;
a = 1;     // i = 1
a = 3;     // i = 2
a = 6;     // i = 3
a = 10;   // i = 4

i は 5 まで変わりますが、条件に不一致となるので、ループを抜けます。

ループには、while文という処理もあります。

while文は、条件判定は処理した後に行う時によく使用します。

つまり、一度はループ内の処理を行った後条件を判定する場合です。

Javascriptでは以下のようになります。


do {
// 処理が不一致の場合に実行する処理
} while (<条件>);


while文で気を付けないといけないのは、条件の部分です。

while文は、条件が一致した場合にループを抜けます

また、無限ループを作成し、処理内で分岐してループを抜ける場合もあります。


while(1) {
// 処理
if (<条件>) {
break;
}
}


ただ、このような書き方は、できるだけしない方がいいです。
できるだけ条件を入れて無限ループは作らないようにしましょう

関数

最後に必要となるのは、関数です。

ループ処理でも書きましたが、同じ処理は何度も書くと不具合の原因となります

同じ処理と何度も必要となる時は、関数にして呼び出すようにしましょう。

また、最近の書き方だと、1関数1処理で書くようにすると綺麗なソースコードになります。

Javascriptだと以下のような書き方になります。


function <関数名> (<引数>) {
// 処理
}


プログラミングの経験を積んだ方でも、処理を関数化せずにダラダラと書く方がいます。
そういうソースコードをスパゲティコードといいます。

処理が長くなって、少し修正するだけで不具合の原因となったりします。

まとめ

プログラムを読む際の基本となるのは、この3点です。
  • 分岐
  • ループ
  • 関数
そして、後は多くのソースコードを読んで、処理の書き方や、綺麗なソースコードの書き方を学んでください。ソースコードは人によって書き方が違います。読むだけでも結構勉強になったりしますよ。

では、今日はこの辺で。


2020年3月6日金曜日

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

こんにちは。

今日は、私がプログラマーをしている理由についてまとめてみます。

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

  • 考えることが好きだから
  • 楽しいから
  • 喜んでもらえるから
私は、もう20年ほどプログラムに携わっています。

はじめでプログラムを勉強したのは大学の時で、
授業でプログラムの講義を受講したのが初めてでした。

その時は、Basic言語を授業で勉強しましたが、
あまり興味は持ちませんでした。

その後、C言語の授業を受講し、
すでに研究室に入って研究の手伝いをしていた私は、
これは結果の整理に使えると思って自分で勉強するようになりました。
ちなみに、大学1年の後期の頃です。

考えることが好き

私は、いろいろな事を考えることが好きな方です。

どうやって動いているのだろう、どうやって利益を得ているのだろう。

プログラムを書いていても、
単にプログラムを書くだけてなく、
修正しやすくなるように読みやすくなるように美しくなるように
と考えて書いています。

これを考えずに書かれたソースコードは、
動くのですが読みにくく、修正し辛いソースコードになってしまいます。

また、実は不具合が出やすいソースコードは、
何も考えずに動くことのみを目的として書かれています。

プログラミングを行うことは、基礎勉強が終わった方でもできます。

しかし、どうすれば読みやすく、修正しやすく、不具合の少ないソースコードになるかを考えてプログラミングするには、やはり経験が必要となります。

楽しい

私がプログラマーでいる理由は、これが一番です。

やはり、楽しくないと続けていられません

また、IT業界は日進月歩で発展しています。

それに着いていくには、新しい技術の勉強が欠かせないのです。

勉強といっても、本を読んで勉強するのではなく、
これどうなってるのだろうと興味を持ってWebで調べ、
新しい技術を吸収しています。

この作業は、楽しく、好きでないと続きません

たまに、どうやって勉強したらいいですか、と聞かれることがあるのですが、
正直勉強しているつもりはないので、勉強なんかしてないよとしか答えられません。

そんな方は、プログラマーと言う仕事を楽しんでないんだろうなと私は思っています。

喜んでもらえる

プログラマーの仕事は、お客様の期待に答える仕事でもあります。

なので、出来上がってお客様の作業が軽減されると喜んでもらえます

もっとこうしたい、こういい機能も加えたいと言われると言うことは、
そのシステムが喜んでもらえている証拠だと思ってます。

ただ、無料でやってくれと言うお客様もよくいるのですが、
それはちょっと傲慢だなと思います。

喜んでもらえるのは嬉しいのですが、
やはりビジネスとしてプログラマーをやっている以上は、
作業にかかる代金は払ってもらえないとモチベーションも落ちてしまいます

たまに、ソフトウェアは無料で使えると考えているお客様がいます。
同業者にも、有料ソフトウェアをライセンス料を払わずに使っている方もいます。

ビジネスとしてプログラマーをやっている側から言えば、
投資をして開発されたソフトウェアをライセンス料を払わずに使うのは、
窃盗に近いと考えています。

ソフトウェアを使うのであれば、
きちんとライセンス料を払いましょう。

まとめ

やはり、好きで楽しいことを仕事とすることが一番いいように思います。

楽しくないと、新しい情報を吸収しようと積極的に動けないし、
そもそも、情報が入ってきません。

楽しく働いていればストレスも、あまり溜まらずにすむのではないでしょうか。

では、今日はこの辺で。








2020年3月5日木曜日

NULLは0ではありません

こんにちは。

ほとんどのプログラム言語に存在するNULLですが、
値が0なので0として使っているソースコードをたまに見かけます。

しかし、NULLは0ではありません。

C言語を知ってる方は分かると思いますが、NULLはメモリーのアドレス0番目を指します。

なので、値は0なのです。

しかし、メモリーのアドレス0番目は、不正処理にあたります。

つまり、本来、例外を意味しているのです。

経験の浅いプログラマーが、勘違いして使うのはいいとして、
何年もプログラマーとして働いてきた技術者が使っているとイラッとします。

随分前に関わった開発のリーダーにNULLを0として使っている人がいました。
そのチームのコードレビューに参加したことがあるのですが、
コードレビューの場で0をNULLに置き換えるように指示しているのを見て驚いた事がありました。

後でこっそり教えましたけど、受け入れてもらえませんでした。

ちなみに、NULLは「ヌル」と発音する人と、「ナル」と発音する人がいますが、
「ヌル」はドイツ語で、「ナル」は英語だそうです。

言語によっては、同じ意味でnilを使う事があります。
例えば、Rubyはmilを使っています。

NULLについて少しは理解してもらえたでしょうか。

では、今日はこの辺で。


2020年3月4日水曜日

プログラマーのお仕事

こんにちは。

今日は、ちょっと技術的な内容を書きます。

ここ数年、転職してプログラマーを目指す方が多くなっています。

でも実はプログラムを書くのは、そんなに難しくはないのです。

今回は以下の点について書いていきます。


  • ホームページを作る
  • Webシステムを作る
  • 本当に難しいのは何をするか

ホームページを作る

ホームページを作るには以下の技術が必要になります。
  • HTML
  • CSS
  • JavaScript
HTMLでホームページの枠組みを作り、CSSでデザインをすれば静的なホームページは完成です。

動きをつけたい場合は、JavaScriptを使います。

ホームページを作る時に難しいのは、デザインです。

デザインさえ出来れば、コーディングはそこまで難しくはありません。

それに、今ではWeb上にたくさんの情報があります。

Webシステムを作る

ブログやECサイトを作るのも、そんなに難しくはありません。

ブログならサーバにWordpressを入れればすぐに作成できます。

ECサイトは、EC-Cubeを使えば手軽に作成できます。

新しくWebシステムを作るとなると、ちょっと難しくなります。

それでも、上に書いた、HTML、CSS、JavaScript それとPHPが使えたら、ある程度のWebシステムは作れます。

WordpressもEC-Cubeも使ってる技術は同じです。

本当に難しいのは何をするか

プログラマーになって、本当に難しく感じるのは、システムで何をするかを考える事です。

Webシステムを作りたいお客様と話をして、どこをシステム化すればいいのかを判断するのは、実は担当の技術者という事がよくあります。

また、SFに近いアイデアを持ち込むお客様もいます。

お客様との会話の中から、お客様が本当に欲しいシステムを提案することは、本当に難しいです。

つまり、技術は勉強する事で習得できますが、その技術で何をするかを考えるのが難しのです。


プログラマーを目指すみなさん、技術の勉強をしながら、アイデアを出す訓練もしましょう。



2020年3月2日月曜日

新型肺炎(新型コロナウィルス)への対策

こんにちは。

今日は、新型肺炎(新型コロナウィルス)への対策についてまとめてみます。

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


  • 手洗いを徹底する。
  • 人が密集する空間ではマスクをする。
  • 正しい情報を取得する。

手洗いを徹底する

新型肺炎(新型コロナウィルス)は、接触感染する可能性がり、アルコールに弱いということなので、手洗いを徹底することで拡大を防ぐことができると思います。

流水で十分に手洗いを行うと、ある程度のウィルスは洗い流すことができます。

水は冷たく十分に洗うことも辛いですが、ウィルスの感染拡大を防ぐことができるのですから十分に洗うようにしましょう。

できれば、アルコールで消毒をするようにしましょう。

人が密集する空間ではマスクをする

人が密集する空間での感染が報道などで流れています。

特に通勤電車や事務所内では、自分がウィルスに感染しているかもしれないと考え、マスクをして拡大を防ぎましょう。

「お客様先では、マスク姿は失礼になる」なんてことはありません。

大切なお客様だからこそ、マスクをするようにしましょう。

正しい情報を取得する

非常事態の時はデマが流れます。

正しい情報を取得し、冷静に判断・行動しましょう。

私も、毎日多くの情報を取得します。しかし、得た情報をそのまま受け止めず、まずその情報が正しいかを確認するようにしています。

上記の3点に私も明日から気を付け生活するようにしたいと思います。

みなさんも、ウィルスに感染しないように、ウィルスを拡大させないように気を付けましょう。