これからの時代、プログラミングはできておくに越したことはありません。
特に人工知能(AI)・機械学習関連のスキルは研究において使えて当たり前の時代になると思います。
機械学習の研究自体は遅かれ早かれ飽和する時代を一旦は迎えると思いますので、今後は「ツールとして」機械学習を使いこなせるようになる必要があります。
機械学習のみならずプログラミングスキル全般を身につけることは、研究の幅を広げたり、日々の業務の作業効率化を図ったり、または副業としてお小遣いを稼ぐために非常に有益です。
そして比較的時間を自由に使える大学院生・若手研究者のうちに学ぶことをお勧めします。
この記事では主に工学系研究の視点からお勧めのプログラミング初学者の学び方をまとめさせていただきます。
初めにどの言語を学ぶべきか
色々な説があると思いますが、まず初めに学ぶ言語としてお勧めするのは「C言語」です。
世の中的には「C言語は挫折するだけで難しいからやめとけ!」「最初はC言語じゃなくてWeb系言語を学べ!」と言われております。「C言語 挫折」などを検索するとたくさん記事が出てきます。
プログラミング未経験の人たちは、このような情報を見て「C言語はやめといた方がいいらしいぞ」という先入観を持つ方も多いことでしょう。
ただあえて私がC言語をお勧め理由は下記の通りです。
- プログラミングにおける必要な要素を網羅的に学べる
- 他の主要言語の習得にステップアップしやすい
上記の点に関してもう少し掘り下げます。
プログラミングにおける必要な要素を網羅的に学べる
プログラミング言語は大きく「手続き型言語」と「オブジェクト指向言語」に分けられます。
C言語は「手続き型言語」と呼ばれる分類に属します。
「手続き型言語」は上から順番に処理が行われるため、初心者にはプログラムを作りやすく動きも追いやすい特徴があります。
最初にプログラミングを学習する方は、まず「順番に処理が動く」という感覚を最初に身に付けることが技術向上への近道です。
そのため、手続き型言語の代表である「C言語」は全てのプログラミング言語の基礎となると言っても過言ではありません。
最近、世の中で使われている主要な言語は「オブジェクト指向言語」に分類されます。
そのため、昨今は最初に学ぶ言語として「Python」「Ruby」「JavaScript」などを選択されることが多くなっています。
「オブジェクト指向言語」は、上から順に処理していく「手書き型言語」だと複雑かつ膨大になってしまうプログラムを、よりシンプルかつ効率的に作ることができるようにしようという目的で作られました。詳しくはこちらの記事などを参照してください。
なのでC言語を学び終えた後にオブジェクト指向言語を学ぶと、その利便性やプログラム全体の構造がより把握しやすくなり、自分の目的に合わせて応用が利くようになります。
そしてC言語を一通り学べば、下記のような習得しておくべきプログラミング基本要素を網羅的に学習できます。
- 変数・定数
- 演算子
- 分岐
- 反復
- 関数
- 配列
- 構造体(一部の言語ではサポートしていない)
- ポインタ(昨今の言語では隠蔽しているが、実はこっそり使われている)
これはどんな言語においても共通して必須となる知識になります。
ポインタに関しては初学者には理解し難いトピックだと思いますが、これからプログラミングを使って研究・仕事をするのであればせめて概要だけでも掴むことをお勧めします。
他の主要言語の習得にステップアップしやすい
現在よく利用される「C++」「Java」「C#」といった主要言語は、C言語から派生していった言語です。
実際に学んでみるとわかりますが、変数定義・型・分岐・反復・関数といった基本的な構文はC言語とほとんど変わりません。
AI・機械学習でよく用いられる「Python」も基本的な書き方は一緒です。
つまり、C言語を学習した後であれば、新しい言語を身に付ける際に大幅なショートカットが可能となります。
今はPythonの需要が急速に高まっておりますが、数年後にはまた違う言語が流行り始めるかもしれません。
ですので、時代の流れに上手く乗れるように、多少習得の難易度が高くても基礎となるC言語を学んでおくことが、長い目で見ると非常に大事になってくるのではないかと思います。
AI・機械学習を活用して研究の幅を広げよう
深層学習(Deep Learning)の発展を皮切りに、昨今AIを使った研究開発が盛んに行われております。
いつまでAIが覇権をとる時代が続くのかは分かりませんが、少なくともこの10年間くらいはAIの活用方法を世界中で模索するのではないでしょうか。
機械学習をはじめとするAIを使った研究自体は目新しいものではなく、割とみんなやってるなあという感じになっております。
なので機械学習をツールとして使ってご自身の研究の幅を広げられないかということをまずは考えてみても良いかと思います。
「AI・機械学習って難しそう」という先入観でやめてしまうのはとても勿体無いです。
「蓄積したデータをもとに何かを予測・判別したい」という研究課題に対してAI・機械学習は何かしら役に立てると思います。
AI・機械学習をやるなら「Python」の習得が必須になります。
Pythonはユーザーが多いこともあり、さまざまな書籍やWebから多くの良質な情報を得ることができます。またC言語を学習してあとであれば、一瞬でPythonは使えるようになります。
研究にも役に立ち副業でも稼げるスキル
研究者は専門性の高いスキルを持っているものの、残念ながらそれに見合う給料はなかなかもらえていないのが現実です。
特にアカデミアの若手期間(30代)は企業勤めと比べると薄給なことが多い一方、結婚・出産などお金のかかるライフイベントが続く時期でもあります。
昨今働き方の多様性が受容されつつあり、研究者が副業で稼ぐこともできる時代になりつつあります。
研究者が薄給だと嘆いていてもあまり現状は変わらないので、与えられた環境でお金を稼ぐしかありません。
プログラミングができれば、空き時間や土日を使って副業ができるようになります。
副業サイトで有名な「ココナラ」や「ランサーズ」を調べると実装作業の代行や機械学習、データ分析・統計処理、プログラミング環境構築支援、事務作業の自動化・効率化などの案件が高単価(3000円/時)で見受けられます。
特にデータ分析・統計処理は多くの研究者が学ぶスキルではないでしょうか。意外と研究で使っているスキルがそのまま副業に使えたりします。
データ分析・統計処理は機械学習にも密接に関連しているので、もし少しでも研究や副業に使う予定があるのであれば一度は統計学を体系的に学ぶことをお勧めします!
プログラミング学習方法
繰り返しになりますが、「C言語」→「Python等のオブジェクト指向言語」の順で習得されることをお勧めします。
もし大学・大学院に在籍されているのであれば、まずは大学の授業を取ることをお勧めします。講師の質は当たり外れあるかもしれませんが、追加でお金がかからないので(笑)
授業が受けれられない人は以下の方法で独学するしかないと思います。
- ウェブの記事:無料
- 書籍:1,000〜3,000円
- オンラインビデオコース:1,000円〜30,000円程度
- プログラミングスクール:200,000円〜
結論としては、お金を払えば効率的に学ぶことができます(笑)
ウェブの記事
無料で学べるウェブ記事も有料なものはたくさんあると思います。C言語・Pythonで私がお勧めする入門サイトを2つ紹介させて頂きます。
C言語入門
Python入門
書籍
ただ書籍の方が読みやすいようにちゃんと編集されているので理解しやすいの事実です。練習問題も付属していることが多いので習熟度のチェックもしやすいです。
数千円払うことができるのであれば、一冊くらいは書籍を買ってもいいと思います。
C言語
Python
オンラインビデオコース
お金に余裕があり、時間のない人はオンラインビデオコースを受講するのも良いと思います。
コーディングしながら解説してくれるので非常に流れを理解しやすいです。
有名どころだとUdemyやドットインストールですね。
Udemy
受講する時はキャンペーンの時が良いと思います。受講料は90%OFFになるので。
ドットインストール
こちらは一部無料になっております。現在はC言語は無料のようです。
プログラミングスクール
とてもお金がかかるのであまりお勧めはできませんが、プログラミングスクールという選択もあります。
オンラインビデオコースだとわからない点があっても自力で解決する必要があります。プログラミングスクールのメリットとしては実際にコーディングしててぶつかったエラーなどを質問できるところがメリットですね。
最短時間で基礎学習を終えたいのであればプログラミングスクールはいいかもしれませんが、20万円を払える余裕がないと厳しいです。。。
その後の副業で回収するという熱意があれば良いのかもしれません。
興味のある方はとりあえずTechAcademy [テックアカデミー]などの無料体験を一回受講してみても良いかもしれませんね。
書籍でもプログラミングスクールでも同じですが、ここで培われるのはあくまで基礎的な力です。
野球に例えると素振りのやり方を教わった状態です。
なのであとは研究なり副業なりを通じて実務経験を積むことが何よりも重要です。
いつまでも素振りしてても打てる日は来ませんので。
これからの時代、プログラミングができると色々な可能性が拓けると思います。
長い目で見て、大学院生、若手研究者のうちに集中して身につけることをお勧めします。
研究者が副業以外でお金を稼ぐ方法も紹介しているので、よかったらご覧ください。
コメント