【コーディングを支える技術】どのプログラミング言語をはじめに学んだ方が良いのか?プログラミング言語をどのように学べばいいのか?
どのプログラミング言語をはじめに学んだ方が良いのか?
プログラミング言語をどのように学べばいいのか?
自分の中である程度答えを持ってはいるものの、プログラミングに関する疑問を払拭してくれるこちらの書籍を読んでいます。
プログラミングの歴史からどのような目的で進化していったかを考えることで、「どのプログラミング言語学ぶのが良いか?」やどのようにコードを書くのか」がわかります。
どのプログラミング言語から学ぶのが良いか?
今やプログラミング言語は色々あります。
過去に勉強した言語を挙げるだけでも10近くはあります。
Fortran
Excel VBA
Python
PHP
HTML&CSS(マークアップ言語)
C言語
C++
Ruby
JavaScript
またプログラミング言語を目的に合わせてより使いやすくしたフレームワークなんかもあります。
Django(Python Webアプリ)
Flask(Python Webアプリ)
Scrapy(Python スクレイピング)
Wordpress(PHPブログ)
React(JavaScript)
JQuery(JavaScript)
ここでは過去に自身が勉強した言語をざっくり列挙しましたが、実際に使っているのはPythonとExcel VBAだけです。
使う用途は実務でのCAE解析の結果処理です。
なぜかというと目的に応じて使う言語を選んでいるから?
おそらく「~をやりたい」と思ったときにどの言語を使っても実現できるはずですが、目的を達成するために何を重視するかで使う言語を選択しています。
たとえば偏微分方程式をパソコンに解かせて数値計算をしたいのであれば、実行速度が速く、かつコーディングが楽な言語を選ぶでしょう。
そうなるとFortranやC言語を選ぶといいのですが、そもそもそんなに計算規模が多くないということであればコーディングが楽で豊富なライブラリ備えているPythonを使うのが良いでしょう。
最近では実行速度はC並みでコーディングが楽な言語としてjuliaなんてのもあります。
実行速度も速く、かつ大人数で大規模に開発したいというのであればC++を使うのが良いかもしれませんね。もし大規模な開発ではなく個人でこじんまりと作りたい場合はC++は難しすぎるのであまりおすすめできませんが。
個人的な話ですがPythonは未経験でも勉強したら1週間くらいでそこそこ使えるようになりましたが、OpenFOAMの理解のためC++は一か月くらい勉強してもなかなか理解が難しい点が多いです_(._.)_
過去にこんなツイートしたことがありますが数値計算するのであれば「Fortran」が学習コストも低くて、適当にコードを書いてもそこそこ実行速度も速いのでおすすめしたわけです。
C言語よりはFortranの方が学習コスト低めに感じるのですが、それは僕自身が大学院でFortranを使っていたからであってC言語とFortranはあまり学習コストの面では変わりないかもしれません。
組み込み系の仕事に就きたいのであればC言語の方がいいかもしれませんが、結論は「目的に応じてプログラミング言語を選びましょう」ということです。
今はCAE解析の結果処理や作業の自動化のためにプログラミング言語を学んでいますが、目的が「簡単にツールが作りたい」ということなのでもっぱらPythonかExcel VBAを使っています。
プログラミング言語をどのように学べばいいのか?
これに関しては結論が出ています。
プログラミング言語は目的を達成するための手段であって勉強することが目的ではないため、目的を達成するためにプログラミングを使って実践していくこと。
これがプログラミング言語自体を習得する近道です。
最強の勉強法は「アウトプットをすること」だと考えていますが「アウトプット→フィードバック→修正→アウトプット→・・・・」を繰り返すことで身に付いてくるものです。
プログラミングにはエラーがつきもので、黒い画面に「ここ間違ってますよ」と教えてくれます。参考書で文法を追っているだけではエラーに出会う回数も少なく、なかなか身になりませんしエラーが出た時のストレス耐性も身に付きません。
だから、どんどん自分がやりたい目的に応じてプログラムを組んでみるのが一番良い勉強法です。
こちらにPythonで作ってみたツールを紹介しています。
Twitter➡@t_kun_kamakiri
Instagram➡kamakiri1225
youtube➡https://www.youtube.com/channel/UCbG6_Q9ZRqqVT6YZOpcjDlQ
ブログ➡宇宙に入ったカマキリ(物理ブログ)
ココナラ➡物理の質問サポートサービス
コミュニティ➡製造業ブロガー