プログラミング初心者を抜け出すために知ったほうが良い12のTips

f:id:babashun1024:20170626231752p:plain

こんにちは。

シュンです。

 

最近プログラミング初心者と、中級者の間に

知識や生産性の差がものすごくあると感じています。

 

それは初心者が知らないツールによるものであったり

中級者の中では常識の考え方が初心者には浸透していなかったりするためです。

 

今回はプログラミング初心者がいち早く中級者になるために

知っておいたほうが良いTipsを12個お届けします。

 

初心者の定義

まず、初心者とはどの程度の修得者なのか定義します。

  • プログラミングを勉強していだいたい3ヶ月くらい
  • チュートリアルサイトを一通り終わらせた
  • 実務経験はなし
  • そろそろ企業でインターンくらいならやっていけそう

それではtipsに入っていきます。

1, できるだけターミナルから操作するようにしよう

初心者にありがちなのがなんでもGUI、つまり目に見えるツールやマウスで操作しようとしてしまうケースです。

 

後述しますが、GUIツールは使い方によっては非常に強力です。

 

しかしMacのFinderを頻繁に使っていたり

エディタからファイルを開くときに

「エディタを開く」 => 「command + o 」=>「ファイルを探す」

といったフローが多い方は要注意です。

 

それらをマウスで操作している間に中級者は、ターミナル、コマンドを駆使して、そそくさと目的を達成していきます。

 

エディタはターミナルから開けるように設定し、基本のファイル操作のコマンドもしっかりと覚えておくようにしましょう。

2, 標準ターミナルではなくitermを使用しよう

MacやWindows、その他OSには標準のターミナルが付いています。

しかしそのターミナルはあまり使われていないことはご存知でしょうか?

現場では「iTerm」と呼ばれるターミナルが人気を誇っています。

www.iterm2.com

  • 細かい設定を行える
  • ショートカットでよびだせる
  • 何か通っぽい

など標準ターミナルより勝っているポイントが何個かあります。

 

個人的にはコピーを押さなくても、ハイライトしただけで、コピーされる機能が地味にありがたいです。

3, 画面分割をしよう

初心者の人は「分割」をほとんどしません。

そのため画面を移動するのに時間がかかり、生産性が落ちてしまいます。

 

特に「ターミナル」は分割して使うケースがほとんどです。

 

例えばRailsを使う場合、標準だとサーバーでターミナルの画面が一個占拠されてしまいます。

その時分割方法を知らないと、生産性が落ちることは明らかです。

 

プロセスが生きたままターミナルを閉じてしまい、killしないと....うわぁ...

という事態にもなりやすいです。 

 

「command + d」でターミナルは分割できるので、ぜひ今日から使ってみてください。

4, ファイルは検索して探そう

初心者はファイルをツリーでたどって探します。

チュートリアルのアプリならそれでも良いかもしれませんが

大規模なアプリになると、ファイルの数は膨大になります。

 

ツリーでたどって探すのは不可能です。

 

初めからファイルを検索する癖をつけましょう。

ファイルから特定の行を探す時も検索や、行番号指定などで見つけるようにしましょう。

 

atomだと

「command + p」でファイルの名前検索

「command + f」でファイル内検索

ができます。

 

このファイル検索ができるかできないかで生産性は圧倒的に変わります。

いち早く癖付けるようにしましょう。

5, ailiasを設定しよう

ailiasという機能をご存知ですか?

簡単にいうと「コマンドのショートカットキー」のようなものです。

 

これを使用すれば

「rails s」=> 「rs」

「git log」=>  「gl」

 

などコマンドを大幅に短縮することができます。

よく言われるのは

三回同じコマンドを打ったらそれはailias登録するべき

 

設定方法はわかりやすく載っている記事があったのでこちらで。

qiita.com

僕のエイリアス設定も一部載せます。

 

railsをしている方はこれをコピペして設定するだけでも、結構生産性上がると思います。

alias bundle='rbenv exec bundle'
alias rake='bundle exec rake'
alias spec='bundle exec rspec'
alias rdm='rake db:migrate'
alias rdc='rake db:create'
alias rdcdm='rake db:create db:migrate'
alias rs='rails s'
alias rc='rails c'
alias rgc='rails g controller'
alias rgm='rails g model'
alias rgmi='rails g migration'
alias rgs='rails g scaffold'
alias rgr='rails g react:component'
alias lvh='rails s -p 3000 -b lvh.me'

6, コーディング規約に目を通そう

どこかの企業に入る前にコーディング規約には目を通しておいたほうが良いです。

 

汚いコードは嫌われます。

想像以上に嫌われます。

 

なぜなら、汚いコードを書くことは

そのチーム全員の生産性を下げる行為だからです。

 

汚いコードを書いている限り、チームにプラスを与えることはできません。

 

Rubyの場合よく使われるのはcookpadのコーディング規約でしょうか。

github.com

 

コーディング規約と聞くと難しく感じるかもしれませんが、そんなことはありません。

チュートリアルができる方なら、30分ほどで読めて9割は理解できます。

7, 少し高いレベルの本に手を出そう

入門書を一冊やり終えたら少し難しい本にも手を出してみましょう。

 

少し高いレベルの技術は現場では使われないことが多いですが、これから上級者を目指すなら知っておかないといかない知識です。

 

あと単純に、少し難しい知識を身につけることで、今までのプログラミングが楽勝に感じます。

 

Rubyなら「メタプログラミングRuby」や「Effective Ruby」がオススメです。

 

この2冊をしっかりやればRuby中級者と言ってもいいんじゃないでしょうか。 

メタプログラミングRuby 第2版

メタプログラミングRuby 第2版

 
Effective Ruby

Effective Ruby

 

8, ショートカットキーを覚えよう

できるエンジニアの人を見ていると、マウスに触っていないのにもかかわらず、文字入力のカーソルがすごい勢いで動いたり、良い感じに選択をしたりされています。

 

それはショートカットキーを駆使して、ホームポジションからほとんど手を動かさずに、思い通りの操作を行えるようになっているからです。

 

ショートカットキーと言っても膨大にあるので、最初は

 

「Ctr + p」 => 「↑」

「Ctr + n」 => 「↓」

「Ctr + f」 => 「→」

「Ctr + b」=> 「←」

 

の四方向の矢印キーを、ホームポジションで動かせるようにしましょう。

 

またKarabinerという無料ソフトウェアを入れることで、ショートカットキーの登録や、キーのカスタマイズを行うこともできるので、ぜひ試してみてください。

Karabiner - OS X用のソフトウェア

9, 便利なguiツールを導入しよう

全てをターミナルから操作しよう

と前半ではおっしゃっていましたが、GUIツールを導入したほうが早くて便利なことはあります。

 

オススメのGUIツールは

MysqlのGUIツールである「MySQL Workbench」

MySQL :: Download MySQL Workbench

 

GithubのGUIツールである「Github Desktop」

desktop.github.com

です。

 

MySQL Workbench」はMySQLのレコードの中身やテーブル構造を可視化でき、値の変更などもGUI上で行うことができます。

 

そのため、開発環境でテストを行いたいときなどに重宝します。

 

「GIthub Desktop」は差分や、コミット履歴などを可視化してくれ、コミット、プルリクエストなどをGUI上で行えます。

ただ細かい操作は行えないので、gitのコマンドは別でしっかり覚えるようにしましょう。

10, わからない部分を再度洗い出そう

チュートリアルを走り抜けたあなたは、わからないところがぼんやりとしていると思います。

 

今一度、わからないところを洗い出して、調べるようにしましょう。

 

僕の場合、Rubyのブロックの「&」の意味がわからず、チュートリアルが終わってからなんども調べていました。

 

今わからないことは、いずれわからないといけないことになります。

先延ばしせず、疑問を一つづつ潰していきましょう。

11, 少し高度なgitコマンドを覚えておこう

チュートリアルを終了し、晴れて企業に務める!となると、集団で開発することがほとんどです。

 

集団開発に必要なスキルといえば「git」です。

 

不用意に謎のコミットをすると、全員の環境に謎のコミットが残ることになります。

なので、コミットを修正するための「rebase」コマンドなどの、少し高度なgitコマンドを覚えるようにしましょう。

 

gitは本当のどこにいっても使用するので、しっかり使い方を理解するようにするようにしましょう。

 12, 自動化のための技術を知ろう

 エンジニアは自動化とともにあると言っても過言ではないくらい、自動化が好きな人種です。

 

好きというと語弊があるかもしれませんが、自動化をしてどんど生産性をあげている人が多いです。

 

また企業が運用しているサービスもいろいろな自動化技術の元で運用されています。

 

jenkins

circle ci

capistrano

docker

 

などはメジャーな自動化ツールです。

簡単な概要だけでも覚えておくと、すんなり企業の開発にも入れます。

まとめ

今回は、プログラミング初心者を抜け出すためのtipsについて書いていきました。

 

企業に務めると、初心者時代では知らなかった情報がどんどん入ってきて、混乱してしまいます。

 

この記事を参考に少しでもその情報の差を埋めれれば良いなと思っています。