プログラミング初級者から中級者を目指すには
中級者の判定はとても難しい……
コピペでプログラミングをしていると途中で成長が止まったような感覚に陥るときがあります。
いわゆる壁にぶつかったというやつです。
初心者の壁を乗り越えると一気に中級者まで駆け上がれますが、 大抵の人は初心者の壁を越えられず挫折します。
ネタバレしておくと実は毎日続ければ壁は簡単に乗り越えられます。
最初に言った通り感覚がマヒしているだけであって実際にはちゃんと積み重なって成長しています。
しかし人間というものは目に見えるものや自分の感覚でしか物事を考えられない生き物なので 今回はそんな初心者が挫折する壁の攻略法をお伝えします。
成長が止まった感覚はレベルアップ直前の知らせ
結論から言っておくと壁にぶつかったらRPGでいう延々と雑魚狩りをするように淡々と作品を作っていけば壁は乗り越えられます。
プログラミング覚えたての頃は、全てにおいて新鮮だったと思いますが、 コピペをしつつある程度プログラムを作れるようになってくると必ず訪れる成長の壁があります。
この成長の壁にぶつかると挫折させようとしてくる挫折くんが這い寄ってきます。
ちょっと上のランクのプログラミングをやろうとすると意味不明になったり、 理解できる範囲でやってもなんか成長した感がない場合はレベルアップ直前の証拠です。
ゼルダの伝説でいうと、謎解きがある部屋に入ったときのSEが鳴った感じですね。
謎解き完了SEを鳴らすには数を実は数をこなす必要があります。
1つのプログラムを組んだら別のやり方で同じものを組んでみることです。
自分のレベルで出来る範囲で縛りプレイをしてプログラムを組むとかなり訓練になります。
例えば変数を使える上限を決めて作ったり、 メインスレッド(メインループの部分)には関数の呼び出ししか書かなかったり
リテラル表記を使用禁止にしたり、様々な制限を設けたり今まで使ってこなかった組み込み関数を使って処理してみたりいろんな方法で同じゴールを目指してみるとめちゃくちゃ成長します。
プログラミングのレベルアップの方法を知る
プログラミングにおいて経験値を稼ぐのはコードを書きまくるしかありませんが、レベルアップを確実なものにするには作品を完成させることです。
作品と言っても、完成度の高いツールやソフトを作るだけじゃなく一つの動作をする汎用性のある関数を作り上げるのも一つの完成です。
小さいレベルアップを繰り返すと、気づくと大きいレベルアップ(自作関数を組み合わせた作品が完成)にたどり着きます。
この時、自分に役立つ完成品を作らないとレベルアップすることはできません。
役に立たないプログラムはあくまで経験値がたまるだけだということを忘れないでください。
強制的にレベルを上げる方法としては、ソーシャルワーカーとして働くのが手っ取り早いでしょう。 人の依頼を受けるわけですからリスクもつきまといますが、成功すれば実績にもなるし自己満プログラムより経験ちまたまりますしレベルも上がります。
入力補完のある便利なエディタを使って効率化する
流石にメモ帳でプログラミングを続けてる人は少ないと思いますが、ある程度慣れてきたら入力補完のあるエディタを使うと効率よくプログラミングができます。
私はWindowsユーザーなのでメモ帳から始め、秀丸エディタとEmEditorを長い間使ってSublimeText3に切り替え、visual studio Codeにたどり着きました。
正直今から始める人はvisual studio Code一択だと思います。
エディタのことを語るとこっちの方がいいあっちの方がいいと論争になるのであまり深くは語りません。
自分にしっくりくるエディタが最強のエディタです。
どれもこれもエディタは素晴らしいですよ。
あえて自分でエディタを自作するという手もあります。
普段使っているメモ帳なんかも作るのは凄く大変なので、プログラミングスキルを上げたい人はチャレンジしてみるといいですよ。
コンソール(いわゆる黒い画面)の操作に少しずつ慣れていこう
プログラミングを続けていると、マウスで操作するのがだんだんと面倒になってきます。
しかしデスクトップ画面(通称GUI)はマウスが無いと結構操作が面倒くさいのです。
そういう風に作られていますからね。
そこでキーボードだけですべて操作が出来るコンソール画面(通称CUI)の使い方を知る必要が出てきます。
よく映画なんかでハッカーがキーボードをカチャカチャとやっているシーンで、 パソコンのモニタに映し出される大量の黒い画面、あれこそがコンソール画面です。
貴方の使っているウィンドウズも、実はあの黒い画面が裏で動いています。
コンソールでの操作に慣れるとマウスでやっていた操作を短縮できたりするので効率が大幅に上昇します。
基本的に黒い画面で何でも操作が出来てしまいます。
インターネット接続も出来てしまいますが、流石にグラフィックが表示できないのでそこは大人しくブラウザを使いましょう(笑)
エンジニアを目指すならバージョン管理を知っておく必要がある
プログラミングをガリガリとコードを書いていくエンジニアとしてやっていくのであれば避けられないバージョン管理という概念が出てきます。
今回は解説しませんが、GITというものを使う時に黒い画面を使うと開発効率が大幅に上昇します。
専用のツールがありますがGITを使う人は大抵黒い画面を使って操作をするので、 今のうちに黒い画面恐怖症を克服しておきましょう!