himroxの脳内

ここは私の脳内です

プログラマー・SE・スーパーハカーなりたいと考えるオタクへ

f:id:himrox:20170723195529j:plain

僕はねスーパーハカーになりたかったんだ

世の中にはプログラマーハッカー、SEになりたいと漠然と考えている人が多いように思う。

ソニー生命保険株式会社が最近行った、中高生が思い描く将来についての意識調査2017によると、男子中学生・高校生ともに、将来なりたい職業の1位は「ITエンジニア・プログラマー」だという。順位をみると「ゲームクリエイター」「ものづくりエンジニア」といった職業も上位になっており、これらも含めると将来エンジニアになりたいと考える中高生の割合は、かなり高いと感じる。

俺はその事自体は否定すべきことじゃないし、むしろ日本のIT業界の未来は比較的明るいのではないかと希望的観測を持ってたりもするが、そのことは今回の趣旨とは外れているので、とくに突っ込んで議論することはしない。

俺はITエンジニアやプログラマーになりたいと考える人は、中高生だけでなく、大学生・社会人でも増えてるんじゃないかと密かに思っていた。世の中には高い金を払って、プログラミングスクールに通う人が結構いるらしい。かくいう自分もその一人で、安くない金を払い、そういったスクールに通っていたことがある。

なんでプログラミングを学ぶのにそんな高い金を払うんだ、Webには良質な記事やチュートリアルはたくさんあるし、本を買えば信頼できる情報が手に入るじゃないかと考える人もいるだろう。いや、今の俺ならばそう考える。じゃあなんでそんな高い金を払ったかというと、それは単純な憧れの気持ちが強い。マトリックスのネオ、ソーシャル・ネットワークマーク・ザッカーバーグシュタインズ・ゲートのダル…世の中の映画や漫画やアニメやゲームには、そんなスーパーハカーハッカーが数多く登場する。有り体にいれば何の取り柄もなく、運動神経も悪く、異性にモテないオタクが、ある日プログラミングを覚えて有名企業をハッキングしたり、GoogleFacebookみたいな有名サービスを作り上げて、大金持ちになり女の子からモテモテになり、今まで自分を馬鹿にしてきた同級生を見返す…そんなサクセスストーリーを妄想していたんだ。だから、カネさえ払えばそんなスーパーハカーになってバラ色の人生が送れると俺はそう思っていた。

まあ、現実はそう甘くはないわけで、ちょっとプログラミングを覚えただけでハッキングし放題だったら、世の中は今頃無法地帯になっているだろうし、GoogleFacebookみたいなサービスが誰でも作れるならば誰も苦労はしないってことは、ちょっと考えればわかることだ。

だが俺は、そんなオタクどもに現実を見ろとは言わない。なぜならオタクは人の言うことを聞かないからだ。だから俺はスーパーハカーになる現実的な方法を語ろうと思う。この記事を見てもスーパーハカーになることはできない。だが、スーパーハカーになるための道筋は教えることができる。そう、俺はRPGではじまりのまちにいる町人だ。勇者になることはできないが、勇者が進むべき道を教えることはできる。

俺はしがないエンジニアだ

前置きが長くなったが、俺自身のことも話しておこう。俺はスーパーハカーじゃない。モテモテでもなければ、日立とか富士通とかYahooとかの大企業のエンジニアでもない。いや、もしかすると自分をエンジニアと呼ぶことすらできないかもしれない。

俺はいわゆる社内SEってやつだ。社内SEっていうのは、まあちょっとパソコンに詳しい奴らの集まりだと思ってくれればかまわない。お前の周りにも、ExcelでVLOOKUP関数やピボットテーブルを使うだけで、すごーい!と言われるようなやつがいるだろう。社内SEっていうのはそういう奴らを集めた、エンジニアなのかよくわかんねえ奴らのことを言う。

プログラミングもできるやつもいるっちゃあいるが、まあ大抵はVLOOKUP関数ができるのが関の山で、VisualBasicができればウィザード級ハッカー並みだと言われる連中だ。

俺はそいつらよりは多少はマシだと自負している。傍目から見たら同じようなレベルにしか見えんかもしれんが、少なくとも俺は違うと思っている。そうでも思わなきゃやってられねえ。

スーパーハカーになるにはPythonを覚えろ

じゃあ具体的にスーパーハカーになる方法を教える。

まずお前がプログラミング言語をなにも知らないのだとしたら、まずPythonを覚えろ。理由は色々とあるが、Googleで使われている言語っていうだけで、たいていは説明がつく。Googleで使われている言語はC/C++JavaJavaScriptPython、Go、TypeScriptとあるが、そのなかでも最も習得しやすく、かつ、汎用性が高い言語がPythonだ。今、はやりのディープラーニングとかでもPythonが使われているらしいしな。

スーパーハカーになるならばC/C++JavaJavaScriptあたりは最低限覚える必要があるだろうが、Pythonを覚えておけばだいぶ理解しやすくなるはずだ。とりあえずドキュメントを読んどけばまあなんとかなるだろう。

スーパーハカーになるにはとりあえずなんか作れ

Pythonを覚えたか?じゃあ次になんでもいいから作ってみろ。なんでもいいと言われても多分たいていは困っちまうと思うが、本当になんでもいいんだ。Webアプリケーションを作ってみたり、好きなサイトをスクレイピングしてみたり、ロボットを動かしてみたり、Pythonを覚えればまあ一通りのことはできるだろう。

そういったことが楽しいと感じられるようならば、お前はスーパーハカーになる資格がある。もし、そういったことが苦痛で苦痛でたまらないようならば、悪いことは言わん、他の有意義なことに時間を使ったほうがいい。スポーツに向き不向きがあるように、プログラミングというのにも向き不向きはある。

作ったものはGitHubとかにアップして、ブログとかツイッターで宣伝するといい。運が良ければ年収1000万の仕事にありつけるかもしれないしな。

スーパーハカーになるにはベンチャー企業に入れ

さて、Pythonを覚え、自分で動くモノを作れるようになったならば、それを仕事にすることが成長の近道だ。そしてプログラムを書くならばベンチャー企業がおすすめだ。特にWeb系と呼ばれている業界だ。今まで書いてきたプログラムを見せたりすれば、入れる確率は高まるだろう。だから、自分の手でプログラムを書くことは重要だ。

間違ってもIBMとか日立とかNTTとかの大企業に行っちゃあだめだぞ。大企業に行けば確かに安定した生活や給料が保証されるかもしれない。運が良ければプログラムを書く仕事が割り当てられるかもしれない。だが、ああいった大企業の奴らの大半はくだらないExcelPowerPointやWordの資料を作ることを生業としており、そういったクソみたいな資料を作る仕事をマスターベーションのように押し付けてくる。

おまえが筋金入りのマゾでMicrosoft Office製品が好きで、一生ExcelでVLOOKUP関数を使っていたいならば止めないが、確実にスーパーハカーからの道からは遠ざかるだろう。

まあ、ベンチャー企業にもクソみたいな会社はいっぱいあるから、よく調べていい会社に入れるよう、神に祈ることを忘れないようにな。

ここまで来たらスーパーハカーになるかどうかはお前次第だ

運良くベンチャー企業に入社できれば、スーパーハカーへの道がお前にも見えてくるだろう。

そしてここまでくれば、マトリックスのネオやシュタゲのダルはファンタジー世界の登場人物だと気づくだろう。お前の想像したスーパーハカーなんて、Hello World!すらコードを書いたことがないやつが想像で書いた勝手なイメージにすぎない。

ここから先に俺が教えられることはない。なぜならば、俺はただのしょぼくれたエンジニアにすぎない。ベンチャー企業に入ってもなければPythonもできないんだ。うん、言いたいことはわかっている。お前の言うことは信用出来ないと思っているんだろう。心配しなくてもいい、俺が今回の記事に書いたことの大半はハッカーになろう (原題:How To Become A Hacker)の受け売りだ。この記事を読んでもらえれば、俺が話したこととだいたい同じようなことが書いてあるはずだ。

いずれにせよスーパーハカーになるのには時間がかかるものだ。焦っても仕方がない。そんな感じで、最初の記事は終わりだ。あー疲れた。