第一回では、「そもそも『Linuxを学ぶ』とは」についてお話ししました。Linuxは、コマンド(命令文)で操作することも多いので、難しく見えるけれど、実際にやっていることは、Windowsなら右クリックでコピー&ペーストを選んだり、ドラッグ&ドロップをすることと同じでしたね。
しかし、ここで考えて欲しいのは、果たして「Linuxで、ファイルのコピーをできたら、それはスキルと呼べるのか?」ということなのです。
- そもそも「Linuxを学ぶ」って何?
- コマンドを学ぶだけで終わる?終わらない?
- Linuxを学びたい!でもどうやって?
コマンドを学ぶと「スキル」になるか?
「Linuxのコマンドを打てるようになったら、それはスキルと呼べるようになるのか?」の答えは、「呼べる」です。 コマンド操作は、慣れてしまえば、簡単なのですが、そもそも「多くの人は、簡単であることを知らない」のです。身につけようとする人が少ないジャンルなので、スキルと呼べるかどうかと問われれば、「呼べる」が答えです。
ただし、これで「仕事が受注できるかどうか」は、また別の話です。できるかできないかで言えば、「プロジェクトと、担当業務による」といったところでしょうか。
コマンド操作ができるだけでも、シンプルなサーバーの保守には、大きな戦力です。また、プログラマや、小さいプロジェクトのPM・SEなどは、「専門外なのに、サーバーを操作しなければならない事態」に遭遇することもあるでしょう。そうした人は、積極的に身につけるべきです。
なので、「サーバーの専門家」としては、極めて初歩的なスキルであっても、小さいプロジェクトや、サブスキルとしては、十分有効です。
コマンドの先を学ぶなら、何からはじめる?
では、サーバーの専門家なら、Linuxにおいて、何を知るべきでしょうか。
サーバーの専門家になりたいのであれば、少なくとも、Linuxの構造や、サーバーの構築方法を知らねばなりません。特に最初の一歩としては、「サーバー用ソフトウェアの設定」を知ることが必須でしょう。
「Linuxのコマンドを学ぶ」ことでできるのは、ファイルの操作や、ユーザーの作成、ファイルの書き換えなどです。これだけでは、サーバーの構築はできません。なぜなら、サーバーとは、前回でも解説した通り、「何かサービスを提供(Serve)する」という役割を指す言葉だからです。実際に「何かの役割を果たす機能」を持たせなければなりません。
その機能は、Apache ®、NGINX ®(どちらもウェブサーバー用ソフトウェア)などのソフトウェアを入れて動かすことで、提供されますが、それだけでは不十分です。それぞれのプロジェクトに応じた設定が必須です。そのままで動かなくもないですが、パイナップルを丸ごと食べる人はいないように、通常は専用の設定をすることが前提だと思ってください。
ですから、それぞれのソフトウェアについてよく知るとともに、Linuxについてもよく理解し、設定ファイルを書けるだけの知識と技術が必要です。
「『Linuxを学ぶ』のに、ソフトウェアも知らなくちゃいけないのか」と思われるかもしれませんが、WindowsやMacでも、ファイルのコピーだけでは、あまり大きな仕事とは言えないでしょう。WordやExcelが使えてようやく「パソコン使えますよ」と名乗る人が多いのではないでしょうか。
Linuxでも同じです。ソフトウェアが設定できることは、サーバー屋さんには、初歩の技術なのです。
WindowsやMacだって「学ぶ」べき?
また、ソフトウェアを開発する場合、知っておくべき重要なことは、「Linuxの仕組み・セキュリティ」です。
前回のお話で、「WindowsやMacを学ぶ人は少ない」と書きましたが、それはあくまで操作方法に限った話です。たしかに、マウス(トラックパッド)での操作は、グラフィカルで横から見ていても身につく人は身につきます。
しかし、Windowsや、Macで動くソフトウェアを開発する人は、それだけでは不十分です。WindowsやMacも、本来なら学ぶべきことなのです。Windowsの中がどうなっているのか、どんな仕組みになっているのかを理解しないで、ソフトウェアは作れません。
Linuxだけが、なんだか特殊なような気がしてしまいますが、そうではなく、「OS(オペレーティングシステム)」であることは、WindowsもMacも同じなのですから、マウスを使ったグラフィカルな画面での操作は、どのOSでも簡単に身につきますし、コマンドでの操作はどのOSも練習が必要です。
そして、そのOSの上で動くソフトウェアを開発したいなら、仕組みについて深く理解せねばなりません。
Linuxは、「コマンドでの操作が多く、ソフトウェアを開発することが多い」だけなのです。
ニャゴロウ先生のまとめ
そろそろ「Linuxを学ぶ」の正体は見えてきたでしょうか。 Linuxにおいて「自分は」「何を」学ぶべきなのかをはっきりさせると、ターゲットが定まってくるはずです。コマンド操作を覚えたい人も居れば、仕組みやセキュリティを知った方がよい人も居るでしょう。
場合によっては、ざっくり概要だけわかればよい人だって居るはずです。
エンジニアは忙しいのです。なんでもかんでも学ぶ時間はありません。興味があるならば追求することは良いことですが、そうでないなら、まずは自分周りの知識から埋めていきましょう。
- そもそも「Linuxを学ぶ」って何?
- コマンドを学ぶだけで終わる?終わらない?
- Linuxを学びたい!でもどうやって?