新刊ピックアップ

一生モノのLinuxスキルを身に付けよう!

この記事を読むのに必要な時間:およそ 2 分

プログラミング学習において,PythonかJavaかPHPか,などという多少の違いはあれど,ほとんどの方がいちばん最初に学ぶのは,プログラミング言語でしょう。そして,さらにプログラミング学習を進めていくと,プログラミング言語を知っているだけでは,ソフトウェア開発ができないことに気づくと思います。ソフトウェア開発において,プログラミング言語は身につけておくべきものの一つでしかなく,他にも身につけるべきスキルがいくつかあるのです。そのうちの代表格が,Linuxのスキルです。

Linuxは,OS(Operating System)の一つです。代表的なOSとしては,パソコンであればWindowsやmacOS,スマートフォンであればiOSやAndroidなどがあります。

なぜLinuxを学ぶ必要があるのか?

なぜLinuxを学ぶ必要があるのでしょうか? その理由は,主に次の3つです。

  • サーバーに使われていることが多いから
  • コマンドでの操作が必要だから
  • OSについて知ることができるから

サーバーに使われていることが多いから

家庭用のパソコンのOSとしては,ほとんどの場合,WindowsやmacOSが使われていますが,企業が持つサーバー用コンピュータのOSとしては,Linuxが圧倒的なトップシェアになっています。

プログラミング言語で開発したソフトウェアは,サーバーに配置することで初めて,ユーザーが利用できるようになります図1⁠。ソフトウェアエンジニアであれば,Linuxが搭載されているサーバーを日常的に操作することになりますから,Linuxについてもよく知っておく必要があります。Windowsのパソコンを活用するには,WindowsというOSについて知っていなければいけないのと同じで,Linuxのサーバーを運用するには,LinuxというOSについて知っておく必要があるのです。

図1 サーバーに配置することで,ユーザーがソフトウェアを利用できるようになる

図1

コマンドでの操作が必要だから

家庭用のパソコンは,マウスで操作するのが基本ですが,Linuxのサーバーは「コマンド」と呼ばれる文字列で操作するのが基本です。ファイルの新規作成はtouchコマンド,ファイルの削除はrmコマンド,という感じで,実現したい操作に対応したコマンドを入力することで,コンピュータの操作を行います。例えば,ファイルの新規作成であれば,

$ touch newfile

というコマンドを実行しますし,ファイルの削除であれば,

$ rm newfile

というコマンドを実行します。

そのため,Linuxのサーバーを操作する上では,Linuxのコマンドについてあらかじめ知っておく必要があります。これは,Windowsのパソコンを使うために,ドラッグ&ドロップなどのマウス操作を覚える必要があるのと同じです。また,コマンドによる操作は,自動化のしやすさや,再利用性に優れるなどのメリットから,macOSなどのLinuxの環境以外でも使用されることが多いため,Linux以外の環境での開発にも役立ちます。

OSについて知ることができるから

Linuxを学ぶと,OSについても知ることができます。OSは,コンピュータを動作させる土台です。スマホやパソコンなどのコンピュータでは,Google Chromeのようなブラウザアプリや,LINEのようなチャットアプリなど,様々なアプリケーションが動いていますが,これらのアプリケーションはすべて,OSを土台として動作しています図2⁠。

図2 OSはアプリケーションの土台

図2

ソフトウェアエンジニアの仕事は,アプリケーションを開発することですから,アプリケーションの土台となっているOSについて知っておいた方が,より良い仕事ができるのは間違いありません。Linuxについて学ぶことは,OSの機能について学ぶということでもあるのです。

Linux学習のポイント

このように,Linuxは重要度の高い知識なので,適切な学習でしっかりと身につける必要があります。では,どのようにLinuxを学べば良いのでしょうか?私は,Linuxの学習を効率的にすすめるには,次の3つのことが重要だと考えています。

  • コマンドの背景知識も学ぶ
  • Linuxの概念や思想を理解する
  • 長期記憶に残す

コマンドの背景知識も学ぶ

Linuxの学習というと,たくさんのコマンドの暗記を想像する方も多いかも知れません。ですが現代では,単純にコマンドの機能を知るだけなら,Google検索やChatGPTのようなAIを使うことで,簡単に調べることができます。ですので,本当に役に立つ知識にするためには,単なるコマンドの暗記にとどまらず,その背景知識まで深く理解することがとても重要です。

例えば,あるコマンドを学ぶ上では,いつ使えるのか?類似のコマンドとの使い分けは?使用上の注意点は?といった,⁠そもそも」の話をセットで理解する必要があります。こういった「そもそも」の話こそが,簡単にコマンドを検索できる現代においては重要です。

Linuxの概念や思想を理解する

Linuxの学習で知るべきことは,コマンドだけではありません。Linuxの学習において,本当に重要なのは,Linuxについて深く理解することで,ソフトウェア開発における重要概念を学ぶことができる,ということにあります。例えば,パーミッションについて学べば,フールプルーフという設計における重要概念を知ることができますし,標準入出力について学べば,コンポーネントの依存についての理解が深まり,変更しやすいソフトウェアを設計する上で役立つでしょう。また,Linuxカーネルについて学ぶことで,抽象化という,ソフトウェアにおける,極めて重要な概念についても学ぶことができます。

Linuxを学ぶことで,ソフトウェア開発の重要な概念を学ぶことができ,その結果エンジニアとして大きく成長できるのです。コマンドの暗記に終始してしまう学習が,いかにもったいないかがわかるでしょう。

長期記憶に残す

Linuxコマンドは「超高コスパ」の知識です。Linuxコマンドは,ソフトウェア開発を行う上で,ほぼ毎日使用するだけでなく,この業界では珍しく,一度学んでしまえばとても長い間使える知識です。ソフトウェア開発業界は,ドッグイヤー(dog year)と呼ばれるほど変化の激しい業界ですが,Linuxコマンドの中には,40年以上前から使われているコマンドもあります。このことからも,Linuxコマンドの知識の,とんでもない寿命の長さがわかるのではないでしょうか。

そして,毎日使う上に,今後も長く使える知識ならば,長期記憶に焼き付けてしまうのがおすすめです。数年後には,使えなくなる知識であれば,付け焼き刃の知識でも良いかも知れませんが,今後数十年役立つ知識ならば,しっかりと記憶に残して,一生モノのスキルにしてしまった方が良いでしょう。

Linuxは一生モノのスキルだから

繰り返しますが,Linuxは一生モノのスキルです。一生モノのスキルだからこそ,

「Linuxの知識を,長期記憶に焼き付けて忘れないようにする」

そんな本を作りたくて,⁠ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!』という本を執筆しました。

本書では,覚えてしまったほうが効率がいい,実務における最頻出コマンドと,コマンド操作に関連する重要事項だけを集中的に学んでいきます。本書で紹介する厳選された内容を,しっかりと長期記憶に残すことで,Linux環境での生産性を高めることができるはずです。

そして,記憶に焼き付けて忘れないために,さまざまな工夫を凝らしました。

  1. コマンドやオプションの「由来」をできる限り解説
  2. 「暗記がいらなくなるレベル」の理解を目指した,とことん丁寧な解説
  3. 「200問」の演習問題で記憶にこびりつく

なお本書は,オンライン学習プラットフォームUdemyでベストセラーになった,私のLinuxの講座の内容をもとに,あらためて構成と執筆を行った書籍です。もとの講座の良さはそのままに,よりわかりやすく,身につけやすくなるように,内容の追加や解説の改善を行いました。

せっかく長く使える知識なら,なんとなく学んだだけの,付け焼刃の知識にしておくのではなく,長期記憶に焼き付けて一生モノのスキルを手に入れませんか?

著者プロフィール

ひらまつしょうたろう

教育活動をメインに行うソフトウェアエンジニア。京都大学農学部卒業。元塾講師のエンジニアとして,「本質・唯一・効率」をキーワードにプログラミング教育を行う。オンライン学習サービスUdemyの講座に「もう絶対に忘れないLinuxコマンド」などがあり,ベストセラー多数。
Blog https://hiramatsuu.com/
Twitter @hiramatsuu