エンジニアを目指して勉強をはじめたのはいいものの、基礎知識を身につけた後に何をすべきか分からない方が多いのではないでしょうか。

Web上には、初心者が基礎知識を身につけられるオンライン学習サービスは充実しています。しかし、現場で働けるエンジニアになるためには、基礎知識を身につけた後に何をすべきかまでをフォローしていません。

そこで今回は、オンライン学習サービスでプログラミングの雰囲気を掴んだ初心者に向けて、現場のエンジニアレベルに近づくための方法をご紹介します。

初心者から現場レベルになるためには

現場レベルになるためには、プログラミングができるだけではなく、環境構築や調べる力が重要です。

ここでは、それぞれの力を身につけるために実践したい方法を3つご紹介します。

AWSにEC2を構築し、アプリケーションをデプロイする

AWSとはAmazon Web Servicesの略で、Amazonが提供しているクラウドコンピューティングサービスのことです。今流行りのクラウドサービスは、AWSを利用しているケースが多く見られます。

EC2は、AWSで提供されているサービスの1つで、仮想サーバーを構築できるサービスです。そもそも、Webサービスを公開するためにはサーバーが必要になります。アプリケーションをプログラミングによって作成した後、サーバーにデプロイといわれる作業をすることで、Web上に公開ができます。

現場では、エンジニアの役割としてプログラミングだけではなく、こうしたデプロイ作業も含まれるのがほとんどです。現場で活躍するためには、こうしたサーバー関係の知識を持つのが必須になります。

本工程を経験すると、以下のスキルが身につきます。

  • クラウドの知識
  • インフラの知識
  • 環境構築
  • アプリケーションの実装力

今の時代、自社でサーバーを構築するオンプレミス環境のサーバーは減っており、クラウド型のサービスがメインです。本工程の中で、クラウドにアプリケーションをデプロイする経験をして現場のエンジニアへと近づきましょう。

毎日GitHubにコミットし続ける

Github

GitHub

GitHubとは、世界中の人々がプログラムコードを共有できるソースコード管理サービスのことです。

最近では、ほとんどの現場で利用されているサービスになるため、エンジニアを目指すなら身につけておきたいところです。

Gitについては、下記の記事で詳しく解説しているので参考にしてください。

ここでは、GitHubにコミットし続ける理由を3つご紹介します。

面接時にポートフォリオとして利用できる

GitHubにコミットしているプログラムは、面接時のポートフォリオとして利用できます。

ポートフォリオは、自分の実力を証明するために成果物として提示するもので、プログラムをポートフォリオとして提示する人が多く見られます。

しかし、ポートフォリオとして提示する場合、ただコーディングしたものでは評価されません。以下の点に注意したコーディングが必要です。

  • 変数名は適切であるか
  • 無駄な処理を書いていないか
  • 処理の共通化はできているか
  • オブジェクト指向にしたがったコーディングをしているのか
  • 見やすいコードになっているのか

成果物として提出する以上、常に質の高いコードをコミットできるようにしましょう。

エンジニアの素質が身につく

エンジニアの素質とは、常に勉強を続ける姿勢です。毎日GitHubにコミットすることで、継続して勉強する習慣が身につきます。

日々新しい技術が登場しており、明日になったら今使っているシステムよりも新しくて効率的なシステムが出ることも日常茶飯事です。

こうした時代の変化についていくためにも、エンジニアは常に最新の技術をアンテナを張っておく必要があります。社会全体でも最新の技術を追い求めているため、最新の技術を扱えるエンジニアは需要が高く、報酬も高くなる傾向があります。

業界によっては、最新の技術を扱えない環境もあるので、自分が歩みたいキャリアに応じて選定していくのがおすすめです。

スカウトされる場合も

GitHubは、自分でコミットしたコードを全世界に公開できるため、自分が公開したコードを見て企業や個人が連絡をくれるケースもあります。

コーディングとしての質はもちろん、斬新なアイデアのシステムである場合も評価されることが多いです。

最近は、GitHubに社外秘のコードをコミットして問題になったケースも多いため、コミットするものは、著作権が自分にあるコードだけにしましょう。

アルゴリズムを学ぶ

アルゴリズムは、プログラムでどのような処理にするかを手順化したものです。アルゴリズムにはさまざまな種類があり、その時々に応じた最適なアルゴリズムの利用が求められます。

ここでは、プログラミングでよく利用されるアルゴリズムをご紹介していきます。

バブルソート

プログラミングのアルゴリズムといえば「バブルソート」の名前がよくあがります。

バブルソートは、データの末尾から隣り合う数字を比較していく方法です。たとえば、{3,5,8}を降順にバブルソートしてみます。

  1. {3,8,5}8と5を交換
  2. {8,3,5}8と3を交換
  3. {8,5,3}5と3を交換

マージソート

マージソートは、複数ある数字をそれぞれ1つずつ分解した後に、要素同士を比較しながら結合して行く方法です。

たとえば、{4,3,5,2,8,1,7,6}をマージソートしてみます。

  1. {4,3,5,2}{8,1,7,6}に分割
  2. {4,3}{5,2}{8,1}{7,6}に分割
  3. {4}{3}{5}{2}{8}{1}{7}{6}に分割
  4. {3,4}{2,5}{1,8}{6,7}に結合
  5. {2,3,4,5}{1,6,7,8}に結合
  6. {1,2,3,4,5,6,7,8}に結合

二分探索

二分探索は、ソート済みの配列に対して実行されるもので、真ん中から検索をして高速化を図る探索方法です。

たとえば、{1,2,3,4,5,6,7}にソート済みの配列から6を探すとしましょう。最初から順番に探せますが、時間をかけることになってしまいます。そこで、真ん中の値から順に探索することで、最初から探すよりも早い時間で見つけられるのです。

具体的には、以下の手順で6を見つけます。

  1. {1,2,3,4,5,6,7}の真ん中にある4と6を比較
  2. 4 < 6のため、右半分の{5,6,7}の真ん中にある6と比較
  3. 対象の6が見つかったため、二分探索の処理が終了

現場レベルを目指すならAWSの習得は必須

「Progate」や「ドットインストール」などでプログラミングを学習しても、現場レベルのエンジニアとして活躍するのは難しいです。

エンジニアは、プログラミングのスキルだけではなく、クラウドやインフラの知識も必要となります。こういった技術を身につけるためにも、今回紹介した方法で脱初心者を目指しましょう。