初心者プログラマは基本動作だけで年間66時間以上も損しているかも?

  • 04 December 2021
Post image

 プログラミングの学習って何からスタートするべきと思う?Javaとかで、変数とかforとかifとか?そんなもんは後からでいいんだよ。何から手を付けるべきかというと、プログラミング作業時の将来の時間コストを削減することだ!
 プログラミングってのは、実装を頭のなかでイメージして、そのイメージを具現化するためにググったり資料読んだりする作業が大半だ。もちろんこの「頭の中でイメージ」ってのが難しいことなんだけど、加えてキーボードをカタカタしたり、マウスをぶんぶん揺らすことも含まれるんだ。

 つまりプログラミングは主に以下の時間コストでなされる。

  1. イメージしたり設計したりする時間
  2. 実装のために調べる時間
  3. PCを操作する時間

 圧倒的に1.や2.の時間がかかることが多いのだが、経験や知識に大きく左右される。ところが初心者にとっては3.も実は結構なコストがかかっているし、これに関しては簡単に改善できることなので、一番初めからある程度意識して改善しておくべきだ。

ちんたらちんたらしてると意外と多くの時間を失う

 WEB開発を例に考えてみる。今まで人にプログラムを教えてきたので知っているが、超初心者の動作は以下のような操作になる。

  1. エディタで何かカタカタ
  2. ブラウザ(Chrome)を開くためにマウスゆらして矢印カーソルを認識
    •  認識力が低い奴はここで2秒以上かかる
  3. 下部のメニューバーのChromeのアイコンをめがけて矢印を移動
    •  メニューにChromeが開かれていない場合は、わざわざWindowsアイコンをクリックしてChromeのアイコンを探してマウスをコロコロ(macの場合はメニューのアイコンをクリック)
    •  たまにマスクのクリック位置をミスって別のアプリを起動してしまう
  4. ブラウザで何か調べて同様のもっさり動作でエディタに戻る

 これはエディタとブラウザの切り替えの例だが、初心者はこの一往復で5秒以上かかるんだよね。そしてWEBエンジニア(特にフロント)の場合この動作は1日に100回くらいすると思うんだよ。他にもChromeのInspectorを開くとか、ターミナルアプリを開くとか、ブラウザの更新・タブ移動など、何気にないPCの動作をめちゃくちゃたくさんしていることに気付くはずだ。

 初心者が1日にこれらの動作を1分に1回、約500回行うとして、動作のすべてを平均2秒動作のスピードを早められたらどう?
500回 × 2秒 × 20日 ≒ 5.5時間(一か月で)
5.55時間 × 12か月 ≒ 66.66時間(一年で)

 初心者のPCさばきでは、一か月で5.5時間、一年で66時間もムダにしてるってこと。しかもこれはPCの基本操作のみの話ね。エディタ内の操作やVimを使うとかそういうテクニックは考慮せずで、これほどの時間を損しているかもしれないのだ。
 当然操作の効率性は追求しだしたらキリがないのだが、初心者の諸君にとってはまずはじめに改善するべき操作はたくさんあるってこと。

まずはじめに覚えるべきPC基本コマンド

 あらゆる効率的操作方法を書くことはできない。それぞれの環境によってまちまちなこともあるからだ。ひとまずはほぼすべてのエンジニアが操作しそうな動作を書いてみる。(エディタの操作は含まない)また、下記よりももっと効率的な操作があるかもしれないが、あくまで初心者向けなので、各自さらなる効率性を追求してほしい。

アプリケーションの移動

 前述の例のように、エディタとChromeを移動するときのショートカット。

alt 押しながら tab

一回押すと直前に開いていたアプリに移動できるのでワンタッチで切り替え可能

command 押しながら tab

一回押すと直前に開いていたアプリに移動できるのでワンタッチで切り替え可能


または

command 押しながら スペース でspotlightを起動

頭文字を入力して目的のアプリを起動。spotlightは様々な動作に応用できる

アプリケーションの起動

 まだ起動していないアプリを起動するとき。

Windows 押してから 頭文字入力 enter

例えば"vscode"を起動する場合、私の環境では「v」「s」「c」で出てくる

command 押しながら スペース で 頭文字入力 enter

例えば"chrome"を起動する場合、「c」「h」で出てくる

WindowsボタンやMacのspotlightはユーザーの動作から学習して候補を出しているので、諸君の環境によって何を入力すれば目的のアプリが出てくるか異なる。

Chromeのショートカット

 chromeのショートカットは最低限以下は絶対に暗記して使用するべきだ。

新しいタブ
ctrlt
タブを閉じる
ctrlw
タブを次へ移動
ctrltab
新しいウィンドウ
ctrln
新しいシークレットウィンドウ
ctrlshiftn
インスペクター起動
ctrlshifti
リロード
ctrlr
キャッシュクリアリロード
ctrlshiftr
新しいタブ
commandt
タブを閉じる
commandw
タブを次へ移動
commandtab
新しいウィンドウ
commandn
新しいシークレットウィンドウ
commandshiftn
インスペクター起動
commandoptioni
リロード
commandr
キャッシュクリアリロード
commandshiftr

その他基本操作

 以下は書くまでもないような基本コマンドだけど、一応書いておく。ほとんどのアプリで同じ動作になるので、みんな知っているコマンドだ。

コピー
ctrlc
ペースト
ctrlv
カット
ctrlx
全選択
ctrla
保存
ctrls
検索
ctrlf
コピー
commandc
ペースト
commandv
カット
commandx
全選択
commanda
保存
commands
検索
commandf

将来の何十時間もの非生産的な時間を節約できる

 上記の基本操作はほんの一部である。しかしあなたは最低限これらを必ず身につけなければいけない。おめでとう!初心者の君にとっては、これからの一年で66時間のも時間を他のことに充てられるね。

 他にももし自分の動作でなんかもたつく動作があると気付いたときには、その動作にショートカットが存在するか調べる癖を付けたほうがいい。そうして次々と操作のスピードアップを図ることで将来の時間を何十時間も節約できると考えると非常にお得だ。しかも私の経験上、人はキーボードとマウスを行き来したり、マウス操作を誤るときにストレスを感じているように思う。だがキーコマンドの多くは操作を誤っても取り消すのが簡単で、しかもキーボードとマウスの行き来が減るため手の動きが抑えられストレスが軽減されるのだ。

 本当に基礎の基礎だが、これから中級者以上のプログラマーになる人は、膨大な無駄な時間を回避できるうえに、操作のストレスを軽減できる。私はこんな大切なことを初期の初期で学びたかった。おそらく初めの二年くらいはそのことを知らずに(考えもせずに)やってたんだ。少なくとも上記のコマンドだけは絶対にやってくれ。できるだけマウスを遠ざけておくことだ!

You May Also Like

誰でも短期間でプログラマになれる

誰でも短期間でプログラマになれる

 まず私について。これまで長くシステム業界で働き、現在もシステム会社経営しながらプレーヤーとしても活躍してします。子供のころの趣味のプログラミングも合わせると17年以上パソコンカタカタを続けているので、この知識や経験を共有したいと考えてサイトを開設しました。 また、私はWEB開発、イ …

WindowsでもMacのUS配列キーボードが最強なわけ

WindowsでもMacのUS配列キーボードが最強なわけ

 コードを書く人間なら、キーボードにこだわりたくなるものだ。ノートPCをメインにしている場合はキーボードを変えることは難しいが、それでもJIS配列かUS配列など一度は考えたことがあるはずだ。 このサイトで何度も書いている通り、プログラミングのほとんどは試行錯誤の繰り返しで作り上げてい …