アプリエンジニアしてたけど質問ある?②
前回記事に続き、「アプリエンジニアしてたけど質問ある?」というテーマで、YouTube視聴者の方々からいただいた質問にお答えしようと思います。
それでは、さっそく質問に答えていきます!
11. エンジニアってモテる?
正直に言うと、エンジニアだからモテるというわけではないかもしれません。昔はエンジニアという職業は、「内向的で無口」「オタクっぽい」といったイメージが強かったため、あまりモテる職業ではなかったかもしれません。
ドラマの「電車男」のように「趣味はネットサーフィンです」みたいなイメージがありましたw
しかし、最近ではIT業界の急成長とともに、エンジニアが高収入で安定した職業として注目されるようになり、評価が変わってきました。
また、「デジタルノマド」や「スタートアップの起業家」など、エンジニアが自由に働きながら世界を飛び回ったり、新しい技術を駆使してビジネスを立ち上げる姿は、人間としても非常に魅力的ですよね。
もちろん、モテるかどうかはその人の性格やコミュニケーション能力に大きく依存しますが、エンジニアリングスキルを持っていることで、仕事以外でも論理的に物事を考えたり、スマートに問題解決する能力が求められる場面が増えます。それが結果的に自信を持ち、魅力的に見える要素となるかもしれません。
12. エンジニアの仕事って大変?
エンジニアの仕事は確かに大変なこともありますが、その分やりがいのある職業だと思います。特にシステムのトラブルシューティングやバグ修正には多くの時間を費やさなければならず、精神的なプレッシャーを感じることも多いです。
また、アプリがうまく動かないときのストレスも凄まじく(深夜対応とかもZARA)、クライアントからの期待に応えるためには速やかに対応しなければなりません。
とはいえ、その問題を解決し、システムが正常に動作した瞬間の達成感は非常に大きなものがあります。成功したときには、日々の努力が報われた実感が湧き、また次の課題に挑戦したいというモチベーションが湧きます。
エンジニアはチームでも協力して問題を解決していくため、仲間と一緒に乗り越えたときの充実感も格別です。
13. バグが発生したとき、どう対処する?
エンジニアとバグは切っても切れない仲ですw長年連れ添った恋人のように、あるいは別れたはずなのに離れられないメンヘラカップルのような存在です。

バグが発生したときには、まず冷静に状況を分析することが重要です。エラーメッセージやログを確認して、問題の原因を突き止めることから始めます。その後、デバッグツールを使って問題が発生している箇所を特定し、修正を行います。
バグの修正が終わった後は、必ず再度テストを行い、修正した部分が他の部分に影響を与えていないかを確認することも大切です。いわゆるリグレッションテストですね。
バグ修正には一度の対応で済むこともあれば、複数回の試行錯誤が必要な場合もあります。泥沼にハマると延々とデバッグする羽目になりますw
チームメンバーと協力して解決することが多いため、コミュニケーションを取りながら進めることが解決のカギとなります。
14. 仕事で使っている技術はどこで学んだ?
私の場合は大学が情報工学科だったので、そこでプログラミングは学びました。最初の会社に入社してからも研修はあったので、そこで実務的なプログラミングを学び直した感じです。
とはいえ、現場で使える技術はやはり実務を通じて学びました。分からないことはオンライン学習プラットフォームや書籍で学び、実際のプロジェクトで得た経験を元にスキルを磨いていきました。特に実際にプロジェクトを進める中で、他のエンジニアや先輩からのフィードバックは何よりも有益でした。
今はコンサルとしてプログラミングのようなゴリゴリのエンジニアリングスキルよりは課題解決能力だったりマネジメントスキルを意識的に伸ばすようにしていますが、根っこにはエンジニアとして培ったロジカルシンキングがありますね。
15. テストってどうやって進めるの?
テストは、アプリケーションが正しく動作するかを確認するための重要なプロセスです。ウォーターフォールだと基本的には、単体テスト、結合テスト、システムテストの段階を経て進めます。アジャイルはそれらをサイクリックに進めますね。
単体テストでは、個々の機能が正しく動作しているかを確認します。結合テストでは、複数のモジュールが正しく連携して動作するかを確認します。
システムテストでは、アプリケーション全体が正常に機能しているかをチェックします。
最近では、テストの効率化のために自動化テストを導入するアプリやプロジェクトも増えており、テストスクリプトを使って繰り返しのテストを行うことが一般的です。
一方で、テストコードを記述すると当然保守するコードの総量は増えるので、適用する場合はpros&consを分析した上で取り組むのがよいでしょう。

16. 新しい技術をどうやって学ぶの?
私が新しい技術を学ぶときにはまずはネットでぐぐりますwchatGPTに聞いてしまったりもしますね。
本格的に実務で使うものであってもアウトラインを理解することが重要です。理解が深まったら、公式ドキュメントを読んだり、簡単なプロジェクトを作成して実践的に学びます。オンラインチュートリアルやYouTubeの動画を参考にすることも効果的です。
仲間のエンジニアなんかだとさらに、オープンソースプロジェクトに参加したり、GitHubで他のエンジニアのコードを確認したりすることで、最新の技術をどのように使っているかをラーニングしてましたね。技術のコミュニティに参加して質問をしたり、フィードバックをもらうことも、新しい技術を学ぶための良い方法です。
17. エンジニアとしての成長を実感する瞬間は?
難しい技術的な課題を解決したときや、新しい技術を使いこなせるようになったときです。最初は理解できなかったアルゴリズムや技術を、自分で実装できるようになったときは大きな達成感があります。
はじめはC言語しか書けませんでしたが、そこからJavaやC#を読めたり書けたりするようになってからは成長を感じました。
また、チームの中でリーダーシップを発揮し、他のメンバーにアドバイスできるようになったときも、成長を感じる瞬間です。クライアントからのフィードバックで「この機能使いやすい」と言われたときには、自分のスキルが実際に役立っていることを実感でき、大きな喜びを感じます。
18. エンジニアのキャリアアップには何が必要?
エンジニアとしてキャリアアップするためには、技術スキルの向上とプロジェクトマネジメントの経験が必要です。まずは、複数の技術を学び、特定の分野で深い知識を持つことが求められます。
キャリアアップにはチームリーダーやテックリードとしてプロジェクトを管理する経験も避けては通れません。特に日本だと。
これにより、技術だけでなく、コミュニケーションスキルや問題解決能力が身につきます。さらに、PMPやAWS認定といった資格を取得することも、キャリアアップに役立つ場合があります。
19. どのくらいの頻度で技術を学び直す必要がある?
IT業界は技術の進化が非常に速いため、常に学び続けることが求められます。新しいフレームワークやツールは数年ごとに登場するため、年に数回は新しいバージョンや技術にキャッチアップする必要があります。
また、特定の分野に関する深い知識を持つことが重要ですが、幅広い技術を理解しておくことも求められます。たとえば、数年前に学んだ技術が今では時代遅れになっていることもあるため、技術トレンドを常にチェックし、定期的に新しいスキルを追加していくことが大切です。
僕が新卒(2017年)の頃にはブロックチェーンがトレンドキーワードとしてめちゃくちゃ流行ってて、「銀行が潰れる」みたいな予測が乱立していましたが、最近だとめっきり聞かなくなりましたね、、
20. フリーランスと正社員の違いは?
フリーランスと正社員の最大の違いは、働き方の自由度です。フリーランスは、自分でプロジェクトを選び、スケジュールを調整できるため、非常に柔軟な働き方が可能です。しかし、その分、仕事を獲得するための営業活動や契約交渉、税務管理なども自分で行う必要があり、収入が安定しないこともあります。
言ってしまえばサービスを自分とした起業のようなものなので、リスクはありますがリターンややりがいは大きいです。
一方、正社員は安定した給与と福利厚生が提供されますが、会社の方針やプロジェクトに従って働かなければならず、自由度は低くなります。それぞれの働き方にはメリットとデメリットがありますが、僕自身フリーランスになったことに後悔はありません。
ダイバーシティの時代ですので、自分にあった働き方を積極的に模索していきましょう!
