初心者がプログラミングを学ぶときに抑えるべきポイント(1)

プログラミング、サーバー、ネットワーク、IT用語、ハマったときのトラブルシューティングなど様々なIT関連の話題をひたすら書いていく技術ブログです。

2017年2月5日日曜日

初心者がプログラミングを学ぶときに抑えるべきポイント(1)


プログラミングの環境設定はつまずいたら一旦環境設定は諦める

プログラミング言語はC、C++、Java、Ruby、Python、PHP、JavaScript...など様々な種類があります。初心者がプログラミングを始める時に、まずつまずいてしまうことはプログラミングをする環境を設定することです。つまり、プログラミングをする前に挫折してしまうことが多いのです。ですので、まずつまずいたら環境設定を一旦諦めましょう。では、どうやって学ぶの?と思う方もいるかと思いますが、今ではオンラインで無料で使うことができる環境が揃っています。

repl.itはこちら
icloud9はこちら

repl.itは簡単で、上記のページを開いて書きたいプログラミング言語を選択するだけです。そして左側にプログミラングを書きrunボタンを押せば右側のコンソール(黒い部分)に結果が出てきます。


icoud9はユーザー登録をしなければなりませんが、こちらも無料である程度まで使うことができるので便利です。使い方はドットインストールのこちらで紹介されています。因みにドットインストールは様々な技術を1回最長3分までの動画にまとめて紹介しているので、さらっとどういう技術なのかを掴む時に非常に便利です。一部有料会員でなければ見れない動画もあります。

プログラミングのwebサイトや書籍の隅から隅まで理解しようとしない

プログラミングを勉強し始めるとついやりがちなことは、webサイトや書籍を隅から隅まで理解しようとして、意味が分からず、疲れてしまうパターンです。おそらくですが、初心者の大半の方は1回では技術のwebサイトや書籍が何を言っているのか理解することは難しいと思います。初めの頃は「ふーんそんなのあるんだ」程度でまずはよいところもあるので、具体的にプログラミングの何を抑えるべきか紹介します。

どのプログラミング言語でも抑えるべきポイント

プログラミングには様々な機能や制約があります。それはプログラミング言語によって違うので、新しい言語を学ぶ度に勉強する必要があります。しかし、どのプログラミング言語でも書き方は多少違うにしても、同じ概念がいくつか存在します。そしてそれはどのプログラミング言語においても基本中の基本であり非常に大切な概念なのです。勉強を始めたときはまずはここから手をつけましょう。説明はrepl.itとJavaを使います。

変数(variable)

データを一時的に保存する時に使用される箱のようなもの。データとは数字や文字(列)などです。変数にデータを入れることを代入と言います。スコープ(scope)という概念があり、どこで変数にデータを代入したかで、その変数が使える範囲が決まります。例えば下記はJavaのプログラムですが、3行目の「a」や4行目の「s」が変数と言われるもので、3行目は変数aに10を代入しています。4行目はHello Worldという文字列を変数sに代入しています。



上記のプログラムをrepl.itで入力してrunボタンをクリックして結果を確認してみましょう。Hello Worldという文字が2回表示されるはずです。表示の命令が書かれている行は7行目と9行目です。System.out.printlnはJavaプログラムで表示を命令するための記述です。他のプログラミング言語では「print」や「p」などがあります(プログラミング言語で異なる)。表示されるものは、4行目でデータ代入した変数sです。プログラミングは基本的に上から順々に処理されていくので、4行目で定義されている変数sは7行目や9行目から見えるのです。3行目のintや4行目のStingは初心者がプログラミングを学ぶときに抑えるべきポイント(3)で説明しています。

一方、下記のプログラムはどうでしょう。同じように実行してみましょう。するとエラーが起こります。



なぜかというと先ほど出てきたスコープのお話です。先程も書いたようにプログラムは上から順々に処理されていきます。Hello Worldを代入しているのは6行目、表示の指示をしているのは8行目なので順番は問題ありません。しかし、今回の変数sの定義はif文の中で行われています。if文の説明はこの後紹介しますが、ここで問題となってくるのはif文がどこまで有効かということです。それは、if文の{}の間です。つまり5行目から7行目です。if文の中で定義された変数のスコープ(範囲)はif文の中でしか有効ではありません(例外はあります)。よって8行目からは変数sは見えません。だからエラーが起こるのです。

このエラーを解消するためには8行目にかかれた「System.out.println(s); 」を7行目に入れて(if文の{}の間に入れ、String s = "Hello World";の後に置いて下さい。String s = "Hello World";の前に置いてしまうと、表示処理のときにまだ定義されていない変数sを表示しようとするのでエラーになります)実行してみてください。Hello Worldと1回表示されるはずです。



この変数、スコープの概念の理解はどのプログラミング言語でも必ず必要になってきますので、しっかり理解しましょう。

if文(条件文)

if文はある条件の時はこの処理、この条件の時はこちらの処理という感じで、状況に応じて処理を分ける時に使用され、おそらくこの世にあるシステムでif文を使用していないシステムはありません。変数で紹介したプログラムを使って具体的に見ていきましょう。



3行目で変数aに10を代入しています。そして6行目のif (a > 0)に注目して下さい。英語のifの意味と算数の大なり、小なり(「<」とか「>」)が理解できている方はだいたい意味がわかると思いますが、6行目を日本語にすると「もしaが0より大きかったら(if文の中の処理を行う)」ということになります。3行目で変数aには10を代入にしているので、この条件は成立します。条件が成立することをtrueと言います。反対に成立しないときはfalseと言います。

今度は6行目の「>」を反対にしてみましょう。それを実行するとHello Worldが1回だけ表示されると思います。これはif文がfalseになっているのでif文の中の処理が実行されないため、7行目は通らず、その後の9行目だけ処理が通るからです。

if文は便利でtrueのときはこちらの処理、falseのときはこちらの処理と分けることができます。



if文が成立してtrueのときはif文の直下の{}の処理が実行されます。falseの場合はelseの後の{}の中が実行されます。+=は変数aに数字を足すための記述です。「=」だけだと5や10で変数aが上書きされてしまいます。この書き方もプログラミング言語によって違います。結果はifがtrueのときは15、falseのときは20が表示されると思います。

最後にelse ifを紹介します。if文はいくつも条件を並べることができます。



上記は変数aが15のときの例です。まずプログラムは(a <= 0)を評価(チェック)します。15は0以下ではないのでfalseです。ですので5行目のif文の処理は飛ばされます。<=と<の違いは数字を含むか含まないかの差です。「a <= 0」は0以下なので0を含みます。もし「a < 0」だったら0より小さい(0を含まない)という意味になります。 次はelse ifの条件文を評価します。15は10以上 (a >= 10)に当てはまりますのでtrueとなります。変数aには10が足されて結果は25になります。最後のelseは既にelse if文でtrueとなっているため何も処理されません。このようにelse ifを追加すると条件文の分岐いくつもできます。そしてどこにも当てはまらなければ最後のelseに処理の流れば向かいます。elseでは何も条件文がセットできないので、elseの意味は「どこにも当てはまらなかったら」という意味になります。else ifもどのプログラミング言語でも概念はありますが、書き方がelse if だったりelsifだったりなどいくつかあります。

次回ではどのプログラミング言語でも抑えるべき概念の続きを紹介したいと思います。

○初心者がプログラミングを学ぶときに抑えるべきポイント(2)はこちら
○このシリーズの一覧はこちら



最近の投稿