プログラミング学習法について
いろんな人が同じようなことをいっているのをいろいろみたけど、だいたいまちがってる。
プログラミングは、勉強するようなものではない
たとえば、野球をしよう、という。その前に野球のすべてを知らなければならない、と、水島新司から読み始め、なぜかアストロ球団に行きつき、これだ!となってしまったらどうするつもりなんだろう。人間ナイアガラ的なコーディングされたらたまったもんじゃない。
そもそも、ライブラリとかも日進月歩。学んだ時にはもう、もっとよい選択肢がある。
目的こそが大切
プログラミングを学ぶことが目的、というのは間違いです。
ちゃんというと、なにかほしい機能を実現するために、言語とかミドルとか選定してやるので、乱暴に言えば目的さえ達成できればなんでもいいんです。
プログラミングのプロセス
たとえば、日常作業を自動化しちゃおう、と思った場合。
まず、アウトプットイメージ、こんな風に出す!と決めます。これが一番重要なプロセスです。
インプットを整理します。そして、アウトプットイメージとの違いを、これが、ここ、と、具体的に埋めていきます。すると、どうしてもそのままでは収まらない。それが、いわゆる手作業ポイント。業務改善につながるポイント。
ここで、フローが分岐します。
できるところだけやるか、手作業ポイントを自動化するか。
手作業ポイントを自動化する場合、アウトプットイメージを見つめなおします。この項目は、これでよいのか、もっとよいものがあるのではないか、一応考えているふりをします。
全部忘れる
これまでやってきたことをすべて忘れます。それから、もう一度課題に向き合います。すると、いい発想が生まれます。一度全部忘れて、思い出すといい発想がどんどん出てきます。
課題の整理
でてきた課題の整理をします。処理順を決めていきます。文字通り、プロセスです。
プロセスをパーツとして、コーディングを始めます。
最後にプロセスを合わせるラッパーとして、メインを書きます。
要するに
プログラミング学んだところで何も身につかないので、ラズパイで機械学習作って、ジョギングでおっぱいがゆれた場合の加速度をはかりたい!という目標でもいいのです。
やりたいことみつからないけど学びたい、というなら、生活の中で気になることをいろいろみつけてみたらいいと思います。機械学習はとても面白いです。
でも、そもそもやりたいことみつからない人は、続かないですし。
ちなみにあたしゃ、IT業界に長くいさせてもらってますけど、一回たりともプログラミング学んだことないですけど、一通りなんでも言語使えます。
得意言語は日本語です。
プログラミング言語は暗記するもんじゃなくて、ライブラリを確認するもので。ヘルプ見ろ!ヘルプに全部かいとるわ!やりたいプロセスが分析できてないと見つかるわけないがな!
ということで、目的を強く意識して、フローを書いてフローを関数レベルまでブレイクダウンしていくといいと思います。んじゃもう、コーディングも完成してるし、プログラミングスキルもあがってるよ。
だって、プログラムとは、過程、工程表なわけだし、フローで工程ができればいいだけでしょ。工程には目的=ゴール=成果物が必要だから、まず目的なのです。それこそ、プログラミングのすべてです。
この記事が気に入ったらサポートをしてみませんか?