スタートアップで1年以上エンジニアをやって気づいたこと2017-02-21スタートアップで1年以上エンジニアをやって気づいたことインターンはじめに1年と2ヶ月株式会社Candle(キャンドル)というスタートアップでエンジニアをしてきた。エンジニアをやろうとしたきっかけ大学は工学部システム創成学科というふわっとした学科に所属しており、主に授業は、プログラミング(Java)だったり(←すぐに授業は終わった上、実際大したことはしていないので全く身につきつかなったが)数理最適化などの手法を学んだり、ビジネス入門とかゲーム理論とか経済よりのこともする一風変わった学科だった。座学が少なくてケーススタディとかグループワークが多いのが印象的だ(就活予備校っぽい)。はじめのきっかけは大学2年の冬に初めてJavaを触ったこと。高校まではパソコンに触れる機会が少なくパソコンには疎い方だったが、プログラミングってパズルっぽいなと感じたのを覚えている。学部時代ラクロス部に所属していて、3年になると急激に忙しくなり、あまり勉強をする時間が取れなかった。大学4年の11月に部活を引退してから部活で割いていた時間をプログラミングにあてるようになった。引退直前は正規練習・筋トレ・映像を見る・自主練で半日近く割いていた時間をいきなりプログラミングにあてようとしたのだ。プログラミングと言っても何をやればいいのか、詰まった時にどう解決するのがいいのかはじめは全然わからなかった(今考えればググれよ、って話だが笑)。悩んでいる時に、ふと、「山口(学科の友達でCandleのCTOをしている)がエンジニアインターンを探していたな」と思い、すぐに会ってその日からジョインして研修を始めることにした。2015年の12月前半のことだ。研修期間Javaをほんの少し触ったことはあったものの全く覚えておらず、ほぼゼロスタートも同然だった。Candleはキュレーションメディアの開発・運営をメインに行っていたのでWeb系の勉強をすることになり、HTMLをドットインストールで見ることから始めた。CSS、JavaScript(というかjQuery)、PHP、CakePHPをドットインストールで見たり、簡単なチュートリアルを通して学んだ。研修と言っても基本一人で全部やって、詰まったりすると質問する、というスタイル。卒論をやりつつ飽きたら研修をやって、という感じで1ヶ月半程度で何となくCakePHPを動かせるようになったと思う。2016年のお正月はCakePHPの環境構築に苦戦していたのをよく覚えている。CakePHPが一体何をしているのか、そもそもCakePHPは何なのか当時は理解できていなかった。研修後2016年の2月から簡単なタスクをもらって業務を開始し、1ヶ月くらいするとAWSのことも徐々に教わり、Webってこうなってるんだ、とインターネットの仕組みとかインフラに関して興味を持ち始めた。以来、PHPを書きつつもサーバーのログを見たりするようになった。当時キュレーションメディアを5つ運営していましたが、そのうちの1つが大きくなって、iOSアプリを開発することになり、2016年の4月頃からSwift、iOSの勉強を徐々に始めました。6月か7月くらいからiOSの開発に関わりだした。会社が急激に大きくなる学生のインターンが急激に増加した。エンジニアも入った時はメインで実装している人がCTOだけだったのが10人以上になっていて、組織が大きくなる様子を目の当たりにした。この成長が落ち着いた頃に、CROOZに12.5億で買収された。Swiftにはまる夏くらいにはエンジニアの業務委託が4、5人いたのだが、その内のiOSエンジニアの1人が入社することになった。僕と同い年だが、すで前職での経験もあり、コードレビューやコード規約に関する良い文化をもたらしてくれた(それまではなかったことはないがしっかり根付いてなかった)。彼はSwiftに関する本を出すくらいSwiftに詳しかった(ただのSwift好き?)ので、Swiftらしいコードの書き方を学ぶことができた。一からアプリを作ってみたいと思い、12月には、空いた時間でQiitaのクライアントアプリを作ってリリースした。(https://itunes.apple.com/jp/app/qiitapicks/id1181929918?l=en&mt=8)30~40時間くらいでできたと思う。その過程でいろんなライブラリを目を通して非常に勉強になった。現在Candleはキュレーションメディアの他に女性向けの動画メディア(MIMI)を運営しており、MIMIという動画系iOSアプリの開発を3人(1人は研修なので実質2人)でしている。分担は自分APIサーバー、管理者サーバーをメインでiOSも少し分析周りとかの実装をし、他方がiOSのUI/UX面に注力している。Railsと全部言語が異なるので結構辛いが、非常に勉強にはなっている。プログラミングは実践でやりながら学ぶのが一番早いと実感する。何が言いたいか1人で学習するのが難しいと思われがちなプログラミング。勉強のためにプログラミング教室に通うのはナンセンスだと思う。英語を話せるようになるのにもっとも効果的なのは外人しかいない環境に飛び込むこと。英会話教室に通っても外人と話せるようになれる人は良いが、多くの人は、いきなり外人だけの会話に飛び込めるようにならないと思う。プログラミングも同様で、教室に通ったからといって一からサービスを創出できるようになれない。実際作り始めてみると、コードを書く以外にもサーバーの構築、チューニング、サーバー管理などすることは非常に多い。英語の例と大きく異なるのは、実践の環境に飛び込むにあたって経済的コストが低い(留学は高い!)、むしろインターンとかバイトであればお金がもらえるということだ。プログラミングやエンジニア的素養を身につけるならそういう環境に飛び込んでみることをオススメしたい。スタートアップであれば、全くの初心者ウェルカムという組織も多いので、プログラムに興味がある人はそういうアプローチをしてみたらどうだろうか。~マッハリーダー~5月くらいから暇な時にコツコツ作っていたアプリを公開した。(ベトナム)でiPhoneをひったくられた話(盗難時のロックとか対処法とか保険とか)プログラミングの勉強をする前に知っておきたかったこと・知っておいてほしいことブロックチェーンまわりの技術本を書きましたウェブサイトを作る時に便利なサービスたち(ロゴ生成、LP作成、画像引用とか)中国の深センの病院を退院して無事帰国しました。(医療搬送とかお金とか海外旅行保険の話)月別アーカイブ参加グループテクノロジーはてなブログをはじめよう!ngo275さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。