誰でも短期間でプログラマになれる
まず私について。これまで長くシステム業界で働き、現在もシステム会社経営しながらプレーヤーとしても活躍してします。子供のころの趣味のプログラミングも合わせると17年以上パソコンカタカタを続けているので、この知識や経験を共有したいと考えてサイトを開設しました。 また、私はWEB開発、イ …
プログラミングの学習って何からスタートするべきと思う?Javaとかで、変数とかforとかifとか?そんなもんは後からでいいんだよ。何から手を付けるべきかというと、プログラミング作業時の将来の時間コストを削減することだ!
プログラミングってのは、実装を頭のなかでイメージして、そのイメージを具現化するためにググったり資料読んだりする作業が大半だ。もちろんこの「頭の中でイメージ」ってのが難しいことなんだけど、加えてキーボードをカタカタしたり、マウスをぶんぶん揺らすことも含まれるんだ。
つまりプログラミングは主に以下の時間コストでなされる。
圧倒的に1.や2.の時間がかかることが多いのだが、経験や知識に大きく左右される。ところが初心者にとっては3.も実は結構なコストがかかっているし、これに関しては簡単に改善できることなので、一番初めからある程度意識して改善しておくべきだ。
WEB開発を例に考えてみる。今まで人にプログラムを教えてきたので知っているが、超初心者の動作は以下のような操作になる。
これはエディタとブラウザの切り替えの例だが、初心者はこの一往復で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を使うとかそういうテクニックは考慮せずで、これほどの時間を損しているかもしれないのだ。
当然操作の効率性は追求しだしたらキリがないのだが、初心者の諸君にとってはまずはじめに改善するべき操作はたくさんあるってこと。
あらゆる効率的操作方法を書くことはできない。それぞれの環境によってまちまちなこともあるからだ。ひとまずはほぼすべてのエンジニアが操作しそうな動作を書いてみる。(エディタの操作は含まない)また、下記よりももっと効率的な操作があるかもしれないが、あくまで初心者向けなので、各自さらなる効率性を追求してほしい。
前述の例のように、エディタとChromeを移動するときのショートカット。
まだ起動していないアプリを起動するとき。
WindowsボタンやMacのspotlightはユーザーの動作から学習して候補を出しているので、諸君の環境によって何を入力すれば目的のアプリが出てくるか異なる。chromeのショートカットは最低限以下は絶対に暗記して使用するべきだ。
以下は書くまでもないような基本コマンドだけど、一応書いておく。ほとんどのアプリで同じ動作になるので、みんな知っているコマンドだ。
上記の基本操作はほんの一部である。しかしあなたは最低限これらを必ず身につけなければいけない。おめでとう!初心者の君にとっては、これからの一年で66時間のも時間を他のことに充てられるね。
他にももし自分の動作でなんかもたつく動作があると気付いたときには、その動作にショートカットが存在するか調べる癖を付けたほうがいい。そうして次々と操作のスピードアップを図ることで将来の時間を何十時間も節約できると考えると非常にお得だ。しかも私の経験上、人はキーボードとマウスを行き来したり、マウス操作を誤るときにストレスを感じているように思う。だがキーコマンドの多くは操作を誤っても取り消すのが簡単で、しかもキーボードとマウスの行き来が減るため手の動きが抑えられストレスが軽減されるのだ。
本当に基礎の基礎だが、これから中級者以上のプログラマーになる人は、膨大な無駄な時間を回避できるうえに、操作のストレスを軽減できる。私はこんな大切なことを初期の初期で学びたかった。おそらく初めの二年くらいはそのことを知らずに(考えもせずに)やってたんだ。少なくとも上記のコマンドだけは絶対にやってくれ。できるだけマウスを遠ざけておくことだ!
まず私について。これまで長くシステム業界で働き、現在もシステム会社経営しながらプレーヤーとしても活躍してします。子供のころの趣味のプログラミングも合わせると17年以上パソコンカタカタを続けているので、この知識や経験を共有したいと考えてサイトを開設しました。 また、私はWEB開発、イ …
コードを書く人間なら、キーボードにこだわりたくなるものだ。ノートPCをメインにしている場合はキーボードを変えることは難しいが、それでもJIS配列かUS配列など一度は考えたことがあるはずだ。 このサイトで何度も書いている通り、プログラミングのほとんどは試行錯誤の繰り返しで作り上げてい …