こんにちは、スケです。
先日、大学一年の夏頃からお世話になっていたベンチャー企業を退職(?)させていただきました。
僕がプログラミングの勉強を始めたのは大学に合格した3月。
そこからProgateをやりーの、dotinstallをやりーの、最後にTechAcademyに通って、よっしゃインターン行くぞ!と求人を探し始めたのが大学一年の夏休みが始まる前。
そこから運良く、本当に運良く、ベンチャー企業のインターンに採用されまして、大学一年の春休みが終わるまでコードを書いてました。
夏休み、春休みなどの長期休みは、週4~5でフルコミットで、每日7~8時間ぐらい働き、大学の授業がある間は、フレックス制、リモートワークが可能な会社ということもあり、色々小回りを効かせて週20時間〜ぐらい働いてましたね。
大学二年から授業が忙しくなるので、僕の現在の能力ではインターンと学業を両立することが厳しそうだったので、キリのいいところで辞めた、という感じです。
PPCもはじめましたし、youtubeをとったり、アフィリエイトをやったり、と色々やらないといけないことが増えていた、というのもあります。
そこらへんの思いについてはこのあたりの記事で詳しく書きました。
早稲田の理系大学生ですが、お金を稼ぐことに死ぬ気でコミットしていきます【エンジニアやめるってよ】
PPCアフィリエイトを始めてみた【 2週間で5万儲かったった】
積もる思いもありますし、ちょうど今までの自分の軌跡を振り返るいい機会なのかな、ということで、インターンを始めた経緯とか、成長したこと、思ったこと、感じたこと、つれづれ書いていきます。
この記事を参考にしてくれる大学生とかがいれば嬉しいなと。
って感じでいきます!
入社経緯
なんでプログラミングの勉強を始めたのか
振り返ると懐かしいですね。国立の入試が終わった3日後ぐらいにProgateの有料会員登録をしてプログラミングの勉強を始めたことを思い出します。
なんでプログラミングの勉強を始めたのか?
と言われると理由はけっこう色々あります。
稼げる
まず稼げるということ。プログラミングは稼げるらしい、ということを色々調べている最中に知ったことがでかいですね。
まあ、できるエンジニア、ポジショニングが上手いエンジニアは稼げますね。そこに至るまでに、半年から2年ぐらい、かかるという感じ。
僕は正直、できるエンジニアになって、学生のうちに案件を受注したりしてがっぽり稼ぎたいな、と思っていたのですが、わざわざエンジニアをやらなくても、もっと効率よく稼げる方法があったので、今はそっちに注力しています。
インターネット上で資産を作る、って感じですね。
自動化という言葉に惹かれた
自動化、という概念が大好きだったから。これもプログラミングの勉強を始めた理由の一つですね。
僕は、プログラミング自体もそれなりに好きなんですが、それよりも高次の概念の、自動化、仕組み化、というのにものすっごい魅力を感じたんですよ。
ロマンですよロマン。
どこで見たかは忘れましたが、
「10時間で終わる作業があったとき、エンジニアは9時間59分でその作業を自動化するためにがんばってプログラムを書き、最後の1分で実行する」
みたいな名言を知って、これだ!!!と。
自動化、超いいですよね。膨大な作業をコンピューターに勝手にやってもらう。なんて甘美な響きでしょうか!!!
エンジニアの三大美徳にシビれたから
エンジニアの三大美徳というのがあります。
- 怠慢(Laziness)
- 短気(Impatience)
- 傲慢(Hubris)
のことです。
これだけ聞くと誤解が生まれそうなのですが、あえてその誤解を解消するようなことはしません。文字数がけっこう増えるから。
で、僕はこのエンジニアの三大美徳というのを読んで、感銘を受けたわけですよ。これこそ今の日本に欠けている思想ではないか、と。
怠慢、最高じゃないですか。
誰だって、面倒で退屈な事務作業とかやりたくないですよね。クリエイティブなことだけしたい。
短気、なんの問題もありませんよ。
むしろ、これまでの世界の発展は、短気な人が日常でイラついていることを解消しようと頑張ったからなのでは、と思ったり。
傲慢、かっこいいですよね。
傲慢であるためには、誰よりも優れていないといけない。結果なき傲慢なんて、恥ずかしすぎて死ねます。傲慢でいるために、自分に責任をとり、どこまでも自分を磨き続けるんです。
なんとなくかっこよかったから
プログラミングができるってかっこいいですよね。
文字がダァーーーーーーーッッと流れていく黒い画面に向き合う後ろ姿、めちゃんこかっこいい。
「ここの作業がだるかったからサクッとプログラム書いて自動化しといた」なんてセリフを放ちたかったんです。
ちなみに、まさにこの記事を書いている2019年4月現在、早稲田の理工学部では、理工学基礎実験と呼ばれる恐ろしく面倒な科目があるんですが、ある実験の予習の超しんどい数値計算をプログラムを書いてわざわざ手計算することなく済ませました。
俺って成長したなぁ!と思える瞬間でしたよね。
未経験から採用された
インターンに応募する時は、なにか1から自分で作ったものがあると、超強いです。
というのも、ほとんどの実務未経験からエンジニアをやろうとする人が、自分でプロダクトを0から作ったことがないから。
僕がインターンをしている会社に、多くの人が面接に来たり、体験入社に来たり。これから一緒に働くかもしれないから、ということで会社の方針(というよりエンジニア部の方針)で、インターンの僕も採用に関われたんですね。
ちなみにこれは超絶いい経験でした。20歳かそこらで人を雇うか判断するって中々ないです。
さらにちなみに、採用の経験をした中で、かなり大事なのにちゃんとできている人少ないな、と思ったことが2つありまして、それは、言動と行動を一致させることと、インターネット上での人格(twitterとかfacebook)と現実世界での人格を一致させること、です。
これ、超大事。
まず、言動と行動を一致させるということ。
特に学生に多かったんですが、起業したいとか、プログラミングが大好きで、とか言う人がいます。
もちろん、それ自体はなにも悪くないんですが、いかんせん、行動がまっっっっっっったく伴っていない。
起業したいなら、なんかプロダクト作れよ、と。そんな腐った目をしてるくせに起業とか何なの、と。
なんの実績もないし、特に秀でた何かがあるわけでもないのに生意気だったり。(かわいい生意気と、単にうざい生意気というのがありまして、僕がここで言及しているのは後者)
プログラミングが好きなら、なんでお前のgithubには、プログラミングスクールで作ったものとしか思えないリポジトリーだけなの?、とか。
プログラミングが好きなくせに、そのスキルレベルは何なの?、とか。プログラミングに対する、言動から伝わる情熱と、行動によってわかる情熱が著しく乖離している場合。
次に、インターネット上での人格と現実世界での人格を一致させること。
これからの時代はますます重要になってきますね。なんというか、ツイッター上ではやたら弁舌達者で、キラキラしているのに、現実世界でいざ対面してみると、なんか目が濁ってね?みたいな。
この人格の乖離、もしくは、演じたい人格と実際の人格の不一致、という現象は、ま・じ・で、悪いメッセージを放ちますよ。
実際に会うと、本当に色々なことがわかる。
立ち振舞い、喋り方、声の大きさ、背筋、背丈、上背、ファッション、顔つき。単に発言の内容だけでなく、これらの非言語的、無意識的な情報が、いやというほど伝わる。
体験で入社してくる方をたくさん見てきて思ったことですけど、やっぱりダメな人って、パッとひと目見た瞬間にダメなんですよね。
というより、最初の印象で受け取った通りの人格である、ということが非常に多い。逆に、良さそうな人って、パッとひと目見て良さげだな、と。
しかもこれって、僕だけの偏見とかではなくて、他の先輩エンジニアとか、インターンの仲間に聞いてみても、大体みんな同じ感想を抱くんですよ。
自戒を込めて書きますが、インターネット上でキラキラしたいなら、現実世界での人格とか、ふるまいもそれに近づけるよう努力しましょうと。
というか、そんなふうに人格が別個のものになっていたら精神的にしんどいと思うんです。
恋愛もそうですよね。やたらLINEはしてくるのに、実際に会うと全然話してこないとか、ぶっちゃけドン引きしません?
中学とか高校のときにいませんでしたかね。やたらSNSに投稿していたり、キラキラしているのに、実生活ではアレ?って人。はっきりいいます。印象最悪です。
別に悪口を言うわけではありませんが、そういう人は、負のメッセージを全身で放っているんですよね。
だって怖くないですか。
クラスメイトでめっちゃLINEしてるのに、教室では目も合わせてくれない、みたいな。サイコパスなの、みたいな。腹の中に黒い感情をためこんでいるのだろうか、と色々勘繰りますよね。
付き合っていることを隠しているカップルならわかるけど。バレたら磔刑みたいな、身分の違う禁断の恋みたいな、そういう状況ならわかるけど。
僕も昔やってました。。。。。。。。。
特に男!!!気をつけてくださいよ!!!
話が超それましたが、未経験からインターンとして入社した、という話でしたね。
実務未経験からのスタートということもあり、始めは超大変。
新しい知識の波に忙殺される每日。
というか、今まで勉強してきたことが使えるレベルまで落とし込めていない、ということが明らかすぎるぐらい明らかになりましたね。基礎中の基礎であるHTML、CSSでも、僕はろくに書けなかったんですね。
よくコードの写経をやっていたんですけど、頭を使わない写経、というのはただただ時間を浪費するだけ、ということを学びました。
アタリの会社だった
未経験で特にポートフォリオが充実しているわけでもない僕でも、なんとか会社に潜りこむことができました。
正直、かなり運要素が強かった気がしますね。ほんとラッキーでした。
ちなみに、確実にインターンで採用されたいなら、なんでもいいから作品を作ること、これだけで、よっぽどの難関では無い限り、ほぼ確実に通ります。
未経験エンジニアを仕事で使えるレベルまで持っていかせるのって、かなり工数を消費するんですよ。コードレビューにしかり、タスク振りにしかり、質問に答えるにしかり。
企業側が未経験のエンジニアを取るときには、こういうリスクが乗っかかってくるわけです。
要はバクチとあんまり変わらないわけですね。プディングの味は食べてみなければわからないのと同様、ポンコツかそうでないかは雇ってみるまでわからない。
作品を作っているということは、そこら辺のハードルを超えている、ということの何よりの証明なんですよ。だって、なにかプロダクトを作るのって、それが小規模だったとしてもかなり大変ですからね。
アプリの構想、モデリング、実際のコードに落とし込む、機能を追加する、テストコードを書く、デプロイする、テスト環境と本番環境を使い分ける、リリースする。
膨大な知見を得られるんですね。プロダクトを自分で作るというのは。逆に言うと、かなりしんどいわけですが。
つまり、ここで矛盾が生じます。未経験のエンジニアでも、インターン/正社員として雇ってもらうためには、自分でプロダクトを作らないといけない。
ただ、プロダクトを作るためにはある程度実務経験を経て、それなりにプログラムを書けるようにならないといけない。
もちろん、未経験でもプロダクトなり作品を作れる人はいますが。
とはいっても、突破口も存在していて、どんな企業でも、雑用、雑務、いわゆる文言修正だとか、スタイルをちょっと修正するだとか。
こういうフロントエンド周りのタスクは日々出てきますし、正直、エンジニアからしたらかったるいわけですよ。そんなの誰でも出来るでしょ、と。
ここのポジションに潜り込むのが最短かつ最も簡単なルート、なはずです。
ある程度HTMLとCSSが書けるようになればそのぐらいはできます。楽勝です。
自分で0からプロダクトを作らない、もしくは作れなくても、サイト模写をいくつかして、それをポートフォリオにすることで、コイツになら雑用を任せられる(or押し付けられる)、と思ってもらえれば、インターンにしろ、正社員にしろ、未経験エンジニアが採用されるまでのハードルはぐっと低くなるのかなと。
要は、htmlとcss(scss)を、簡単なページなら何も見ないで作れるぐらいにしておいて、いくつかサイト模写してそれをポートフォリオにする、これです。
で、会社に潜り込んだら(←言い方)勝ち。
最初はくっそつまらない作業かもしれませんが、徐々に振られるタスクが難しく、かつ大きくなっていくので、実際の現場で使われているコードを読みまくり、コードを書いていくことでプログラミングの能力は飛躍的に上がっていきます。
フロントエンドだけでも奥は深いですよ。
僕の場合、htmlとcss, scssはある程度知っていたんですが、業務で使われているのがhamlだったり、slimだったり。
あとはサイト構造をするときのクラスの命名にも手法があって、BEM記法ってのがあるんですけど、知らないことはめちゃめちゃありましたね。
フロントエンド周りだったら、javascriptからは逃げられませんし、簡単なタスクでも学べることは意外とたくさん見つかります。
そうしたら後は楽勝で、プロダクトを開発する、なんていうのも道筋がある程度見えるようになります。スキルレベルも上がっているので、転職も余裕でしょう!
できるようになったこと、プログラミングのスキルレベルの上昇について
どれぐらい成長したのか。これが皆さんのもっとも気になる部分なのかなと。
100レベルアップした、みたいな定量的な答えは返せないんですが、あえて表現すると、何もできないところから、小規模アプリなら作れそう、ってぐらいまで成長しました。
この記事を書いている2019年4月現在で、プログラミングを始めてから1年が経過したんですが、別人レベルになった、というのがまず一点。
残念なことに、当初自分の期待していたレベルまでは伸びなかった、というのが1点。これにも理由があって、途中から業務以外であまりコードを書いたり勉強をしなくなってしまったんですよね。
ブログを書いたり、海外ドラマを観たり、PPCアフィリエイトをやったり、とプログラミング以外のことばっかりやってました。そっちのほうが将来的に稼げる額が大きくなりそうだから、ということです。
逆に、業務以外でも、Qiitaに記事を上げたり、自分でプロダクトを作ったりしていた人はめちゃめちゃ成長していましたね。
僕より後にインターンとして入った人がいて、プログラミングを始めたのも僕より後でしたが、とにかく勢いがすごかったです。ぐんぐん成長してましたね。僕よりずっとコードが書けるなぁと思いました。
その人も、別に才能がずば抜けてあるとか、そういうことではないと思うんですけど、プログラミングに投下する時間量がえげつなかったです。
每日每日死線を乗り越えてきてんだぜ、感がすさまじかった。で、そのぶん成長しまくっていたと。
最初の数ヶ月で一気にバコーンと上がった
僕自身に関しては、業務未経験から入社して最初の数ヶ月ぐらいの濃度がやばかったです。
調べれば調べるほど無限に知らないことが出てくる。1つの用語を調べるために、5個の用語の意味について理解しないといけなくて、みたいなことがしょっちゅう。
大変でしたが、やっぱりこのときが一番知識も増えましたし、自分が成長していることが実感できましたね。日々是決戦、日々成長、という感じ。
スキルもぐんと伸びました。最初の業務でLPを作りました。超大変だったんですが、終わってからはスキルレベルが著しく伸びたなと。
エラー解決
エラーに対する向き合い方は本当に変わりましたね。
TechAcademyで勉強していた頃は、わからないことが出てきたら、ちょっと調べるかすぐメンターに相談、なんて感じだったんですが、今ではどんなエラーもかかってこいや!という心構えになっています。
インターンとして会社に入社してからも、
30分ぐらい格闘して結局ダメで先輩に泣きつく
↓
エラーメッセージをググって、問題を解決できるようになる
↓
自分で思いつく手段をとりあえず試して、頑張ってから先輩に質問する
↓
エラーメッセージをググり、Qiitaやstackoverflowで似た事例がないか調べ、自分で思いつく全ての手段を試し、仮設も検証し、背景知識も入れて、それでもダメだったら先輩に質問
↓
さらにログを解析できるようになった。これによって自分だけでエラーを解決できる確率が大幅上昇
↓
ログの解析に加え、一次情報であるドキュメント(docs)を見るように。
英語だったけど、幸い英語はできたので、なんとなくいけるように。業務で発生するエラーは、時間はかかるもののほぼ一人で解決できるように
こんな感じで進化しました。完全に別人ですよね。自分が一番驚いてますよw
ログを見れるようになった
これもめちゃめちゃでかい。
ログを知らない方のために一応サクッと解説しておくと、コンピュータの利用状況やデータ通信など記録とか応答、だと思ってください。
例えば、どこかのサイトで新規会員登録をするとき、利用するユーザー側からは、画面が変化したり、認証のメールが飛んだりするわけなんですが、このログを見ると、いつ、誰が、どんな名前で登録した、なんてこともわかりますし(パスワードは暗号化されているので大丈夫ですよ!)、その他諸々のデータがログを見れば一目瞭然なんですよ。

↑要はこういう感じのやつです。よく映画のハッキングの画面で出てくるやつと思ってもらえれば。
最初、僕もログを敬遠していたんですよ。
どうせ読んでも理解できないだろうみたいな。黒い画面に浮き上がる膨大な文字群に圧倒されてたわけですね。
しかし、その思い込みは全くの間違いで、実はログって超役に立つんだよ、ということに気づきました。
先輩に教わって気付かされた、という方が正しい言い方かな。
全ての答えはログに書いてありました
探せぇ!この世のすべてをそこに置いてきたぁ!という感じで、プログラマーにとってのワンピースはログの中にありました。
使い慣れてからは、常にターミナル上に表示させるようにしないと落ち着かない、というか不便と感じるまでに。
不思議ですよね。黒い背景に浮かび上がる大量の文字に面食らっていた男が、それがないと業務に支障をきたすレベルまでなるんですから。
一人で作れるようになった
この点に関しては成長著しいですね。
一人で実装できるようになった気がします。まだ、ちゃんと0からアプリを作ったことがないのでわからないですが、多分作れるでしょう。
僕の成長過程を綴っておくと、僕が働いていた会社の開発環境は、バックエンドがRails、フロントエンドがhtml, cssの拡張言語のhaml, scssでした。
最初はほんっっとに何も書けなかった。まじで。驚きの白さって感じです。
そこから、魔のLPコーディングをくぐり抜け、通らないテストを通し、コードレビューで指摘される箇所が減っていき、modelやcontrollerがイジれるようになり、ログを見てエラーを解決できるようになり、機能単位での実装が可能になり、みたいなところまで成長しました。
点と点がつながった
座学で学んでいた知識が、実践を通すことで、やっとつながってきました。
rubyのこと、railsのこと、なんでこうなっているんだろう?という疑問が日に日に解消されていくのがとても気持ち良かったですね。
っっっぁああああーそういうことなのかぁぁああああ、上手く出来てるなぁ、と。
今まではカケラの集まりにしか過ぎなかった知識群が、急に意味を持った一つのまとまりとして見えるように。
思ったこと、感じたこと
思ったこと、感じたことを書いていきます。エンジニアリングの話、ビジネスの話、マインドの話、とにかく色々です。
実務未経験と、仕事としてコードを書けるレベルの差
Progateやプログラミングスクールで学ぶレベルと、自分で何かを作れるレベルには、大きな隔たりがある、というのが痛いほどよくわかりました。
やっぱり、座学は座学にすぎないんですよね。自分の脳で汗かいて、試行錯誤して、自分で作っていくことでしか知識は使えるレベルまで持っていけないなぁと。
gitの使い方にしろ、html, cssにしろ、rubyにしろ、railsにしろ、本当に簡単なものでもいいので、自力で何かを作るorやらないと成長はないですね。
僕は最初、gitの使い方ですらあやふやでしたよ。
仕事で、プロジェクトをローカル環境で開発できるようにしたり、コードレビューをお願いするためにpushしたり、トラブルが起きてrevertしたり、一時作業を中断するためにstashしたり、と実際に使わないと僕は使えるようになれませんでした。
逆に、一旦慣れてからは、なんでこんな簡単なことができなかったんだ、と思ったり。
結局、0→1が最も大変なんだなーと身をもって学びました。
0→1が一番キツイ
はい、0→1が一番キツイ。
こと、「学習」に関連するものは全て当てはまると思うんですが、例えば、タイピング。
僕が始めてタイピングを習ったのは中学の技術の授業。そこで、ゲームを通してタイピングを学ばされました。
元々ゲーム好きだったし、タイピングできたらかっこいいだろうな、とモチベーションが高まっていたので、熱中して家でもそのゲームに打ち込んだのですが、まあ最初はしんどかった。
頭で考えることと身体の動きが全く一致しない。ちょっとむずかしいやつが出てくると、突然頭の中が○▼※△☆▲※◎★●・・・・・・・・・・・・・!?とパニックに。
まったくイメージ通りに動いてくれない自分の身体。
ですが、ハードルを下げて、一個ずつ課題を解決していくと、次第にスムーズにタイプできるようになりました。
最初は、aiueo、これだけを練習、そこからは、あ行とか行を使った練習、次は、あ行とさ行を使った練習、次は…と小さな一歩を積み重ねてきた結果、キーボードを見ながらならどんな言葉でもスムーズに打てるように。
次はブラインドタッチ。
ここでハードルがガツンと上がりましたね。最初、見ないでタイプしようとすると、全く指が動いてくれないことに気づきます。そこで、また一からハードルを乗り越えることに。
まずは、キーボードを見ないで、aiueoを打てるように、次はあ行とか行、あ行とさ行、あ、か、さ行の次は…というふうに練習していった結果、今ではこうして、エディター画面を見ながらキーボードを見ずともカタカタとタイピングできるように。
ちなみに、インターンやブログで記事を書いた経験から、さらにタイピング速度は上昇しました。大学の友達にはビックリされたこともあるので、まあそれなりに速いんじゃないかなと。
他にも0→1の経験があります。僕が高校生の頃、学園祭のブロック発表でダンスを踊ることになったのですが、これがむちゃくちゃ難しかった。
今までサッカーしかやってこなかった自分にとって、ダンスは完全に未知の領域。初めてやったときは、もう大惨事でしたね。通報されるんじゃないのってレベル。
何だこの気持ち悪い生命体は、ぐらいの感じで、見た目はグロテスクな深海魚並だったはず。というより、周りの僕を見る目からそう判断しました笑
まず、手と足を同時に動かすというのが、なんでこんなに難しいんだ、と思いましたよね。
糸の切れたマリオネットみたいな状態になる自分がいました。3つぐらい複合されるとお手上げ。為す術がなし。
そこから、一個一個動作を習得していき、動作の連携もそれ単体で練習し、踊りを覚え、音楽に合わせて表現し、というところまでは行ったんですが、どうやら僕の動きは「固い」らしく、どうしても学園祭でかろうじて通用するレベルまでしかいけませんでした。
まあ、今となっては原因も解決策もわかるので、時間が与えられたらそれなりに持っていける自信がありますが、当時はそんな余裕はなかったですね笑。
まあ、一応「ダンス」にはなったかなと。
で、やっと話がプログラミングになります。
インターンで入社してから初めにきたタスクがLPコーディング。htmlとcss。これがプログラミングの0→1でした。
このLPが本当に大変だった。今まで何をやってきたんだ俺は、と言いたくなりましたよ。
最初は、marginとpadding、区別つかなかったですからね。どっちが内側だっけ?みたいな。flexとかも知らなかったですし。
そもそも、コーディングをする以前に、githubからプロジェクトをpullしてこないといけませんでした。
ここで一つつまずき、そこからプロジェクトを動かすためにゴニョゴニョする必要があり、そこでもつまずく。
さらに、どのディレクトリで作業をすればいいのか、cssを反映させるためにはどうしたらいいのかをリサーチするのに小一時間かかります。
で、branchを切ったり、bundle installしたり、でやっとこさ、作業をする準備が整いました。この時点で1日終わっていた気がします。もうすでに満身創痍。
二日目、LPの枠組みをまずhamlで組みました。で、フロントエンドエンジニアの社員の方にコードレビューをしていただき、完膚なきまでにボコボコにされる笑
血反吐を吐きながら、なんとかOKがでるレベルのものを作り上げるも、まだhtmlの方しか終わってません。
まだまだ地獄は始まったばかり。cssを当てて、デザインを再現していく作業、これがしんどかった。
何をどうすればどうなるのかが、まったくもってイメージできず、愚直に片っ端から色々なスタイルを試していったという感じです。
っっくっっっっっそ、なんで思い通りに動いてくれねえんだよぉぉおおおおおおおおお
と叫びたくなったことは一度や二度ではありません。
それでも、社員の方とのペアプログラミングのおかげもあり、ボロ雑巾のようになりながらも一応やっとこさでcssがフィニッシュ。
この時点で1週間ぐらいだったかな。
しかし、まだまだ先がありました。マラソンで言えば、ちょうど半分を過ぎたあたり。
まずレビューで再起不能になるまでボコボコにされます。あ、もちろん、ディスられたりとかはないですよ。ここをこうしたほうがいい、という場所がたっくさんあるだけ。
そして次に、各ブラウザへの対応チェックが残っていました。
そうなんですよ、Chromeだけに対応すればOKじゃないんです。仕事ですから。
世間的にはWindowsユーザーのほうが多いですし。ちなみにこのとき、エンジニア業界で言われている「IEはクソ」という言葉の意味がこの身に叩き込まれました。
ついに、OKが出たと思ったら、最後の関門、LPを依頼してきた方のチェックが入ります。そして修正すべき箇所を何個か上げられて、それを直して。
そして、そして!!!
ついに!!!
LPが完成!!!!!
製作期間2週間。僕の処女作です。もう泣きそうでした。てか多分ちょっと涙出てたかな。
感無量とはこのことです。シャンパンを開けたいぐらい。まだそのときの僕は19歳だったんですけどw
で、振り返ってみると、死ぬほど濃い2週間、死ぬほど成長した2週間だったな、と。
サイヤ人は死の淵を乗り越えると劇的に強くなりますが、まさにそんな感じ。生まれ変わった、そう言っても過言では無いです。
ちなみに、このとき書いたコードを直すときがあったんですけど、ひどすぎワロタってクオリティでした。
こんなの人に見せてたの、みたいな。今の俺なら、あのときよりも遥かに良いコードがもっと短期間で書けるぜ、というのが感想です。
現在の僕があのLPをやるとしたら、多分2,3日ぐらいしかかからないんじゃないかな。作るだけだったら1日でも終わりますね。そのぐらい技術、知識レベルが変わった、ということです。
かなり長くなりましたが、やっぱり0→1が最も高い山だよねって話。
スキルが最大の報酬、といいつつ、お金もやっぱりほしい
スキルが最大の報酬、これは真理です。特に、駆け出しの頃であればなおさら。
会社にこき使われても、長時間働いても、安月給でも、ぶっちゃけスキルさえつけば何の問題もないんですよね。
そのスキルを武器にすれば、転職も楽勝ですし、給料もボコッと上がる。業務スピードが速くなっているので労働時間も短縮される。
特に未経験エンジニアであれば、一社目に期待するところは「モダンな環境でコードが書ける、コードレビューが受けられる、気軽に質問できる」これだけに集約されるでしょう。
つまり、成長できる環境か否か、ということです。
幸い、ほとんどのWeb系企業なら上記の条件を満たしているはずです。
会社へのこだわりとか見栄とかどうでもいいので、入れるところに滑り込みで入っておけ、というのが未経験エンジニアが成功する最短ルートなのかなと。
そして、スキルは最大の報酬、この言葉に戻るんですが、そうは言っても、僕は三度の飯よりプログラミングが好き、という人間ではないので、お金もほしいんですよね。
僕の場合は、稼げるからプログラミングを始めた、ということもあるのでなおさらです。
で、入社してから半年も経つと、技術力って別人レベルになってるんですよね。
だけど給料は変わらないわけです。まあこれは、あなたを未経験から育てる代わりに安月給でも我慢しなさい、ということなんですが、だんだんこのギャップが激しくなってきます。
プログラミングを始めたのはお金を稼ぐのが目的だったのに、なんで俺は安月給でいつまでも働いているんだ、そう思うときがやってくるはず。
そしたら転職するなり、会社に給料の交渉をするなり、してもいいんじゃないでしょうか。
日本のエンジニアって買い叩かれがちなので、少しぐらい強欲にいっても、ワガママになっても、全然バチ当たらないと思いますけどね。
エンジニアが買い叩かれがちなのは、コードかければお金なんてあまり興味ない、という人たちが存在して、エンジニアのトップ層に位置しているからなんですよねー。あの人が1000万なら、その10分の1にも満たない俺が300万ももらっていいのか、みたいな発想になってしまうと。
僕はお金が欲しかったです。お金が必要でした。
生活が貧しすぎたし、やりたいことが死ぬほどたくさんあってお金が必要なので、PPCアフィリエイトをしたり、ブログを書いたりしているってわけです。
やっぱりね、恩義は感じているんですけど、時給1000円じゃしょっぱくね?というのが思うところ。
入りたてならそれでも全然構わないんですが、ある程度一人で業務がこなせるようになると、給料上がらないかなと期待しちゃいます。
後、時給1000円だと生活が苦しいっす!ぶっちゃけ!PPCアフィリで広告費をぶっこみまくるので。まだPPCの報酬が入ってきてないので、バイトと仕送りで賄っているというのが現状なんですよね。
エラーと何時間も格闘するって無意味じゃね?
よくエンジニア界隈では、「エラーを解決するために深夜モニターとにらめっこしてた」とか、「一つのエラーを解決するのに3日かかった」ということが多いんですが、正直それって時間のムダじゃね?と思うんですよね。
ある程度まではエラー解決の難易度とそれにかかる時間は正比例すると思いますし、力もつくと思うのでいいんですけど、それ以降、例えば半日とか、数日単位になってくると、もう時間もったいないよね、ってのが僕の感想。
そのエラーって見る人が見たら10分もかからないかもしれない。
なら、自分で30分頑張って、もしダメだったらその人に頼る、こっちのほうが遥かに生産的だよね、と思うんです。
エンジニア界隈って、この「一流のエンジニアになるためにはエラーと何時間も対決しなきゃならない」みたいな神話がまかり通っているような気がしていて、実際僕もこのように思っていたんですよ、始めは。
ただ、だんだんと、これって寿司屋の職人問題と同じじゃねーの?と疑問を感じ始めました。
寿司屋の職人問題というのは、寿司屋の板前になるには、寿司を握るまでには雑用を○年やって、シャリだけを握ることを○年やって、そしてネタを扱って○年やらないと一流にはなれねぇ!みたいな風潮、言説がある、ということです。
最近では、効率を突き詰めた寿司屋の専門学校があって、そこに1年も通えば一流の寿司職人の技術は身につくと言われており、実際に評判もいいらしいです。
しかしこの方式が現役の板前から非難轟々でして、そんなものは職人とは言えねぇ!みたいにボロクソに言われることもあるそう。
ですが、現代っ子の僕からすると、なにをどう考えても、同じ実力がつくなら料理学校で一年過ごしたほうがいいんじゃねーの?と。
何年も時間短縮できますよね。ならこっちのほうが絶対いい。
板前が言うわけですよ、やれ、伝統を受け継いでいない、とか、やれ、そんなものは職人とは言えない、とか。そんな彼らの言葉の裏には、「たった一年で同じ実力がついちゃうなら俺が今まで頑張ってきた何十年は何だったんだよぉ!」って思いが隠されているわけですね。
そんな簡単に一流になれる環境があるなら、これまでの自分の人生は何だったんだ、と存在理由を全否定された気がすると。
まあこういう行動背景があるんですが、エンジニアもこれと似ているなと。
俺がエラー解決するのに3日かかったのに、それが10分で解決するなんて、そんなのうそだぁ(泣)!!!となるわけです。
エンジニア力を上げるためには、自分で頑張ってコードを書くことと、自分より技術力が高いエンジニアから指導を受けることを交互にやっていくことが最も効率がいいはずです。
コードを書いて、エラーが出たり問題が解決できなかったら、まず自分で粘り、ある程度頑張ったら、遠慮なくメンターに頼る。超効率いいじゃないですか。
天然物とか養殖物とか関係ないので。美味しかったらなんでもいいんですよ。過程なんてものは評価されないので。
ただ、できるエンジニアの時間単価って5000円~10000円ぐらいあるので、軽々しく質問するのも気が引ける。
だからこそプログラミングスクールがあるわけですね。こちらがお金という対価を払っているのだから、質問に答えてもらうのは当たり前。
学校で学んだことって社会では役に立たないよ、とよく言われますが、僕としては「いや、それはお前が役に立たないことを学んでいるだけだから」というのが思うところ。
プログラミングスクールだって、行くタイミングと使い方しだいで、自分より先にプログラミングを始めた人たちをごぼう抜きできる超便利な環境になるはずです。
こんなことを考えました。
Railsってすげえ
Railsまじ半端ないって。そこらへんの大学生でも簡単に機能追加できたり、アプリ作れたりするもん。そんなんできひんやん普通
C言語だったりJavaだったりではこうはいきません。
そこまでプログラミングの内部の内部まで理解していなくとも、そこそこの理解でサクッとWebアプリが作れてしまう、ヤバイですよ。
言うなれば、剣と馬の世界だったところに銃が持ち込まれたようなもので、一般人でも銃を持てば立派な戦力になります。
ただ、Railsって便利だけど難しいなぁと勉強すればするほど思いました。背景知識が膨大すぎる。
できるエンジニアって本当半端ない
できるエンジニアは本当に、本当に、生産量がエグいな、と見ていて実感しました。僕が100人束になっても勝てる気しないですもん。
魔法使ってんのかってぐらいピュンピュンとコード書いてるんですよね。しかも、その一行に込められた意図が半端ない。そんなことまで考えてんのってぐらいの思慮深さ。
上位層のエンジニアってこんな感じなのか、と壁の高さを感じました。だからこそ、技術力で食っていくのはやめようと思ったわけですけどね。
会社は勉強する場所ではない
どこかの会社の募集のところに、「会社は勉強する場所ではありません。業務をする場所です。勉強は家でやろう」みたいなことが書いてあって、「何だとっっこのえらそうにっっっ」と一瞬思ったんだけど、完膚なきまでに正しいです。
そうなんですよね。会社からすると、お前を雇ったのは勉強させるためじゃねぇんだぞ、ということなんですよね。
もちろん、業務をこなしていくことで実力が上がっていくのはいいんですが、ちゃんと会社に価値提供してるのかお前は、と。
人を教えるのってめっちゃ大変だし、コストがえげつない
並の未経験エンジニアを実務で使えるレベルまで持っていくのって本当に超超超大変なんですよ。
社員の方にペアプログラミングしてもらったり、コードレビューしていただいたり、自分が書いた昔のコードをしながら思いましたが、もし自分だったらこんな手間のかかるやつの世話はしたくねぇーなーと。笑。お金もらわないと到底無理です。
だからこそプログラミングスクールというのは需要があるんですね。
もっというと、限りなく会社の業務に近づけた内容にして、これさえやれば実務で即使えるレベルまで教育できます、就活楽勝です、というカリキュラムを組めるスクールの需要はこれからもっと伸びるなと。そういうスクールって中々ないですからね。
テックキャンプとか、TechAcademyとか、一応プログラミングは学べるんだけど、やっぱり実務レベルには程遠いんですよね。
色々リサーチした感じだと、ポテパンキャンプがプログラミング初心者を実務で使えるレベルまで引き上げてくれるスクールとしては一番良さげです。
僕が今からプログラミングを始めるなら、絶対にポテパンキャンプ行きますね。評判が超絶いいですし、カリキュラムを聞いた感じ、ほぼ実務と一緒でしたし。
働いた時間に意味はない、アウトプット量、どれだけ価値を生み出せたかが重要
高度プロフェッショナル制度がうんたらかんたら、ということですが、要は、これだけ働いたから給料頂戴、なんて真似が許されるのは大学生と肉体労働だけだよねって話。
アウトプット量、もっというと、会社にどれだけの価値を生み出したか、これだけが唯一の指標ではないかなと。
どれだけ頑張ってますとか、〇〇時間働きましたとか、そんなもの何の意味もない。もちろん、大学生ぐらいまでは、結果より過程が評価されますし、評価されるべきです。
過程を重要視することで、後々結果というのはついてきますからね。特に小学生とか中学生。この頃は、頑張ることに意味があります。いや、ほんとに。
しかし、価値基準は年齢ごとに変化してくるわけで、もう社会人になったら、というか仕事をしているなら、「どれだけ価値を生み出したか」、これ以外で評価されてはいけないですよね。
ブログ100記事書いたって、アクセスが0だったらそれは単なる精神的自慰行為に過ぎません。
ブログ100記事書いたのでグーグル先生、どうかアドセンス収益をください!なんて言うやつには、くたばれ!と、いくらグーグル先生が寛大で慈悲深くてもそう思いますって。
もちろん、ブログ100記事を書くことができた秘訣、みたいなコンテンツを作って、それが人に読まれれば世の中に価値を生み出すことはできます、が、結局の所、価値を生み出したか、これが全て。
僕も最初は、なんだか冷たい考えだなぁーと思ったんですよ。生み出した価値って何だと。頑張ることにも一定の意味はあるじゃないかと。そんな厳しいこと言わないでよ、と。
しかし、社会というのは厳しいものなんです。誰もあなたに興味はないんです。価値を生み出さない限り。
だって、街でさまよっているホームレスを見ても何も感じないじゃないですか。募金活動をしている人を見て、社会に対する義憤を感じる、なんてことはないじゃないですか。
もうぶっちゃけてしまいますけど、僕はホームレスがホームレスである理由は100%己の人生にあると思ってますし、募金活動をしている人を見ると、募金活動なんてせずに働いて、そのお金を募金しろよ、と思います。
冷たいと言われようが、人格破綻者と言われようが、僕のこの考えは揺るがない。
正直、あまり貢献できなかった
そして最後にここに移ります。
どれだけの価値を生み出せたかが大事、と書きましたが、その観点でいくと、僕はインターンで働いている間、あまり価値を提供できなかった気がします。
僕が8ヶ月の間に書いたコード量は、きっと一流のエンジニアからしたら2〜3週間もあれば書き終わってしまうでしょう。
つまり、僕の存在価値は一流エンジニアの数十分の一にすぎない、こういうことです。
あ、もちろん、落ち込んでるわけではないですよ。
むしろ、僕は前向きだし、将来成功している自分の姿しか思い浮かばないし、自分にできないことは世の中にほとんど存在しないんじゃないか、みたいな謎の全能感に包まれています。
が、それとこれとは別の話です。僕が描いている未来の自分は半端ないことになってますが、現時点だけを切り取って見た時、僕の価値は正直微妙なところだなと。
だからこそ、理想の自分に少しでも近づけるよう、日々自己研鑽とお金稼ぎにコミットできるわけですね。
というわけで、実務未経験からWeb系ベンチャー企業で8ヶ月、エンジニアのインターンとして働いてみて思ったこと、感じたこと、成長したことを書いてみました。
最初の予想以上に書きたいこと、溢れる思いがあったみたいで、なんと合計約17000字!!!原稿用紙42.5枚分ということで、よくもこんなに書けたもんだなと、自分でもビックリです。
けっこう、いや、かなり相当踏み込んでガッツリ書いたので、参考になるかと。つまり、僕は「価値」を生み出せたわけですね笑
以上!!!
コメントを残す