Javaエンジニアはどんなポートフォリオを作ればいいの?サンプルコードあり【未経験者・初心者も】

「Javaが好きでエンジニアを目指しているけど、ポートフォリオって必要なの?」

「ポートフォリオ作成のポイントが知りたい!」

この記事では、Javaを使ったポートフォリオのポイントや準備事項、必要性まで徹底的に解説します。

また、未経験者におすすめのポートフォリオ制作に特化したスクールや転職エージェントについても紹介しています。

ポートフォリオを作成する前に一読してほしい内容です。それでは早速見ていきましょう!

目次

エンジニア転職にポートフォリオが必須な理由

エンジニア転職にポートフォリオが必須な理由は以下の3つです。

  • 開発スキルや実績の証明に必要だから
  • 企業とのミスマッチを防げるから
  • 未経験の場合だとポートフォリオなしに転職活動ができないから

それでは一つずつ見ていきましょう。

理由①:開発スキルや実績の証明に必要だから

就職・転職の際にポートフォリオを提示するだけで、持っているスキルが一目で伝えることができます。

ポートフォリオは、資格や言葉ではわからない技術力を面接の時にアピールできるメリットがあります。

また、プログラミング未経験者や別の業種からIT業界に転職する方は、ポートフォリオを作成すれば面接時の話の種にもなるでしょう。

IT業界で働きたい方がポートフォリオを作成することで、面接などで有利に働くことが多いと言えます。

参考記事では、さらに奥深くポートフォリオの必要性について解説しているので確認してみてくださいね!

参考:【フロントエンドエンジニアを目指す人は要必見】ポートフォリオの必要性と準備のコツ

理由②:企業とのミスマッチを防げるから

IT未経験の場合、企業の採用面接官の立場からすると、どのようなスキルを持っているのか口頭だけではわからない場合が多いです。

そのときに、ポートフォリオがあれば、応募者のスキルと企業側が求めるスキルとのミスマッチがないか確認することができます。

応募者側としても、入社してから自分が培ったスキルとは異なる仕事ばかり任され、困る心配も少なくなるでしょう。

このように、ポートフォリオを作成すれば企業とのミスマッチを防ぐことができます。

理由③:未経験の場合だとポートフォリオなしに転職活動ができないから

IT未経験からエンジニアへ転職する場合、企業によってはポートフォリオの提出が絶対であるところも多いです。

ポートフォリオによって、面接をする前に自社に合ったスキルや実績を持つ人物なのかどうか判断されます。

未経験の方であれば、独学でポートフォリオを作成するのではなくプログラミングスクールに通って、現役エンジニアから的確なアドバイスをもらうようにしましょう。

ポートフォリオを作成する前の準備事項

まずはポートフォリオを作成する前の準備事項について、確認しましょう。

  • 成果物を洗い出す
  • ポートフォリオの構成を考える
  • アピールしたいことを洗い出す

それでは一つずつ解説します。

準備事項①:成果物を洗い出す

成果物というのは、Javaを使ったWebアプリだけでなく開発履歴があるGithubのURLや関連する資格やクラウドソーシングなどの実績、勉強会やコミュニティなどについて記載しておくとよいでしょう。

ポイントとして、リンクをはるだけでなく資格や実績などの概要や参加した勉強会での写真があると効果的です。

成果物はエンジニアとしての客観的スキル証明に役立つことでしょう。

準備事項②:ポートフォリオの構成を考える

ポートフォリオの構成を事前に考えましょう。

プロフィール、制作物の紹介、アピールポイント、実績、連絡方法などの配置を決める必要があります。

ポートフォリオサイトは「Portfoliobox」や「note」などが初心者におすすめです。noteに関してはポートフォリオ用のサイトとは異なりますが、拡散されやすくコミュニティも形成できるメリットがあります。

初めてポートフォリオを作る方は、テンプレを参考にするとよいでしょう。

準備事項③:アピールしたいことを洗い出す

最後に、成果物についてアピールしたいことをまとめる必要があります。

アピールポイントとしては以下のようなことがあげられます。

  • どういう意図でポートフォリオを作成したのか
  • どのような技術を使ったのか

たとえば、ToDoアプリであれば以下のようにアピールしてみるとよいでしょう。

今回制作した△△ToDoアプリは、学生が使いやすいように、勉強や部活の予定だけでなくYoutubeと連携できるように実装しました。その際に使ったのは〇〇と〇〇〇というフレームワークです。

文章だけでなく、実際に使ったときの写真や動画があるとさらに効果的です。

オススメのJavaポートフォリオ例

Javaを使ったおすすめのポートフォリオについて紹介します。

  • Webアプリ
  • Androidアプリ
  • ゲームアプリ

未経験者からでも比較的取り組みやすいポートフォリオ例です。早速見ていきましょう!

例①:Webアプリ

JavaでWebアプリを開発する場合、Servlet(サーブレット)と呼ばれるJavaで作成したプログラムをサーバーに配置し、ブラウザからアクセスされた場合に操作内容に応じた処理を行います。システム開発の仕事につきたい方やデータベースを利用したアプリ開発職に興味がある方におすすめのポートフォリオです。

例②:Androidアプリ

Androidアプリは、Androidアプリを開発するためのGoogle公式の開発ツール「Android Studio」を使えば、比較的簡単に制作することができます。

Android Studioをインストールすれば、XMLで画面を作り、自分が開発したいアプリのソースコードを書いていきます。アプリが完成すれば、Google Playにてアプリをリリースしてみましょう。実際に利用した方からフィードバックがもらえる良い機会です。

例③:ゲームアプリ

ゲームアプリは本格的なオブジェクト指向プログラミングが必要となるため、Javaに慣れてきたら取り組むとよいでしょう。

まず、ゲームの仕様が決まれば、ゲームの枠組みとなるクラスを作成していきます。ゲームのメイン画面やゲームの説明画面を実装します。そして、ゲームの仕様に従ってゲームメインクラスを作成します。

以下は、簡単な「じゃんけんアプリ」のサンプルコードです。参考にしてオリジナルゲームアプリを作ってみてくださいね!

まず、メイン画面を実装します。メイン画面はこれから説明するクラスを呼び出すだけでかんせいです。

  1. package com.original_game.janken;
  2.  
  3. import javax.swing.JFrame;
  4.  
  5. public class GameMain {
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. //ウィンドウ設定
  9. JFrame frame = new JFrame(“じゃんけんゲーム”);
  10. frame.setSize(640, 480);
  11. frame.setLocationRelativeTo(null);
  12. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13. frame.setResizable(false);
  14. Panel.createPanel(frame);
  15. //ウィンドウ表示
  16. frame.setVisible(true);
  17. }
  18. }

こちらは、表示画面(パネル)の設定です。コピペすると、以下のようなパネルが完成します。

  1. package com.original_game.janken;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7.  
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11.  
  12. public class Panel {
  13. public static JLabel headerLabel;
  14. public static JLabel contentsLabel;
  15. public static void createPanel(JFrame frame) {
  16. //ヘッダーパネル
  17. Dimension headerPanelDimension = new Dimension(640, 50);
  18. JPanel headerPanel = setPanel(Color.BLACK, headerPanelDimension);
  19. headerLabel = new JLabel(“「さあ、じゃんけんで勝負だ!」”);
  20. headerLabel = setFont(Color.WHITE,headerLabel,24);
  21. headerPanel.add(headerLabel);
  22. frame.add(headerPanel,BorderLayout.NORTH);
  23. //コンテンツパネル
  24. Dimension contentsPanelDimension = new Dimension(640, 380);
  25. JPanel contentsPanel = setPanel(Color.WHITE,contentsPanelDimension);
  26. contentsLabel = new JLabel(“じゃんけん・・・”);
  27. contentsLabel = setFont(Color.BLACK,contentsLabel,54);
  28. contentsPanel.add(contentsLabel);
  29. frame.add(contentsPanel,BorderLayout.CENTER);
  30. //フッタパネル
  31. Dimension footerPanelDimension = new Dimension(640, 50);
  32. JPanel footerPanel = setPanel(Color.BLACK,footerPanelDimension);
  33. Player.createButton(footerPanel);
  34. frame.add(footerPanel,BorderLayout.SOUTH);
  35. }
  36. public static JPanel setPanel(Color color, Dimension PanelDimension) {
  37. JPanel panel = new JPanel();
  38. panel.setPreferredSize(PanelDimension);
  39. panel.setLayout(new BorderLayout());
  40. panel.setBackground(color);
  41. return(panel);
  42. }
  43. public static JLabel setFont(Color clr,JLabel label,int strSize) {
  44. label.setForeground(clr);
  45. Font labelFont = new Font(“MS ゴシック”,Font.PLAIN,strSize);
  46. label.setFont(labelFont);
  47. label.setHorizontalAlignment(JLabel.CENTER);
  48. label.setVerticalAlignment(JLabel.CENTER);
  49. return(label);
  50. }
  51. }

こちらは、じゃんけんのルールを設定するクラスです。勝ったら+1、アイコなら±0、負けたら0点に戻る形式です。ここのルールは工夫ポイントとなるので好きなように実装してみてください。

  1. package com.original_game.janken;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8.  
  9. import javax.swing.JButton;
  10. import javax.swing.JPanel;
  11.  
  12. public class Player implements ActionListener {
  13. public static void createButton(JPanel footerPanel) {
  14. //ボタンを表示
  15. JButton btnGu = new JButton(“グー”);
  16. btnGu = setButton(btnGu);
  17. footerPanel.add(btnGu, BorderLayout.WEST);
  18. JButton btnChoki = new JButton(“チョキ”);
  19. btnChoki = setButton(btnChoki);
  20. footerPanel.add(btnChoki, BorderLayout.CENTER);
  21. JButton btnPa = new JButton(“パー”);
  22. btnPa = setButton(btnPa);
  23. footerPanel.add(btnPa, BorderLayout.EAST);
  24. }
  25. public static JButton setButton(JButton button) {
  26. int buttonSizeX = (640 – 20)/3;
  27. Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
  28. button.setPreferredSize(buttonDimesion);
  29. Font buttonFont = new Font(“MS ゴシック”,Font.PLAIN,24);
  30. button.setFont(buttonFont);
  31. Player player = new Player();
  32. button.addActionListener(player);
  33. return(button);
  34. }
  35. public void actionPerformed(ActionEvent e) {
  36. String command = e.getActionCommand();
  37. int playerHand = 0;
  38. if (command.equals(“グー”)) playerHand = 1;
  39. else if (command.equals(“チョキ”)) playerHand = 2;
  40. else if (command.equals(“パー”))  playerHand = 3;
  41. int computerHand = Computer.decidesComputerHand();
  42. VictoryOrDefeat.decisionVictoryOrDefeat(computerHand, playerHand);
  43. }
  44. }

乱数を決めるクラスです。出た数値に従ってPC側のじゃんけんの手が決まります。

  1. package com.original_game.janken;
  2.  
  3. import java.util.Random;
  4.  
  5. public class Computer {
  6. public static int decidesComputerHand() {
  7. Random random = new Random();
  8. int rnd = random.nextInt(3)+1;
  9. if (rnd == 1) Panel.contentsLabel.setText(“グー”);
  10. else if (rnd == 2) Panel.contentsLabel.setText(“チョキ”);
  11. else if (rnd == 3) Panel.contentsLabel.setText(“パー”);
  12. return (rnd);
  13. }
  14. }

最後に、じゃんけんの勝敗を決めるクラスを作成します。

  1. public class VictoryOrDefeat {
  2. private static int point = 0;
  3. public static final void decisionVictoryOrDefeat(int computerHand,int playerHand) {
  4. int playerHandTemp = playerHand;
  5. playerHandTemp++;
  6. if (playerHand == computerHand) {
  7. Panel.headerLabel.setText(“あいこかよ!(” + point + “)”);
  8. }
  9. else if ((playerHand == 3 && computerHand == 1)||(playerHandTemp == computerHand)) {
  10. point+=1;
  11. Panel.headerLabel.setText(“お前の勝ちかよ!(” + point + “)”);
  12. }
  13. else {
  14. point=0;
  15. Panel.headerLabel.setText(“お前の負けかよ!(” + point + “)”);
  16. }
  17. }
  18. }

参考:https://original-game.com/java-janken-game-program/#m_heading-13

アピールできるポートフォリオのポイント

アピールできるポートフォリオのポイントについて、現役エンジニアの目線を踏まえて解説します。

  • 独自性
  • 実績やスキル、経験
  • 使用した技術を明記
  • デザインにこだわり過ぎない

それでは一つずつ見ていきましょう!

ポイント①:独自性

ポートフォリオは独自性が最も大事と言えます。

参考サイトに落ちていたサンプルコードを少し変えただけの内容では、アピール材料としてはイマイチとなります。また、初学者によくあるミスとして、プログラミングスクールに通ったものの、サンプルの中から選ぶことになり他の受講生と制作物が被ってしまうということです。

自分を採用するメリットを企業側に伝えるためにも、独自性豊かなポートフォリオで自分のスキルを正しく伝えるようにしましょう。

ポイント②:実績やスキル、経験

実績やスキル、経験についてわかりやすく記載しましょう。

未経験の場合では、クラウドソーシングを使った実績作りやGithubの開発履歴、Qiitaなどの技術ブログでの投稿履歴などが役立ちます。

また、コミュニケーション能力やマネジメント力などITスキル以外でもアピールするとよいでしょう。

ポイント③:使用した技術を明記

プログラミングスキルに加え、デザインで勝負したい方でも使用した技術を明記するようにしましょう。

見た目だけでは、どのような技術が使われているのか伝わるのは難しいでしょう。

たとえば、Photoshop使用歴3年というように、使用した技術と共に使用期間についても記載があるとなお良いと言えます。

ポイント④:デザインにこだわり過ぎない

未経験者にありがちなミスの一つとして、デザインや見た目にこだわってしまうことが挙げられます。

確かに、見た目は整っている方が良いですが、あくまでJavaなどのプログラミング技術をアピールすることが目的です。

デザインは後回しにして、スキルや実績を一目で見やすくするようにこだわりましょう。

ただし、WebデザイナーからJavaエンジニアへ転職する方はWeb制作スキルに加えデザイン力をアピールすると効果的です。

未経験ならプログラミングスクールでポートフォリオを作成しよう!

ポートフォリオを制作スキルを身につけたい方におすすめのスクールを紹介します。

  • 侍エンジニア
  • テックアカデミー
  • Code Camp(コードキャンプ)

それでは一つずつ見ていきましょう!

おすすめのスクール①:侍エンジニア

SAMURAI  ENGINEER(侍エンジニア)は、挫折しないプログラミングスクールとして売り出しています。

侍エンジニアでは30種類以上のオリジナルWeb制作から選択して学ぶことができます。

そのため、フリーランスとしての実績作りを学びながらできるメリットがあります。

また、現役エンジニアと交流ができるイベントが定期的に開催されるため、継続的にモチベーションを維持することができます。

口コミについては以下の参考記事から確認しましょう。

参考:侍エンジニア塾の口コミ・評判を現役エンジニアがレビュー【最悪っていう噂があるけど本当?】

おすすめのスクール②:テックアカデミー

Tech Academy(テックアカデミー)の特徴は、通過率10%の選考に合格した現役エンジニアの講師によるマンツーマン授業を受けることができることです。

また、コースも他プログラミングスクールを圧倒する豊富なラインナップがあります。

そのため、以下のようにポートフォリオ作成に特化したコースも複数提供されています。

自分が伸ばしたいWeb制作スキルを組み合わせることができるスクールです!

各コースの口コミや評判については、リンクから参照してくださいね!

おすすめのスクール③:CodeCamp(コードキャンプ)

CodeCamp(コードキャンプ)は、自分に合った講師を好きに選択できる独自のシステムがあります。

また、チャットで気軽に現役エンジニアと相談できる「キャリアTalk」や転職エージェントサービスなど転職支援サポートも充実しています。

CodeCamp(コードキャンプ)の「Webマスターコース」では、インターネット掲示板やオンラインショッピングサイトなどの実務的なWebサービスを作れるようになります。

複数のポートフォリオを制作するカリキュラムが含まれているので、フリーランスもWebデザイナーになりたい人にオススメのスクールと言えます!

口コミについては以下の参考記事から確認しましょう。

参考:コードキャンプ(CodeCamp)で未経験から転職はできるのか現役エンジニアが徹底解説!

Javaエンジニアを目指したい人におすすめの転職エージェント

Javaエンジニアを目指したい人におすすめの転職エージェントについて紹介します。

  • doda
  • IT求人ナビ
  • Tech Stars Agent

それでは一つずつ見ていきましょう!

転職エージェント①:doda

テレビCMでもお馴染みの「dodaエンジニア IT」では、優秀企業やトップヘッドハンターから直接スカウトをもらえるメリットがあります。

また、日本最大の紹介エージェントを誇り、ベンチャーやスタートアップ企業から大手企業までさまざまな案件を取り扱っています。

転職エージェント②:IT求人ナビ

「IT求人ナビ」はIT業界の専門エージェントとして10年以上の実績があります。

また、フリーランスや転職、未経験などそれぞれ求職者のタイプ別でサービスが提供されています。

キャリアコーディネーターが経歴や業界の動向などを考慮し、過去の事例をふまえてアドバイスをします。

気になる方は、以下の記事にて口コミや評判を確かめてみましょう!

参考:「IT求人ナビ 転職」の口コミ・評判を徹底レビュー

転職エージェント③:Tech Stars Agent

「TechStars Agent」はITやWeb、ゲーム業界の「エンジニア」に特化した転職エージェントです。

また、コンサルタントは業界経験者のみなので、求職者の特性と企業の特性を考慮し、それぞれに合う企業を紹介してもらえるメリットがあります。

入社後のミスマッチも1%以下に抑えることができていることから、丁寧なサポートであることがわかります。

上記で紹介した他にも転職エージェントが知りたい方は参考記事にてご確認ください!

各転職エージェントの口コミをチェックしつつ、うまく活動しましょう。

参考:エンジニア向けの案件がそろったおすすめの転職サイト•転職エージェント18選

Javaエンジニアのポートフォリオまとめ

Javaエンジニアを目指す人がポートフォリオ制作で気を付けるべきポイントは以下の通りです。

  • 独自性
  • 実績やスキル、経験
  • Javaのトレンド技術を使う
  • デザインにこだわり過ぎない

今回解説したポートフォリオの作成ポイントを参考に、自分だけのオリジナリティ溢れる作品でアピールしていきましょう。

よかったらシェアしてね!
目次
閉じる