メインコンテンツへスキップ
海外でエンジニアとして働くための学習ロードマップ【学ぶべき技術スタック】
  1. Posts/

海外でエンジニアとして働くための学習ロードマップ【学ぶべき技術スタック】

働き方・キャリア エンジニアリング 海外就職・移住 海外移住 エンジニア プログラミング学習 ITキャリア 海外就職 スキルアップ 技術スタック
KZY
著者
KZY
ベトナム在住8年目。モバイルアプリ開発やベトナム語学習情報をブログで発信しています。
目次

どのプログラミング言語を学ぼうか迷っている方向け。

せっかく時間をかけて学習するなら、需要が高く且つ長く使える技術を学習する方が好ましいです。

日本、海外で様々なプロジェクトを経験した身から、学ぶべき重宝するプログラミング言語について説明します。

この記事は以下のような方を対象者としています。

  • プログラミング初学者の方
  • スクールに申し込もうか独学にしようか悩んでいる方
  • 長く開発現場で使える技術に興味がある方
  • 将来海外でエンジニアとして働きたい方

前置き: 現場でよく使われる技術の理想と現実
#

まずはこちらのツイートをご覧ください。

結論から言うと、このツイートで明記している通り下記技術は今でも案件でよく使われる技術になります。
※2024年6月に修正済みです。

  • SQL
  • Nodejs/Typescript
  • AWS/GCP/Azure

逆にあれだけ昔は勉強したのに、今ではほぼ使わない技術は下記の通りです。

  • HTML
  • CSS
  • PHP

当然アサインされる案件にもよりますが、この辺りは正直深く勉強しなくてもよかったと思いました。

この辺りは実際に開発現場を経験してから感じた使われる技術の理想と現実のギャップになります。

フロントエンドエンジニア VS バックエンド : どっちを学ぶべき?
#

Alt text
駆け出しエンジニアの頃は「フロントエンド/バックエンドどちらになるべきか」悩みます。

私も同じように悩み、結果フロントエンドエンジニアを目指すことにしました。

開発現場で数年働いた今思うのは、フロントエンドもバックエンド両方ともある程度理解が必要です。

理由は技術的な要件について議論をする時にどちらの知識も必要になるからです。

例えば「おすすめの居酒屋ランキング(票数表示有り)」を表示する開発タスクがあるとします。

そうすると、開発現場のフロントエンドとバックエンドチームではどちら側で処理をするかという議論が始まります。

◆フロントエンド側の主張
ユーザが快適に使えるようにフロント側に余計な処理を入れてパフォーマンスを落としたくない
→バックエンド側で集計して、その値をフロント側に渡してくれない?

◆バックエンド側の主張
バックエンド側では別の処理を行っていて他の処理にまで影響してしまう
→値だけフロント側に渡すから、集計ロジックを入れて表示するようにしてくれない?

このように、実際の開発現場ではフロントエンドとバックエンド両方のエンジニアが協力する必要が出てきます。

それぞれの事情を理解するためにも、フロントエンド/バックエンドの知識はある程度勉強した方が良いです。

プログラミング学習:フロントエンドエンジニアがおすすめの理由
#

では一体何をどこまで学習すれば良いのでしょうか。

経験上、Javascript+何かしらのフレームワークを使って成果物作成が最良だと思います。

フレームワークとは「WebサイトやWebアプリを開発するためのライブラリの集合体」のようなものです。

フレームワーク側で用意された関数を使うことで自分で0から組み上げる必要がなくなり、手間をかけずに開発ができます。

ほとんどの開発現場では何かしらのフレームワークを使って開発を行う案件がほとんどです。

かつ、一度フレームワークを使って開発ができれば、新しいフレームワークであってもすぐにキャッチアップができます。

フロントエンドエンジニアの方にJavaScriptの学習をおすすめする理由は下記になります。

  • フロントエンド、バックエンド両方で使われる言語である
  • JavaScriptから開発できるものの種類が豊富(Web、モバイル、サーバサイド等)
  • SPAやPWAなどストア申請が不要なモバイルライクなアプリが作れる

フロントエンドエンジニアの辛いところ
#

上記色々とプラスの面のみ先に説明しましたが、マイナス面も併せて説明します。

実際の開発現場を経験し、下記がフロントエンドエンジニアの辛いところだと思います。

  • 技術の流行り廃りが早い
  • せっかく時間をかけて勉強してもすぐに使えなくなる
  • 常に最新の技術にキャッチアップし続けなければならない
  • 休みの日も常に学習を続けなければならない
  • デザイナーのセンス次第で頻繁に手戻りが発生する

プログラミング学習:バックエンドエンジニアがおすすめの理由
#

バックエンドとは基本的に裏側の処理部分を担当するので、フロントエンドよりも初めの難易度は高めです。

しかし、フロントエンドのように個人のデザインセンスや感覚の部分で修正が度々発生するようなことは大概は発生しません

また、サービスの責任領域が広いことから給与はフロントエンドよりも高い傾向にあると思います。

※技術レベルによります。

バックエンドエンジニアの辛いところ
#

バックエンドは実際の開発現場では度々の修正等はフロントエンドに比べ少ない傾向にあるかと思います。

ただし、下記の通りフロントエンドと比べてマイナスな部分も存在します。

  • エラーが起きるとサービスが停止したり、クラッシュしたりと致命的なケースが多い
  • サービスが停止するため、エンドユーザーへの影響度が大きい
  • SLA(サービス水準合意)にも関わり責任領域が大きい

バックエンドエンジニアのおすすめの学習ロードマップ
#

上記を踏まえておすすめする言語は同じくJavascript + Node.js + フレームワークの組み合わせです。

この技術スタックはWebサービスやWebサイトを構築する際に実際の現場でもよく使われるパターンです。

かつ、プログラミング初心者であってもとっつきやすく、日本語のドキュメントも豊富のためおすすめです。

データベース操作を行うSQLも学習しましょう
#

この技術スタックに加えSQL(データを扱うプログラミング言語)も組み込むとより良いと思います。

DBエンジンの選択については、MySQLとPostgresSQLを選びCRUD操作を押さえておけば十分です。

CRUDとはデータの作成・読み込み・更新・削除の頭文字を撮ったもので、データベース操作の基本行動を指します。

エンジニアは誰にでも慣れるが、年齢による限界がある
#

これは僕自身が開発現場で数年働いて強く感じたことです。

特に日本では未経験でエンジニアとして雇ってくれる企業が多いです。

そのためエンジニアになることは比較的容易にできます。

問題なのは、エンジニアをいつまで続けるのかという点です。

長くコードを書く仕事を続けることは下記理由からおすすめはできません。

  • 肉体的限界がくる
  • 若く優秀な人と常に戦い続けなければならない
  • 実力主義の世界、年功序列はない

エンジニアの先のキャリアは何がおすすめなのか
#

基本これは海外でもそうですが、ずっとコードをかくエンジニアを続ける人は少ないです。

感覚値になりますが、おそらく10%以下だと思います。

エンジニアの後にどのようなキャリアがあるのかというと、実は選択肢は結構広いです。

  • 技術も分かる営業
  • IT・システムコンサルタント
  • 技術支援・テクノロジスト
  • データサイエンティスト
  • 起業家
  • スクール事業

関連記事

【海外移住】移住前に将来のキャリアを考えておかないと失敗する件
海外移住・生活 働き方・キャリア 海外就職・転職 海外移住 ベトナム キャリア設計 海外就職 働き方 ライフプラン 移住準備
海外移住現地採用か海外駐在かどちらがおすすめか解説
海外移住・生活 働き方・キャリア 海外就職・転職 海外移住 ベトナム 現地採用 海外駐在 キャリア 働き方 海外就職
【残業大国】日本の異常な労働環境をベトナムで働いてみて実感した件
働き方・キャリア 海外就職・移住 社会・文化比較 キャリア ベトナム 働き方 残業文化 海外就職 ワークライフバランス 労働環境