utamaro’s blog

誰かの役に立つ情報を発信するブログ

エンジニアになるためには何をすればよいか

概要

プログラミングを勉強する場合どのように勉強すると良いか、自分の経験から記事にしました。 これから勉強する方の一つの道標として役立てればと思います。

※ この記事は過去ブログを作った際に載せていた内容を書き直しています。

最初に

この記事ではプログラミングを学ぼうと考えている人たちで、最初に「何から勉強すれば良いか」迷っている方の役に立てれたらと考えて書いています。 私自身のプログラミングを勉強してきた流れをもとにして、それを参考にしていただけたら幸いです。

少なくとも一人はこの方法でエンジニアになって、画像のようなブログを手作りできるぐらいにはなれると思います。
(維持コストがかかるのでブログは廃止しています。)

f:id:miyaji-y26:20190521210022p:plain

f:id:miyaji-y26:20190521210114p:plain

少々見苦しくあるのですが、このようなモノを作りました。

本題ですが、以下の流れでどのように勉強してきたのかを書いていきたいと思います。 1. 最初にプログラミングを勉強し始めたのは? 2. どのような勉強をしたのか 3. 次にやったこと 4. 社会に出てから 5. まとめ

最初にプログラミングを勉強し始めたのはいつ?

私が最初にプログラムに触ったのは大学1年の頃でした。

記事を書いている段階で25歳なので、今から7年ぐらい前の18歳ぐらいの頃です。

当時の私は高校のときにhtmlcssに触って、「わけわからん」と理解できずに手放したぐらいの知識量です。 おそらく、今始めて勉強を始めようと考えている方と同じぐらいの知識量と経験だと思います。

javajavascriptの違いがわからないぐらいのレベルと言えばわかるでしょうか?

始めたばかりの人は皆そのくらいです。

どのような勉強をしたのか

初めて触った言語は大学1年生のときに講義で勉強したjavaです。 そのときはjavaの基礎構文を勉強しました。

はっきり言ってしまえば、本の内容をそのままやるだけの講義でした。 本は「やさしいjava」シリーズを使って勉強していました。

初めてやることなので、全然わかりませんでした。 プログラムを上から下に読むということもわかっていないレベルです。(冗談抜きです)

for文がどのように動くのかわからなかったですし、以下のような2重のfor文なんて意味不明でした。 i++って何?とか聞いていたと思います。

for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
        System.out.println("i=" + i + ". j=" + j);
    }
}

その時、「わからないです」と聞いたら笑われたので自分で解決する癖がついたのだと思います。

そんな未熟者の私が一番つらかったことがあります。 講義の終わり頃に課題を出されて完成できなかった場合に帰れなかったことです。 あれはいい経験でした。

今になって思えば、エンジニアとしての本質なのでしょう。 社会でも締め切りが決められていて、それに遵守しなければならなくて、終わらないと帰れないですから。

次にやったこと

そこからは講義はほとんど変わりませんでした。

学ぶ言語がjavaからC言語に変わったり、javaを使ってコンパイラを作ったりと現状を考えるとなんの役にも立たない知識です。

こういったことを勉強して私が思ったことは「将来が詰む」です。

業務的な知識がなく、他と同じ知識量と未経験の若造ではどの企業にも雇ってもらえないと考えたからです。

なので最低でも自分自身で課題を解決することができ、なにか作って実績を作ろうと考えました。

まずは落ちものパズルの大定番である「テトリス」と「ぷよ○よ」作って、その後に「オセロ」を作りました。

これらで得られた経験は、htmlcssjavascriptを使ってアプリケーションを作れたということです。 サーバを絡めた経験はなかったのですが、「自分は作れる」という自信を得ることができました。

当時は同じような行動をしている人が周りにはいなくて、研究室に入ってから自分以上のレベルの人に会ってますます焦ったのを覚えています。

そこからは遊びに行くとかすることはなく、ひたすらプログラムを書いていました。

社会に出てから

大学時代にいくつかの実績を作って、それを面接時に見せるということをやっていたら入社できました。

早めに内定がでたので、そこで決めてのんびりしていたのを覚えています。

やはり、客観的にみてわかるだけの実績があるとわかりやすいのだと思います。 実績がない場合はコミュニケーション能力をアピールしたり、スケジュール管理ができるといったことをアピールすると良いでしょう。

業務を行うことになってから、社内のエンジニアとして課題解決を行っていました。 詳細は書けないのですが、「問題点」を挙げて、その「解決方法」を考えて、「実行」するという業務です。

最初は「勉強するため」や、「経験を得るため」という理由から働いていたのですが、今は違います。

会社で得られる経験なんて、たかが知れています。 得られるのものは「人脈」と「給料」です。

なにか実装したりすれば、その実装についての知識は得られるでしょうが、それは個人でやっても同じです。 むしろ、個人でやったほうが最初から最後までできるのですべての経験を得られるでしょう。

まとめ

エンジニアになった流れは、その他多くの方と同じだと思います。

なんの特徴も無いのですが、私の場合は以下の流れでエンジニアになりました。 1. 大学に入る 2. javaを勉強する 3. C言語を勉強する 4. ひたすら勉強して目に見える実績を作る

このとき、プログラミングスクールとか行かなかったですし、人に聞いたときに笑われた経験から自分で解決していました。 個人的には高いスクール料を払うより、公式ドキュメントを読んだり、お金を出してノウハウ買うのが良いと思います。