プログラミングの難しさは三種類ある。知の壺は管理人「もとやん」がたまに書きたくなったことを書いているノートです。大体誰かに宛てて書いています。今まで作ったもの連絡先リンクプログラミングの難しさは三種類ある。2015.07.22プログラミングにはいくつかの難しさがあると考えています。いうのは難しいですか?と、聞かれるときにうまい説明がなかなかしづらい事があるので、とりあえず自分の考えをまとめておきたい。目次Type1:どうすればいいかは簡単にわかるが、必要手順が多く時間がかかるType2:やるべきことはわかるが、うまくいくかはわからないType3:どーすればいいのか皆目検討がつかない番外:やりたいことがわからない関連記事Type1:どうすればいいかは簡単にわかるが、必要手順が多く時間がかかる時間がかかるとは、実装に必要なコード量が多かったり、やってることは簡単でもミスが出ないように積み上げていくのが大変だったりと、おおむね単純作業ではあるものの、量が多い場合に該当する「難しさ」です。正確に言えば「難しい」と言うよりは「面倒くさい」のほうが正しいんですが、面倒くさいって言うと角が立つ場合は「難しい」って言いますよね。仕事だったら「納期に間に合わせるのは難しい」とか。Type2:やるべきことはわかるが、うまくいくかはわからない今流行の機械学習などを含めた、統計的に動作するアルゴリズムの実装が必要な場合にぶつかるケースです。いうパラメータを、どういった手法で学習させればいいのかは、経験があれば多少なりともアタリがつくものです。実際にデータを流してみないと、どの程度の精度が出るのか正確なところはわかりませんし、想定の要件で実用を満たすのかもわかりません(レコメンデーションの精度とか)。幾つか手法が候補に上がることも普通なので、パラメータの選定や、学習などのチューニングも含めると、統計モデルがどの程度の時間で実用に達するかはわからないですし、ひょっとすると1年あってもできないかも・・みたいなことも。だいたいうまいこと学習できたとしても、データセットの規模いかんによっては高速化的なタスクが積み上がる場合も。Type3:どーすればいいのか皆目検討がつかないやりたいことはわかるが、何をどうすればいいのかわかららないという状況。Worldは書けたけど、何をどうすれば3Dゲームになるんじゃい?」みたいな。すればいいのかわからないので、当然何をすればいいのかわからない。手がかりを基に調べたり考えたりするしか無い。色々なアルゴリズムや、様々なシステムの概要などを知っていくことで、ホントに何の手がかりも無い、全くわからないというケースは減っていく。検索エンジンだろうがコンパイラだろうがOSだろうが、3Dエンジンだろうが、とりあえず構成要素自体はどこかしらから知識として入ってくると思うので、その辺をとっかかりに調べるなり考えるなりすれば全く手が出ないということは早々ないはず。実際に完成できるかは知らないが。番外:やりたいことがわからない知らん。一人で始めた独学囲碁入門。コメントをキャンセルメールアドレスが公開されることはありません。views試して分かった。Appsの無料版がなくなったので、無料で使えるメールサーバのニーズが個人的に上昇。ドメインたくさん持ってるので、一つのアカウントで複数ドメイン+複数アカウントを管理できるように作りこみました。無料で履歴書が作れたりするサービスなんです。これが不思議と意外に使われているっぽい。アドセンスは全くクリックされないんだけれども。views試して分かった。Appsの無料版がなくなったので、無料で使えるメールサーバのニーズが個人的に上昇。ドメインたくさん持ってるので、一つのアカウントで複数ドメイン+複数アカウントを管理できるように作りこみました。無料で履歴書が作れたりするサービスなんです。これが不思議と意外に使われているっぽい。アドセンスは全くクリックされないんだけれども。Twitter@calcsさんのツイートタイトルとURLをコピーしました。