今回はバックエンドエンジニアとしてフリーランスの案件を獲得したkajiさんに、どのようにプログラミングを学習し、どのようなポートフォリオを作成したのかについてインタビューを行いました。
- エンジニアとして副業を始めてみたい
- 業務中にスキルが身についているか不安を感じている
- フリーランスのエンジニアとして活動していきたい
そんな方にkajiさんの成功体験をお伝えします。
kajiさん
新卒で開発会社にて3年間勤務。業務に関する開発しかできないことに危機感を覚え、コンピュータサイエンスを学習。フリーランスのバックエンドエンジニアとして初の案件獲得。
目次
実務3年でも感じるフリーランスの不安を払拭するため、コンピュータサイエンスの学習をスタート
――kajiさん、インタビューお受けいただいてありがとうございます。まずは経歴とプログラミング経験の有無について簡単に教えていただけますか?
プログラミング経験はあります。新卒で開発会社に就職し3年ほど勤め、そこではJavaやJavaScript(React)でプログラミングをしていました。
――Recursionを始めたのはどうしてですか?
基礎をしっかり身につけたいと思ったからです。
上述の通り、私には3年間の実務経験があります。この経歴は見た目は良いですが、中身は全く伴っていないものでした。自分で勉強することもなく、技術の上部だけを撫でて、とりあえず会社の業務をこなせる程度の限定的なスキルしか身についていないことに気がついたのです。
そこで、初めて自分の人生を真剣に考えて、「このままではマズイんじゃないか?」「本当にこのままエンジニアを続けていけるのか?」と不安を抱き、コンピュータサイエンスの基礎からしっかり学習することができるRecursionを始めました。
――kajiさんが実践した学習方法を教えてください。
選択した言語はJavaScriptとJavaです。独学ではTypeScriptを学習しています。学習時間は、平日は朝3h + 夜2h程度。休日は平均して5,6h程度です。
――Recursionのカリキュラムの中で、どれを一番注力して勉強しましたか?
一番注力したのは、アルゴリズムとデータ構造です。
学習を通して意識したのはとにかく「自力で考える」ことです。その上で、伝統的なアルゴリズムや、データ構造を学習することは、自分の不安を払拭するような何かヒントを得ることができるのではと思ったからです。
実際にデータ構造を学習することで、可読性の高いコードを書くことや計算量を意識したプログラミングを書くことができるようになってきました。
アルゴリズムは、書籍を読んでみてもとにかく学問的で面白いです。今までは「正しい答え」的なものがあると思っていましたが、今は「解き方」の方が大事であることに気がつきました。「AというアルゴリズムよりBのアルゴリズムの方がこの点は優れている」「Bのアルゴリズムはこの点が問題」というように考えられるようになってきました。
――コンピュータサイエンスの学習に加えて、どんな本を読まれましたか?
本はかなり読みました。以下に読んで良かった本を記載します。
- 言語系
– 独習Java
– 新わかりやすいJavaオブジェクト指向解説
– JavaScript本格入門
– ハンズオンJavaScript - コンピュータサイエンス系
– コンピュータはなぜ動くのか
– コンピュータシステムの理論と実装
– 入門コンピュータ科学 - SQL
– SQLゼロから始めるSQL操作 - Web系
– Webを支える技術 - アルゴリズムとデータ構造
– 問題解決力を鍛えるアルゴリズムとデータ構造
– アルゴリズムx数学
――Recursion以外にネットワークだったりWeb周りの知識も勉強しましたか?
上述した本の中で、Webを支える技術でWeb周りの学習を、コンピュータサイエンス系の書籍でハードウェア、OSといった分野も学びました。Udemyを利用したこともあります。
――CSを学習するうえで特に意識したことはありますか?
「なぜ、そうなるのか」を強く意識しました。また、自分が知っていることと、知らないことを整理し、課題を見つけることです。そして、課題を見つけたらそれをしっかりクリアすることを意識しました。
コンピュータサイエンスを学習して、知識の点と点が繋がっていくのを実感!
――Recursionを始める前と利用した後で、何か変化を感じましたか?
Recursionを始める前と利用した後での最も大きな変化は、エンジニアという仕事が大好きになったことです。
Recursionを始める前は、プログラミングに対してとにかく苦手意識が強かったです。自分には向いていないと思っていました。
それは、自分は「開発できない」状態にあったからです。開発できないから楽しくない、楽しくないから勉強しないという悪循環に陥っていました。
しかし、Recursionを始めてから、点と点が線に繋がっていくことを実感しました。この体験は今までの悩みを払拭し、私のプログラミングに対するネガティブな感情を取り払ってくれました。それと同時に3年間の実務経験が無駄じゃなかったことを実感し、安心しました。
加えて、独学する習慣が身についたころとも大きな変化です。
勉強時間を確保するために朝早く起きるとか、休日はめっちゃ勉強できて嬉しいなんて思う日が来るなんて想像もしていませんでした。
お陰様でいまはコンピュータサイエンスの学習が本当に楽しく、無限に学びたいことが湧いてきます。元々、ハマるとそればっかりになってしまうオタク気質ではありますが、ここまでエンジニアという仕事が好きになったのはRecurisonなしではあり得ません。
フリーランスとして、バックエンドエンジニアの契約を獲得!
――kajiさんのお仕事についてもお聞かせください。フリーランスとして活動されているということですが、今回新しい契約を獲得されたんですよね?
新しい業務は、エンジニアと企業のマッチングサービスです。
私はバックエンド開発を担当し、APIの設計、実装、テストをメインで行う予定です。バックエンドエンジニアとしては初めて決まりました。Recursionを始める前は、応募しても中々通りませんでしたが、今回は一発で即オファーいただけたので、結構変化があったと思います。
――どのくらいの期間で契約できたんですか?またその要因はなんだと思いますか?
案件を探し始めてから1週間程度で契約をもらえました。一番の要因は、今までの実務経験を説得力を持ってしっかり話せたことだと思います。その結果、企業が求める人材像と私の経験がマッチしたのだと思います。
また、コミュニケーション能力についても評価いただきました。実際、面接は漫才のようにテンポよく進み、手応えも十分でした。笑
――今後の展望などあれば教えてください。
エンジニアリングを通して世の役に立つ仕事をしたいと思っています。具体的にはアルゴリズムを視覚化するライブラリ開発に挑戦したいと思っています。
コンピュータサイエンスを学習する、Recursion初心者ユーザーへのアドバイス
――Recursionで学習を始めたばかりのユーザーに向けて、どのように学習を進めるべきかアドバイスを頂けますか?
まずは学習をする習慣づくりでしょうか。
私の場合、Recursionを始めてからは平日・休日問わず朝は5時に起きて学習するという習慣を身につけました。
――転職に関して、実務未経験者が内定を取るためにやっておいた方が良いことは何でしょうか。
私は、以下の3点が大事かなと考えています。
- 自分のアピールポイントをしっかり作ること(自分を理解すること)
- そのアピールポイントが応募先の企業が求める人材像に沿っていること
- 面接では自分のことばかり話さないこと
学習で得たものやポートフォリオを通して、上2つをしっかり証明できれば内定に繋がるのではないかなと思います。
また、相手と確かなコミュニケーションを取ることができることも内定を得るためには大事なスキルだと思います。
――kajiさん、貴重なお話を聞かせてくださりありがとうございました。今後のご活躍を応援しています。