こんにちは。
立命館大学2回生、情報理工学部に所属している畑野です。
未来電子テクノロジーのインターン生として、マーケティングの業務を行いながらプログラミングコースの受講をしております。
プログラミングを始めた時期
僕が所属している学部は情報理工学部と言って、情報分野を広く学びます。
プログラミングも例外ではありません。
大学に入学してから一週間もしないうちに、プログラミングを始めていました。
Processing
最初に触れたプログラミング言語はProcessingでした。
Processingはグラフィカルに特化したプログラミング言語です。
「プログラムが目に見える形で実行されやすい」
「ほかの言語と比べると、複雑な処理無しに記述できる」
その他、様々なメリットからプログラミング初心者でもとっつきやすいとされています。
挫折
初心者に優しいはずのProcessingですが、僕は挫折してしまいました。
毎週課される課題も、友達がいなければこなせない状態でした。
「こんなんで単位取れんのかな」
「プログラミングするの嫌やわ」
こうして約半年、プログラミングに対する苦手意識が払拭されることはありませんでした。
変化
Processingの学習を終えた半年後、新たにC言語の基礎を広く学び、Pythonにも手を付けました。
C言語においては、鍋敷きとも言われている分厚い教科書を一通り勉強しました。
また、Pythonにおいては簡単なアプリケーションの開発を行いました。
そして、大学でプログラミングの勉強を始めて一年が経ち、自分の心境に変化が生まれたのです。
楽しさ
2回生になると、基礎を学んだC言語を利用してデータ構造とアルゴリズムについて学び始めました。
そのあたりから、プログラミングの問題が徐々に自分の力で解決できるようになってきました。
課題をこなしていくうえで楽しささえも見出すことができていたように思います。
データ構造とアルゴリズムって?
*データ構造
データ構造では、文字通りデータの構造を考えます。
要は、複数あるデータがどのように管理されるのか考えるということです。
例えば、小学生は運動会の開会式で整列しますよね。
「俺が一番前や!」
「俺今日隣のクラス行きたいから隣に並ぶわ」
こんなことを言う小学生はいないはずです。
つまり、何らかの指標を持って列を形成しているのです。
一般的なのは身長による並び替え(sorting)です。
身長が一番低い児童は一番前に、身長が高い人は一番後ろと言った具合に整列するのです。
これはデータ構造の考え方の一つですね。
*アルゴリズム
身近な例で言うと、料理のレシピがそれにあたります。
「ケーキを作ってくれ」
と言われたら、皆さんはどうしますか?
とりあえずスーパーに行って買い物をすると思います。
その時に、何も考えずに買い物をする方はいないでしょう。
レシピを確認し、必要な材料を買うはずです。
そして、レシピを見ながら手順通りにケーキを作っていくのではないでしょうか。
この手順こそがアルゴリズムです。
僕が言いたいこと
*時間がかかることは仕方がない
何かを始める時、板につくまで1000時間、極めるまで10000時間かかるということを聞いたことはありますか。
いわゆる、「1000時間の法則」「10000時間の法則」と呼ばれているものですね。
この言葉は、
「時間さえかければ何でもできるようになる」
と言っているわけではありません。
「新しいことを始めるためには、それだけ長い時間を必要とする」
ということを言っているのです。
もちろん、その人の努力次第では要する時間を短くすることはできるでしょう。
ですが、どのような人であっても、すぐにできるようになるわけはないのです。
それはプログラミングに関しても同じことが言えるはずです。
*継続することが重要
継続は力なり、です。
プログラミングだけでなく何か新しいことを始めた人は、ぜひ継続してほしいです。
途中で挫折してしまうこともあるかもしれません。
でも、続けていれば必ずできるようになります。
僕は論理的思考力に自信がありません。
でも、継続して勉強し、プログラミングができるようになりました。
さいごに
何事でも、継続することが重要です。
そして、時間をかければきっと挫折を乗り超えることができるでしょう。