優秀なエンジニアになるためには何をすればいいのか?


エンジニア

重要なのは実務経験

エンジニアの採用必要となってくるのは実務経験だと思う。未経験のエンジニアがそれを積むには主に2つ考えられる。

1.インターンや実際にエンジニアとして入社して取り組む
2.クラウドソーシング系のサイトを利用してフリーランスとしてコツコツ取り組む

1.も2.も最低限プログラミング能力がないといけない。
ならその次に考えるべきなのは基礎的なプログラミング能力をどのように身につけるのか?ということになる。


アプリ制作

最低限のプログラミング能力

エンジニアとして理想なのは、要求された仕様通りのプロダクトを実装するための能力があること。そのためにはさまざまな意味で"幅広く要求に対応できる"ようなコードを書く必要があるのでは?
→つまり、プログラミングに対する知識と経験をアウトプットを通して得る

アウトプット

アウトプットの方法

1.個人開発
=自分で徹頭徹尾、制作物の仕様を決める。

2.技術系の書籍を読む
=必ず学んだ内容のアウトプットも行う

3.インターンに参加
=ある程度技術力が身についてから、実務経験。

4.毎日本日行った学習内容をnoteなどで発信する
=学習に費やした時間を計る(調査時間なども)

5.月一でハッカソン
=アウトプットでtech camp,compass,doorkeeperを利用

6.無料のプログラミングスクール・サービスに参加
=42tokyo,など受けてみたいけど。勘違いしてはいけないのが一番の狙いは集団で受けることによってモチベーションを保つことにある

7.paiza,atcoderを利用してアルゴリズムを学ぶ
=そのまま、目標はPaizaならBランク,At coderならDランクの問題を解けるレベルが目安

アウトプットの方法_ベン図

アプリ開発などを自分一人で考えて実装する経験は何よりも優先されるべきアウトプットで一番実入がいいものだと思う。それに加えて技術系の書籍を日々読み込むことを通してコンピュータサイエンス・プログラミング・エンジニアリングに関する体系的な知識のインプットを行い、それらを噛み砕き・誰かに理解されるようなレベルまで落とし込んでブログで発信する。これがおそらく一番理想的なインプットだと思う。他には月一のハッカソンを通して課題を解決することやインターン・就職の段階へ進み、実践的なスキルを身に付ける。

アルゴリズムと無料のエンジニアリングサービスを別枠に置いたのは重要なことには間違いないけれど個人的に今の段階では優先度が低いと思ったから除外した。

これらをこなしている頃にはおそらく実務スキル・課題解決能力・体系的なエンジニアリングに関する技術/知識が身についているハズだ…

優先度振り分け


取り組む前にしかできないこと・取り組む最中にしかできないこと

優先順位の振り分け。コレが苦手なんよ。todoリストの作成→緊急・重要のマトリクス。こういうの書いている最中が一番楽しいんだよなぁ〜。

課題

現時点で身につける必要があるスキル
1.プログラミング←コレ
2.言語化の力
3.思考の整理←コレ
4.文章作成能力
5.課題解決能力←コレ
6.優先度の振り分け←コレ

1.3.5.6.は社会人になっても使える力だから覚えなきゃなぁ〜

この記事が気に入ったらサポートをしてみませんか?