最近では、Docker®やAWSなどのクラウドを使う機会が増え、インフラを構築する際に「Linuxは知らないけど、サーバーを立てられる」人を見かけるようになりました。そうした人達は、実際に動くものを触りながら、深く潜るようにして、Linuxを覚えていきます。
昔からやっているエンジニアからすると、順序が逆に感じられるため、この方法に疑問を持つ人も居ますが、学習とは、最終的に知識が身につけられるのであれば、どんなルートを通ってもよいものなのです。
- そもそも「Linuxを学ぶ」って何?
- コマンドを学ぶだけで終わる?終わらない?
- Linuxを学びたい!でもどうやって?
設計する人なのか、操作する人なのか、使う人なのか。
IT技術を学ぶ場合、どのジャンルでも大事な原則があります。それは、「自分が何者で」「何を学ぶのか」を明確にすることです。
たとえば、あなたが「家を建てることを学びたい」と思った時に、何を学んだらよいでしょうか。釘の打ち方でしょうか、家の設計でしょうか。それとも、土地の買い方でしょうか。不動産屋との交渉の仕方かもしれませんね。
そもそも「家を建てる」では、漠然としており、実際に手を動かす大工さんの話なのか、お金を出して建ててもらう側なのかもハッキリしません。お金を出して建ててもらう側の人が、釘の打ち方を習ったところで、趣味には活用できても、家を建ててもらうには知識が不十分です。逆もまたしかりで、すべてのことを知っているに越したことはないのですが、物事には優先順位があります。自分の立場に近い知識から攻略すべきです。
IT技術を学ぶ場合も、「自分がどの立場」で「何を学ぶのか」を、まずは考えてみましょう。
Linuxであれば、操作方法を知りたいのか、仕組みを知りたいのか。それによって、勉強方法が違います。
ハンズオンでの学習は、良いものですが、「なんでもかんでも手を動かせば理解できる。身につく」というのは、大きな勘違いです。コマンドをたくさん打ったとしても、多くの人が身につけられるのは、そのコマンドだけであって、仕組みやセキュリティはわからないままです。前回の例で言えば、「ファイルのコピー&ペーストが身についても、Excelは使えるようにならない」ということです。
逆に、仕組みばかり学んでも、Linuxでの操作をスムーズにやれるようにはなりません。こちらは何度も繰り返し、コマンドを打って練習して、自分の身につけなければなりません。Linuxの操作は、サーバーを直接触ることが多く、ちょっとしたミスが大きな事故につながることもあります。「慣れてなかったからミスっちゃった」では、済まないこともあるのです。
これは、仕組みと操作方法のどちらが偉いという話ではなく、「自分にとってどちらを優先して学ぶべきか考えてから勉強に取りかかって欲しい」のです。遠回りするのではなく、まずは近道を通ってから、世界を広げて欲しいのです。
Linuxのハンズオン、何を使うの?
仕組みを学ぶ場合は、書籍や動画、カンファレンスなど、どちらかというと座学が中心になるかと思います。しかし、Linuxでの操作を学ぶ場合は、実際に手を動かす必要があります。
繰り返しますが、Linuxは、OS(オペレーティングシステム)の一種です。つまり、Linuxの入ったマシンを用意しなければならないということです。Linuxのマシン!なんだか難しそうな感じがしますね。
とはいっても、最近では、手軽に用意できるようになっています。いくつか紹介しましょう。
1)仮想コンピューター(仮想マシン)を使う
仮想コンピューターとは、簡単にいうと、パソコンのなかに別のパソコンを仮想的に作る機能です。「VirtualBox(バーチャルボックス)」や「VMware(ブイエムウェア)」などの仮想化ソフトをインストールすることで作れます。
パソコンの中に、もう一台作るので、やや重くなることもありますが、いつも使っているパソコンの中でそのまま切り替えて使えますから、手軽です。
2)WSL2 を使う
「WSL2」は、マイクロソフト社が提供しているWindows用のLinux OSです。普段使っているWindowsのパソコンに、LinuxOSを入れられるという欲張りな仕組みです。本来なら、一つのマシンにOSを二つ入れるのはおかしいのですが、マイクロソフト社が対応してくれているので、可能なのです。
ただし、若干強引な方法なので、一部使用できないコマンドがあります。注意してください。
3)Dockerを使う/ AWSを使う
Dockerは、プログラムを隔離して実行できるソフトウェアです。AWSは、クラウド環境でサーバーなど一式をレンタルできるサービスです。
どちらも最近人気の技術ですが、Linuxの学習には、やや向きません。できないことが色々とあるからです。ただ絶対に反対かというと、そうでもないです。なぜなら、開発現場によっては、AWSやDockerがメインのプロジェクトもあり、それこそ「自分が何を必要としているか」という観点から見れば、「AWSやDockerで使う程度にLinuxがわかればいい」というケースもあるからです。
素のLinuxを操作することが少なく、AWSやDockerが前提であれば、そこから深掘りする方法がよいでしょう。
4)中古のパソコンを使う
「ゆるく学ぶサーバ入門」の連載でも書いたとおり、サーバー用のマシンは、特殊なものではありません。「サーバーに向いているマシン」はありますが、基本的な構成は、皆さんが使っているパソコンと同じです。ですから、普通のパソコンにLinuxを入れて、Linuxマシンにすることもできます。
もし、使ってない中古のWindowsパソコンがあれば、それに上書きするようにLinuxOSを入れます。難しそうに感じるかもしれませんが、そこまで難しいものではないので、おすすめです。
この方法なら、本番環境に近くなるのもメリットの一つでしょう。
ニャゴロウ先生のまとめ
学び方のお話をしましたが、とにもかくにも、向いている方法で勉強するのが一番です。
「こうでなければならない」というルールはありません。好きな方法で学びましょう。
ただ、一つ言うならば、学ぶ時に、モノマネする九官鳥のようにはならないでください。ハンズオンの勉強の時に、書籍の内容や、講師の言うことを、そのままトレースするだけの人が居ます。それではいけません。自分が何をやっているのかは、常に意識して進めてください。すべての手順が、書籍や動画で紹介されていないと、パニックになってしまう人も居ますが、まずは落ち着きましょう。よく考えれば、画面の内容が理解できるはずなので、自分の頭でしっかりと考えながら、ハンズオンを進めてください。
Linuxは、わかってしまうとシンプルで楽しいです。ぜひ、皆さんもLinuxに親しんでくださいね。
- そもそも「Linuxを学ぶ」って何?
- コマンドを学ぶだけで終わる?終わらない?
- Linuxを学びたい!でもどうやって?