遊びから垣間見る自身のスキル
起 まずは現状報告
ここ最近は久々にマイクラどっぷりなぱせりんさん。
マルチの鯖で植林場の管理・増設と村人の繁殖・輸送を主な仕事とする。
そこで垣間見た自身のスキルについてを思い返す個人的なエントリです。
承 垣間見た自身のスキル
コマンドプロンプトへの理解
「基礎中の基礎」とも言える事柄だけど、自分はもうコマンドを打つことに抵抗がない。
むしろGUIでガチャガチャするほうが億劫である。
でもコマンドを打つということは、ワンライナー無いしスクリプトを組んで一回で完結させる必要がある。
コマンドを打って「正しく処理されたか・何が原因で失敗したか」を理解していなければ、あの黒背景のウィンドウが恐怖の対象になるだろう。
スクリプトファイルへの理解
上記とも繋がるが、コマンドで複雑なことをしようとするとコマンドを複数叩く必要がある。
ワンライナーにするのもありだが、Winを普段使いしている自分としてもコマンドプロンプトを立ち上げて〜という作業は億劫である。
そのため、短いコマンドでも頻度が高いものについてはバッチファイル(LinuxやMacならshファイル)を作成し、それを叩くだけで終わりにしている。
こうすればコマンド構文の間違いによる失敗を防ぐこともできる。 もともとが間違っていたら元も子もないが
ネットワークへの理解
IPアドレスは内外で違い、これをするには内側のIPを使い、これをするには外側のIPを使い…と説明していた。ポート開放については多くを触れなかったが
頭の中ではルータの内外接続点(エンドポイントでいいのかな?)を考えながら話していたが、これを外に出さないように説明するというのも一つのスキルなのだろう。
転 これらのスキルは何に活かせるか?
プロンプト・スクリプトへの理解はLinuxへの強み?
Linuxのセットアップは基本的にコマンドベースである。
ミドルウェアのインストールからカーネルのアップデートなども、コマンドを叩けばすぐである。
AnsibleやChefと言った構成管理ツールを使うと言っても、中を開けば彼らも結局コマンドを立てているだけ。大きく出ればインストールスクリプトなのである。
Ansibleのメンテナーとして、自分の手を動かすことができるのかもしれない。
コマンド・ネットワークへの理解はサーバー管理への強み?
サーバー管理は基本的にLinuxで行っている。要件によってはWindows Serverもあるが
ネットワークの概念とコマンドへの理解があれば、サーバー管理者への道も開けるのではないだろうか?
専門用語を外に出さず話せることはSEへの強み?
プログラマは得てして難しい言葉や実装上のコード名で話したがるが、クライアントはぶっちゃけそんなの言われてもわかりはしない。わかりっこない。
それを抽象化して「こういうコードが必要です。」「こういった技術になっています」と説明できる力はほんとうの意味での「現場と営業を繋ぐシステムエンジニア」に必要なスキルかもしれない。
結 じゃあどうなりたいのか?
自分はスーパーマンにはなりたくない。
スキル的なスーパーマンにはなりたいけど、正直身体が持たない。建前上属人化の元であるし。
フルスタックエンジニアになろうとは思わないから、どこかに特化した変態的なエンジニアにはなりたい。
「◯◯の文句は俺に言え」と言えるくらいな特化力…でも無くていいけど、そうありたい。
今はiOS/Androidのアプリを作って振る舞っている。しかし、もっと面白いと感じられることが見つかった時には、そちらへ足を向けるのもありだろう。
まだなりたい形は決まってない。けど、今はアプリ開発者として生きていたいかなぁ、と。
余談
プログラマーとは、常に無駄を排除しようとする。
「1秒でも早く終わらせたい。1回でも少なくタイピングしたい。」
故に「億劫」「面倒」という言葉を多用する。
ワンボタンでできるように、ワンクリックで終わるように、最終的には自動化して…となっていく。
プログラマーとはとどのつまり、「究極的な面倒くさがり屋」なのだろう。
「面倒」という感情は-であり、それを消しても0までにしかならない。消すという行為は+なのだが
なにもないところから「便利」を生み出すことで、その評価は+となるだろう。
より良いものの上に、さらなる良いものを。プログラマーとは、かくありたいものだ。