東大生が考えるエンジニア力の磨き方


どうもこんにちは。今日はエンジニアについてです。

僕はブログの傍らでエンジニアをやっています。嘘です。エンジニアの傍らでブログをやっているのですが、今日は僕自身が実践してきた手っ取り早くエンジニア力を磨く方法を伝授しようと思います。エンジニア力というよりは技術力といった方がわかりやすいかもしれませんね。

そもそもエンジニア力とはなんなのかというものを最初に定義しておこうと思います。それは

目標とする製品を決められた規格で素早く作り上げる力

です。あと、今日はソフトの話をしていくのでハードの話を求めていた方はあまり参考にならないかもしれません。つまり、あるソフト(例えばストップウォッチのiOSアプリ)を作って欲しいと頼まれたら、30分くらいで完成させられる人と1日かけて完成させる人はどちらがエンジニア力が高いと思いますか?明らかに前者ですよね。

このようにエンジニアにおいてはいかに素早くものを作ることができるかというのが技術力に直結します。めまぐるしく変わる現代において素早さというのは本当に重要です。今日はエンジニアにとって最も大事な素早さを上げる方法について話していきます。

 

では早速ソフトの話をしていきましょう。僕が今までどのくらいの期間でどの程度の技術力を身につけたかお話しします。

私がエンジニアの世界に踏み込んだのは1年半くらい前ですね。最初にC言語をがっつり学んで、あとはHTML, JavaScript, python, C++, Java, xml, Swiftというような感じのアプリを作成してきました。今となってみればこのやり方は正しかったと思います。もっと詳しくみていきましょう。

 

まず、最初に何か一つのプログラミング言語をがっつり勉強した方が良いと思います。僕はC言語から入ったのですが、なんでも良いのかもしれません。ただ、僕はC言語から入ったので、C言語をお勧めします。

おそらく、C言語というのは割とコンピュータの低水準の領域まで扱うことができ、C言語ベースの言語も多数あるので、プログラミング言語としては一番ベーシックなのではないか、だから最初に学ぶのが良いのではないかと考えています。

C言語さえしっかりやっておけば、他に新しく言語を学ぶ際にあまり苦労なく習得することができます。C言語で学びきれないのはオブジェクト指向とスクリプト型言語くらいですかね。前者はJavaというかAndroid開発で、後者はHTMLで学ぶことができます。どちらもそこまで大変ではありません。

ここまで読んだあなたはC言語をやる気になったかもしれません。エンジニアの第一歩を踏み出すところですね。ここで一つC言語のお勧めの本を紹介します。それは「Cの絵本」です。この本は非常にわかりやすくイラストで描かれており、直感的な理解をしやすいです。僕も使いましたし、僕の周りの東大生も使っていました。エンジニアを始める人もC言語を学び始める人も必読の1冊です。

Cの絵本 第2版 C言語が好きになる新しい9つの扉

 

さてC言語をがっつり学んだら(Cの絵本を一通り理解するくらい学んだら)C言語で色々作ってみましょう。何か作れそうで作りたいものがあればそれを作ってみましょう。特になければpaizaというサイトのプログラミング検定みたいなものをやってみましょう。今の自分の技術力が測れます。

 

僕は学校の授業と並行していろいろやっていたのでC言語の習得は半年くらいかかりました。でも詰めて勉強すれば1ヶ月もしないくらいでC言語の大枠は理解できると思います。

一つの言語をマスターすると何が良いのかというと、他の言語を習得しやすくなるんです。大体のプログラミング言語は基本的な構文は似ています。だから、必要になった言語を学習する際、C言語のfor文はこの言語ではこうやってあらわされるんだみたいなことになり、非常に理解がしやすいです。

したがって、この段階からすでに他の言語で何かを作るのに取り掛かってもいいです。割と簡単めの言語の方が良いかもしれませんね。pythonは割とハードルが低いです。ある程度しっかりした言語をやりたいならJavaですかね。pythonもJavaもプログラミングにおける重要概念であるオブジェクト指向が含まれているので身につけたいところです。

オブジェクト指向は簡単にいうと、エンジニアの先輩たちが作ってくれたものを利用することみたいな感じです。めんどくさいプログラミングは先輩たちが代わりにやってくれたから、簡単に欲しい機能を実現できるみたいなことです。

もう少し具体的にいうと、車の中の細かい構造はプロが作ってくれたから、もしあなたが運転したい場合はハンドルを握ってアクセルを踏むだけでいいんだよ。みたいな感じかな。オブジェクト指向がなんで必要なのかわからない人はなんとなくわかったかな。

少々話が逸れてしまいましたが、C言語一つ学んだあとに他の言語を使いたい場合は必ず作りたいものを最初に決めてください。この理由を説明します。

二つ目以降の言語をもう一度最初から全ての文法を学ぼうとするのはナンセンスです。同じだけ時間がかかってしまいますから。だからまずは作りたいものをイメージする。そしてその機能を実現するにはどのようなコードを書けば良いのかイメージする。そしてそのイメージにあった文法だけを学習する。これが僕の考えるつまみ食い学習法です。

いちいち新しい言語をやるたびに最初から文法を勉強している暇はありません。その言語のプロになってもしょうがないのですから、新しい言語を使う際は必要なところだけを勉強して素早く製品を作り上げるということが重要なのです。

僕がこの記事で言いたいことの中心はそこにあります。人生の時間は有限です。何かを学習するにしても最短時間で学習したい。僕が東大に入るために勉強したのも同じ理論です。最小の学習時間で目標に到達する。これが人生を最も賢く生きるための方法であり、最も稼ぐための方法論なのです。

だから、エンジニアにも求められているものは同じです。目標とする製品を素早く作り上げる。そのためにはいちいち新しい言語を学んでいる時間はない。これが今回の記事の結論です。


投稿者:

front_toudaisei

東大生です。「常に最先端を行く」が信条です。 Twitter→@follow_sougo_upです mail→saisentan.toudaisei@gmail.comです

コメントを残す

メールアドレスが公開されることはありません。