プログラミングライフスタイル

「アルゴリズム」の学び方

今日は「アルゴリズム」の学び方について話そう。

え?アルゴリズム?・・・苦手だなぁ。

「実用性」の無いアルゴリズムを学ぶ?

「アルゴリズム」って、プログラムを学ぶ際には不可欠だと思うんだけど、何か勉強しているものはある?

あんまり「アルゴリズム」とかは勉強していないかな。

「並び替え」のアルゴリズムとかはちょっと勉強したよ。

自分のイメージだと「アルゴリズム」ってすごく難しいイメージがあったかな。

今も勉強しているけどやっぱ難しいな~って思ってる。

今は何か勉強しているものはあるの?

今は「ショアのアルゴリズム」かな。めちゃ難しい。

え?何それ。初めて聞いたよ。

何のアルゴリズムなの?

「因数分解」を行うためのアルゴリズムだよ。量子コンピュータの。

「因数分解」は学校で学んだけど「量子コンピュータ」が分かんないな~そんなの勉強してるんだ。

先輩に「最先端のコンピュータの技術だから」って教えられて勉強し始めたよ。

正直難しくてよくわかんないんだけど・・・

ネットでニュースを見ていたらたまに見かけるけどね。

まさかサトル君が勉強しているなんて思わなかった。

何でも一度はやってみる精神だからね。

でも、まだ「実用的な量子コンピュータ」は無いから、「実用性が無いっていうところが最先端」ってことみたい。

実用性が無いものを学ぶのは難しいね・・・

私だったら実用性が無いものは勉強しないかな~

しかもそんなに難しいんならなおさら勉強しないよ。

「普通の開発を学んだ人」たちはそういう最先端なところを学びたくなるらしい。

自分は普通の開発すら学べていないけれど・・・

めっちゃ背伸びするじゃん。興味のままに学んでいるのはサトル君らしいけどね。

めっちゃ言うじゃん。あっているから何も言い返せないけど。

でも、学ばないより学ぶ方がいいと思うよ。

もし実用性が出てきたら、学んだことを活かせるかもしれないからね。

「アルゴリズム」って難しいから「難しいことを学ぶことに慣れる」っていう意味ではいいのかもしれない。

そう言われるとそうかも。

「難しいことを学ぶことは避ける」っていう勉強だったからね。

学習スタイルが変わってきたのかも。

サトル君の場合は、その方がいいのかもね。

「深く狭く」っていうよりは、「広く浅く」学んでいく方が合っているのかも。

エンジニアになるわけじゃないし、その方が合っているのかもね。

いろいろ知りたいっていう欲求の方が強いかな

カナコちゃんはどう?

私は「そこそこの範囲を長い間学びたい」かな。/span>

長い間学ばないと覚えられないし身に付いた気がしないから。

1つのプログラム言語で半年以上勉強することもあったよ。

半年は長いね。僕は飽きちゃうな~勉強に変化がないと。

「飽き性」は生まれてから全然変わらない。

変える気も無いんだけどね。

「アルゴリズムの勉強」って飽きない?私はちょっと退屈だったな~

う~ん。「飽きない程度」にしか勉強していないかな。

勉強のペースは前よりだいぶ落としているからね。「勉強スピード」を調整して「飽きないようにする勉強方法」を模索しているよ。

ちょっとは成長しているじゃん。

僕もいろいろ勉強方法を考えて実践してるよ。

「アルゴリズム」の勉強を始めた時に「どうやったら続けられるか?」を考えながら勉強していたからね。

私もそうすれば良かったのかも。

といっても、そもそも私は勉強ペースがあまり早くないからな~

でも、ちゃんと勉強を続けられているんだから、今の勉強でいいんじゃないかな。

あんまり「アルゴリズム」ばっかり勉強すると続かなそうだけど。

「プログラムの基礎」を学んだ後に学ぶ内容だから、「中級の内容」みたいな印象だね。

知らなくてもプログラムは書けるけれど知っておいたほうがいい内容かな。

確かに既に「クラス」とか「メソッド」が用意されていることも多いからね。知らなくてもプログラムが書けちゃうので、避けようと思えば避けられる。

でも、そこを避けてしまうとその先に進めないっていう。

そうそう。無理に勉強しなくてもって感じはあるかな。もちろん勉強したほうがいいけど。

職業としてプログラマを選択しなければ知らなくても何とかなるかな。

そうだね。時間を掛けてゆっくり理解していかないとそもそも理解ができない。

毎日ちょっとずつゆっくり理解していくのがポイントかも。

何回も繰り返し学ばないと覚えられないし、無理しないことがコツかもね。

自分でプログラムを作るための学習にもつながるし。

「プログラムを作れる」ようになるための練習にもなるかな。

実際にプログラムを書いて実行してみて、「変数の内容」とかを随時確認してみたら理解が進んだよ。

本とかを読んでいるだけじゃ全然わからなかった。

そうだね。1つずつの処理の内容を調べていってやっとわかるようになってくるね。

実際の動作を頭の中でイメージするだけではかなり難しいと思うよ。

あと、「データ構造」についても知っておかないといけないかな。

データを扱って処理をする手順を学ぶから「データ自体」について知っておくことや「データの構造」を知っておくことも大切だね。

「何とか木」みたいなやつだね。「木構造」とか学んだ気がする。

ちゃんと勉強してたんだ・・・

え?試したの?ちゃんと勉強してるよ。

サトル君がどこまで勉強しているのかわからなかっただけだよ。

「量子コンピュータ」は知らないから、私も勉強しようかな~。

→(前へ)「WEB」のスキルを身に付ける必要性

→(次へ)学習効率のいい「学習環境」とは?

HOMEへ