たくろぐ!

世界一のチラ裏

若手エンジニアから相談を受けた話

若手エンジニアからの相談

はじめまして、x月に入社しましたxxxxx(Javaシルバーを入社直後に取得済み)です。  
改めてよろしくお願いします。  
これからのスキル習得について悩みがありまして、連絡させていただきました。  
悩みの内容は明確ではなく漠然としているのですが、以下のようなものです。  
・配属先での現在の業務がコピー&ペーストが多く、この先にエンジニアとして成長できるのか不安である。  
・どの技術をどのように学べば良いかわからず、モチベーションを高められずにいる。(初心者が学ぶべき基礎的内容の資格試験でオススメのものがあれば教えていただきたいです。)  
・自分が今後どのような技術で何をしたいかは分からない。  
今自分が取り組むとすれば、書籍でのプログラミング言語入門、SQLドリルがあげられます。  
以上の項目に対する明確な回答ではなく、どのような角度からでもxxxさん(僕)のアドバイスをいただければと思っています。  
どのような形でも回答いただければ嬉しく思います。  
よろしくお願いします。  

僕からの回答

まずはじめにいうと僕は直感的な人間なので、感覚的な回答をしてわからないことがあれば突っ込んで聞いてください。

まず悩んでいることを相談できることが素晴らしい。
そしてその悩みがすでに焦りや不安に変わっているだとすると、焦ったり不安になる必要はない。
なぜならエンジニアを目指すのであればほとんどの人が必ず通る悩みだから。
例外として高専生や大学でプログラミングを研究している、ITベンチャーで長期インターンをしていた等、学生のときに実務レベルのプログラミング経験をしていて、新卒ですぐにプログラムを書かせてもらえるような少数精鋭のITベンチャー(今はまだ名も知られていない)に入社する人がいる。すでに有名なITベンチャー(メルカリやLINEのようなメガベンチャー)だと優秀なエンジニアが揃っているため、新卒ですぐ書かせてもらえる人は(理屈で考えれば)ごく少数です。

以下、まずは個別回答ができる回答から回答します。
> 初心者が学ぶべき基礎的内容の資格試験でオススメのものがあれば教えていただきたいです。
重要なものから順に、
・LPICレベル1(101と102)※会社では101は合格後、受験料分を給与に上乗せ支給、102は対象外(2020/6月時点)  
・基本情報技術者試験(国家資格でベンダー資格と比べて安価(だいたい6,000円くらい)。IPAという団体が主催している)  
・AWSソリューションアーキテクトアソシエイツ  
ほかにもあるけど、上記全て取れれば未経験から開発の土台に立てる。(現場の責任者に、すぐに即戦力になるかはわからないが、努力していることを評価してもらえるレベル)> 自分が今後どのような技術で何をしたいかは分からない。  
まずはバックエンドの技術を磨くこと。Javaはとてもいい選択です。  
なぜならJavaのプロジェクトはこのような時期でも需要が安定して高く、食いっぱぐれないから。(需要に関しては営業のxxxくんが詳しい)※ちなみに僕の現場も一部Javaを使っています。  
自分で一から人気サービスをつくれるなら言語選択は自由(=やりたいことができるレベル)だが、そうでないならニーズがある分野で一人前をまずは目指すのがセオリー(=やれることをやるレベル)。  
バックエンドの理由はデータの永続化、セキュリティ面で特にフロント技術よりも重要度が高いから。(単にフロントよりもやれることが多いということ)  
この質問の本質は、おそらくやり方だと思うのでその点は後述します。  
  
悩んだ結果、相談した(=行動に移した)ということは向上心が高く、同世代の人よりも爆速で成長したいと思っているのだろうから、僕からはxxxくんに以下のようなアドバイスをしたい。(個別回答よりもまとめて回答する方が効果的だと思ったのでまとめて回答します)  
【前提】(考え方)
①物事には何事にも順序がある
いきなりプログラムがかけることはない、僕は丸2年打鍵テスト業務をやっていたしそれが特段遅いというわけでもないと思っている。
②ちりつも
成長は日々の小さな努力の積み重ねの結果であり、一朝一夕で成長できることはほとんどない。
なぜなら短期間に詰め込もうとすると続かなくなるから。
③目的意識を持つ
日々の業務を行うのに目的意識(なんのために?どうやればうまくいく?今日より30分早くできるようになるためにはどうやればよかった?等)を持ってやるかそうでないかで雲泥の差が生まれる。
【提案】(やり方)
④実務レベルのソースコードを読む
JavaならJavaで作られているGitHubのリポジトリを探してコードリーディングする。
その際、バグレポートをする(=目的意識)つもりで読み、もしバグを見つけたら英語で書いて送ってみる。
⑤有名な人をフォローする
プログラミングで有名な人はSNSをやっているので動向を追う。
コミュニケーションをとってみるのもOK。
悩みを打ち明けるのが一番いい会話のきっかけになるかも。(エンジニアは教えたがりなので)
⑥もくもく会に参加する
自分一人ではモチベーションを維持するのが難しいなら、connpass等で開催しているオンライン勉強会に参加する。