生産性向上のいろは

## 生産性の向上
『 生産性の向上 』字面を見ると崇高なテーマのように思えますが、実際のところ、そうでもないし、そうでもあります。例えば、ショートカットキーを全く知らない人が［ Ctrl + C | V ］（コピー | ペースト）を覚えたとしましょう。開発者の方々にとっては「いろはのい」にもならないような単純なものですが、その効果は馬鹿にできません。この例は最も「そうでもない」生産性の向上と呼べるでしょう。では崇高なものとは何でしょうか。最近のトレンドで言えば「 AI による自動化 」は間違いなく入ってくるでしょう。個人的には植物工場なんかもすごいなー（小並感）なんて思ったりします。


## 可否
では「そうでもない」スキルは「ＡＩ」などの輝かしいツールと比べて矮小なものでしょうか？　これに関しては全開発者を代表して自身を持って断言できます。

「全くもってそうではありません」

そもそも個人的な意見として、（ＰＣを使った仕事を生業とする人にとって）生産性を上げる最も近道となる技術は「ショートカットキー（キーバインド）」を覚える（身につける）ことだと思っています。何よりも素晴らしきは様々なシーンで活用できることでしょう。得てして崇高なツールは専門性の高いものになっています。ＡＩ然り、開発者ツール然り。とあるスペシャリストの人にとって非常に有用なソフトであっても、別のスペシャリストの人にはなんの価値のない、なんてものはいくらでもあります。一方ショートカットキーを代表する、ＰＣ操作の一般的なスキルはあらゆるソフト、ＯＳ間で共有できます。例えば絵書きの人が画像をコピーするのと、開発者の人がコードをコピーするのは同じ [ Ctrl + C ] を使うことができます（ ※例外はあります。念の為 ）。更に私は普段 Mac をメインに仕事をし、時々LinuxとWindowsを使用しますが、[ command c | v | x | a | p | a | s | f ] や [ tab | space | shift tab | option tab ] などの基本的なキー操作は使い回すことができます（Linuxはコマンドラインなのでわかりません！）。

この、技術・知識を流用できるということは、非常にコストパフォーマンスの高いスキルになります。「Ａ」を覚えて「ａ」でしかつかない技術と「Ｂ」を覚えて「ｂ・ｃ・ｄ」でも使える！　学習コストも変わらない！　と、なれば前者を優先させる人間はいないでしょう。ショートカットキーを代表するＰＣ操作の基礎は当然ながら「Ｂ」に該当します。

「どうせ大した効果もないんじゃ、、」なんて思う人もいるかと思いますがそれは間違いです。ショートカットキーや正規表現、コマンドラインツールにVim、Emacsまで使いこなせるようになれば、それらを使わない人との作業速度は雲泥の差になるでしょう。もちろん全てを習熟するには相応の時間がかかりますが「ＡＩ」導入に数百万かけるものと比べれば安いものでしょう。

>
要は慣れなのでみんな今すぐマウスを引っこ抜いてコマンドラインだけで仕事をしてみよう！（おい

閑話休題。
では専門的なソフトなんて導入しないでＰＣ操作だけを学べばよいのでしょうか？
もちろん、それも違います。
意地の悪いサブテーマですが、これらのスキルに可否はありません。

前述の通り、ショートカットキーは「ＰＣ操作の基礎」です。様々な便利なツールはそれらの基礎の上に成り立っています。専門性に特化したツールは非常に有用なものです。ただ、それらのツールの運用も基礎的な技術に依存することだけ、心に留めていただければと思います。

>
「よくわからないけど、ＡＩを導入して作業の自動化を！
　とりあえず、生産管理ツールを買って作業の効率化を！　予算ウン千万でえええええい！」
なんて言ってる会社の役員の右クリック使用率を集計したい。
その予算で社員のＰＣのスペック上げたほうがよっぽど生産性上がるんじゃい！　Win10のメモリ４Gで仕事はできませーーーん！
そもそもその一千万のソフト、うちのＰＣじゃ動きませーーーん！
そんな与太話がどこかの世界線ではあったりなかったり、、
もしそんな会社があったら役員をEJECTするのが一番生産性の、、、、（あっ）



## 取捨選択
知識はあればあるほど生産性の向上につながると、私は考えています。ですが残念なことに人間のストレージには限界があります。例えばエクセルを見てみましょう。エクセルには便利な関数が沢山あります。これらを全て理解し、十全に使うことができれば、さぞかし作業効率が上がることは間違い有りません。
では、エクセルの関数一覧を見てみましょう。エクセルを開いて「ホーム（リボン）」の中の「オートSUM」→「その他の関数」を選択すると表示できます。
はい。膨大な数の関数が表示されたのが確認できたかと思います。

次に「SIN」関数を見てみましょう。説明文には「SIN（数値）　角度のサインを返します。」と表示されています。サインというのは三角関数のサイン・コサイン・タンジェントの中のサインに当たります。学生時代に勉強しましたが、多分、確かに、そこはかとなく便利なものです。ですが私の開発歴の中で使用したことはありません。いつ使えばいいのかもよくわかりません。あくまで予想ですが、世界のエクセラー（エクセル使い）の中でもこの関数を使用している人はあまり多くないのではないでしょうか。

これらのように、エクセルには特定の業務にのみ特化した関数が多く存在します。個人的な意見としまして、それら全てをきちんと理解しておくことは何かのマイナスになることはありませんがプラスに成ることも多くはないだろうというのが私の意見です。少なからずエクセルを日常使いし、関数やVBAなども使用するようであれば、ざっくりと目を通す程度に止め、必要だと感じたときに見返す程度で十分ではないかと思います。

ちなみに「プラスに成ることも多くはない」書きましたが、大いにプラスに成ることはあります。例えば「VLOOKUP」関数です。ある程度アルゴリズムを理解した開発者ですと、エクセルに詳しくなくてもIF関数やCOUNT関数を使って「VLOOKUP」関数と同等の結果を導くことはできると思いますが（適当）、それらは「VLOOKUP」関数を使用したほうが圧倒的に早く、正確にできるでしょう。そういった意味合いで、一通りの関数に目を通しておくのは有用な作業とも言えます。（WEBでエクセルのメジャーな関数を調べたほうが早い気がしますが、、、）

また、エクセルの関数を例にしましたが、同様のことは前項で上げた「ショートカットキー」にも言えます。
私はエクセルを使うとき[ Ctrl 1 ]（セルの書式設定）[ Ctrl F1 ]（リボンの表示非表示）などのショートカットキーを使用しますが、これらはエクセル特有のショートカットキーに該当すると思われます。同様に様々なソフトが様々な特有のショートカットキーをもっていますが、それらを覚える必要があるかどうか、それは使用頻度と相談するのが一番でしょう。

最後に一点注意なのがバージョンの差異です。エクセルの関数は随時新しい便利な関数が追加されています。
例えばIF関数には複数の条件に合致する場合のIFSという関数があります。
これを使えば通常IF（ELSE　IF（ELSE　IF（ELSE　IF、、）と書かなければならない場面でIFS（条件１，条件２、条件３、、、）と続けて表記することができます。これは作成する面でも管理する面でも非常に便利な関数ですが、バージョンによっては使うことができません。使えないだけなら問題ないのですが、使えるから使って作ったファイルを客先に送付し、客先のバージョンが対応していない場合、その関数は機能しません。客先からクレームが来ます。

このように新しい知識にばかり飛びついていても思わぬところに落とし穴があるのがIT業界ですので、技術の取捨選択にはくれぐれも注意していただければと思います。

>
エクセルの独自ショートカットは謎なの多い。「Ctrl + *：連続範囲選択」とか。いずれかの値の入力があるセルを選択してる状態で「Ctrl + a」を押すと同じ「連続範囲選択」になってその状態、もしくは隣接セルに値がない状態で「Ctrl + a」を押すと全範囲選択になるっていうめちゃくちゃ気持ち悪い仕様。まあ、基本的に「Ctrl + a」が上位互換だから「Ctrl + *」なんて気にしなくていいんだけど、VBAとかマクロ処理の「連続範囲選択」を確認するときが「Ctrl + a」じゃなくて「Ctrl + *」じゃなくちゃできなかったような？（ちょっとうる覚え）とりあえず、エクセルは変態！



## 必要な投資
これまで「ＰＣの操作」や「エクセルの関数」等、基礎的なもの、誰もが知っているようなメジャーなソフトを例に説明をしてまいりましたが、有料ソフトについても触れたいと思います。まず結論から言いますと。

私は無料のソフトと有料のソフト、同様の機能を実装しているソフトがあれば有料のソフトを選択します。
（もちろんよくよく調べた上で評価が著しく悪いもの、悪質なものには手を出しませんが）

理由の一つに安全性があげられます。WEB上には無数の無料ソフトが存在しますが、私個人としては、それらをDLし、PC（特に仕事用の）にインストールするのは少し怖いです。もしかしたら悪質なソフトウェアの可能性もあります。メジャーなソフトであっても、チェックボックスを外さないと不要な機能をインストールされたり、データを収集していたり等々、様々な危険があります。その点、ソフトウェアの売上を生計としている会社の有料ソフトは安心できます。
（※有料ソフトであっても危険なソフトはあります、、）

次点は保守性でしょうか。なにかトラブルがあったとき、使い方がわからないとき、サポートを受けられるか受けられないかは大きな違いです。（ケースバイケースですが、開発業務で一番時間がかかるのはトラブル（障害）対応なので、、）また前項でも上げましたが、製作者側に悪意がなくてもソフトの機能を悪用されてしまうことがあります。そういった場合でも有料ソフトの場合はアップデートにて改修されることが期待できます。（あくまで期待）

生産性との関連性が薄いようにも思われますが、リスクマネジメントは生産性を意識する前に考えなければならない業務です。

さて、生産性に付きまして、あくまで私がこれまで購入したソフトと無料のソフトを比較した場合に限りますが、圧倒的に生産性は向上しています。

例えばFTPソフトですが、こちらは無料のソフトでめちゃくちゃ有名なソフトがあります。私も個人で何か作業をするときはよく使っていました。流石は有名なソフト。シンプルなものですが、特に苦労することもなく作業できていました。が、大量のファイルをUDLしようとすると途中で落ちるんですよね、、、。なんとかなる量の時は手作業で分割して何回かに分けてUDLしたりしていましたが、ワードプレスで挫折しました。あやつフォルダ数多いし、サブディレクトリまでびっしりあるし、その中に無数にファイルあるしで手作業とか無理、無理、ｍｒ、、、ってことで有料ソフトを試しに入れてみました。（確か５０００円くらい）どうせ落ちるんだろうなぁって思いながら見守ってましたが、びっくりするくらいあっさり終わるんですよね、、、。

まあ、それだけの話しですが！
でも、これだけでも結構価値はでかいと思います。
それまでは「無料でできることに５０００円も出すなんて意味わからん！」って感じでしたが、今では「５０００円も出せないの？　君の一時間いくらなの？」くらいには進化（悪化？）しています。

>
そんくらいシェル書いて解決しろや！　って意見はご勘弁ください。それを言える貴方はウィザード級です。
特に書かなかったけど機器の投資は最重要案件です。１，２マンのスペックの差で悩むよりサクッとハイスペックPC買って「もととるぜー！」って方がモチベ上がると思うんだけどどうなんだろ。



## Alfred（有料版）
さて、だいたい言いたい話はし終わったのだけど、折角なので有料ソフトを使用した自分の生産性向上方法を紹介したいと思います。有料ソフトは色々買ってるけど一番テーマと合致するのが「Alfred」っぽいので修羅の道ですが（Alfredの紹介記事多すぎるんよ、、ネタかぶったらすみません、全ての記事は追えません）簡単に紹介します！

まずは「Alfred」とはになりますが、Macでは非常に有名なソフトでして（ジャンルとしては「ランチャーソフト」になるのかな？）　起動コマンドを入力するとコマンドラインが出てきて、文字を入力することでアプリ検索、フォルダ検索、Web検索、辞書検索、計算、アプリ連動検索等々（1Pass連動便利☆）、簡単に言ってしまうとMacで言うSpotlightの強化版、Windowsで言う「Win + R」の強化版、になります。

因みにいま説明したものは無料板の機能になります。
課金するとどうなるかといいますと、「Alfred」無料版の強化版になる！　ではありません。別の最凶機能がいくつかついて来ます。普通に「え？　君ランチャーソフトだったんやないん？」「お前はやりすぎた」ってなります。（まじ）

その中でも個人的ナンバーワンの機能「スニペット」を紹介します。
（以下、対コーダーメインの記事となります）


### スニペット
スニペットとは、、、ややこしいので実例で紹介しますね。
私は開発に「VSCode」を使用し、主に「vue」を使用して開発をしていますがvueファイルを開いてエディタに「v」と入力すると入力ラインのすぐ下にいくつか候補が出てきます。
![スクリーンショット 2020-12-02 17.03.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306737/a4896abc-7977-235c-b2db-d4138c641f9e.png)

ここでvBtnを選択すると下記のようにエディタに入力されます。
![スクリーンショット 2020-12-02 17.04.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306737/bb9151df-2ce4-83be-79bc-09b280c1a2fe.png)

スニペット、正確にはコードスニペット、スニペットという言葉には断片という意味があるらしいので「コードの断片」という意味になります。今回の場合「vBtn」という文字列が「コードの断片」であり、それを選択すると「実際のコード」がエディタに入力される、こういった機能のことをスニペットと言います。因みに今回説明した「vBtn」はVSCodeにデフォルトで付いている機能ではなく、Extensionで追加したVuetifyのスニペットになります。

因みに、スニペット機能はコーディングにおいて必要不可欠です。少なくとも自分なら「なきゃ開発できない（絶対にしたくない）」まであります。今回は短い文章ですが長いコードもスニペットにできますし、そこから値を変更する変数部分も設定できます。スニペットは「知っている」ものを使うときも便利だけど「これなんだっけな」ってものにも使えるのが非常に便利。特に「プロパティ」！　今回の「v-btn」で言うと、横幅一杯のボタンを設置したいけどプロパティなんだっけ？　って時にvBtnを入力すると、vBtnの下にvBtnBlockが出てます。（１枚目の画像）（このBlockがvBtnの横幅いっぱいプロパティに該当）こんな感じで、うる覚えの状態でも「ああこれだー」ってなれるのでスニペットはマスト！


### 無料スニペットツール（Alfred導入前）
VSCodeのスニペットは非常に便利です。ただ、当然ながらVSCodeでしか使えません。それに加えてExtensionで追加されるスニペットの量が半端ないので、独自スニペットを作る際に命名規則に悩みます。（重複しないようにするにはどうしてもスニペットが長くなってしまう）そこで私は他のアプリケーションでも共通で使えるスニペットツールを導入しました。ソフト名は伏せますが、キーバインド（特定の文字列を入力すると着火して）登録していたコードが入力される、というものでした。
（自分の場合は「;;tmp」と打つと、テンプレートコードが挿入される、といったもの）

しばらくは頑張って使っていたのですが、いくつかネックになる部分があり、、、一つはスニペット使用時にUIが出ないことでした。キーバインド方式でのスニペットツールはほぼ共通するかと思いますが、「特定の文字を打つと自動でコードが出る」仕様のため、「その文字列を打つまで」候補も中身も閲覧できません。これが非常に分かりづらい。いくつもスニペットを作成すると、昔自分が何を作成したのか忘れてしまいます。もちろん、アプリを開けば確認できますが、スニペット打つたびに毎度毎度アプリを開いて探すくらいなら別途エディタソフトで管理するか、手打ちの方がよっぽど早い。となるとメジャーなものしか使用しなくなる、かつ特定の文字列を常に覚えてなきゃいけないという何ともマゾシステムでした。更に言うと特定の文字列で着火してしまうということは「特定の文字列＋α」を設定できないわけで、先程上げた「vBtn」で着火するスニペットがあると「vBtnBlock」が設定できないのです。これも命名規則上TOOOOOO BAD！！　そして最悪なのがVSCode ＋ Vimとの相性でした。キーバインドで着火して入力されるのですが、なぜかさきっちょか、最後のコードのどこかが切れてしまうというバグを疑うような仕様、、、（悪口だらけや（笑））

とは言え、便利な部分もあったので使ってはいたのですが、Alfredに課金してから一瞬で消え去りました。


### Alfred スニペット 機能
さて、だいぶ溜めましたが、Alfredのスニペットツールは無料版の全ての不都合を解決してくれました。そしてさらなる利便性をもたらしてくれました。まず１つ言わせてください。

「スニペットの検索機能！　めっちゃ優秀なんじゃ！！！」

これほんと、スニペットの概念壊されました。自分の中で「スニペット：キーワードを記憶してそのキーワードを打つもの」という認識があったのですが、一番大変な「キーワードを覚える必要」がなくなりました。

Alfredはショートカットキーで入力欄が出てくる仕様のため、その他多くのスニペットツールで制限される「連続した文字列」という仕様から開放されるんですね。自分の「vue」グループ内を見ていただければよく分かると思います。
（左がキーワード、右がコード）
![スクリーンショット 2020-12-03 10.30.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306737/4c521468-41dc-2b0d-1455-92acf769a763.png)

上の部分、「vBottomNav」から数行は「従来のスニペットツールの呪縛から脱却できなかった名残」です。下の方は見事に脱却して「snippet」従来の意味（断片）ではなく文章「short sentence」でスニペットを設定しています。スニペット機能なのにスニペットじゃない？　これいかに。（Keywordという従来のスニペットのようなショートコードを設定できますが、使う理由が見当たりません。本当にめっちゃ使うごく一部に付け加える程度かな）

肝心な検索機能に関しては非常にスムーズです。グループ分け、グループ内検索、複数キーワード検索等々、Alfredスニペットにしてから、こういうスニペット作ったよな・・・？　が、みつからなかったことが「一度も」有りません。まあ、そもそもが「Spotlight」や「Win R」の強化版ソフトのシステムがベースとなっているため、検索しづらいわけがないんですよね。（本文（コード内）検索は有りません（困ったことないけど念の為））


### 活用範囲の拡大
検索ができるだけってたいしたことないじゃん。それ美味しいの？　って、意見もあるかと思いますが、全くもって違います。スニペットは元々便利なものなのですが、「キーワード（スニペット）」を覚えなきゃいけないことが、ネックだったのです。あやふやな記憶でも正確なコードを引っ張って来れるので気になったものを片っ端から何でも登録していけるのです。

その用途はコーディングに限られません。特に利便性を感じているのは設定ファイルです。「Vue」を始めとした「javascript」のフロントエンド界隈は環境構築の難解さがよく話題に上がります。そもそも設定ファイルが多すぎます。「VSCodeの設定」「webpackの設定」「Babelの設定」「ESLintの設定」「Prettirの設定」「Vimの設定」「Laravelの設定（バックエンド）」「zshの設定」「bashの設定（zshのPCとbashのPCがあるんです、、）」「Gitの、、、、、」もういいや、とりあえず、めっちゃあります！　そして大体難解です。（特にwebpack、、）当然ながら、こんなものいちいちやってられません。特に複数プロジェクト、複数環境でやるって人は無理ですね、、、。あのプロジェクトのあの設定、どこでやったんだっけ？　どれをいじればいいんだ？？　ってのが、一つの設定ファイルだけで完結しないんですよね、、、。

てことで、自分は設定ファイルの内容をスニペットに登録しています。もちろん全てを使い回せるわけではないですが、利便性の高いと感じたものは随時追加して、必要のないものはコメントアウトする形で運用すれば、過去のプロジェクトを漁ったりするのの数十倍効率的です。特に最近は会社、自宅含めPCの世代交代が頻繁にあったので非常に助かりました。

>
記事上げるくらいならWebpackちゃんと勉強しろ！　って意見はご勘弁ください。まだフロンエンド歴長くないのです、、（１年半）Webpack関連は余裕ができたら、Vue-Cliとか使わずに環境構築してみて学習しようかと思っています。


MacならBrewとBrew Cascadeコード残しとけば環境移行楽チンでできます！
なんたってAlfredの有料版にはSync機能があるので！！

VSCodeの移行だって楽々できます。いちいちGitに入って、色々あれこれやって、Extension入れて、設定してようやく移行だーなんて有りません。Extensionのリストと設定ファイルさえあれば瞬殺です。


### 更に拡大
前項で書いたようにフロントエンドの環境構築は難解です。何回も言います（おい）。特に初学者は環境構築で躓くことが多いのではないでしょうか。私もWeb動画の講座や色んなサイトを見て学習してきましたが、あの時のあの設定（npm | yarn コマンド）は何だったっけ？　どのLint使ってた？　とかとかよく有りました。コマンドラインのコマンドとか忘れちゃうんですよね。かと言ってもう一回見直すのもな、、、。動画見ながらノートでも作れればいいけどそんな器用でもないしって場合の簡易メモなどとしても使えるんじゃないかなと睨んでおります。私はそういう用途ではBearを使っていますが（おい）


### Review
色々な用途で活用できるAlfred スニペットですが、もちろん、本来の機能はコードスニペットです。登録する時はとりあえずメモっとく程度の感覚でいいと思いますが、「再利用することが前提」であることだけは念頭に入れていおいてください。
例えば昨日記事を書きながら開発中になんとなく追加したスニペットです。
（表（Table）内を入力された値で特定のカラムのみ、検索をかける処理）

```js:
    view: function() {
      if (!this.search) return this.list;
      const s = this.search.toUpperCase();
      const nullCheck = data => (!!data ? String(data).toUpperCase() : ' ');
      return this.list.filter(row => {
        const mCode = nullCheck(row.model_code).indexOf(s) >= 0;
        const oCode = nullCheck(row.order_code).indexOf(s) >= 0;
        const iId = nullCheck(row.item_id).indexOf(s) >= 0;
        const iCode = nullCheck(row.item_code).indexOf(s) >= 0;
        const ioCode = nullCheck(row.item_order_code).indexOf(s) >= 0;
        const iModel = nullCheck(row.item_model).indexOf(s) >= 0;
        const iName = nullCheck(row.item_name).indexOf(s) >= 0;
        const uName = nullCheck(row.user_name).indexOf(s) >= 0;
        const flg = nullCheck(row.flg).indexOf(s) >= 0;
        if (
          mCode ||
          oCode ||
          iId ||
          iCode ||
          ioCode ||
          iModel ||
          iName ||
          uName ||
          flg
        ) {
          return row;
        }
      });
    }
```

はい、もうパット見でひどいですね。filter内の定数部が各カラム、そのフラグに合致しますが、単純に列挙しているダメダメコードです。（カラム一個なら別にいいし！　後からカラムが増えただけだし！　そもそも再利用予定なんて考えずに作ってたし！）
個人的には登録（記録しておく行為自体）大事だと思っているのでこのままスニペットに登録してもいいですが、少なくとも再利用時には少し改善したいところです。

```js:
    view: function() {
      if (!this.search) return this.list;
      const search = this.search.toUpperCase();
      const str = data => (!!data ? String(data).toUpperCase() : '');
      const check = value => str(value).indexOf(search) >= 0;
      const cols = [
        'model_code',
        'order_code',
        'item_id',
        'item_code',
        'item_order_code',
        'item_model',
        'item_name',
        'user_name',
        'flg'
      ];
      return this.list.filter(row => {
        for (let col of cols) {
          if (check(row[col])) return row;
        }
      });
    }
```

カラムを配列化してループで処理することで少しスッキリしました。カラムも見やすいですね。
けれどこれではカラムの再利用ができません。「特定カラム」へ処理をしたいという状況ではフィルタリング以外でも色々な用途が考えられます。例えば検索に合致したカラムの文字色を変える等。そういった場合、この状態では他の処理でカラムリストを使用できません。まあ、そもそも再利用可能な関数に特定の文字列（しかも配列）が入っている事自体ダメダメなんですけど（笑）

```js:
    searchCols: () => [
      'model_code',
      'order_code',
      'item_id',
      'item_code',
      'item_order_code',
      'item_model',
      'item_name',
      'user_name',
      'flg'
    ],
    view: function() {
      if (!this.search) return this.list;
      const search = this.search.toUpperCase();
      const str = data => (!!data ? String(data).toUpperCase() : '');
      const check = value => str(value).indexOf(search) >= 0;
      return this.list.filter(row => {
        for (let col of this.searchCols) {
          if (check(row[col])) return row;
        }
      });
    }
```

てことで外だし版です。searchColsは正直入れても入れなくてもって感じですね。「誰かが」使う前提なら間違いなく入れませんが、個人用のものなので、忘備録的な用途で入れています。
因みに、こちらはVueのComputedという処理内の関数になりますが、Computed内のメソッドは通常、引数を取れません。もし引数を取るような関数であれば、引数としてColsを指定するのが絶対正義だと思います。（念の為）（更に言えばサーチとリストもね）


## いろは
さて、長々と書いてしまいました。最後まで読んでいただきましてありがとうございます。やや、ネタ的な記述も多かったので、鼻に触った方がおりましたら申し訳有りませんでした。こちらにて謝意とさせていただければと存じます。

また、主テーマ「生産性の向上」とそぐわないように感じる内容もあったかもしれませんが、「私はそうはおもいません」。何か現状を改善しようとする行為、その全てが、結果として「生産性の向上につながる」と思っています。特に今回は「いろは歌のいろは」と題しまして初歩的なこと、基礎的な部分をメインに話をしてまいりました。最初にも触れましたが、「初歩的なスキル＞専門的なツール」と言うわけでは有りません。どちらもとても大事です。と、いいますか、そもそも私は生産管理ツールの制作で飯食っているので意味がなければ私が逝きます。

>
まあ、残念な話し、予算の関係で初歩的なスキル・ツールへの投資が難しいってのはあるんだよな。
「AI導入で作業効率化を！」って言うのと「ショートカットキー勉強して作業効率化を！」って言うのじゃバエが違うよね。
「本当に効果あるのか？」って聞かれたときも新聞やニュースになるような実績があるものと、
自分みたいな人間が「Vimのキー操作エロい」とか言うんじゃ雲泥の差があります。
まず稟議は通りません。
とはいえ、そもそも一般企業の一般的なスキルアップ教育程度では変態コーダーにはなれません。
どうやっても個人で努力するシーンが必要になります。
頑張りましょう。
会社が購入したソフトは会社のものですが得たスキルは自分のものです。
ゲームと同じ、スキルは武器です。みんなで大量の武器をもった変態になりましょう！
私はまだまだ変態途上の身ですがこれからも変態へ向かって邁進してまいります。（最後まで失礼しました）

Good Coding! Good Work! Enjoy Life!