プログラミング初級者から中級者になるためには
こんにちは。継続の錬金術士なおキーヌです。
ブログ毎日更新は166日目になります。
入門者と初級者は同じビギナーですが、個人的には入門者は基本構文すらほとんど使えない人で、
プログラミング初級者は基本構文を覚えて組み込み関数や自作関数を扱えるようになったレベル。
では、プログラミング中級者はというとどのレベルになるのでしょうか。
ぶっちゃけてしまうと中級者の幅はメチャクチャ広いです。
大ざっぱに言うと、中級者は自分で考えて1つのプログラムを組み上げることが出来るレベル
でしょうか。
私もプログラミング歴10年を越えましたが、社会的に見れば中級者となります。
しかしプログラマの世界では恐らく初級者の下ぐらいでしょうか。
ツイッターで私レベルで初級者を名乗るのは違うって言われたことがあるので難しいところですよね。
人によってそもそも視点が違うので一概にココからココまで初級者でそれ以降からココまでは中級者ってくくりは難しいかと思います。
しかしそれで終わらせてしまってはこの記事を書いた意味もないので、先程も言ったようにプログラミング中級者は一人で考えて最後まで組み上げるようになれる状態のことを意味することにします。
もちろん、ググっても問題ありません。
プログラミング力はググる能力も問われるからです。
幸い私はSEO業者をしてたこともありググり力はそこそこ見についていたため、なんとか中級者のレベルにはたどり着けました。
中級者への道のりはゆるい坂道
初級者から中級者になるには思ったよりも簡単です。
もちろん、私の定義する条件下での話ですけども。
中級者は自分で考えて1つのプログラムを組み上げることが出来るレベルと言いました。
値を入れたら文字を表示するようなしょぼいスクリプトでもいいので、
これを何度も繰り返して作っていけば嫌でも基本構文の使い方をマスター出来ます。
スクリプトを組めるようになるとそれを組み合わせるだけで1つのプログラムが出来上がるというわけです。
そのスクリプトをどう組むかわからないのが初心者ですが、
最初は組み込み関数と同じようなものを作ってみると良いでしょう。
車輪の再発明にはなりますが、何を作ればいいのかわからないのであれば
プロが作ったものを真似てみるのが一番の上達の近道となります。
プログラムは基本構文と組み込み関数(言語で元々用意されている関数)を組み合わせるだけでも完成させられるので
何度か作り上げていると、0からプログラムを作る力が身に付いています。
絵と同じで知識だけを得てもプログラミングは上達しないので、とにかく手を動かして完成品を作ることです。
自分の作ったプログラムを動かして理想的な動きをしてくれればそれだけで自信につながります。
基本に慣れたらフレームワークをつかってみよう
ある程度簡単なプログラムを作っていると、物足りなくなってきます。
このあたりからフレームワークというものに手を出すと良いでしょう。
PHPであればlaravel
RubyであればRubyOnRails
PythonであればDjango
JavaScriptであればReactやVue
CやC++ならゲーム用のライブラリがあるのでそれを使うと良いでしょう。
フレームワークは上級者じゃないと組めないプログラムを関数化して素人でも呼び出せばプロが作ったスクリプトを呼び出せます。
プログラミングスクールだと基本構文を学んだらいきなりRubyのRubyOnRailsを学ぶようですが、
正直な所フレームワークの使い方を覚えても中級者にはなれません。
フレームワークのデメリットとして、便利すぎて自力で組むのが億劫になるところでしょうか。
確かに仕事で言えば効率を重視すべきですが、それはあくまでフレームワークの力です。
ちょっと凝ったことをしようとすると考える力が備わってないので挫折してしまったりします。
ツイッターをやっているとこういった批判も多くみられるのですが、
基礎をぶっとばしてフレームワークから覚えるのは別に悪いことではありません。
フレームワークを覚えてから基礎的なことを学ぶメリットはいくつかあります。
フレームワークで呼び出している関数を使っていると基本的に関数を組み合わせて作るだけなので
基本的には結果しか見えず処理の部分がブラックボックス化されています。
これがのちに基礎をしっかりと勉強する時に大いに役立ってくれます。
ネタバレすると、結果を知っているということは1から自分で作るときに最終的にどうなればいいのかが分かっているので、
後はそれにたどり着くには何が必要なのかというのがスラスラと出てくるようになります。
プログラミングとは仮想の結果を分解して再構築して結果を作り出すことにあります。
なのでフレームワークを先に学ぶというのも上達の1つというわけです。
基礎を先に勉強するかフレームワークを先に勉強するかの違いでたどり着くところは同じです。
フレームワークを使えば簡単に完成品が出来上がりますのでそれが1つの自信にもなります。
一番ダメなのは基礎だけやって結果を残さない人でしょうか。
それならまだフレームワークを使って完成品を生み出すだけの人の方がまだマシです。
問題は中級者になった後どうするか
基礎とフレームワークを扱えるようになったら中級者の仲間入りです。
しかし問題はここからです。
私も10年間以上プログラミングをやっていますが中級者を抜け出すことが出来ません。
ココからはどの分野に力を伸ばしていくかです。
AIのスペシャリストになるのか、便利なアプリを作りまくるのか、ゲームを作るのか。
何になりたいかによって鍛えるところが変化してきます。
ツールを作りたいのにゲームの作り方を覚えても仕方ないように、
最近はやりの機械学習やディープラーニングのようなAIの作り方を覚えても面白いゲームを作ることはできません。
1つについて極めるのか、プログラミング以外の技術を身に付けてその分野のプロになるのか
人によって進み方も進みたい方向も違うと思います。
私みたいに色んなことをやりすぎていると中級者止まりの微妙な人間になります。
出来るなら専門分野で誰にも負けないような凄腕プログラマを目指してください。
そこそこ何でもできるようなプログラミング中級者は中小企業には結構需要はありますが、
凄い人を見ると自分ってめっちゃザコいんだなって思ってしまうので精神的にはあまりよろしくないです。
上級者を目指すか広く色んなことに対応できるように中級者止まりになるかは自由です。
なにはともあれ、初級者はまず一人で0からプログラムを完成させられる中級者を目指しましょう!