プログラミングを覚えてきたら次に何をすればいいですか?
コマンドライン(CUI)を勉強しておくと後の学習がとても楽ですよ!
コマンド、、?↓↘️→+Pみたいなやつですか??
それストリートファイター2の波動拳のコマンドだにゃ。
こんにちは!あっきーです!
本日はプログラミングと一緒に絶対に覚えておいた方がいいコマンドライン(CUI)について説明しようと思います。
コマンドラインというのは簡単に言うとWindowsやMacなどのOSの動作をキーボード入力で操作することを言います。
デスクトップアプリの起動やファイルのコピーなど普段はマウスでカチカチクリックしてやっている作業を黒い画面上で行うあれです。
これは実際に僕がプログラミングの「プ」の字もわからず、初心者から独学で勉強を初めたときに肌身で感じ、やっておけばよかったと後悔した自戒の念も込めてます。
なのでこれからプログラミングの学習を始める人たちがそんな後悔しないようにこれを機にぜひ取り組んでいただけたらと思います!
CUIとGUIの違い
CUIはキャラクターユーザーインターフェースの略称です。
キーボードからコマンドを入力し、文字列として結果を出力する動作のことを指します。
GUIはグラフィカルユーザーインターフェースの略称です。
マウスやタッチパッドなどのデバイスを用いて、画面上で視覚的にアイコンをクリックしたりする動作のことを指します。
なんか難しく聞こえてしまったかもしれないですね、、、
要するに、いつもの Windows とか Mac OS のデスクトップでカチカチやることがGUIでコマンドプロンプトやターミナルの黒い画面でカタカタするあれがCUIです。
GUIではなくCUIを学ぼう!
CUIの操作をできなくてもなんとかなると思っていませんでしたか?
実はそれ、、、
まったくの勘違いです!
プログラミングを行う際に必ず使います。
環境構築やサーバー構築など用途はさまざまです。
例えばこの記事ではPHPフレームワークLaravelの環境構築をする記事なのですが、全部コマンドラインで構築しています。
また、最近では JavaScript などの人気のフロント言語も React.js などのフレームワークを使いサーバーと連携させたりします。フロンド言語やサーバサイド言語は関係なく今後はプログラムをする人は必ず必要になるでしょう。
実は僕も割と最近React.jsでHello world!の出力で合計6時間くらいハマってました。笑
おっさんが進行形でReact.jsのHello worldで1時間以上ハマってるお話は需要ありますか?笑
— あっきー (@IwswAkht) 2018年10月15日
人にとやかく言える立場じゃないにゃん
このようにプログラミングは勉強する順序を間違えてしまうと習得の難易度が極端に上がってしまいあとで苦労することが多くなります。
GUIに慣れるとあとで困ること
GUIにばかり慣れてしまうと以下のようなデメリットがあります。
作業効率が悪くなる
たとえばあるディレクトリでxxxから始まるファイルをすべて探すという処理を行うとします。
10個くらいのファイルでしたらひとつずつ見ていってもそんなに大差はないかと思います。
ですが、もし50個、100個、はたまた1000個あったとしたらどうですか?黙ってそっと電源を落としたくなりますね。
CUIでしたら以下のコマンドで一発で対象のファイルを見つけることが可能です。
ターミナル
1 |
$ ls xxx* |
これだけでOKです。
こっちの方が確認漏れのリスクも防げますし楽ですよね!
GUI操作に詳しくてもあまり意味がない
GUIはあくまでパーツです。
GUI操作の裏ではCUIの処理が動いています。
これはあまり本質的ではないですし基礎知識を伸ばすという点においてはあまりおすすめではないです。
それにGUIの進化は早く、やっと操作に慣れてもすぐにインターフェースが変わることは多々あります。反してCUIの操作なら一度身につけてしまえば使えなくなるということはありません。
プログラムの連携が難しくなる
たとえばxxxというファイルからabcという文字列検索し、順番に並び替えるという処理で考えてみましょう。
GUIでやるとなると結構めんどくさくないですか?この手の処理はプログラムで書くのが圧倒的に楽なのですがGUIはプログラム間での連携が大変苦手です。
CUIでしたら以下のコマンドで実現可能です。
ターミナル
1 |
$ grep "abc" xxx.txt | sort |
これだけでOKです。
このようにCUIは小さなプログラムをパーツとしてとらえて組み合わせるのに非常に優れています。
処理の自動化ができない
CUIは処理をファイルに書いて実行させることもできます。
コマンドを記入したファイルを再利用することで、定型的な繰り返しの作業を早く正確に実行することができます。
例えば、ファイルを複数コピーして作成するという処理。
GUIで行うとするとその都度に手動でコピペ作業を行うことになります。
どんなにクリックが早い人でもCUIで自動化された操作には勝てないでしょう。
高○名人でもさすがにお手上げです。
技術系の記事が読めない
CUIがわからないと、実は 技術系の記事が読めなくなります!
プログラマーはCUIでの操作を好む人がいっぱいです。
なので、技術的な記事もCUIがいっぱいです。特にLinuxがいっぱいです。
記事を読んだ時に魔術書のような謎の言葉の羅列がでてきたらその時点で諦めてしまいますよね。
そうなると技術的な記事が読めない可能性がぐっと高まります。
それは同時に技術の習得が遅くなることと同義だと思います。
さいごに
ずらずらと書きましたが、CUIでの操作についての重要性は少しでも伝わったでしょうか?
効率よく技術を習得していくためにもぜひ勉強してみてください!特にLinux系の知識は必須事項ですのでこれを機にぜひ!
この記事を気に入っていただけましたらTwitterでもプログラミングやブログに関してのツイートをリアルタイムでしていますので
ご一緒にフォローもお願いします。