ども、木村です。この記事では、プログラミング未経験者がPythonを用いたエンジニアとして転職する方法について解説していきます。
今までプログラミングをやったことがない「完全未経験」の方
※すでに何かしらのプログラミング言語をやっていてこれからPythonを学びたい方はこちらの記事を参考ください。
未経験からPythonエンジニアになれるのか?
結論、未経験からPythonのエンジニアになることは十分に可能です。
理由としては以下になります。
- 現在、Pythonエンジニアは不足している状況で需要があり、今後もこのような状況が継続する可能性があるため
- Pythonはプログラミング言語の中でも比較的シンプルで、わかりやすいプログラミング言語であるため
- Pythonは昔からある言語のため、参考となる資料が豊富
つまり、「需要があって、学ぶ際の学習コストも比較的他の言語と比べて小さいため」です。
例え未経験であっても、需要があるためWebサイトや、Webアプリケーションなどのポートフォリオがあり、基礎的な知識があればエンジニアとして就職することは十分に可能です。
Pythonエンジニアに転職するための勉強方法
では、Pythonエンジニアになるためにはどのような勉強や手順を踏んでいけば良いのでしょうか。
Web界隈では、Web Developer Roadmapという非常に有名なロードマップが存在します。
Web Developer Roadmapとは、GitHubで公開されているWeb系エンジニアなるために学習すべき知識、順番などを示してくれるロードマップです。
個人的にはこのロードマップを参考にした学習を進めることがおすすめです。
つまり以下のような学習手順になります。
- インターネットの仕組みを学ぶ
- 基礎的なフロントエンドの知識を学ぶ(HTML/CSS/JavaScript)
- 基礎的なバックエンドの知識を学ぶ(Python)
- バージョン管理ツールの使い方を学ぶ(Git)
- 基礎的なセキュリティー対策について学ぶ
- 基礎的なCICDについて学ぶ
では順番に解説していきます。
1.インターネットの仕組みを学ぶ
実はこれが一番重要だったりします。まずは、インターネットの仕組みを学びましょう。
「なぜ私たちは今Webブラウザを使って情報見ることができるのか」
「なぜhttpや、httpsを書いてアクセスする必要があるのか。」
これらを分かるようになってください。
こちらを学ぶ方法としてまずは簡単な書籍から読んでみると良いです。
時間とお金のある方におすすめなのは、「基本情報処理技術者」の資格を取ることを目指しても良いかもしれません。こちらの試験はインターネットの仕組みだけでなく、ITに関連する全ての内容を網羅的に学ぶことができるため大変おすすめです。
2.基礎的なフロントエンドの知識を学ぶ(HTML/CSS/JavaScript)
Pythonを学びたいだけなのになぜHTML/CSS/JavaScriptを学ぶ必要があるの?っと思った方もいるかと思いますが、未経験であればある程度フロントエンドにも知見を持っておいた方が良いかと思います。
Web系開発では主に、Pythonで加工した情報をHTMLに渡して情報を表示させたりします。そのため、どのような状態でフロントエンドサイドに情報を渡した方が良いのかといった勘所がついて、より他の駆け出しエンジニアと差をつけることが可能になります。
つまり、プロダクトをチームで開発する以上、自分の領域であるサーバーサイド(Python)だけでなく、他のチームメンバーの領域も理解して開発をした方が手戻りも少なく、品質の良いプロダクトを生み出すことができます。
なので、フロントエンド領域を表面的でも良いので理解していきましょう。
どのレベルまで学べば良いのかというとドットインストールの無料コンテンツのみ見ていただければ良いです。
3.基礎的なバックエンドの知識を学ぶ(Python)
いよいよPythonの勉強に取り掛かります。Pythonの勉強法については、このブログで何度も紹介しているUdemyを使用した勉強が大変おすすめです。
特にシリコンバレーでエンジニアをされている酒井 潤さんの教材です。入門から現場でも使える実践的な知識まで網羅されており大変参考になる教材です。
Udemyは時々教材のセールをやっていて安く買えるタイミングがあるので、その際に購入するのがおすすめです。
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
4.バージョン管理ツールの使い方を学ぶ(Git)
ここからはチーム開発する上で学習していかなければいけない内容を紹介していきます。
一つ目がバージョン管理ツールのGitの使い方です。
実際に現場で開発する際にGitは必ずといっていいほど使用します。
すでにリリースしているソースコードと、開発で使用するソースコードは基本分けて管理し、自身の開発用のソースコードを変更したらこまめにセーブをするといったことをしていきます。
Gitについては無料で学ぶことができる「サル先生のGit入門」が大変おすすめです。
5.基礎的なセキュリティー対策について学ぶ
基本情報処理技術者の勉強をしていればサイバー攻撃の概要は掴めたと思いますが、実際に自分の手を動かしながらセキュリティの脅威を学ぶとより内容が頭に入ってくるかと思います。
セキュリティーについては以下の本が初学者におすすめです。
6.基礎的なCICDについて学ぶ
CICDとは、継続的インテグレーション/継続的デリバリーという意味で、ソースコードのテストやリリースを自動化する仕組みのことです。
こちらもチームで開発上では必須の知識になりますが、CICDはさまざまな手法がありいきなり全てを理解することは不可能かと思いますので、まずは何でも良いので簡単なCICDを作ってみることをお勧めします。
ツールは何でも良いのですが、この記事ではCircleCIを使ったCICDパイプラインを紹介します。以下の記事が大変参考になります。
まとめ
エンジニアになることで働き方は柔軟になり、昇級の機会もあなた自身で作り出すことが可能です。
ぜひこの機会にPythonをマスターして、次なるステップを目指してください。