プログラミングの学習を進めていくと、何度かプログラミングって面白いなと感じる部分があった人も多いのではないでしょうか。
本記事では、プログラミングの面白さをスキルレベルやアルゴリズムなど、様々な角度から見てみましょう。
- プログラミング初心者はまず小さく動かしてみることが大切
- 中級者は任せられる作業範囲が増えることでやりがいを感じる
- フリーランスでは自分の挑戦したい案件にチャレンジ出来ることもおもしろさ
プログラミングの魅力・面白さとは
初心者
初心者がプログラミングに対して感じる魅力・面白さの1つは「動く」ということでしょう。どんな小さなプログラムであったとしても自分で作成したプログラムが動くのを見ると嬉しく感じ、プログラミングの面白さを感じることができるでしょう。
2つ目としては、「バクが取れた」ときでしょう。
作って動かしはしたが想定の結果が得られない。初心者は特にこのような場面に遭遇するケースが多いでしょう。頭を悩ませていた、なかなか見つからなかったバグが直ったときはとても嬉しく感じ、プログラミングの面白さを感じることができるでしょう。
初心者の場合は本当にちょっとした間違いからくるバグが多いものです。初めのうちはそれが分からないものですが、少しずつ経験を積むことで怪しそうな部分に鼻が利くようになってくるものです。そうなれば、さらにバグ取りの面白さに目覚めるのではないでしょうか。
3つ目としては「成長スピード」ではないでしょうか。
プログラミングは、昨日まで作れなかったプログラムが作れるようになる。と言った短期間での成長を感じることができる仕事です。
どんな仕事であっても経験を重ねて初めてできるようになるものですが、プログラミングはある日突然悟りを開いたように目の前のモヤが晴れるような感覚が訪れます。そんな感覚を日々感じることが出来れば、プログラミングを面白いと感じることが出来るのではないでしょうか。
中級以上
中級者以上になったとしても初心者が感じることができる面白さも継続しますが、これらに加え任される作業範囲の拡大することによってより面白さが増すことが多いでしょう。
初心者では任されることがなかったシステムの根幹に係る部分などを任されることも多くなります。難しい部分を任されると当然、責任は重くなりますが、その分、やりがいも感じることができ、これまでとは違った面白さを感じることができるようになります。
フリーランス
フリーランスは問題のある現場に颯爽と現れて難問題を解決し、颯爽と去っていく。そのようなイメージを持っている人もいますが、実際にはさすがにここまでのフリーランスエンジニアはそうそうお目にかかれません。
しかしながらマンガのフリーランス像から大きく外れていないような「真のプロフェッショナル」と呼べる人もいます。それらフリーランスエンジニアの楽しみと言えば「どんな難しい案件なんだろう」という点でしょうか。
大抵の案件を乗りこなしてきているフリーランスエンジニアにとって難しい案件はある種の面白さとなっているのでしょう。
「自分のプログラミングスキルがどれくらいのレベルか知りたい」といった方は、「ポテパンキャンプ」の無料カウンセリングも試してみてください。
面白いアルゴリズム2選
ここからは少し趣向を変え、面白いアルゴリズムを紹介します。
マージソート(しめじソート)
アルゴリズムと言えばソートが代表的でしょうか。昔からどうすれば一番効率的にソートが出来るのかはエンジニアの頭を悩ませている問題です。
そんな数多くのソートアルゴリズムからいくつかある代表的なソートアルゴリズムから一般的には安定的(=元データがどのような並び方であってもソートにかかる時間がそれほど変わらない)と言われているマージソートを取り上げます。
マージソートは簡単に言えば「対象となるデータをn分割し、それぞれの中で一番小さなデータを取りだし、その並べ替えが終わるまで繰り返す」というものです。言葉にするとイメージしにくいですね。
それを分かりやすくしたものが、NHKの子供向け番組で放送された「しめじソート」です。これを見たエンジニアが個人ブログやSNSに掲載していますので検索してみてください。
ダイクストラ法(最短経路問題)
電車の乗換案内やカーナビの行き先検索などで用いられるアルゴリズムですね。
スタート地点からゴールまでの最短経路(電車の乗換案内でどの電車乗ってどの駅で乗り換えるか)を求めるために使われるアルゴリズムです。エンジニアであれば一度は聞いたことのあるアルゴリズムでしょうし、どうやって実装しているか気になっている人も多いでしょう。
ダイクストラ法は簡単に言えば「スタートから一番近いノード(電車の乗換案内であれば駅)を順次探しながら最短経路を求める」という事になります。
ただ、これだけだと、一番近いノードに結果的に遠回りしてしまうことがありますので、一旦、最短と仮決めした経路を再評価しなおし、その結果、別の経路が最短であれば経路を更新する。というアルゴリズムになっています。
こちらも言葉だけでは分かりにくいので参考URLを確認してみてください。
「アルゴリズムに関してしっかりと知識を付けたい」といった方は、「ポテパンキャンプ」の無料カウンセリングも試してみてください。
まとめ
今回はプログラミングの面白さをエンジニアのスキルレベル(初心者、中級者、フリーランス)ごとにご紹介しました。また、一般的に知られているアルゴリズムについてもご紹介しました。
他にも有名なアルゴリズムには「クイックソート」や「ページランク」などがあります。それぞれのアルゴリズムを紹介しているサイトやアプリがありますので確認してみてください。