プログラミング勉強した方がいいのは分かってる…、でも難しい。
今日は、プログラミング学習の入り口となる記事を用意しました。
こんにちは!コンじゃぶろーです!
プログラミングの世界へようこそ。これは、ただの技術を超えた冒険の始まりです。初めてコードを書く時、私たちは未知の領域への一歩を踏み出します。その瞬間から、私たちは学び、成長し、そして時には、つまづきます。しかし、それがプログラミング学習の美しい部分です。「つまづいたら立ち上がれ」この言葉は、全ての初心者が直面する挑戦の核心を突いています。
プログラミング学習の旅は、単に新しい言語を学ぶこと以上のものです。それは、問題解決の技術を磨き、創造的思考を育て、最終的には、私たち自身の限界を押し広げるプロセスです。初心者がこの旅を始めるとき、多くの疑問が頭をよぎります。「どの言語から始めれば良いのか?」「どうすれば効率的に学べるのか?」「つまづいたとき、どうやって乗り越えれば良いのか?」
これらの疑問に対する答えは、一人ひとりによって異なります。なぜなら、プログラミング学習の旅は、個々の目標、好奇心、そして情熱に深く根ざしているからです。しかし、共通する真実が一つあります。それは、挑戦を乗り越えることでしか、真の成長は得られないということです。
最初のつまづきを経験することは、避けられない事実です。しかし、それは失敗ではありません。むしろ、新たな学びへの扉を開く機会です。最初に学ぶプログラミング言語でのつまづきは、将来の成功への礎を築く貴重な経験です。基本的な構文から始め、徐々に複雑な概念へと進むことで、私たちはプログラミングの基礎を固めることができます。
そして、学習過程をより楽しく、そして効果的にする方法があります。プログラミングを学べるゲームやツールを利用することで、学習初期の壁を乗り越えやすくなります。これらのリソースは、初心者がコーディングの基本を楽しみながら学ぶのに役立ちます。
つまづきは、学びのプロセスの一部です。それを受け入れ、乗り越えることで、私たちはより強く、賢くなります。この記事では、プログラミング学習の旅を始めるあなたをサポートするために、これらの挑戦にどのように立ち向かい、克服するかに焦点を当てています。私たちの目標は、あなたが自信を持って次のステップへ進むことを助けることです。
つまづいたら立ち上がり、再び挑戦してください。プログラミング学習の旅は、決して一人で歩むものではありません。ここには、同じ道を歩む仲間がいます。私たちは、あなたの成長と成功を心から応援しています。
本日の記事、重要なポイント
- 最初のつまづきは、誰もが経験するハシカみたいなもの
- 1つ目のプログラム言語は丁寧に覚える
プログラミング初心者への道標
最初の一歩が最も重要です。
というのも、国語のようであり、算数のようでもあり、道徳のようでもあるからです。
機械が分かる言語を、書く部分は国語のようです。そして、機械にさまざまな判断をさせる部分は、算数の数式が絡んできます。
そして、ルールを守らないと、正常に動かない部分は道徳のようなものです。
とにかくわけが分からないので、最初につまづきます。
そして、最初こけた痛みから、この先どんな恐怖が待ち受けるのかと、心の底から恐怖します。
今日は、プログラミングをする前の僕、プログラミングにつまづいていたあの時の自分に説明するようにまとめたいと思います。
共通の挑戦:最初のつまずきを乗り越える
プログラミングで、最初につまづくのは誰もが経験することです。それまでの学習を使えそうで使えないからです。
今まで見てきた英語のようで、算数のようなのに、全く意図した通りに動かない。
そもそも、プログラムを書く以前に、どういう手順で、何をしたら動くのかがさっぱりわかりません。説明されても、どうしてそんな手順でしないといけないの?と考え出すと、頭がパニックになります。
一つの言語を徹底的に理解する
プログラミング言語というものは、山ほどあります。まずどれを勉強するか?という点で迷ってしまう人も多いんじゃないでしょうか?
それに対しては、正直なんでも良いと思います。
1つ勉強すれば、大抵同じだからです。さまざまな機械がプログラムによって動いているのですが、それを作ったメーカーによって選択される言語も違いますし、機械の特徴によっても使用されるプログラミング言語は変わります。
しかし、どのプログラミング言語も、基本的には同じような構造になっているので、1つ覚えることができれば、他の言語も大体分かるようになっています。
ワードやエクセルが使えれば、他の文章ソフトや表計算ソフトが使えるのと同じような理論です。
なので、1つ何かまる覚えしてしまえば、あとは応用でなんとかなります。1つ目でつまづいたからと言って、2つ目以降もつまづく訳ではありません。
注意しなければいけないのは、1つの言語は、確実にマスターしなければいけないという点です。1つ目につまづいて、それをクリアしていなかったら、どの言語に逃げても同じ場所でつまづくので、1つはマスターするようにしましょう。
プログラミングを楽しみながら学ぶ方法
最初のプログラミングは、開発環境を用意するのが比較的に簡単な「C言語」からスタートする人は多いと思います。
開発環境は、各言語の参考書を買えば、たいてい書いてあるので、本屋で立ち読みして、環境を用意できそうなものがあれば、参考書を購入して始めると良いと思います。将来性で言えば、JAVAがおすすめですが、シミュレーターが手に入りやすいCASLⅡ(アセンブラ)でもいいと思います。
ゲームを作りながら勉強したいという人は、Nintendo Switch「はじめてゲームプログラミング」でも十分ですし、もう少し実用的な、Unityやアンリアルエンジンでも良いと思います。
プログラムの勉強で最初に必要なのは、「言語のルール(主に書き方)を覚える」と「目的を達成する処理を考える」の2つの力です。
ゲーム「はじプロ」であれば、言語のルールも丁寧に理解できて、早い段階で「目的を達成する処理を考える」部分に集中する事ができます。
↓アンリアルエンジンをやるならUE5極め本一択
サラリーマン時代に、毎日1時間学習していたら1ヶ月でアンリアルエンジン案件受注につながりました。
- プログラムは、何か1つ勉強すればOK
- ゲームで学習することもできるよ!
- 「言語のルールを覚える」と「処理を考える」の2つの力を鍛えよう
最初のプログラム言語をマスターする秘訣
一つ目に学ぶプログラムは、丁寧に覚えましょう。
まずは、開発環境を作りましょう。
開発環境の主な役割は、「プログラムを作る」「実行結果を確認する」「デバッグモードで確認する」の3種類です。
最初は「プログラムを作る」環境と、「実行結果を確認する」環境を作りましょう。
大抵は、プログラミングソフトをインストールすればOKだったりしますが、言語によってそれぞれしなければいけない事があります。(ここでつまづく人は多いので、誰かにサポートしてもらうのが良いです。)
開発環境は、言語によって違うので、参考書や解説サイトをもとに作ってください。ちなみに「はじプロ」であればゲームを起動するだけでOKです。
開発環境ができたら、次に言語のルールを覚えます。
言語のルールも、言語によって変わりますが、以下の3点に絞って覚えるのが良いです。どの言語にもあって、これさえ覚えておけば簡単なものであったら作る事ができるからです。
- 順次処理(演算・読み込み・保存 等)
- IF文(条件分岐)
- while文(繰り返し)
それぞれ、初めてだったら何のことか分からないと思います。
しかし、例題を考えてみると、分かりやすくなると思います。
例題「17時になったら、公園のランプを点灯させる。朝5時になったら消灯する」というプログラムを考えます。
3つのルールにおいて作り上げてみましょう。
基本構文:順次処理
「順次処理」と言うと、複雑に聞こえるかもしれません。順番に実行される処理の事です。
プログラム言語によって、多少できることは変わったりもしますが、プログラムの中で一番シンプルな処理は、「+1(足す)」「ー1(引く)」だと思います。
他にも「値を0にする(初期化)」「値を〇〇にする(保存)」といった複雑なモノもありますが、ここでは、プログラムにしてほしいことだと考えてみると良いと思います。
例題で考えると、「ランプを点灯する」「ランプを消灯する」がここで実行される処理になります。
これをプログラミングちっくに書くと、このようになります。
1行目処理:公園のランプを点灯する
2行目処理:公園のランプを消灯する
以上です。プログラムは、上から順次実行されるので、ランプが点灯して消灯します。しかし、これでは、例題にある時間の概念がないように思えます。
これを上から順番位実行すると、「点灯して、すぐに消える」と言う結果になります。
時間によって点灯状況を変える為には、次の項目で解説する「IF文」を使います。
基本構文:条件分岐
「IF文(条件分岐)」は、特定の条件によって2つ以上の結果に変化させる時に使います。
こう言われてもピンとこないと思いますが、ゲームで考えると分かりやすいです。
ゲームの中で聞かれるセリフ「この宿に泊まりますか?」に対して、「はい」「いいえ」の2択で答えた事ありませんか?
あれも条件分岐です。「はい」を選択した結果と、「いいえ」を選択した結果で違う結果になるので、そういう処理のプログラムを書くときに、IF文(条件分岐)を使います。
例題の場合であれば
1行目処理:IF文(夜17時になったら)次の行を実行する
2行目処理:公園のランプを点灯する
3行目処理:IF文(朝5時になったら)次の行を実行する
4行目処理:公園のランプを消灯する
このようになります。
でも、これだと時間の流れがありません。
僕らが生活している世界には、時間の流れがありますが、プログラミングの世界では、意図的に時間の流れを設定してあげる必要があります。
仮に、現在時刻が、朝の8時だった場合、1行目から4行目は実行されずに素通りしてしまうからです。
丁寧に解説すると、朝の8時は、夜の17時ではないので、2行目は実行されません。同様に、朝の8時は、朝の5時ではないので、4行目も実行されません。
実際にこんなプログラムの電灯があれば、点灯しないし、消灯しない壊れた電灯になります。このプログラム的に、目的を達成しない状況を、「バグがある」といったりします。
プログラムで時間の流れを作る方法はいくつかありますが、while文(繰り返し)もその1つです。
基本構文:ループ処理
while文は、特定の処理を繰り返す処理です。これも、このまま聴いたらよく分からないですよね。でも実際に例題をあてはめてみると分かりやすいです。
例題であれば、1日の時間の流れを足せばよさそうなので、このようになります。
1行目処理:while文(2行目〜6行目を繰り返す)
2行目処理:IF文(夜17時になったら)次の行を実行する
3行目処理:公園のランプを点灯する
4行目処理:IF文(朝5時になったら)次の行を実行する
5行目処理:公園のランプを消灯する
6行目処理:1時間を経過させる
こう記述することで、2行目から6行目の処理が1回ずつ実行される度に、1時間経過する事がなんとなく分かると思います。
このような感じでプログラムを書くわけですが、「順次処理」「if文」「while文」を使えば大抵の事がプログラムで書けたりします。あとは、それぞれのプログラム言語において、どう書けば良いか見極めれば理解しやすくなります。
ちなみに上記の例文を、C言語っぽい書き方にするとこのようになります。あくまでも、それっぽい書き方です(汗)。
while(1){ //1行目処理:while文(2行目〜6行目を繰り返す)
if(time_h==17){//2行目処理:IF文(夜17時になったら)次の行を実行する
light=ON;//3行目処理:公園のランプを点灯する
}
if(time_h==5){//4行目処理:IF文(朝5時になったら)次の行を実行する
light=OFF;//5行目処理:公園のランプを消灯する
}
time_h++;//6行目処理:1秒時間を経過させる
if(time_h==24){ //24時になったら時計を0に戻す。
time_h=0;
}
}
どうですか?なんとなく分かりませんか?なんとなく分かると言う感覚が、とても大事だったりします。
実践的な例題で理解を深める
もし、なんとなく分かった方は、以下の例題をやってみてください。目的に対して、3つの「順次処理」「IF文(条件分岐)」「While分(繰り返し)」を使って、文字だけで処理を作ってみましょう。
- ボタンを押したら火がつくライター
- 水の温度が100度を超えたら「ぴーっ!」となるストーブの上で温められたヤカン
- ししおどし
- 水車の脱穀機
- 30秒毎に点灯が切り替わる歩行者用の信号
- 30秒毎に点灯が切り替わる車用の信号
答えは書かないでおきます。誰かに発表するか、実際にプログラムを組んでみて、動いたらそれが正解です。中身はどうであれ、動くプログラムこそ正義です。
- 順次処理は、上から順番に実行される。
- IF文で、条件分岐を考える
- While分で、繰り返し処理を考える
学習のつまずきは成長へのきっかけ
プログラミング的な記事を書いてしまいました。
どんなプログラミング言語をするにしても、つまづく事は想定内と思って問題ないと思います。
けれども、最初勉強する言語が一番難しいと言うのが、僕の意見です。
なので、最初に手を出した言語がなんであっても、「訳がわからなくて理解できない」と思っておいて間違いはありません。
最初は、全部丸暗記するくらいがちょうど良いです。
1つ乗り越えれば、あとは同じようなことの繰り返し。心折れただけ確実に強くなると、僕は思います。
はじプロであれば、プログラムをやった事の無い5歳児でもゲームを作れたりするので、この3連休にトライしてみてはどうでしょうか?
以上、さしあたり、今思う事でした。
ここまで読んでいただけてありがとうございます。
皆様の良い人生の一助になれば。
コメント