この記事を書いた人
しば
# GAFAM現役社員(技術職)| ITキャリア20年+
# 2流文系卒 | 底辺からのGAFAM転職成功者
# 年収1800万円+
# 転職のコツ教えます
ポートフォリオを作成するのは理解できたんですが、どんなポートフォリオを作ったらよいですかね?
ありがとうございます。ポートフォリオは誰かに見てもらうものなんで、その誰かを明確にしていきましょう。
それは 採用担当者 です。
あなたが次のキャリアに、正社員を選ぶのであれば、その企業の採用担当者です。
あたなが次のキャリアに、フリーランスを選ぶのであれば、その仕事の発注者(プロジェクトマネージャー)です。
正直、早く1000万円稼げればよいと思っています。
それも正解だと思います。ただこれからプログラミングを勉強していくのに、どのようなキャリアパスがあるのか知っておく事に損はないと思いますし、これからポートフォリオを作っていくために必要な情報であることは間違いないです。
そうかもしれないですね。
プログラマー初心者のあたな が 考えるキャリアパスは?
プログラマー初心者から、フリーランスか正社員か?
プログラマーで正社員?
プログラマーでフリーランス?
今回は私の方でキャリアパスのパターンを書いてみました。キャリアパスのパターンはこれがすべてではないですが、とりあえず。
(図をクリックすると大きく表示されます)
まずは 正社員かフリーランスで別れるんですね。
フリーランスから正社員のパスはありますか?
ありますね。ただし、年齢と年収が関係してきます。フリーランスから正社員に転職するならできる限り若いうちの方が良いです。
フリーランスはプログラミングがメインの仕事で年収が高いです。
しかし、正社員になると年収は落ちますが、やるべきタスクはプログラミングだけでなく、管理、調整等の作業もこなす必要があります。年齢が上がるほど、求められるスキルのギャップと年収の差が激しくなり、マッチングされにくくなります。
私もフリーランスから正社員になった際に350万ぐらい年収が下がりました;
当時の転職エージェントの方からは、あと2年早く来てればもっと良い紹介できたのに、、とは言われました。
なるほど。
フリーランス(F)から、正社員 事業会社(B)のパスはありますか?
かなり狭い門だと思いますが、優秀な方なら可能性はありです。トライする価値はあります。
フリーランスのうちから事業会社の仕事を継続して請け負って、そのまま正社員になるというパスもありそうですね。それでもB1のSaaS企業かB5のゲーム業界になるでしょう。B2~B4の製造、金融、エンタープライズは多重請負が多いので、フリーランスが直接事業会社と契約することはまれです。
仮に大手企業と直接契約できても、大手企業だとフリーランスを直接雇用することはないと思います。採用には人事部が絡んでくるので、コネを作ってもせいぜい一次面接をクリアできる程度のアドバンテージしかありません(私も苦い経験をしました;)。
フリーランスの場合は、技術職別に分類されているのか。
Webエンジニア(F1)、スマホアプリ(F2)バックエンドに分かれているんですね。
バックエンド?もあまりわかっていないですが、
バックエンドはなぜ、SaaS企業(F3)と金融・エンタープライズ(F4)に分かれているんですか?
いい質問ですね。
これは、使うプログラミング言語でフレームワークが異なるためです。ポートフォリオを作る方向性に大きく影響を与えるから分けました。
バックエンドもフレームワークが分かってくると理解できると思います。
フレームワーク???
プログラミングフレームワークを一言で言うと、
「開発を効率化するための便利な土台」
です。開発者がアプリケーションを作る際に必要な基本的な機能や構造を提供し、同じことを繰り返す手間を省いて、より速く、高品質なコードを書けるようにサポートします。
プログラミング言語の基礎を勉強した後は、そのプログラミング言語を使ったフレームワークを勉強していくことになります。それがポートフォリオの土台になります。
なるほど
最後にプログラミング毎に、世界中で使われている有名なフレームワークについて紹介します。
代表的なプログラミング言語とフレームワーク
Web開発からバックエンドのデータベース操作まで一気通貫でサポートするフルスタックなフレームワークをまとめました。
プログラミング毎にフレームワークがあるんだ。ということだけ頭に入れてもらえれば大丈夫です。
Python
- Django: Pythonの代表的なフルスタックフレームワークです。認証、データベース管理、管理画面など、開発に必要な機能を一通り備えているため、ウェブアプリケーションの構築が効率的に行えます。Djangoは「バッテリー付き」と呼ばれるほど多機能で、Webアプリ開発を一から十までサポートしてくれるのが特徴です。
- Flask + フロントエンドフレームワーク: Flask自体はマイクロフレームワークですが、必要に応じてJinjaテンプレートエンジンやJavaScriptフレームワークを組み合わせることで、フルスタックの機能を実現することができます。
Django(Python): Djangoは、Webフレームワークカテゴリにおいて31.65%の市場シェアを持ち、約33,813の顧客が利用しています。(codesorbit.com)
Pythonを使わない企業はありません。私がとりあえずPythonをお勧めしているのもこの理由からです。しかし、キャリアパスとして明確に最初から金融・エンタープライズ狙いなら、最初に勉強する言語はJavaになるでしょう。
Java
- Spring Boot: Javaの代表的なフルスタックフレームワークです。特に大規模なエンタープライズ向けアプリケーションに使用されることが多く、REST APIの作成やセキュリティ機能、データベースとの統合など、幅広い開発ニーズをサポートします。Spring Bootは、セットアップがシンプルで、必要な機能をモジュール的に組み込んでいける柔軟性が特徴です。
金融・エンタープライズではJavaや.NET C#を採用するケースが多いです。
JavaScript
- Node.js + Express: Node.jsはサーバーサイドでJavaScriptを使用するための環境で、Expressはその上で動作するフレームワークです。Expressはルーティングやミドルウェアを使った拡張などが容易で、バックエンドAPIを構築する際に多く使われます。この組み合わせにより、JavaScriptのみでサーバーサイドのロジックを実装できます。
- React (フロントエンド): フロントエンド開発にReactを使用することで、フルスタックアプリケーションが完成します。Node.jsとExpressでバックエンドを担当し、Reactでユーザーインターフェースを構築することで、サーバーとクライアントの両方をJavaScriptでカバーできます。この構成は、シングルページアプリケーション(SPA)の開発に非常に適しています。
JavaScriptは、Node.js + Express とReactの合わせ技でフルスタックな構成をとることが多いです。JavaScriptはフロントエンドでは、React以外でも多数の開発フレームワークが存在します。有名SaaS企業が様々なフレームワークを採用してシステムを開発しています。
Ruby
- Ruby on Rails: Rubyの代表的なフルスタックフレームワークです。Railsは、データベース管理、ルーティング、ビューのレンダリングなどを一貫してサポートし、設定よりも規約を重視するアプローチで、迅速な開発を可能にします。「Railsの道」に従うことで、開発者は無駄な時間を省いてプロジェクトに集中できる点が人気の理由です。
Ruby on Rails(Ruby): Ruby on Railsは、Webフレームワークカテゴリで28.50%の市場シェアを持ち、約30,442の顧客が利用しています。(codesorbit.com)
フレームワークを採用している(採用していた)企業例
以下に、主要なプログラミング言語ごとの代表的なフレームワークと、それらを採用している(採用していた)企業の例を表にまとめました。
フレームワークを学ぶことで、大企業のシステムがどのような仕組みで動いているか、わかるようになります。
フレームワークを使ってポートフォリオを作る重要性が分かってきた気がします。
プログラミング言語 | フレームワーク | 採用企業例 | 実現している機能例 |
---|---|---|---|
Python | Django | Instagram, メルカリ | ユーザー認証、データベース管理、画像アップロード機能、商品管理、取引機能など |
Flask | Netflix, リクルート | 内部ツールの開発、APIの構築 | |
Java | Spring Boot | Netflix, 楽天 | マイクロサービスアーキテクチャの基盤、ユーザー認証、コンテンツ配信、レコメンデーション機能、ECサイトのバックエンド、ユーザー管理、商品検索機能など |
Jakarta EE (旧Java EE) | IBM, NTTデータ | エンタープライズアプリケーションの開発、トランザクション管理、セキュリティ機能など | |
JavaScript | Node.js + Express | PayPal, LINE | サーバーサイドのAPI開発、決済処理、ユーザー認証、トランザクション管理、メッセージングサービスのサーバーサイド開発、リアルタイム通信機能など |
React | Facebook, サイバーエージェント | 動的なユーザーインターフェースの構築、ニュースフィード、コメント機能、広告配信管理画面など | |
Ruby | Ruby on Rails | GitHub, クックパッド | コードリポジトリの管理、ユーザー認証、プルリクエスト機能、レシピ投稿・検索機能、コメント機能など |
Sinatra | Heroku, ミクシィ | 軽量なウェブアプリケーションの構築、APIの開発 |
これらの企業は、各フレームワークの特性を活かし、効率的な開発や高性能なサービス提供を実現しています。
次回は、フレームワークって何をするものなのか?解像度を上げていきたいと思います。