よくプログラミング初心者が言語やフレームワークは何がいいか、どれが将来性あるかなど色々気にしていることが多いと思う。
また、その初心者に対して○○はいい、XXは古いみたいな無意味な争いやアドバイスをするエンジニアが結構いると思う。
偉そうにアドバイスしているエンジニアが一人で何かを作り切ったことあるかというと意外とやってない人が多いと思う。
目次
そもそもプログラミングは手段
自分の好きな技術に熱意を持つのは素晴らしいことだと思う。それでそのライブラリやフレームワークのコミッターになったら素敵だと思う。
しかし、プログラミングは何かを実現したり問題解決するための手段だ。
初心者であまり分からないのに技術選定でうだうだ悩んでいるならこの技術を使う!と決めて手を動かした方がいい。
当然エンジニアとしてどこかに就職したいと考えているだろうから、基本的によく使われている技術、応募の多い技術を使うべきだとは思う。
状況によってどのフレームワークや言語が応募多いかは変わるのでここで具体的には書けないが、自分の入りたい企業なり求人サイトなり見て考えると良いだろう。
就職する際の今まで学習したことのアピールでも、この言語・本学びました!よりもこういうサイト作りました、実際に見てみてください!の方がモノを作る力を伝えられるし、何よりモノがある方が説明しやすい。
プログラミングは手段と言ってる人は大して技術がない?
プログラミングは手段と言うと、なぜか「そういうこと言っているやつは技術力がない」とか言ってくる変なエンジニア?がいる。
プログラミングで何か実現するのは大変だ。
しかしその過程で
「どうしたらもっとうまく実現できるようになるか、仕様変更したときの修正や拡張が楽になるにはどうすればいいか」 -> 「設計を考えなければいけない、設計の勉強をしよう、DDDを学ぼう、DevOpsを学ぼう」
など、課題にぶち当たりその課題をどう解決すればいいか考えているうちに自然と勉強が必要な分野が分かってくるし、必要に迫られてしっかり勉強するはずだ。手を動かして何か作ろうと努力している人であれば。
また、理論を勉強することも大事だが、実際に手を動かさないと分からない課題なり大変さが多い。参考書読んでサンプルコード書いただけよりも間違いなく何かを実現するための技術力はつくと思う。
プログラミング初心者はとにかくまずは1つ作り切ってみる
プログラミング初心者はとりあえず使う言語なりフレームワークを決めて作り切ってみることをおすすめする。
作り終わった後に、もっと良い実装・設計にできたな、もっとバグの少ないものにできたな、など感じるはずなので、そこで改善点を見つけて修正していけばいい。
作り切ることで本だけでは分からない大変さや課題が見つかる。
また、作り切ることで面接など人に技術力を伝えたいときに簡単にアピールができる。また、アピールできるようにするためのネットワークインフラ周りの知識もつく。