こんにちはフロントエンドエンジニアのまさにょんです!
今回は、会社の後輩たちと開催される座談会のQ&Aの掲載をします。
所属している会社のキャリアサポートの方から、現場に入っている先輩として後輩たちとの座談会に参加してほしいとの依頼をいただきました。
そこで、座談会に参加するにあたって、後輩からQuestionを頂いていますので、そのAnsewrをまとめて掲載しておきます。
なぜ座談会のQ&Aを掲載するのか?
Q&Aの掲載をする前に、理由を明示しておきます。
- 後輩たちからのQuestionに対するAnswerをちゃんと明文化して、後から参照できるようにするため。
- 自らも初心を忘れないため。
- エンジニアを目指す人や現場に入る準備段階の人に役立つかもしれないため。
後輩たちとの座談会 Q & A 【 待機期間中について 】
私の所属する会社は、エンジニアを派遣するタイプの会社なので現場に入るまでは「待機期間」というものが生じます。
後輩からの質問の中でも「待機期間中」に関するQ&Aを以下にまとめました。
目次
- 1 Q1. 待機期間に注力していた学習内容は?
- 2 Q2. 参画時のスキルセット、成果物作成時に意識したこと(技術選定、作成テーマなど)は?
- 3 Q3. 学習した内容で現場で特に役立ったものは?
- 4 Q4. 意識しておくべきだったと感じたことは?
- 5 Q1. 現場に入ってから苦労したことは?【技術編】
- 6 Q2. 現場に入ってから苦労したことは?【マインド編】
- 7 Q3. 現場で求められる技術・マインドは?【技術編】
- 8 Q4. 現場で求められる技術・マインドは?【マインド編】
- 9 Q1. どんなキャリア像をお持ちか?また、それに向けて努力していることは?
- 10 Q1. おすすめの学習用書籍やWEBサイトは?
- 11 Q2. 待機から現場参画までのお話をお聞きしたいです。
- 12 Twitterやってます!Follow Me!
- 13 最近の投稿
Q1. 待機期間に注力していた学習内容は?
待機期間に様々なことを学んでいましたが、注力していた学習の方向性は、次の2つです。
A1. バックエンドとのやり取り(API & DB 連携)をアプリ開発を通して学ぶこと
フロントエンド(クライアント側)は、バックエンド(サーバー側)との連携あってのものなので、フロンドアプリで入力してもらった内容はサーバーアプリ(API)に送信して、DBに格納したりする流を実際に開発して理解して行きました。
フロントからバックエンド、バックエンドからフロントの両方のデータ・フローをしっかりと理解するのは大事です。
ここを評価してもらってか、最初のプロジェクトでは、フロント開発とは別に Laravel(PHP)とFlask(Python)でAPIを2つ設計および開発しました。
A2. フロントエンド(JavaScript周辺の)の技術力を磨くこと
フロントエンドのエンジニアと言うポジションなので、そのポジションに応じたスキルを磨く必要があります。
React, Vue だけでなく、TypeScript, Next.js, Node.js, Express, ReactNative などJavaScriptをベースとした様々な技術に挑戦してアプリ開発をしました。
そこを評価してもらってか、現場では、Node.jsベースである Electron(デスクトップアプリ開発のフレームワーク)での開発だったり、Vue-TypeScriptでの開発もしています。
Q2. 参画時のスキルセット、成果物作成時に意識したこと(技術選定、作成テーマなど)は?
A1. 参画時のスキルセット
2022年1月時点でのスキルセットは以下の通りです。
- 言語: JavaScript, TypeScript, Python, SQL, HTML, CSS
- フレームワーク: React, Vue, Node.js, Express, Next.js, Django, ReactNative
- ツール・その他: Git, VSCode, NoSQL(Firebase), MySQL, Docker
中でも待機期間中の10~12月で、SQL, Python, Node.js, Express, Next.js, Django, ReactNative, MySQLなどを学習してアプリ開発に使用しました。
A2. 成果物の作成時に意識したこと
① 自走力や学習スキルがわかるような、より広範囲の領域をカバーしたアプリ開発
一番意識したのは、自走力や学習スキルがわかるような、より広範囲の領域をカバーしたアプリ開発をすること。
独創性のあるアプリを開発できるのは素敵だが、それ以上に現場で求められるのは、本来は即戦力だと思います。
ただ、実務未経験であるエントリーエンジニアは、可能性(自走力の高さ)や人間性をアピールするしかない。
そういう意味では、成果物のテーマ性・センスよりも、技術的な側面の学習スピードやカバー範囲をアピール材料にする方がいい戦略だと考えています。
② アピールした成果物は、フロント&API&DBをすべて設計&開発したECサイト
フロントは Next.js & TypeScript。APIは Express & TypeScript。DBは MySQL という構成で開発しました。
【 GitHubのSrc 】
Q3. 学習した内容で現場で特に役立ったものは?
A1. APIの開発 & DB連携スキル
学習した中でも、APIの開発やDBとのやり取り(SQL)などの経験値は現場でも役に立ちました。
先述の通り、最初のプロジェクトでは APIの開発経験を評価してもらってか、フロント開発とは別に Laravel(PHP)とFlask(Python)でAPIを2つ設計および開発しました。
A2. キャッチアップの速度を早めておいたこと
現場では、今まで知らなかった技術を任せられるのが、あたりまえだと思っておいた方がいいです。
ゼロイチでもキャッチアップできる学習速度は、現場で特に役立っています。
Q4. 意識しておくべきだったと感じたことは?
A1. Input / Output の Cycle とその出力先を意識すべき
ここで言う「Input / Output」とはエンジニアとしての日々の学習の入出力のことで、
その「I/O-Cycle」の回転数とその出力先を意識的に設定すべきだと思います。
例えば、待機期間中なら時間もあるので、インプットをしながら1ヶ月に1本アプリ開発(アウトプット)をするという計画や、
MyDocumentとして、QiitaやZenn、または個人Blogの経営を始めるなどのアウトプットもいいのではないでしょうか。
ただインプットをするだけでなく、アウトプットをしていくことがレベルアップには必須です。
A2. 逆算思考・戦略的思考を実践する
目標(Target)を達成するための「逆算思考・戦略的思考」は、どんな職種でも必須のスキルです。
1つのアプリを開発するにあたっても、そのGoalまでの道中には、様々なStepが待ち構えています。
それらをGoalから逆算して読んでいき、Goalまでのルーティングをしていくことが、アプリをスムーズに開発するためには重要です。
個人開発を通して、それらを今から磨いておくと、現場での開発の際に役立つことは間違いありません。
紙に書き記して、頭だけでなく紙の上で考えながら仕事を進めましょう。
後輩たちとの座談会 Q & A【 現場参画後について 】
後輩からの質問の中でも「現場参画後」に関するQ&Aを以下にまとめました。
Q1. 現場に入ってから苦労したことは?【技術編】
A1. WindowsOS特有の問題
もう慣れましたが、現場に入った当初は、
WSL2 や 環境構築の違いなど、WindowsOS特有の問題に悩まされました。
入る現場が決まったら、現場の開発環境に合わせて準備をするのも大事だと思います。
A2. ネットワークの知識など基本的なIT知識
ネットワークの知識やWeb開発関連の基礎用語など基本的なIT知識は幅広く持っておいた方がいいです。
実際のところ、実務では様々な技術に触れます。
例えば、httpとhttpsの違いや、FTPとFTPSとSFTPの違い、SSLとSSHの違いとかは分かりますか?
JSONとXMLとCSVなどのデータフォーマットについて理解していますか?
CRUD処理やAPIについて理解していますか?
もしわからない場合は、実務では多々使用することになるので、用語の理解だけでも今からしておくといいかもです。
Q2. 現場に入ってから苦労したことは?【マインド編】
A1. エンジニアは油断すると孤独になりやすい
エンジニアは、油断すると孤独になりやすいです。
私の前職が公務員で市民の方々と電話や窓口で毎日、常に話しているような仕事だったのでなおさらそう感じるのかもしれませんが、、、
エンジニアは油断すると1日誰とも喋らないがあり得る仕事です・・・
報告・連絡・相談と言うコミュニケーションを楽しみながら、積極的に現場のエンジニアの方と話すようにすることをオススメします。
実際に、現場の上長への報告・連絡・相談の頻度や質に関して、いい評価を頂いていることをフィードバックにて確認しています。
人と話すのはメンタルのリフレッシュ&クリエイティブにもなるので、雑談も大事です。
現場にいるMLの友人や、職場の人と積極的に雑談もするようにしています。
コミュニケーションを意識的に取って行きましょう。
A2. メリハリやモチベーションなどの管理
休みの日は、しっかりと遊んだり休んだり、仕事以外の活動をしたりと自分のしたいことをしっかりとすることが大事です。
休みを楽しむからこそ、仕事と休みのメリハリが生まれて、いいCycleが作れるようになると思います。
モチベーションとやる気、集中力に関しては、以前に記事にしているのでよかったら、見てみてください。
Q3. 現場で求められる技術・マインドは?【技術編】
現場で求められる技術・マインドについて、まずは技術のことから回答して行きます。
A1. 技術に関しては、現場によって違います。
現場で求められる技術は、そのプロジェクトの内容や、現場がどんな開発をするのかで違います。
私の現場に限って言えば、自社開発と受託開発の両方をしている現場なので、
自社開発の製品は、デスクトップ版はElectronですし、Webアプリ版はフロント側はVue-TypeScript, バックエンド側は、AWS, Python, C++などで開発をしています。
また、受託開発のプロジェクトの場合は、その案件によって求められる技術が変わります。
今までは、PythonやPHPでも開発していますし、DockerやShell-Script、AWSなども実務で使っています。
A2. フロントエンド以外の領域を担う覚悟を持っておく。
ポジションがフロントエンドなので、フロントの技術力を高めておくのはあたりまえですが、現場によっては、その他もいろいろ求められます。
私の現場の場合は、フロントエンドだけでなく、バックエンドもインフラもある開発にて任せられたりします。
フロントエンドは、データ連携など他とのリレーションなしでは成り立たないポジションなので、そう言う意味でもフロントエンド以外の領域に対する理解も重要です。
Q4. 現場で求められる技術・マインドは?【マインド編】
現場で求められる技術・マインドについて、次はマインドのことについて回答して行きます。
A1. 前に進み続ける意志を持って、ステップバイステップで前に進みましょう。
逆算思考・戦略的思考について、すでに話しましたが、Goalまでの道中には、様々なStepが待ち構えています。
それらのStepを1つずつ地道にクリアして行って、前に進むことが大事です。
特に、何かのSystemや機能を実装する時には、
そのSystemや機能を構成する要素を因数分解していき、必要なStepを言語化して、それらを小さい単位(Unit)で、Testをしながらクリアしていくことが必須です。
また、何か壁にぶつかったとしても、様々な角度からアプローチすることが大事です。
答えは、ひとつじゃないので、ひとつのルートがダメなら他のルートを模索するなど工夫して、クリアするための突破口を見つけましょう。
A2. 自ら仕事をもらいに行くアグレッシブさを持つ。
もしより速くスキルアップ・レベルアップしたいと考えているのなら、受け身ではいけません。
現場で経験する実務が何よりも勉強になります。
なので、仕事は期間を決めてメリハリを持って、取り組み。
どんどん仕事を終わらせて、次の仕事をもらいに行くようにしましょう。
どんどん仕事を片付けて、自ら仕事をもらいに行こうというアグレッシブさは、レベルアップだけでなく、評価であったり、仕事の速さにも直結すると思っています。
後輩たちとの座談会 Q & A 【 キャリアについて 】
後輩からの質問の中でも「今後のキャリア」に関するQ&Aを以下にまとめました。
Q1. どんなキャリア像をお持ちか?また、それに向けて努力していることは?
A1. なんとなくの方向性は決めているが、可能性を広げていく考えでいます。
まだまだ色々な技術に触れている途中で、どんな方向性でキャリアを積んでいくかは模索中です。
あまり早い段階から可能性を限定しすぎても逆によくないかもです・・・
ただ、自分の性格からして、エキスパートタイプではなく、いろいろな技術に触れるタイプのエンジニアまたは、マネージメントなどが向いているのではと考えています。
元々、エンジニアになった理由が海外で働いたり、より自由な生き方をしたいという動機です。
なので、フリーランスなども視野に入れて、今から情報発信などもしています。
後輩たちとの座談会 Q & A 【 その他 】
今まで、待機期間中, 現場参画後, 今後のキャリアについてのQ & A でしたが、その他のジャンルのQ&Aを以下にまとめました。
Q1. おすすめの学習用書籍やWEBサイトは?
Udemy
Udemyに沿って、新しい技術を体系的にステップバイステップで学ぶのは、おすすめです。
プロゲート
基本文法の確認や雰囲気を掴むにはちょうどいいです。
最初のプロジェクトで、PHPを初めて触ることになったので基本的な文法の確認は、プロゲートでしました。
コードレシピシリーズ
ユースケースごとに記載されているので実務でも何かと役に立ちます。
Q2. 待機から現場参画までのお話をお聞きしたいです。
7月に入社、9月までの3ヶ月間が研修で、10月から待機、初現場のアサインは1月からだったので、待機期間は3ヶ月でした。
待機中は、とにかくインプット&アウトプット(個人開発)をしており、1ヶ月に1本は、個人開発のアプリを作っていました。
現場参画に向けて、InputとOutputのCycleを回すことが大切です。
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!