Hello,World!
個人開発でぬくぬくやってきたエンジニアの僕が、縁あってエンジニアインターンし、5日目にしてクビになるという出来事があり、学びが多かったので綴りたいと思います。
◼︎某社との出会い
焼き肉をおごるという企画で、スカウトが来て、オシャレでキレイな焼き肉屋さんでランチをしました。そこで、スゴイエンジニアさんに「このサービスのこの部分をこうしたほうがよくて、ここまで作ったので開発してもいいですか?みたいにすれば自分のやりたい開発ができるんだよ」と言われ、自分のエンジニアのイメージがガラッと変わって魅了されて、興味を持つようになりました。そのスゴイエンジニアさんは、今も憧れているスゴイ方です。カッコイイなと思っています。
◼︎某社の技術責任者との出会い
会社訪問を予定していた日に、スゴイエンジニアさんにスゴイエンジニアさんの上司の方を紹介してもらえるということで、会社とは違うカフェでスゴイエンジニアさんとスゴイエンジニアさんの上司の方とお会いしました。そこで自分が今まで作ってきたものなどを見せて、感心され、
スゴイエンジニアさんの上司
「明日、会社で飲み会があるから遊び来なよ!」
と言われ次の日にお会いすることに。
◼︎某社の社長さんとごはん
お寿司をおごってもらったので、少しは期待値が高かったのだと思います。
(実際はクズで、期待を裏切ってしまったこと申し訳なく思ってます)
社長さんは熱量があり、本気で勝負をかけてるんだなという印象でした。
本当に起業家はカッコイイなと感じました。
ここで、僕は某社でインターンすることを決めました。
こうして、初めてのエンジニアインターン、初めてのチーム開発が始まったわけであります。
◼︎入社1日目
入社したらやることがあり、そのことをやりました。
ここは、スタートアップで創業を経験した私にとっては、「さすがです!」と感心したところでした。
そして、Gitについてググって学んでねとBOSSに言われ、ググりながらやりました。
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
こういうのとか、
git入門 (全22回) - プログラミングならドットインストール
こういうのを見てました。
◼︎入社2日目
BOSS
「Gitの扱い方を学んでね!」
「コマンドライン使えないとエンジニアじゃないよ。」
「GitHubの公開鍵でsshログインできるよね?」
ググってみても、
訳のわからないワードの連続で、
俺が今までやっていたものはエンジニアリングではないのか(泣)
と項垂れていました。
コマンドライン?何それ?普通にインターフェース上にあるやつでやればいいじゃん!
Gitのプッシュ?プル?をコマンドラインでやる意味は?GitHubでいいじゃん!
などなどよくわからない状態で、ただただ、自分の不甲斐なさを感じながらググってました。
ただただググってばっかで、
その都度質問いっても、「こういうのは教えるんじゃないんだよ」と言われてしまいました。
おそらくBOSSは、なんでもかんでも少し調べただけで聞きに来る僕に、少しは考えろと言いたかったのだと思います。
「ggrks」
このワードが頭をグルグルします。
そして、宿題をもらいました。
宿題
『開発環境に、user_idパラメーターでユーザー情報を表示するphpを作ってください』
は?
は?
は?
パラメーター?でユーザー情報を表示???
よくわかりません。
ひたすらググります。
愚直にググります。
気づいたんですけど、Googleって便利だけど、
プログラミングにおいてはピンポイントでなかったり、
その情報のバージョンが違っていたりと、
なかなか求めている情報をピンポイトに得ることは難しいと感じます。
3時間後の僕も、
5時間後の僕も、
「わからない」
そうなってました。
僕が、今までやっていたことは、エンジニアリングじゃないんだ。
そう感じました。
宿題の結果、BOSSにNGと言われ別のBOSSになりました。
◼︎入社3日目
別のチームに変わり、BOSSも変わり、デバックという高貴な作業に携わることができるようになりました。
最初のデバックは、ランキング表示のバグを直すことでした。
PHPはガッツリやったことある僕ですが、人の書いたコードのバグを発見し、直すという作業は初めてでした。
しかし、書いてるコードが難しいし、自分のコードと、本のコードしか見ていない僕は、現場のコードが未知数でした。
この$getは何を得ているんだ?
同じ名前のファイルが複数あり、どれを直していいんだ?
今まで体感したことのない課題にぶつかりました。
ここでのBOSSは質問に対しては、答えてくれました。
しかし、言っていることがわからない。
エンジニアの方にとっては共通言語でも、僕みたいは生半可なエンジニア(笑)には通じない。
ただただググって終わってしまった3日間。
僕は、何も仕事していないと感じていました。
ぼくは、エンジニアに向いていないのではないか?
開発職なんかで絶対就職しない!
そういうことを考えるようになりました。
ここら辺から、某社に行くことが嫌になってきました。
なぜなら、自分が無価値だと感じるから。
よく退職する人は、スキルがなく、会社に居づらくなって、退社するのかな?なんて感じたりしてます。
◼︎入社4日目
でも、負けた気がするので、とりあえず、4日目も出社しました。
4日目でBOSSがPHPでなく、SQLに問題があるというヒントをくれました。
ググって、ググって、ググります。
ぼくの仕事は、ググることでした。
逆引きSQL構文集
こういうSQLのやつとか
デバッグの基礎
そもそもデバックって何だっけ?とか調べてました。
最終的には、ダメダメだったぼくに、
BOSSは実際にデバックの手本を見せてくれました。
ものすごく速かったです。
(きっと簡単なバグだったんだなと感じました)
全くついていけてないぼくは、質問をしまくりました。
少し待ってください。ここを詳しく教えてください。この打ったコードの意味はなんですか?
などなどいっぱい質問しました。非常に物分かりの悪いインターンだったと思われていると思います。
ぼくも、こんなインターン生がいたら、ウザいと思います。
それでも、真剣に答えてくださって感謝しております。
◼︎入社5日目
デバックの続きをしていた1日。
ぼくは、クビになる覚悟で出社していました。
SQLのJOIN文を視覚的に理解する | IDEA*IDEA
MySQL: 同じ値のフィールドをグルーピング – GROUP BY句
こんなのをググりつつ質問して、必死にこの仕事だけは終わらせようとしてました。
なぜなら、クビになると思っていたから。
ぼくは、入社以来、何一つ仕事をしていないのです。
そして、退社前に、BOSSとメンターとお話し会をし、クビを言い渡されました。
◼︎クビになって学んだこと
①技術的に向上した
1日目:Git
2日目:コマンドライン(UNIXコマンド)
3日目:PHPのデバックについて
4日目:SQL
5日目:SQL
ざっくりこんな感じのことを学んだと思います。
おそらく、追い詰められながら学んだので、自分で学んだより圧倒的に成長していると思います。
特にコマンドラインについては、今では、Gitのインストールなどコマンドラインで行えたり簡単になって、学んでよかったなと後から体感しています。
②ぼくがやっていたのは、エンジニアでない
職としてのエンジニアとは、作ることだけでなく、そのプロダクトを運用し、改善し、より良い形でユーザーに届けることかなと感じました。したがって、ハッカソンのように自分の好きな物をコーディングするより、圧倒的に既存の物をよりよくする仕事の方が多いと思います。
③エンジニアリングはもっと深い
今は、ツールが簡単になり、機械語とか、カーネルとか、シェルとかを学ばなくても、サイトが作れたり、アプリが作れたりしているけど、それは工作であって、エンジニアリングではないと思います。でも、最初の取っ掛かりとしては、サイトを作ってみたりするのは、非常に良い傾向であると思います。なぜなら、現代の物のほとんどは、プログラミングを基盤にしてると思うからです。例えば、コンビニのレジとか、銀行のATMとか、改札とか。でも、ぼくのようにサイトが作れるからと言ってそこで満足するのではなく、なぜこれは動くのか?だったり、このコードはどういう意味があるのか?など根幹に目を向けていくのが必要だと思います。それがエンジニアリングではないかなと感じています(まだまだ浅いですが)
◼︎まとめ
ぼくみたいに文系で、プログラミング歴が1年ちょっとの人間で、最近流行りのプログラミングスクールでプログラミングを学んだからと言って、エンジニアになれているわけでないということを声を大にして言いたいです。エンジニアリングは、経済史に比べたら歴史は浅いけど、もっと深い所にエンジニアリングはあって、根幹を理解しようという意志があるかないかで今後が変わってくると感じています。
ぼくは、BOSSにエンジニアで食っていかないなら他の道もあると言われましたが、もう少しプログラミングと触れ合って見たいと思います。
◼︎最後に
BOSSありがとうございました。本当に勉強になる5日間でした。
少しだけでもエンジニアとしての仕事を垣間見れただけで、見聞が少しは、広がったと思います。
本当にありがとうございました。
これからも頑張っていきます。