見出し画像

マイ20代前半記

みうらじゅん氏を心の師匠としているので、みうらじゅん的なタイトルにしました。このnoteは、自分が人生やキャリアなどで迷子になった時のためのものです。記憶が新しいうちに20歳から25歳の今に至る意思決定や考えていたことを言葉にしてみます。

whoami

2020年8月現在、フリーランスWebエンジニアをしている25歳のとーきーと申します。今はReactを用いたフロントエンド開発をメインでやっています。(技術スタック)

僕は独学でITを学んでWebエンジニアになり、今はフリーランスをやれているので、このnoteがエンジニアになりたいけどITのバックグランドがない人などの参考になれれば幸いです。

20歳 ~ 22歳: 大学生

2015~2017年の大学2年生、3年生の頃。
当時僕は文系の大学生で、英語と世の中のことを広く浅く学ぶ、いわゆる国際系の学部に通い、サークルとバイトばかりで学業はそっちのけ、成績はGPA1とか2の模範的な大学生ライフを送っていました。

大学3年になると周りは就活の準備をはじめます。

周りには「どういう仕事をするのか」というより「どの企業に就職するか」ということにこだわる人が多く、前者に関心があり後者はどうでもよかった自分は不思議だなと眺めていたのを覚えています。しかし、そうは言ってもその時の僕にはやりたいと思える仕事がありませんでした。

そして、このタイミングで1年間の休学をすることにします。このまま無理に職を決めて就職したら大きな後悔をすると感じたからです。現実逃避とも言います。

休学中は、両親に頼み込んで留学費を助けてもらい、かねてから経験したかった語学留学をアイルランドでさせていただきました。

ちなみに、アイルランドを選んだ理由は、母国語が英語/留学費が安い/日本人が少ない/安く他国に旅行ができる、というものでしたが、アイルランドはほんとにおすすめ。EU圏なので滞在ビザを持ってればEU諸国に旅行し放題な上、フライト費も数千円という安さ。宿泊先もAirbnbを使えば安く抑えられます。

住んでた家周辺の写真。

画像1

このアイルランド留学ですが、僕にとっては今後を左右する決定的な経験となります。

ITの勉強を始める

当時ルームシェアをしていたのですが、あるルームメイトとの出会いがきっかけでコンピュータやインターネットの勉強を始めます。

どう見ても30代子持ちの風貌をした26歳の彼は、パキスタン人のC言語使いでアイルランドに働きにきていました。元々プログラミングには興味があったので、

プログラミングを覚えたらどんな物が作れるの?

と聞いてみました。すると、

Everything!

と彼は言い、サイコーにクールだ!と思ったのを覚えています。国関係なく働いている彼を見て、エンジニアには翼が生えているとも思いました。

これをきっかけに、パソコンを購入しHTML/CSSから勉強を始めます。

この時買った、今はもうろくに動かないThink Pad。

画像2

ブラックボックスイヤイヤ期

はじめはWebページが表示される仕組みに興味があったので、webサイトを調べながらHTML/CSSの勉強をし、ブログらしきもの(見た目だけ)を作りました。マークアップのコツを掴んだ時の喜びは今でも覚えてます。この時GitHubなどのサービスを知らず、コードも消しちゃったのでこの時作ったものはもうありません。。アウトプットはどんなものでも残しておこう。

そして、実際にインターネット越しに作ったものにアクセスするにはどうしたらいいか、ということに興味が移り、サーバサイド側の言語、JavaやPython, PHPを手当たり次第試していきます。

ここでエリック・レイモンドの「ハッカー になろう」を見つけ、めちゃくちゃ触発されPythonに絞って勉強をスタート。

で、ここでブラックボックスイヤイヤ期に入ります。
ブラックボックスイヤイヤ期とは、自分が理解できないものを拒絶しちゃう期間のことですね。
この頃の興味はオリジナルのブログ(CMS)をゼロから作ることでしたが、自分のスキルではフレームワークに頼らないと作れない状況でした。その時Flask(Pythonのフレームワーク)というものを知り試してみたのですが、Flaskのチュートリアルを進めるだけでよくわからないがCMSっぽいものができる、ということに気持ち悪さを覚えます。

元々仕組みを知りたいと思って始めたプログラミングなので、内部的な仕組みを理解できないフレームワークを使うことにものすごく抵抗があったわけです。このイヤイヤ期はこの後2年ほど続きます。

Linuxを学ぶ

イヤイヤ期でしたが(だったがゆえ)、その後も興味は衰えず勉強をつづけ、アイルランド滞在中にネットで日本でのインターン先を探し始めます。そして、とあるベンチャー企業さんと面接することになり、急いで帰国。2016年6月に帰国し、次の週に面接を受け合格、翌日から働き始めます。もうこの頃はITにぞっこんでした。

このインターンではサーバやネットワーク構築を経験し、Linuxの基本操作を習得します。半年前まで自分のパソコンすら持ってないITに疎かった自分が、今はLinuxを操作し頼まれた仕事をこなせていることに酔いしれたのを覚えています。

この時期はサイコーに勉強や仕事が楽しく、手当たり次第本を買って勉強してました。10時〜20時くらいまで仕事、帰り道は時間がもったいないので歩きながら技術の本を読む(社内で二宮金次郎と呼ばれてたww)。帰宅後も2時頃まで勉強。朝起きて前日の復習。という感じで、この時の情熱は凄かったな。

ちなみに、まだこの頃は職業としてエンジニアになろうとは全く思ってなく(なれるとも思ってなかった)、漠然と「アイディアを形にできる人間になりたい」と考えていました。

22歳時の将来像

アイディアを形にできる人間になりたい

23歳: 就職

2017年、大学3~4年の頃。

この頃から職業としてエンジニアを考え始めますが、これは必然だったかと思います。就職するなら、自分が楽しいと思えて、かつなりたい自分に近づけることを仕事にしたいと考えたからです。

この時期は将来の生き方ばかり考えるようになります。そして、エンジニアとしてざっくりWeb技術の領域で「実装力+強み」が欲しいと考え、最終的に強みとして「セキュリティ」を選ぶことに。この頃、「2年くらい会社員やったらフリーランスになりたい」と漠然と考えてたので、フリーランスになっても仕事を得続けるために差別化が必要だと思ったのです。

そんなわけでセキュリティ系の会社ばかりを受け、最終的にはアプリケーションの実装ができてセキュリティも学べる会社に入ります。この会社では非常に優秀で尊敬できるベテランエンジニアの元で働けることになり、Javaエンジニアとしてサーバサイド開発に従事します。どんな企業にも一人はGAFAレベルのエンジニアがいる、とかって言いますが、あの方はそんな一人だったんじゃないかな。。

文系コンプレックス

この時の同期は僕以外みんな情報系出身かつ院もでているような方々で、僕の上司も東大でCSを学んでいた人。というか知る限り文系出身のエンジニアがいなかった。ここで強烈な文系コンプレックスを抱きます。表面的な知識はそこそこついていたものの、彼らの仕事や会話からはテクノロジーに対する圧倒的な理解の深さを感じました。これが本物の技術者か..と圧倒されてしまいます。

なんとか足並みを揃えたい僕は数学や基本情報技術者試験の参考書などでITの基礎を勉強し始めます。ちなみに今もこのコンプレックスは持ってますが、今は「同じ土俵で勝負してもしょうがないので自分の得意な領域で勝負しよう」という風に考えるようになりました。

上司の教え

一方で、この会社では今の僕の考え方の基礎にもなっていることを上司から学べました。Slackにメモったのが残ってたのでここにも残しておこう。

@スキル1
新しい技術を学ぶ際、細かいところの理解は置いといて、とりあえず手を動かす。ドキュメント通りにやる。ハマったら、そのとき考える。

@スキル2
大事なのは起点。例えば、ミドルウェアの設定などでハマったら、そのミドルウェアの起動方法を確かめ、その設定ファイルの中身を見る。起動に必要な設定はそこに書かれている。linux: etc/init.d/

@スキル3
新しく使うAPIは、まずはやりたいことを明確にして、そのメソッドに関するドキュメントに目を通す。大体わかったら、そこで使われているメソッドも遡って理解する。ネットに落ちているコードを参照する場合は、鵜呑みにせず公式ドキュメントに目を通す。

@スキル4
ネストの深さは闇の深さ(if文、for文などでロジックをできるだけネストさせるな)

@スキル5
書いたコードは目的を達成できるのか できてるとしたら、それをどうやって確かめるのか それを考えられる力を養え

@スキル6
エラーに出くわしたらググりまわる前にエラーの意味とその原因を推測する。そうすることで論理力は鍛えられる。

@スキル7
ほしいメソッドが使っているライブラリのクラスに見つからなければ、同じようなことをしているメソッドがほかのクラスにあればそれを真似してみる

@スキル8
仮説思考。常にその時点での結論を持ってアクションを起こす。限られた情報、時間しかなくても結論をもち、実行に移す。そしてその結果を検証し次につなげる。スピード感につながる

@スキル9
リファクタリング。気持ち悪いと思った瞬間にリファクタリング。気持ち悪いコードを完成させてはいけない。

@スキル10
いきなり色々実装しようとしない。まずは簡単なことから。優しさ0からスタート。

@スキル11
ほしい情報を取り出せないのは技術者じゃない。ほしい情報を自由に取り出せるようになる。そのために正規表現はマスターすべき。

@スキル12
自分のロジックに絶対の自信を持てるよう頭を鍛える。知識ドリブンになるな。

あと、社長さんの事業や組織についての言葉もメモ。

商品のコツ
1.なくならない市場・伸びている市場(銀行、資源、娯楽、不動産、etc)
2.ストック型(一見スポット型[フロー型?]でもストック型にできる。例、会員制ホテル、コンタクト(定期購入が必要)を売るECサイト)
3.刀の柄を握る(自社製品)

組織のコツ
1.組織は内部から腐っていく。対外的にはそこまでもろくない
2.協力できる仲間で組織(例、ユアーズ、バー、などでそうなる組織づくり)


人間関係のコツ
1.ほめる
2.叱る 叱れないやつはクズ
3.所属している組織に誇りをもてるようにする

この会社では、↑のような考え方に加え、チームでのWebアプリ開発を経験。セキュリティの知識として証明書や暗号方式についても学べました。

そして、入社してから半年ほどで転職準備をはじめます。その時の転職理由はこんな感じ。

・技術力をより速い速度で身に付けたい
・いろいろな開発案件に携わり見聞を広げたい
・よりモダンな環境に身をおきたい

入社以前は強く意識していた「強みとしてセキュリティを身に付ける」というこだわりはこの頃にはかなり薄くなっていました。プラスアルファの要素である強みは一旦おいといて、まずは基本的な技術力を身に付けるべきだと考えたからです。それを身に付けるにはこの環境では時間がかかると当時思いました。

また、この時の思い描いていた将来像はたしかこんな感じ。

23歳時の将来像

フリーランスエンジニアになって自由に仕事したい


24歳: 転職

2019年~2020年の社会人2年目の頃です。

2019年4月からは、新規開発案件にたくさん携わりたいという思いで受託開発系の企業でJavaエンジニアとして働き始めます。

ここでは新しい物好き、技術好きな仲間が多く、モダンな環境というものを知ることができました。自分の技術に対する視座が少し高くなったかなと思います。

この頃からブラックボックスイヤイヤ期から抜けはじめ、フレームワークや外部APIなど使うことに抵抗がなくなり積極的に使っていくようになります。

そして、入社後10ヶ月ほどで退職に向けて準備をはじめます。この時すでにフリーランスについてそこそこ調べており、実力的にまずはエージェントから仕事をもらうのが良さそうだ、という結論に至りました。エージェントから仕事をもらう場合は最低2年の実務経験は必須だったので、翌年の3月まではこの会社で勉強しようと決めます。

考え方の変化

2019年半ばから後半あたり、この会社で働きはじめて半年くらいで生き方についての考え方が変わりはじめます。それまではただただ開発という仕事が楽しく、この仕事に自由が加わればそれで満足と思っていました。

が、この頃からアプリケーションを作る側だけでなく、仕事そのものを作ることに興味が出てきます。このままの方法でエンジニアとしてのスキルを伸ばしてもつまらないな、と感じたのです。

そんなわけで、自分の得意なWeb技術を生かし新しいサービスを生み出したい!とうことで何かアイディアがないか考え始めます。そんな中大学の友人と作ったのがこの夫婦、カップル向けのTODOアプリ。(Flutter製)

しかし全く使ってもらえず。後述しますが、ビジネス経験ゼロの僕たちにはニーズを確かめないサービス作りは失敗して当然です。

24歳時の将来像

​仕事を作り出す側の人間になりたい

25歳: フリーランス

2020年〜現在。

予定通り2020年3月にこの会社をやめ、4月からはフリーランスでReactエンジニアをしています。

今の考えとしては、

・本業では世の中に必要とされるエンジニアになれるようスキルを伸ばす
・その一方、仕事を作り出せる人間を目指し、IT以外の分野にもアンテナをはり行動する

といったところ。

エンジニアとしては、バックエンドからフロントエンドへ領域を移しましたが、これは今UIUXに関心が向いているから。フロントエンジニアをしばらくやってみて、それでも面白いと思ったらフロント側で上流工程に携われるようにキャリアを考えていきたいと思います。

一方、仕事を作る側の人間になりたいという野望もあるので、プライベートの時間を使い「自分に何ができるか」ということに対して行動していきます。

ここで言っている「行動」について。
先月7月に、友人が勤める企業の経営者の方とお話をする機会があり、その方がこうおっしゃいました。

「シーズは内から、ニーズは外から。このシーズとニーズが合わさるところにビジネスは生まれる。」

シーズ(Seeds)とはビジネスの種で自分の中から湧き上がるもの。ニーズは顧客の需要で自分の外にあるもの。それらをすり合わせることなしにビジネスは成り立たないということです。

また、シーズは内からとありますが、立派に育つシーズを育むためには外からの刺激が必要だそう。つまり、人にたくさんあって色々な経験をせよ、と。

今の僕が思いつくアイディアはどうも独りよがりな物ばかり。人が求めるようなアイディアのシーズが生まれる土壌が今の僕にはないのです。

なので、少なくとも今の僕には「行動」が必要そうです。この方のいう通り、まずは人にたくさんあって見聞を広げようと思います。

2020年8月からは本業だけでなくこちらも注力していきます。

25歳現在の将来像

・仕事を作り出す側の人間になる
・本業ではより上流の仕事ができる人間になる(アーキテクチャ設計、UIUX設計..)


そんなわけで、マイ20代前半記でした。
20代後半記はどうなってるのかしら。乞うご期待!

おわり。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
3
26歳のひよっこエンジニア
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。