【AWS】知識ゼロから理解するRDS超入門
AWSのデータベースサービス「Amazon RDS」を初心者にもわかるように解説します。未経験には難しいMultiAZ構成やレプリケーションは、マスター/スレ...
1970-01-01 00:00 2019-03-02 00:21
昨日、2019年2月28日、私ゆざ(@yuzajo_plan)は2年間インターンとしてお世話になった株式会社PLANを卒業しました。
本当に数え切れないほど多くのことをこの場所で教わりました。
間違いなく、ここでの経験は僕の人生のターニングポイントの1つです。
僕がどんな経験を通して、どんなことを学んだのか。それによってどのような価値観が形成されたのか。
そんなことがこの記事を読んでくださった方々に伝わればいいなと思っています。
僕が株式会社PLANにインターンとして働かせてもらった当時は、for文すらまともに書けなかったただの大学生でした。
そもそもの僕がこの会社でインターンをしたいと思っていたきっかけは、大企業至上主義に嫌気がさして「ベンチャー企業を肌で感じたい」と思ったというシンプルな理由でした。
ですから、はじめはエンジニア志望でもなく、はじめの半年間はメディア事業部のエディターとしてメディアサイトのコンテンツの編集を行なっていました。
塾講師や携帯販売の派遣バイトくらいしかやってこなかった僕にとって、ベンチャーで会社の一員として行う業務にやりがいを感じていました。
ですが、ふとしたきっかけで自分の人生を考え直した時に、自分は「自分の考えを自分の手で実現することができるエンジニア」という生き方をしたいのだと気づきました。
そんな中、僕に手を差しのばしてくれたのが株式会社PLANのCTOであるみやびさん(@miyabi_lab)でした。
いつものようにオフィスに行ってみるとみやびさんから話があると言われて、当時のオフィスの1階にあったカフェに連れていかれました。
そして、そこで出てきたのが
「ゆざっち、エンジニアやってみない?」
という言葉でした。
ただ、漠然とエンジニアを目指していた僕にとってみやびさんはまさに目指すべきロールモデルで、そんな人からのこんなに嬉しい誘いはありません。
二つ返事で僕は株式会社PLANでエンジニアをすることを決めました。これが僕にとっての大きな人生のターニングポイントでした。
科学技術の発展で世の中にあるデータの量が莫大となり、これからはいかにそれらのデータをうまく解析して活用するのかが重要視されています。
つまり、データ分析は時代の最先端を走っていく仕事であると僕は思っており、機械学習という領域に興味を強く持っていました。
みやびさんはとにかくはじめは「自分の興味があることを勉強してみたほうがいいよ」とアドバイスをしてくださり、僕ははじめに機械学習を勉強することに決めました。
しかし、全くのプログラミング素人であるのに加えて、機械学習は数学的な理論の知識が必要で僕は大苦戦してしまいました。
ある時は一向に機械学習の識別率が上がらず、1週間同じ課題と戦い続けることをざらにありました。
みやびさんが同じ大学出身ということもあって、2人で大学を使ってもくもくと朝から晩まで付き合ってくださりました。
今になっては、きっとここでの経験がエンジニアとしての根気強さを身につけてくれました。
0から9の手書き文字の識別から始まり、人物の特定、年齢推定や性別推定を行うための学習モデルを作りました。
機械学習とはビッグデータから特徴量の抽出を行い、それにより人物や物などを判別、推定を行うことができる技術です。
つまり、機械学習は目的ではなく、目的を叶えるための1つの技術でしかありません。
機械学習の勉強を通して、プログラミング(Python)の初歩を身につけることはできましたが、それと同時に自分がエンジニアとしての基礎の知識や考え方が欠落していることを感じました。
そのため、みやびさんが僕との勉強を組み込んだ変顔採点サービス「Funny-Face-Scorer」へ昇華してくださったところで機械学習領域は一区切りとなりました。
この時に書いた技術ブログ(知識ゼロで機械学習・AIを理解するために必要なニューラルネットワークの基礎知識)が他の勉強会で紹介されたのをきっかけにその参加者がMIYABI Labに足を運んでくれたりと、自分のやったことの成果の芽を出したのはもう少し後になってからです。
「同じ壁にぶち当たっている人同士が互いに勉強しあえる居場所を作る」というコンセプトでMIYABI Labが誕生しました。
当時の僕ができたのはみやびさんと一緒に考えることだけでした。
初めてMIYABI LabのサイトをAWSでインフラを構築しようとした時はIPアドレスって何?サブネット?EC2...???という状況からのスタートで、インフラの右も左もわからない状態でした。
そんな状況から必死で勉強をして、知識ゼロの状態からロードバランサーも含んだセキュアなインフラ環境を構築しました。
期間にしては3週間ほどでしたが、僕のWebを支える最も根底の技術/知識はここで多く学びました。
MIYABI Lab創設当初は、ポツリポツリと人が訪れている程度でした。
ですがtwitterなどの地道な広報活動により、いつしかこの場所は10人以上の人が来て自分の座れる席がなくなるほどの大盛況となっていきました。
そして、そこからメンバー集めて共同開発を行うまでコミュニティーは大きくなっていきました。
0から1が生まれていく瞬間を当事者として感じていくことができ、これぞ新しいことに挑戦する醍醐味という部分を経験することができました。
そして、どんどん増えていくみやびさんのフォロワーに僕自身もすごくわくわくしていました。
しかし、その嬉しさと楽しさとの反面で内向的な僕にとって、毎日「はじめましてからのコミュニケーションを取り続けること」と「コミュニティの運営や目の前のタスクなどの同時にやり続けること」がだんだんと辛くなった時期もありました。
その一番の原因は、「圧倒的な自分のチカラ不足」でした。
少数のチームにおいて指示待ち人間は必要ないし、言われたことだけをやっても意味がありません。
しかし、忙しさにかまけて言われた以上のことを想定して行動することや継続的にやり続けることができませんでした。
大学院生とインターンという二足の草鞋でフルコミットができない状態ではありましたが、それでもみやびさんが自分のために時間を割いて期待してくれてこんなにも恵まれた環境を与えてくれた会社のために自分のチカラで還元したいと強く思っていました。
だから、それができていない自分が嫌でした。
しかし、こんな状況でもみやびさんは叱咤激励をくださり、大きな期待を寄せてくれました。
そんな状況から、できていない自分への憤りと期待に応えたいという思いで、出社の事前にやるべきことをリスト化しておくことやMIYABI Labに訪問してくださる人を事前にチェックしておくこと、自分で新しい技術を勉強することなどできることからはじめていきました。
僕が初めて1人で任された技術的な仕事はMIYABI Labのフォト/管理ページ作成でした。
それまではWeb開発の基礎であるHTML,CSS,JS,PHP,Linuxの勉強としてtmeetやTLmeterなどといったシンプルなWebサービスを作ることをしていた僕にとっては、会社の事業の一部に貢献できる初めての仕事でした。
技術力がついてきて1人のエンジニアとしてやっと少しずつでもPLANへ自分のチカラを還元していけるような気がしてとても嬉しかったです。
さらに、この時に書いた技術ブログ(【入門編】Laravelのディレクトリ構造とMVCの処理の流れを理解する)は「Laravel 仕組み」で検索すると、1ページ目の検索結果に表示され、自分の成果が目に見えるカタチで結果として現れたことも自分の自信につながりました。(2019/02/28現在)
それ以降は、他にもSlackの拡張機能の開発や新規プロジェクト開発への参加、より大規模なAWSインフラ構築をさせてもらい、独学では絶対に得ることのできない経験をしました。
それと同時に誰かと一緒に開発を行なっていくことを初めて経験しました。
自分の意図を人に何かを伝えることがこんなにも難しいことだということも知らなかったし、1人で行う開発では疎かにしてしまいがちな構造的なサービス設計の大切さを痛感しました。
きっとこれはエンジニアに限った話ではなく、1人の人間が社会で生きる上で大切なことだと感じています。
株式会社PLANは、僕にとっていい意味で価値観をぶっ壊してくれた場所です。
大抵のことをそつなくこなしてしまっていた僕に圧倒的なチカラのなさを痛感させてくれました。
だからこそ、もっと多くのことを学びたいし、学び続けなければいけないと感じることができました。
そして、もしこの会社と出会わなかったら、きっと金髪な社長兼YOUTUBERやオレンジモヒカンなデザイナー兼YOUTUBER、海外大学卒のソサイチ日本代表兼YOUTUBERな人たちのいる会社で働かせてもらうこともなかったはずです。
MIYABI Labにきてくれた個性の強い人たちにもきっと出会えなかったはずです。
確実に僕の価値観に大きな影響を与えてくれました。
ここで出会った人たちの共有点は「自分の人生を自分で選択している」という点です。
人の影響を受けやすい僕もそんな人たちに少しでも近づけたかな。
正直、細かい話をすればこの2年間で学んだことはキリがありませんが、ここではその中でも大きな3つを挙げます。
頭の中にあるものをコトバにすること
謙虚であること
自ら進んで学び続けること
メディア事業のコンテンツやブログを書く仕事をさせてもらって感じたのは、自分の脳内がいかに整理されていないのか、そしてそれを文章化することでいかに整理されるのかということでした。
大きな流れは、「記事の目的/構造を考える→見出しを決める→詳細を詰めていく」ただこれだけのことですが驚くほど思考が整理されます。
思考の整理が苦手な僕にとってはこんなにも役立つことはありません。
どんなカタチであれ、自分の思考をコトバとしてアウトプットし続けることはインターンを卒業しても絶対に続けていきます。
自分のチカラのなさを痛感されてもらって感じたことの1つは、適度な自己肯定感/自信は謙虚な気持ちの上に成り立つべきということです。
恵まれた環境を与えてもらったからこそ、恵まれていることが当たり前ではないし、与えられることは当たり前ではないと思います。
それと同時に誰からも与えられたものがない人はいないと思っています。誰かは誰から必ず何かを与えられています。
だからこそ、どんなに成長しても謙虚である姿勢を忘れてはいけないし、人から与えてもらった以上に人へ与えられる人になりたいです。
エンジニアにとって、最も大切なことは学び続けることです。
僕が約1年間でWebサービスを自分のチカラでインフラ設計から開発することができる技術力が身に付いたのは学び続けられたからです。
自分から進んで学び続けることを辞めた時が僕がエンジニアを辞める時だと思っています。
だからこそ、これからも今の能力に慢心せずに学び続ける人でありたいです。
2019年の4月からエンジニアとして都内にあるミドルベンチャーで働くことになりました。
その会社では、人事採用やモチベーション管理を行う上で必要な評価を定量的に行うサービスの開発を行っていきたいと思っています。
事業内容や用いる技術は違うかもしれませんが、ここでの経験は間違えなく僕のチカラになってくれるはずです。
PLANには与えてもらったことよりも僕が与えられたことの方が圧倒的に多いです。
だからこそ、僕はこの会社のインターンを卒業してからも何らかのカタチでPLANのチカラになりたいし、なれる人でありたいです。
拙い文章を最後まで読んでいただきありがとうございました。
そして、みやびさんをはじめとするPLANのみなさん!2年間本当にお世話になりました!
学生Webエンジニア PLANインターン生 PHP Laravel Python HTML CSS JS
【名前】 "ゆざ"
【関連】 株式会社PLAN / MIYABI Lab / Tmeet(twitterユーザーマッチングサービス) /
【MIYABI Lab運営】23歳/同期がト◯タやMicr◯softに就職する中、ベンチャーに未経験でWebエンジニアになるのを選んだ脳科学専攻の理系院生◆人見知り日本縦断◆機械学習/Web歴5ヶ月
【AWS】知識ゼロから理解するRDS超入門
AWSのデータベースサービス「Amazon RDS」を初心者にもわかるように解説します。未経験には難しいMultiAZ構成やレプリケーションは、マスター/スレ...
【AWS】Auto Scalingする前に知っておくべき7つのこと
Amazon EC2 Auto Scaling(オートスケール)を使用すると、CPU使用率等に応じてEC2の台数を自動的に増減できます。ここでは、初心者の持つ疑問を通し...
WordPressの基本構造を理解してオリジナルテーマを作ろう(後半)
WordPressのテーマを自作するために必要なテンプレートファイル(functions.phpやstyle.css)の役割やファイル構造を理解して、どのようにオリジナ...
WordPressの基本構造を理解してオリジナルテーマを作ろう(前半)
WordPressのテーマを自作するために必要なテンプレートファイル(functions.phpやfront-page.php)の役割やファイル構造を理解して、どのようにオ...
【Heroku入門】無料枠サーバーを24時間スリープさせない方法
フリープランのHerokuサーバーでは、30分以上アクセスがないと自動的にスリープしてしまいます。ここでは、Herokuサーバーを寝かせない方法につい...
【入門編】Laravelのディレクトリ構造とMVCの処理の流れを理解する
Laravel初心者が学習する際にわかりにくいLaravelのディレクトリ構造を具体的な例を交えて解説します。MVCの基本であるビュー、モデル、コントロー...
【初心者向け】PythonによるHeroku環境で簡単LINEBot開発
誰でも簡単にLINEBotをpythonを使ってHeroku環境で開発できる方法を解説します。ここでは、LINE Messaging APIを用いることでおうむ返しをするBot...
AWSでWebサーバー構築!踏み台サーバーでセキュアなネットワークを構築する(第5回)
連載の第5回です。メインEC2に対して直接SSH接続できる状態というのは、セキュリティの観点からあまり望ましくありません。MySQLやEBSが紐づいたメ...
AnacondaでのTensorFlow環境構築と基礎的な使い方
Anaconda(アナコンダ)のインストールからJupyter notebook(ジュピターノートブック)とTensorFlow(テンサーフロー)の基本的な使い方を初心者...
脱初心者!MNIST beginnerに隠れ層を加えたニューラルネット解説
TensorFlowのチュートリアルであるMNIST beginnerの応用して、隠れ層と活性化関数を加えたニューラルネットワークで手書き文字識別を解説します。...
AWSでWebサーバー構築!Apache2.4, PHP7, MySQLの導入と初期設定(第4回)
連載の第4回です。今回は作成したEC2インスタンスにWebサーバーとしての機能を持たせるため、Apache2.4のインストールおよびhttpd.conf等の各種設...
AWSでWebサーバー構築!EC2を作成してSSH接続する(第3回)
連載の第3回です。前回作成したVPC・サブネットにおいて、セキュリティーグループに保護されたEC2インスタンスの作成・設定およびSSH接続の確立ま...
初心者必読!MNIST実行環境の準備から手書き文字識別までを徹底解説!
Pythonによる機械学習をプログラミング初心者にもわかりやすいように、TensorFlowチュートリアルのMNIST beginnerを使って、手書き文字(MNIST)識別...
AWSでWebサーバー構築!専門用語の解説とVPC環境を構築する手順(第2回)
連載の第2回です。AWSにてVPCネットワークを構築してWebサーバーを設置・運用するためには、AWS内で利用される重要単語について正しく理解しておく...
知識ゼロで機械学習・AIを理解するために必要なニューラルネットワークの基礎知識
機械学習・AIを理解するために必要なニューラルネットワークの基礎について、これから機械学習を勉強したい人、プログラミング未経験の人にもわか...
Canvaで簡単におしゃれなアイキャッチ画像を作ろう!使い方を徹底解説!
PhotoshopやIllustratorを使えなくてもCanvaなら誰でも簡単におしゃれなアイキャッチ画像が作れます。豊富なデザインテンプレートを組み合わせるだ...
プレビュー機能付きの記事編集画面の作り方(Laravel5)
記事編集フォームにはプレビュー機能の実装が必須です。記事を保存する処理とプレビューを表示する処理を共存させるにあたり、ボタンをクリックし...
AWSでWebサーバー構築!VPC設計に必要なIPアドレスとサブネットの基礎知識(第1回)
連載の第1回です。AWSのVPCネットワークを設計して実際に構築するためには、IPアドレスの基礎を理解することが非常に大切です。EC2 Webサーバーを...
MIYABI Labホームページを製作しました
様々な理由でプログラミングの勉強を困難だと感じてしまっている方のお役に立てれば嬉しいです。これからも小さなWebサービスを作り続けていき、技...
ゆざ、株式会社PLANを卒業します。
2年間インターンとしてお世話になった株式会社PLANを卒業します。AWS,Laravel,Pythonなどの技術的なことだけではなく、エンジニアとして、社会人と...