現在私はIT系の会社で働き習得している言語が、JAVA、C言語となります。
こんな私でも、プログラミングに触れ始めた頃は良く分からないし、あまり好きじゃないなと感じていました。そんな私が、プログラミングができる様になるまでに実践した事を記載します。本記事がプログラミングの勉強を始めたけれど、諦めそうという人や勉強にあまり取り組めていないという人の参考になりますと幸いです。
学生時代のプログラミング知識
高校までの私がどういったプログラミングに対する知識がどの程度かというと、全くありませんでした
。高校は進学校で普通科でした。大学で機械の事を学ぼうと思い、進学したところで初めてプログラミングに触れました。進学して授業の中で初めてプログラミングを勉強した時でも、良く分かっていませんでした。英語と数字が並んでいて特定の構文を入力すると動くのかという感じで、授業で課題が出ても、なかなか自力で問題が解けず、周囲の人に答えを聞く感じでした。
なぜプログラミングができる様になったのか
大学の研究室配属の際、画像処理をしている研究室に配属となった事がきっかけです。研究室紹介で画像処理を見て、楽しそう、やってみたいという思いが湧きました。しかし、画像処理をする場合、プログラミングが必要となりました。そのため、全く身についていないC言語を再度、勉強する必要がありました。ここでC言語を勉強した事で、プログラミングを身につける事ができました。
プログラミングの勉強方法
私がプログラミングを勉強方法は、プログラムを使う目的を明確にし、習得したい言語の本を読み理解し、実際に簡単なプログラムを作り、徐々に作るプログラムの規模を大きくしていったという形です。また、分からない所があったら、参考書に戻ったり、インターネットで調べたりという形になります。
以下に取り組んだ事を記載して行きます。
何のためにプログラミングを勉強するのか、目的意識を明確化
授業でプログラミングの勉強をした時と、研究室に配属された時の違いが何かというと、プログラミングの具体的な利用方法が分かっているか分かっていないかです。
授業の時は、for文はこういう構文、if分は条件分岐という事は学びますが、それが最終的に何の役に立つのか、想像ができませんでした。そのため、何を目的としてこの勉強をしているのかイメージが持てませんでした。しかし、研究室では、画像処理で使う事ができる様にするという目的があったため、自分で想像した処理を書いて動かしたいという目的を持って学ぶ事ができました。分からなくて投げ出しそうになった時には、画像処理をするために頑張るんだと目的に戻る事で、勉強を続ける事ができました。
習得したい言語の構文を知る
どんな構文がどんな処理をするか知るため、本を元に処理を実装して学習を進めました。始めに習得したい言語の基本が書かれている本を1冊買います。まずは基礎がわかれば良いので、printf、型、for文、if文、switch文、wile文、四則演算辺りが書かれていれば良いと考えます。慣れてきたら、レベルの上がった本を購入すれば良いです。
私が初めて学習に利用した本は以下の本でした。
基礎から学ぶC言語 著:荒木義彦
構文と実行イメージを紐付ける事で、プログラミンがどういうものか理解するため、一度購入した本の処理をパソコンで実装し、本に書かれている通りの結果がでるか比較しながら勉強をしました。実行できたら、再度本を読みどういう処理がされているか読み返し、どの一文がどういう動きになっているか、確認をしました。これで1冊読み終わる頃には各構文がどういう処理をする機能か知る事ができました。この時、疑問に感じた所には付箋を貼り、どういう構文か納得するまで調べました。また、日を空けてから、再度参考書を読み定着しているかを確認しました。
簡単な機能のプログラミングを書き理解を深める
ある程度構文を知ったところで、実際にアプリケーションを作り、動くものを作って理解を深めます。やはり目に見える形で実装した仕組みが動くほうが楽しいですので、これを行います。私の場合は、足し算、引き算、掛け算、割り算ができる電卓を作りました。実際にプログラミングをする中で書けない構文があった場合、その処理を理解していない事となります。この場合は参考書に戻り、再度構文の処理を読み込んだり、実行したりします。
プログラミングの練習では一度作ったら完了ではなく、電卓の様な簡単な機能のプログラミングを複数回繰り返し行います。最終的に参考書に戻る事がなくなったら、完了です。この時、同じ機能を複数回作っても問題ありません。私は、電卓、迷路、電卓(初回のものから拡張)、じゃんけん、電卓(2回目と同じ)といった感じでプログラミングをしました。
自分の興味のある分野に飛び込む
プログラムの理解を深めた後は実際に自分の興味ある世界のプログラミングを行います。私の場合は画像処理でした。ある程度プログラミングを組んでいると他人のソースコードが読める様になります。これにより、自力で専門分野のプログラミンができる様になっており、インターネット上に掲載されている様なプログラムの内容ならば理解できるようになっています。
まとめ
ここまで本記事を読んで頂いた皆さんならば分かっていただけると思いますが、プログラミングは直ぐに身に付くものではありません。繰り返しの訓練が必要となり、地道に身に付けます。そのため、挫けない為の目標を定める事が重要です。
私もプログラミングはよく分からないと感じていましたが、画像処理をやってみたいという思いが活力となりました。皆さんも一度、自分がプログラミングを学習してその後、何をしている自分でいたいのか整理してみると良いと思います。
本記事が、プログラミング学習の参考になりますと幸いです。
以上です。