プログラミング学習の始め方
プログラミング学習について色々調べた、
使うプログラミング言語も決まった。
そろそろ、実際に取り組んでみよう、となったときに
意外と教材と学習法が多い
ということに気が付きます。
- どんな教材を使えば良いの?
- どうやって学習を進めて行けばいいのか?
と疑問に思う人は少なくありません。
今日は、
- お金をかけずに学ぶ方法として、Go言語
- お金をかけて学ぶ方法として、Rust
を使って具体的な学習例を紹介します。
これからPythonを無料で学びたい、と思っている人はGo言語をPythonと置き換えて考えてみてください。
お金をかけつつ、JavaScriptを学びたい人は、RustをJavaScriptと読み替えれば大丈夫です。
なるべく、
この学習法には、暗黙の前提 / 知識がかなり必要なのでは、、、
という状況を避けて説明しています。
プログラミングを学び始めるときに、
こんな方法もあるのか
と、参考になる部分があると思います。
無料編:Go
まずは、無料でプログラミング学習を始める場合です。
ここでは、具体的にGo言語を使う場合で説明します。
流れは、
- インターネットでその言語の背景知識をざっと確認
- 公式のチュートリアルが良さそうであれば、取り組む
- YouTube動画で教材を選び、取り組む
- 作りたいものを決める
- 作る
という5ステップです。
背景知識の確認
1つ目の背景知識をざっと確認では、
Googleで「Qiita Go 初心者」
と検索すると、初学者の参考になる日本語情報が見つかります。
「Reddit Go Beginners」と検索すると英語情報が見つかります。
ここで見つかった、Go言語初学者が見るべき情報をたどっていきます。
このステップでの目的は、
- 何となくGo言語の特徴を知る
- Go言語を使ったプログラミングで重要そうなワードを一度見ておく
という2つです。
全く事前情報がない中で、いきなりその言語でプログラミングしていくことに比べて、ざっくりとでもその言語の特徴やキーワードを知っていると、次のステップ以降、色々なことの難易度が下がります。
そうすると、Go言語は、
- 2009年に登場したのか。比較的新しいプログラミング言語なのだな
- Googleが開発を進めているのか
- 今はよくわからないけど、ゴールーチン goroutinesというのが重要そう
などが少しずつわかってきます。
この段階では、この位にして、次のステップに移行します。
公式サイト、チュートリアルに取り組む
公式サイトを見てみる。そして良さそうなチュートリアルがあったら取り組んでみる
ということです。
Go言語の公式サイトからは、
することができます。
ここを順番にこなすと、ある程度Go言語の感覚が分かって来ると思います。
YouTube動画教材に取り組む
3つ目は、
YouTubeで教材となる動画を探して、取り組む
です。
YouTubeで「Go言語」や「Golang」と検索するといくつもの初学者向けコースが無料で公開されていることが確認できます。
その中から、自分が取り組みやすそうな動画を選んで、視聴しつつ、実際に自分でプログラミングコードを書いて実行してみます。
この段階では、自分でオリジナルのコードを書くというよりは、動画で説明されていることを理解しつつ、それをそのまま自分でコードを書いて実行できる、というところまでで問題ないと思います。
作りたいものを決める
4つ目は、
作りたいものを決める
です。
ここから先は、さらに他の人のコードを自分で書き写して、同じように動かしてみる、というより、自分で作りたいものを作っていくフェーズです。
まず何か、Go言語で作るものを決めます。
何も思い浮かばない場合は、Googleで、「Go言語 作れるもの」や「golang app for beginners」などで検索すると、面白そうなものがたくさん出てきます。それらを参考に、作るものを決定します。
ポイントは、
- 自分で本当に作りたいもの
- 簡単なもの
を両方満たしたものがあると、それがベストです。作りたいものであればモチベーションが続きます。簡単なものであれば、途中で止めにくくなるからです。
作る
5つ目、最後は、
自分で作ると決めたものを作る
という段階です。
実際に作り始めると
- あれ?どう書くんだっけ
- うまく動かない
- エラーが出る
- 自分の持っている知識で、どう書けば効率が良いのか
など、疑問がたくさん出てきます。
疑問やエラーは基本的には、1つずつ解消していくという地道な作業になります。
これまで記事で紹介してきたような、
- インターネットでの検索力を駆使して、必要知識を集めてくる
- インターネットのQ&Aサイトを活用
- 周囲の人に質問する
という方法で乗り切ります。
本当に、行き詰ったら、特にこの無料編の学習法では、
作るものを柔軟に変更する
ことも重要だと思います。
まずは一度自分で作り上げてみる
というプロセスを経験すると、より自分のプログラミング学習に自信を持ち、
学習を続けていけるようになります。
有料編:Rust
次は、有料でプログラミング学習を始める場合です。
今回は、Rustを使って説明します。
- インターネット、書籍 / 雑誌でその言語の背景知識をざっと確認
- 公式のチュートリアルが良さそうであれば、取り組む
- YouTubeやUdemyで教材を選び、取り組む
- 作りたいものを決める
- 作る
基本的な流れは、無料編と同じです。
無料編との主な違いは、
- インプットのための教材に、書籍 / 雑誌、Udemyが候補として加わる
- メンターに質問する、アドバイスをもらう
です。
順番に説明していきます。
背景知識の確認
1つ目の背景知識を確認では、インターネットの情報に加えて、入門書や雑誌を1冊買って、軽く読んでみるのも有効です。
ここでの目的は、無料編と同じで、
- 広く浅くRustの特徴を知る
- Rustを使ったプログラミングのキーワードや重要そうな概念を一度見ておく
です。
入門書に加えて雑誌が候補なのは、Rustのような比較的新しいプログラミング言語の場合は、雑誌で特集を組まれることが多いからです。
実際に、
- 『Software Design 2020年6月号 入門!Rust』
- 『Interface 2020年5月号 C/C++後継モダン言語の研究』
などでRustが取り上げられています。
このフェーズでは、
- Rustのキャッチフレーズは、”A language empowering everyone to build reliable and efficient software.”「効率的で信頼できるソフトウェアを誰もがつくれる言語」である
- バグをコンパイルの時に見つけやすい
- 高速でメモリ効率が高いらしい
- C++と比較されることが多い。Go言語ともよく比較されている
- 他のプログラミング言語に比べると学習コストは高そうだ
といったことが分かります。
公式サイト、チュートリアルに取り組む
2つ目の公式ページの確認とチュートリアルへの取り組みは、無料編と同じです。
Rustの公式サイトには、
などがあります。「Rustを学ぶ」には初学者に役立つ情報がまとまっています。Playgroundでは、実際にWeb上でRustのコードを試験的に走らせることができます。
YouTubeやUdemyの動画教材に取り組む
3つ目の、動画教材の選択では、無料のYouTube動画に加えて、
Udemyの動画教材
が候補になります。
Udemyは、買い切り型の有料コンテンツが充実している、学習コースのプラットフォームです。サブスクリプション型の支払いとは違い、基本的には最初に支払いを済ませれば、その後毎月支払いが発生するということはありません。
1つの学習コースあたり数千円から数万円という定価が多いのですが、大幅なディスカウントが結構頻繁にあり、実質1つあたり1000円台で購入できることが多い印象です。
そんな、書籍を買う感覚で購入できるUdemyの学習コースですが、プログラミング学習という面から見ると良い教材が多いと思います。
講師に質問できることも多く、有料編での学習教材ではUdemyは有力候補です。
(Progateやドットインストールに、学習しているプログラミング言語のコースがある場合は、それらを使うのもお勧めです。2020年12月時点で、Go言語はともに対応、Rustはともに非対応です。)
作りたいものを決める
4つ目の作りたいものを決める、は基本的に無料編と同じです。ただし、次に述べるメンターの活用、が選択肢にあるため、作りたいものを決める条件の
- 本当に作りたいもの
- 簡単なもの
のうち後者、作るのが簡単そうか、はあまり気にしなくても良いかもしれません。
作る
5つ目、
自分が作りたいものを実際に作る
ここのフェーズでの違いが、無料編と有料編で一番大きいと考えています。
それは、
有料で、質問や相談することができ、アドバイスをもらえるメンターを活用できる
ためです。
具体的には、
- プログラミングスクールで講師に質問
- スキルシェアサービスでメンターを探して、質問
などの方法があります。
今では、プログラミングスクールはたくさんありますので、
スクールを使う場合は、自分が学習してきたプログラミング言語に対応できる講師がいるか
という点を確認すれば良いかと思います。
スキルシェアサービスは、
などです。
様々な知識 / スキルを持った人のサービスを活用できます。
これらのスキルシェアサービスを利用して、
Rustの質問や相談ができる人はいるか
ということを探していくという流れです。
スキルシェアでは料金は、幅が広いので、
自分のメンターにふさわしい人が、適切な料金でサービスを出していたら、活用する候補になります。
すでに詳しい人に、
- 疑問点を深く聞く
- 相談する
というのは、適度に使っていけば、効率の良い学習法だと思います。
特に、Go言語やRustのように比較的新しいプログラミング言語の場合、Webで情報が簡単には見つからないことも想定できるので、すでに知見を持っている人に聞くことができると、よりスムーズに学習を進められるかもしれません。
このように、有料編では、
無料編と学習の大きな流れは変わらないものの、
無料編に加えて、
- インプットのための教材の幅が広がる
- メンターに質問、相談する、アドバイスをもらう
というオプションができます。
今までにプログラミング言語を使ったことがない場合:環境構築
初めてプログラミングに取り組む際は、
環境構築
に注意する必要があります。
環境構築とは、簡単に言うと
自分のパソコンでプログラミングできるような環境を整えること
です。
環境構築ってそんなに大変なことなの?
という声が聞こえてきそうですが、意外とそうなんです。
自分で一からパソコンでプログラミングできる環境を整えようと準備を進めると、
- Webや講師の説明画面と、自分の画面に表示されている内容が違って、よくわからない
- プログラミングを始める前に、環境構築できずに諦めそう
ということがよく起こります。
これは、
- WindowsやmacOSといったOSの違い
- プログラミングをサポートするソフトウェアの違い
- それらOSやソフトウェアのバージョンの違い
などによるものです。
この環境構築の壁を越える方法は大きく分けて2つあります。
- 環境構築が必要ない方法でプログラミングを始める
- 構築できる環境で進める
です。
環境構築なしでプログラミングを始める
1つ目は、
環境構築なしで、Web上でプログラミングコードを書いて実行させることができるサービスを利用する方法です。
Progateは、その一例です。
自分のパソコンにプログラミング環境を一から構築しなくても、Webでプログラミングを体験できます。
Progate以外にも、同様のサービスはたくさんありますので、Googleで
「環境構築 不要 プログラミング」
といった形で検索してみてください。
さらにGo言語やRustのように、公式サイトから、Playground(Web上でプログラミングコードを書いて実行させる)を直接体験できることがあります。
できる範囲で環境構築する
2つ目は、
できる範囲で自分のパソコンに環境を構築する、という方法です。
プログラミングをサポートするソフトウェアは、統合開発環境、IDE (Integrated Development Environment)と呼ばれます。
このIDEに多くの種類があるため、初学者を混乱させます。
できる範囲で環境構築を試す、
という観点からは、
- Visual Studio Code(Visual Studio)を選ぶ
- 取り組んでいる教材(動画、Webページなど)で説明されているIDEと同じものを使う
- 詳しい人に、環境構築を手伝ってもらう
という方法があります。
Visual Studio Codeを選ぶ
Visual Studio Codeは使用人口が多いため、
- 不明点をWebで調べる
- 自分で調べつつエラーを解消する
ということに取り組みやすいです。
取り組んでいる教材で、IDEの説明がない、という場合は、Visual Studio Codeを一度使ってみることをお勧めします。
正確には、Visual Studio Codeはエディタで、IDEではありません。IDEには、Visual Studioが対応します。プログラミング学習において、プログラミングをサポートするツールとして高機能エディタのVisual Studio Codeを使用することでIDEの代替とするというケースがあります。学習が進んできて、より多機能の開発環境が必要になった際には、Visual Studioの使用が視野に入ってくると思います。
教材で説明されているIDEと同じものを使う
自分が取り組んでいる、動画、Web、書籍などの教材で示されているIDEについて、とりあえず一度環境構築を試すという方法も良いと思います。
特に、動画の教材では、講師の説明画面と、自分のパソコンの作業画面が似たような形になるので、プログラミング言語そのものに集中しやすくなります。
環境構築を手伝ってもらう
そして、わからないところは人に聞くという選択肢もあります。
この際に、実際に自分のパソコンの画面を見せつつ、疑問点や不明点を質問できるとよりスムーズに環境構築が進みます。
プログラミング言語そのものと違って、環境構築の段階では、学習者一人ひとりのパソコンの状態(OSやその他の設定状況)が重要だからです。
教える人も、質問者のパソコンの状態をすぐに確認できると、アドバイスが的確になります。
結果的に、学習者は問題を解消しやすくなります。
環境構築に取り組む順番
以上から、
- とりあえず自分で環境構築してみる(環境としては、Visual Studio Codeか、教材で示されているもの)
- 不明点は、知っている人に聞く
- それでも環境構築が難しい場合は、公式サイトやWeb上でプログラミングできるサービス / Playgroundを探す
という流れがいいのではないかと思います。
とりあえず始めてみれば何とかなることも多い
プログラミング学習は、
始めてみると、どうすればいいか分からないという場面が意外とあります。
それでも、今日紹介した方法で、1つずつ進めていき、
- 分からないところは、Googleで検索
- 知ってそうな人に聞く
ということを繰り返していくと、プログラミング学習は続けていけるはずです。
続けていけば、意外とどうにかできることも多いです。
自分で作りたいものを、作り上げることができた時には、
プログラミングは強力なツールだ
ということを実感できると思います。
自分で選んだプログラミング言語で、着実に学習を進めていきましょう!
コメント