はじめまして、
2024年3月入社の石飛と申します。
3ヶ月の研修を終了し、これから一人前のエンジニアになるべく、アウトプットも兼ねて記事の投稿をさせていただきます。
タイトルにもある通り、「文系出身・異業種(サービス業)・未経験」がなぜエンジニアを目指したのか、転職で悩んでいる人や未経験がネックになっている人に少しでも参考になればと思います。
目次
経歴
さっくりと経歴を紹介します。
高校(文系) → 大学(文系の学部) → 就職(店舗型のサービス業)
~~~~~~~~~~~ 約4年半 ~~~~~~~~~~
退職
-------2ヶ月くらい自分探し-------
半年間独学でプログラミング学習(Paizaラーニング)
→3ヶ月間の専門学校(Tech Camp)
→FLINTERS BASE入社 ← イマココ!!
高校も大学も文系で、地方主体のサービス業に入社しました。(ちなみに東北中心で2回ほど転勤しました。)
コロナ禍もあり、30歳になる前に自分の技量で勝負できる職業につきたいと思い、4年半ほどで退職。2ヶ月くらい自分探しをして、ゲームが好きだった事とAIが注目されていたこともありエンジニアへの興味が強くなったのはその頃です。
ただ、エンジニアを目指すにしても向き不向きがあると思っていたので、とりあえず触れてみようと思い、Paizaラーニングを受講してみることにしました。
HTML/CSS、Python、SQL、Linux入門 etc... 色々なものを触ってみたり、スキルチェック問題を解いてみたりと、自分の期待する処理がうまくいった時に楽しいと思いました。
ただ色々な言語を触ってみたりしたものの、これが仕事としてどのような役割を持っているのかわからないことが不安要素でした。(例えるならゲームの説明書だけ読んでいるような感覚)
半年ほどして、Bランクの簡単な問題が解けるようになった頃、少しだけ転職活動を行なった結果、軽い挫折をしました。
というのも、フレームワークやアプリ開発の知識がまるでなかったので、自分のやりたいことや全体像が把握できていないことが課題でした。
そこで、プログラミング専門学校のTechCampに入校し、一から学んでみることに。
退職後1年間以内であれば補助金が受けられることも後押ししてギリギリ入校。
Rubyを中心にMySQL、Ruby on Rails(Rubyのフレームワーク)、その他もろもろを駆使してアプリ開発を行いました。
APIの仕組みやPaizaではわからなかった関数・クラスなどがなぜ必要なのか、なぜアプリケーションが動くのかなどの知識を学び、エンジニアがどのようなことを行なっているのかなんとなく理解できたので、未経験でエンジニアを目指す人は必須だと思います。
そして転職活動開始して、現在FLINTERS BASEに無事入社し、研修を経て現在に至ります。
研修について
FLINTERS BASEでは3ヶ月の研修期間があります。
現在はフルリモートで自走式をとっており、ほぼ出社なし・自分のペースで研修を受けさせていただくことが可能です。(まぁある程度の期限もありますが・・・)
3ヶ月の研修を終えての感想ですが、
簡潔にいうと・・・最後までチョコたっぷり、でしょうか。
みっちりと詰まった研修を一つずつ消化していきます。
ある程度進んだら実践問題があって、クリアしてまた次へ・・・
RPGゲームみたいに中ボス・大ボスが用意されていて、それまで学んだスキルを駆使して攻略していくため、3ヶ月という間は意外にも早く感じました。
ではどのようなことをやるのか、少し例を出して話してみようと思います。
プログラミング研修(Python)
基本的な言語はPythonになります。
基礎的な文法から関数・クラス、例外処理などを学び、Pandasや機械学習まで行います。
他にもAPIや外部ライブラリを用いた連携など、少し踏み込んだ範囲まで研修内容に含まれています。
Docker
仮想環境がコマンド一つで作成できる便利ツールです。
噛み砕いていうと、必要なライブラリやアプリケーションが入ったパソコンを自分のPC内にワンポチで構築できる、みたいなものです。
自分もまだ完全に理解できてはいないのですが、Dockerfile(仮想環境の設計書)の作成や実行・停止・削除などをハンズオンで使ってみることができます。
独学でやろうとすると途中で挫折するタイプのものです。
ETL
Extract・Transform・Loadの略で、簡単にいうとデータの抽出→変換→書き出しの一連の動きを制御する手法を学びます。
そのため、DigdagやAirflowのような制御ツールを活用して、欲しい情報を探して・わかりやすいように整理して・保存する、みたいなことです。
RPG風に説明すると、スキルを片っ端から取得→合成してレアスキルに加工→キャラにセットというイメージです。
研修の結果
成長できたこと
これから仕事としてどのようなことをするのか、その全体像がなんとなく掴めてきたと思います。あとは実際に案件に参加して経験を積むことで、進む方向性が定まってくるのかな?という感じです。
他にもエラー解決として英語のリファレンスを読む必要があったり、AWSやGCPなどのサービスを研修の範囲で安全に使うことができたので、規模感の違いにびっくりしながらもいい経験ができたと思っています。
(補足)独学での難しさ
独学で勉強していた時期が半年ほどあったので、
どんなところが難しいのか補足します。(未経験の方だと少しイメージしにくいかも)
環境設定
まずパソコンの環境を設定する。例えばPythonなどの言語はデフォルトでパソコン内に入っている訳ではありません(イメージは本棚に本がない状態)。
そのため使う言語をインストールしてくるわけですが、そこにバージョンというものがあります(本で言う出版日や改訂日みたいなもの)
そうするとニュアンスや仕様が変わるのですが、他のツールを使用しようとするとその違いでエラーを起こすことがあります。
他にも環境変数だったりパスみたいな話もあるのですが、総じてめんどくさい事がしばしば。
挫折しやすい点の一つですね。
AWSやGCPなどのクラウドサービス
世界中に公開するためには朝昼晩1日中ずっと稼働しているサーバー(みなさんがイメージする物理的なやつ)を借りて置かせてもらう必要があります。
現在ではクラウドサービスが主流で、その具体例としてAWSやGCPが存在します。
ですが当然課金が必要です。
ちょっとイメージ保管のために倉庫として考えると、
お金がかかる為それだけで尻込みしますし、説明書や契約書を読むことも億劫に感じます。もし借りれたとしても、誰が入っていいのか・その鍵は誰が持っているのか・倉庫のどの部分を使うのか・どこまでサポートしてもらうのかなど細かな設定をする必要があります。
もっと具体的にイメージすると、クーラーはつけるのか又その性能は?・鍵は鉄製かそれとも顔認証か・他の倉庫とくっつけるのかみたいな感じです。
何よりの落とし穴は大体が従量課金、つまり使った分だけ支払いがあると言う点で、その制限方法やもし鍵を盗まれたりピッキングされてしまった、なんてこともあるかもしれません。
安全にかつ実際に触ってみるには多大なる労力と時間と根気が必要になります。
独学でやるには相当は覚悟が必要になるでしょう。
GIt
話は変わりますが、プロジェクト単位になるとバックアップやバージョン管理みたいな話が出てきます。
ゲームで言うところのセーブデータです。(ちょっとゲームで例えますね)
アドベンチャーゲームなどでは選択肢によってルートの分岐があったり、ギャラリーのコンプのためにセーブデータを小分けにする事がしばしばあると思います。
もしセーブデータが一つしか作れなかったらどうでしょう?困りますよね?
そこでバージョン(この場合のセーブデータ)を分けて整理して保管する事ができるツールがあります。それがGitです。
まぁ完全にそうというわけではありませんがなんとなくイメージはそんな感じです。
一人でやる分にはあってもなくてもいいかもしれませんが、もし複数人で同じゲームを同じセーブファイルを共有していたとしたら?あったほうがいいと言うよりないと困ると思います。
何が言いたいかというと、結局個人でやるには限界があると言うことです。
社内の雰囲気について
研修期間
教育を担当される部署もあり、わからないことや業務に関係ない疑問まで気軽に相談できる環境が整っています。
先輩社員の人柄について
みなさん話やすくフレンドリーな方が多いです。
割と近いような雰囲気の方々が集まっているので、面接などでいいなと思ったら多分大丈夫です。
リモートワークのため、オフラインで会うことはあまりないですが、定期的にイベントごとや休日に遊ぶこともあるので、人恋しいと思ったら積極的に参加することができます。
コミュニケーション施策
フルリモートならではなのですが、当然対面してのコミュニケーションが不足しがちです。そのためFLINTERS BASEでは施策を実施しています。
例えば、定期的にシャッフルランチという会がありお昼の時間にランダムなグループに分かれて雑談を行なったり、また月に何度か1on1があり相談の場が設けられているなどの施策が設けられています。
まとめと抱負
まだどのような案件を行うのか不明ですが、研修で学んだこと・自分で調べる力・先輩社員に相談などを駆使して一人前のエンジニアとして貢献できるように頑張ります。
そして、案件をこなすだけでなく自分から新しいものを作ってみたり、+αを提供できるようなエンジニアになりたいと思います。
長々となりましたが、読んでくださりありがとうございました。
次回作にご期待ください。