ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

えりっくえゔぁんす #115

今日やったこと

今日から沖縄に来ています……!

飛行機の中でエリック・エヴァンス読んだ

せっかく5000円もする本を買ったので、暇だったのでひたすら読んでました。

インターン期間中は、要点だけを拾って読むというようなことをしていたので今回はイチからなめるように読んでおります…。

ひとつわかったこととしては、DDDの嬉しさは実際働いてみて、共通言語がないプロジェクトにぶち込まれてみないとわからないんだろうなぁ……という。

そりゃあ、僕の浅い経験でも言葉が伝わらないみたいなことはあるにはあっても、基本一人とかで書いてるコードだとオレオレ解釈しちゃっても問題なかったりするんですよね。

まぁ、そんなことは言っても学生でも学びはあるだろうし、DDDのいいとこだけ持ってくるみたいな設計も全然ありだと思うので、時間はかかってもちゃんと読み切りたいですね〜。

雑談

いま作ってるのは高校の文化祭の来場者+生徒の企画投票の票を集計して、部門ごとのランキングを算出するみたいなソフトウェアです。(話したっけこれ)

それくらいならExcelでええやんという話でもあるのですが、色々細かいルールがあって○○をした団体は無効とか☆☆みたいな票は無効とか。

いままで無理やりExcel詳しい先生がやってたらしいですが、その先生がいなくなってしまったのでこんな話が僕の元に飛んできました。

まぁせっかくインターンでいろいろ勉強したのでイイ感じのやつ作ってやるよ!という感じです。

実は結構スケジュール押しててヤバイ。

Flux?Redux?という話 #114

今日やったこと

FluxとかReduxって何なの

すっかり設計とかデザインパターンとかいうたぐいの話が好きになってしまいました。

いままでなんの疑いもなくReduxを使ってましたがFluxと何が違うのとかその辺を追い求めたくなってしまったのでいろいろ読んだりしてました。

まずは公式。

github.com

うん、英語力(泣)

じっくり時間を書けて読む必要がありそうです。

てなわけで手っ取り早く分かるかもしれない日本語記事。

qiita.com

Reduxの勉強始めたときも読んだ気がするなぁ。

わかったこととしては

  • FluxはStoreがReduxでいうReducer的な役割(Actionを元にStateを書き換える)を持っていて、Storeが複数存在しうる
  • ReduxはStoreを一箇所にしてStateを一元管理できるのが良いよね!という思想らしい

Reduxやったことがあるのでどうしてもそっちと比べての話になってしまいますが…。

なんか釈然としないというか、弱いっすよね。

もうちょっとメリットデメリットがあると思うので追ってみたいです。

絵文字コミットメッセージデビュー

f:id:uutarou:20170905230705p:plain

:tada: First commit.ってやるとこうなります。かわいい。

雑談

やることたくさんもりもり時間がない!

TypeScript+Electron #113

今日やったこと

バイトでした、がバイトのこと書いても仕方ないので帰宅してからやったことを。

TypeScript + Electronの構成について考える

Electronアプリが作りたくて、せっかく勉強したのでTypeScriptで書こうと思って環境作ったりしてました。

いろいろな記事を見たりするとHMR使ってライブリロードしてたりとか、いろいろ凝っていてどうするかなぁと思ったのですが、余計なこと考えてるよりコード書いた方がいいでしょう、ということでとりあえずは手動でリロードするということで作り始めました。

なので、srcdestみたいなディレクトリがあって、srcにtsを置いて、コンパイル結果をdestに突っ込むと。でmainの向き先をdestの中のファイルにしてやるといい感じかなと。

ライブリロードなんて欲しくなったときに調べてやればいいよねってことで。

TypeScriptめっちゃたのしいですよ。

雑談

独学で成長できない、なんて言われましたがそれって本当でしょうか。

今日から頑張る #112

今日やったこと

一日、PCの使えない環境に置かれて悲しかったので、インターン期間中に買ったドメイン駆動設計の本をiPhoneのちっちゃい画面で読んだり、他のデザインパターンにはどんなものがあるのか調べたりしてました。

MVC?MVVM???とかなりそうになったらこのデザインパターンは何を解決したくて生まれたのかとか、何がデメリットなのかとか考えるようにするといい感じということを学びました。

やっとおうちに帰れそうなので、帰ったらなんか作ろう。

出身高校の文化祭の企画投票をよしなに集計するやつ作ってよという謎の無茶振りが高校時代のお世話になった先生から来てるので、無駄にちゃんと設計して無駄にクオリティ高いやつ投げ返してやろうかと思っています。

Electron使うことになりそう。せっかくなのでTypeScriptもゴリゴリ使っていい感じのを作るぞ。

時間がないを言い訳にするのももうやめます。

時間は作るもの!この時間までやることあったならこのあとやればいいじゃない。

雑談

とは言え明日寝坊できないしインターン期間中みたいに4時まで起きてたりする無謀はやめます。

健康も大事。


健康も大事と言えば、インターン期間中にクソ暑い中フットサルをやる用事があったのですが(これもインターンのうち)2分で死んだのでさすがに運動する習慣をつけたいです。

僕が運動を続けられるとしたら、デジタルガジェットで記録取ったりとかそういう要素がないと続かないと思うので走るとかそんなのになりそう。

たった2週間のサマーインターンで人生変わっちゃった話 #111

今日やったこと

全力で駆け抜けた2週間のインターンが終わって、久々にめっちゃ寝てました。

あと、今度作るアプリケーションの設計をするためにいろいろと資料を読み漁ったりしていました。

とりあえず、今日は2週間のインターンまとめ記事です。技術的なことはそれはそれであるのですが、どちらかと言えば心境の変化についてまとめました。

今後の自分のためでもありますが、もしよろしければお付き合いください。

(あいかわらず文才はアレなのでアレです。ごめん。)


目次

そもそもインターンに行くことになったきっかけ。

もともと漠然とインターンには行ってみたいと思っていました。コードを書くことは好きだけど、なかなか一人で、漠然と書いてるのはツライものがあるので目的とか目的がほしかったんでしょうね。あとは、就活のためっていうのも正直ありました。就活で苦労したくないし、インターンいくといいって聞くし。

そんなことを思っていた頃、サポーターズという就活サイトの限定イベント(いろいろな会社のエンジニアの人と直接話ができるイベント)のご案内みたいなメールが届いていて、偶然にもバイトがなかったので行ってみることにしたのでした。(実はバイトないと思ってたらシフト表見間違えてただけで、エンジニアの人と面談してるときに職場からLINE来まくってたのはナイショ。)

そこでは、割と大きめの会社から中規模なベンチャーが集まってるようなイメージでした。

10社くらい?のエンジニアの方と面談をしました。今回行ったインターン先の会社もそこで出会いました。(相変わらず名前を載せちゃっていいのかわからないのでぼやかした感じで行きます。リアル知り合いの方は聞いてもらえればイイゾという話を小一時間するのでぜひ話しかけていただけるとw)

正直、このイベントをきっかけに知った会社だったので、インターンに行く気はそんなになかったのですが、イベントに来ていた人事の方にゴリ押しされて、その日の懇親会でエントリー用紙にパッと書きました。(この時もバイト先から連絡来まくっててやっべえなぁということしか頭にありませんでした)

そのイベントから数週間後、「ぜひオフィスで面談しましょう!」ということで、バイト前に六本木に行った気がします。

面接はもともとそこまで苦手じゃなくて、普通にできると自覚してはいたんですが、広い会議室に通されて調子狂ってめっちゃ緊張してました。イベントに来ていた人とは別のエンジニアの方と面談をして終了。結果は後日送りますのでお待ち下さい、でその日は終了。後日談ですが、クソ緊張してるように見えてたらしいのですが、Reactの話し始めた瞬間に表情が変わったのがわかったとか言ってました。そんな自覚はないんだけどなぁw

f:id:uutarou:20170902214021p:plain

確認してみたら、ちょうどプログラマーの方のバイト始めて、React・Reduxの勉強をしていた頃だったからなのかなぁ?

まぁそんなこんなでインターン内定を頂いて、他に受けてたところもあったのですが、直感で今回の会社を選びました。何を基準に選んだんだろうか…まったく思い出せない。

事前課題を貰った

いろんな会社のインターンの説明を聞く限り、1dayとかでもない限り事前課題みたいなものが出されて解いてきてね〜ってパターンが多い気がします。

ご多分に漏れず、今回のインターンでも割りとは早めに課題をもらいました。

インターンで取り扱った内容がJavaScriptだったので、オライリー本読んできてねとかなんか作ってみてねとかDDDQuickly読んできてねとかが課題として出されました。

オライリーもわかるし、なんか作っても分かるんですが、DDDってなんやねんという感じでした。

設計なんて全く触れないで生きてきたので読んでも何言ってるかわからないし、2割位読み残したままインターン初日を迎えてしまうのでした…。

インターンが始まった

初日の集合時間は11時。自宅最寄り駅からも1時間位で六本木まで行けるので、学校より近いじゃんとか思いながら電車に乗って向かいました。

f:id:uutarou:20170821223436j:plain

でかい。

f:id:uutarou:20170821223438j:plain

ドラえもんもいました。

初日はガイダンスとか、イントロダクション的なことがあって、2週間お世話になる社員の方と晩御飯食べに行って終了でした。

インターン生一人につき、一人専属で社員の方がついてくれて課題をこなしていくという形式のインターンなのですが、そこで私の担当の社員の方が学生時代に同じインターンに行って人生を変えられたという話を聞きました。その時は半信半疑というか、自分には無理だろうとかそんなことをおもったりしてました。

でも、何故か嘘言ってる気がしなくて。がんばったらなんかいいことあるんじゃないかと思って頑張ってみることにしたのでした。

本気で臨んだ日々

翌日からはゴリゴリと課題を進める日々でした。

技術レベルも得意な技術分野も違うインターン生が集まっていたので、それぞれいろいろなアプローチで課題に望みました。

実装をとにかくどんどん進める人もいれば、アプリケーションの設計をメインに進める人も。

私は後者でした。とにかく最初の1週間はアプリケーションの設計や、その前段階として、なんで設計というものが必要とされているのかとか、そういった根本的なところから考え直す作業に全力を出しました。どれくらい全力かと言えば、あれだけ「12時には寝ないと翌朝死ぬ」とか「どんなに好きなことでも3時間以上やり続けられない」とか言っていた私が、インターン終わって家に帰ったあと4時とかまで設計したり資料読んだりしてたくらいでした。

このブログでもちらっと書いたかもしれないですが、インターンではDDD(ドメイン駆動設計)を学びました。

DDDの概念は、設計が初めての私にとってはなんとも理解し難く、めちゃめちゃ悩みました。夜遅くまで「ドメインってなんなんだ」みたいな話をいろんな社員さんとしたりして、超もがきながら少しずつ理解していきました。

具体的にやったことの言及は避けますが(話したら多分記事の長さが倍になってしまう…)とにかく必死でもがいてもがいて苦しんで転びながら少しずつ前に進んでいきました。

苦しんで、なんて書きましたが不思議と全くといっていいほど苦しくなかったなぁと今振り返って思います。あたらしいことを学ぶのってめちゃめちゃたのしいし、誰にも文句のつけようのないくらい頑張ることって、本当に気持ちいい。

頑張ってる俺カッケーっていうの、すごいかっこ悪いと思ってたんですけど、それが冗談ではなく本当に自分頑張ってて言っているのだとすれば、それって並大抵のことじゃなくて、本当にすごい大変なことなんだと思いました。そこまで頑張ったこと、人生で今までなかったと思うのですが、今回は言っても許されるんじゃないかなと思います。

頑張った俺カッケー。(普段の一人称は僕です。)

人間不思議なもので、必死にやってると眠気も優先順位3つくらい下がるんですよね。2時間とかしか寝てないはずなのに、10時間とかコード書き続けても眠くならない。本当に不思議。

唯一寝てないのが分かる瞬間は電車の中でした。通勤1時間くらいあるのでその中で、その日やることの確認をしたり、設計の本を読んだりして過ごしていたのですが、普段乗り物酔い全くしない私が、睡眠2時間の頃は2分で酔いました。2分で酔って10分で少しましになって、また本読んで2分で酔うというのをひたすらに繰り返していました。マジで吐くかと思った。顔色やばかったと思う。

六本木のおしゃれオフィスでしくしくと泣いた

なんとか設計も終わって実装の段階に入った頃、うまくいかないことが続いて心が完全にポキっと折れた日がありました。

泣きました。比喩じゃなく普通に泣きました。

オフィスでしくしくと。(よくある学生だけ会議室とかに詰められてやるタイプのインターンではなく、普通にオフィス内の席でやる感じのインターンだったので周り働いている人がいる中こっそり泣いてました。)

一応今回のインターンにはMVP的な制度があって、僕はそれを狙いに行く!と全インターン生やメンターの社員さんたちの前などで宣言して、自分に対してプレッシャーをかけていました。

ところが取りにいくと言っているにもかかわらず、なかなかうまくいかなくて、進捗も悪くてなにもかもうまくいかず、逃げることもできず気持ちが溢れ出してしまったんだと思います。

人生で、うまくいかなくて悔しくなるほど頑張ったことなんてなかったなぁと。

この時も社員の人が必死に励ましてくれてなんとか立ち直りました。

流石に泣いたのはこの日だけでしたが、何度心折れて死んだ顔してても助けてくれた社員の方には感謝しかないですね。

やっぱりダメだと諦めかけた

インターン終わり際に、今回の課題はどんな設計でやりましたとか発表する機会がありました。

発表直前まで、「もうダメだ」とか「自信がねぇ」とか「やっぱり最後までやり遂げられなかった、変われなかった」とか言いまくって死んだ顔してました。目も多分死んでた。

というのも、結局課題として出されていた項目の半分も終わらなかったのでした。

ただ、いざ発表してみると、ずっとこだわってやってきた部分はできてるということに気がつけました。なにもわからないところから必死こいてやってきたことがうまくいった感触は本当に忘れられません。

「努力は必ず報われる」、某高橋さんが昔言ってたりしましたが、これってあながち嘘じゃないなと。

ちゃんとやればそれなりの報いがあるんだと20年生きてきて初めて実感しました。

まとめ

インターンに行く前のぼくはというと、どこか冷めてて、熱血な人とか苦手で、所詮人間には限界があって、すごい人は生まれつきなんか持って生まれてきたのだと思っていました。

人は簡単には変われない。ましてや、2週間のサマーインターンなんかでは変われない、所詮は採用活動の域を出ないと思っていました。

しかしそれは全部間違いでした。現にこうして熱血な記事を書いてる自分がここにはいます。採用活動の一環で人をみたいだけならもっとカンタンに楽に見る方法もあるだろうに、今回インターンでお世話になった会社は全力で学生の成長を助けてくれました。それは技術的な面でも精神的な面でも。

特に精神的な面が私は弱いと自覚がありました。なにか詰まることがアレば諦めたり避けたりして通ったり、何かに向かって踏ん張ることができなかったり、すぐ心折れて投げ出したり。案の定、今回のインターンでも投げ出しそうになったり、心折れたりということは何度もありました。そのたびにそばにいるいろいろな人が助けて、起こしてくれました。おかげでこうして自分を変えることができました。

すぐ投げ出しちゃうのって、投げ出さなければいいことあるって知らないから投げ出しちゃうんだ。そう思いました。

なので僕はもう投げ出しません。次に転んで、投げ出しそうになることがあっても自分の力で起き上がります。とにかく食らいつきます。

賞をいただきました!

今回、MVP的な賞をいただくことができました!!

いや、びっくりしました。取りに行くぞとずっと言って臨んできましたがまさか取れるとは。

本当に嬉しかったです。記念品を机に飾ってニタニタしています。

コレを見て、ヤバイほど頑張ったこの2週間を思い出せばなんでもできる、そんな気持ちにさせられます。

今回は本当にありがとうございました。

約束

今回、私のそばで全力で私を支えてくれた社員の方と終わりがけに約束を交わしました。

私はこれから半年間、修行します。まだ決まってないけど、近いうちに目標を定めてそこに向かって突っ走ります。

とにかく、この頑張ったら報われたという経験をこれからも忘れることなく、貪欲に頑張り続けていきたいと思います。

その様子もまたブログに書いて、成長日記にしていきたいと思いますので、気が向いたらぜひこのブログゆるふわ技術日誌を見てもらってツッコミ・まさかりを飛ばしてもらえると幸いです。

雑談

いやびっくり、コレでもいいたいことの半分も言えてないのですが、記事の文字数が5000字を超えてしまいましたw

本当に最高の2週間を送らせてくれた会社や、急遽おやすみを頂いてご迷惑をおかけしたアルバイト先のみなさん、夜遅くに家に戻っての晩御飯を用意してくれていた母などいろいろな人に感謝の気持ちを伝えたいです。

そう、誰か人に感謝するとか人と助け合うとかそういうこともこのインターンに教えられたことの一つのような気がするなぁ。

感謝って気持ちいいですよ。おすすめです。

あと、後輩とかで読んでる人がいたら本当に人生変わると思うので行ってほしいと思いました。

以上、サマーインターン参加して人生変わった話でした。お読みいただいてありがとうございました!

明日で最後! #109

今日やったこと

インターン9日目、明日でついに終わってしまいます。

寂しいです。

技術的には、設計のメリットを立ち返ってよーくよく考えてみたり、リファクタリングして質を高めたりということをしていました。

インターン課題は今日で終わり。

明日は総括の最終発表です。

雑談

やるからには一番取らないと。