皆様こんにちわ! カタカタジムを開発してます。タカモリです。私はいわゆるIT業界の未経験なのですが、この「カタカタジム」というサービスを自分の時間でぼちぼち作ってまいりました。

もちろんその道中には、プロとしてIT業界で働く方にとっては当たり前に感じることであっても、僕にとっては当たり前じゃなかったことなどが多くあります。

今回はその中の一つ「プログラミング中級者っていつから?」について記述していきたいなと思います。

自分は初心者?中級者?

これはもしかして、独学あるあるだと思うのですが、自分一人で学習をしていると、周りの人はどれくらいできるのかが分からないので、今自分はどれくらいのレベルにいるのかが、凄く気になります!

これが、会社だとかの組織の中にいると比べれる相手もおり、大体基準というのが見えてくるのかもしれませんが、独学だと全くわかりません。

私も気になったことが数多くありますので、「プログラミング 中級者」などで検索をかけたことがあります。 しかし、残念ながら自分の思うような記事は見つけられませんでした。。

プログラミング中級者って何?

そもそも論なのですが、プログラミング中級者って一体なんなのでしょうかね。 プログラミングについて学習し始めて、1日?一ヶ月?一年?

そもそも期間ではなく、学習して頭に入った内容で中級者を判断するのかもしれませんね。

もちろん、プログラミングを初めて1年経ってif文が書けないということであれば、おそらく中級者とは言えない気もしますので、やはりここはどれだけ自分の頭にプログラミングの知識があって、コーディングできるかが判断の材料になるのでしょう。

少し話は変わりますが、皆さんそもそも「プログラミング中級者」という言葉って普段耳にしますか?

僕はあまり聞きませんね。本屋に行ってもプログラミング初心者用の本はあっても中級者向けの本はわざわざタイトルに「中級者向けの!」とは書いていませんしね。

Twitterでもプログラミング初心者や駆け出しエンジニアという言葉は耳にしても、プログラミング中級者という言葉はあまり見かけません。

では、何故プログラミング中級者という言葉ってあまり聞かないのでしょう?

何故「プログラミング中級者」という言葉は耳にしないのか?

ここからは私の持論になるのですが、プログラミングってかなり範囲が広い言葉なんですよね。あくまでプログラミングはものを作るための道具なので、作りたいものや、学習するべき内容に向けてそれぞれ学ぶ範囲というのが人によって大きく異なってくるわけなのです。

なので、中級者向けの商品や言葉というのは、各それぞれの難しめの専門的な要素が含まれることになってしまう。ということなのでないでしょうか。

商品や言葉として、それを含ませるのであれば「Web開発にオススメのフレームワーク」や「Webサーバーの構築」など、Webに特化した専門的な内容を含むものがプログラミング中級者向けの内容になるのではないかと私は考えています。

これらは、ITでAIやゲームを作りたい人にとっては関係の薄い内容だと思いますし(AIやゲームの分野は全く知らないので一概には言えませんが)

プログラミング初心者から中級者への切り替わりの基準

これも私の持論なのですが、やはりプログラミングにおいてある程度、共通した基本的な文法などが自分の意思で記述できるようになったら中級者と言って良いのではないかと思います。

オブジェクトについてわかっている。if for case classなどが自分の好きなように扱えると初心者を抜け出しているようには感じます。

おそらくこれがササッとできる方は他の言語を見ても、見た感じの雰囲気で何が記述してあるかが大体わかるようになっているかと思います。

このレベルの方は、僕が上で書いた「フレームワーク」なんかに手を出そうとしている最中なのではないでしょうか?

逆に言えば、これらがまだ参考書を見なければ記述できない場合は、まだ中級者とは言えないのかもしれませんね。

ちなみに私自身が中級者になったかなぁと思えたのは「パーフェクトPHP」という書籍を読み終え、その書籍をある程度理解したタイミングでした。 プログラミングを初めてから約1年くらい経過してからですかね。

プログラミング初心者から抜け出すのにオススメの方法は?

ではここからは、初心者の方が中級者に近づくためにはどうすれば良いかについて書いていきたいと思います。

しかしこれは、やはり基本をしっかり身につけるということだと思います。

Webの場合ですが、Twitterなどでよくプログラミングを始めて数ヶ月でDockerやLaravelなどに手を出しているパターンを見かけますが、私はあまりこれをオススメしていません。もし気に障ったらごめんなさい。

でも、DockerをやるならやはりLinuxを勉強するべきだし、フレームワークを触るのであれば、そのフレームワークがどのようにしてできているのかを理解するとフレームワークの学習効率も上がります。

あと挫折の危険性がどうしても高まってしまうのも否めません。

なので、一番初めに自分が手をつけた基本の言語で参考書に載っているものを真似したものではなく、自分で考えた何か簡単なものを作ってみるのが一番良いと思います。

そうは言いながらも自分の好きなことをやろう!

上の記述と少し矛盾する内容なのですが、よくTwitterでインフルエンサーやベテランのエンジニアさんが「初心者は〇〇をやるな」といった類のツイートを見ますが、これは僕は間違えてると思います。

「え?さっき初心者はこれをするな」ってタカモリ言ってたばかりやん!となるとは思いますが、あくまで上の記述は、僕が今まで学習してきた中でのオススメの方法であって、皆さんにとって有用なことかは僕にはわかりません。

一番良いと思うのは、「自分が学習したいことをとことんやろう!」これです。 僕は一人で学習してきたので、自分の好きなことばかり勉強してきました。

人にやれやれと言われたこともないので、その間嫌々学習してきたことは一回もなく常に楽しくプログラミングをやってきました!

それが今に繋り、サービスを公開できているのだと思いますので一番良いのは「自分が楽しめること!」だと私は思います。

是非この記事はあくまで参考程度にして、皆さんのプログラミング生活を楽しいものにしていってくださいね!