仮想サーファーの波乗り

仮想サーファーの日常

プログラミング・エンジニアのスキルアップ・ブログ運営などに関してよく書く雑記ブログ

➡ Udemyで5/14(木)まで年内最安の割引セール開催中! 1,200円〜で普段の95%OFFも!

【初心者必見】プログラミング未経験から3年間のPython学習ロードマップ完全版

f:id:virtual-surfer:20191220234055p:plain

近年、Pythonの求人数・案件数が増加すると同時に単価も上がってきており、エンジニアの中で人気が高まっています。

これからプログラミング言語Pythonを学んで、Webアプリケーション開発エンジニアや機械学習エンジニアになりたいと思っている方も多いのではないでしょうか。

この記事では以下のような方向けに、Pythonを未経験からどのような手順で学びPythonエンジニアになるのか、またPythonエンジニアになった後にどのように学び続けていけばいいのか、具体的な方法をまとめています。

この記事の対象読者

  • エンジニアではないけど、未経験からPythonエンジニアに転職したい方
  • エンジニアではないけど、未経験からPythonでデータ分析や業務効率化をしたい方
  • 非Web系の会社で働いているけど、Web系のPythonエンジニアに転職したい方


Pythonとは

f:id:virtual-surfer:20191211223057p:plain

Pythonとは何か

Pythonとは、プログラミング言語の中でも比較的少ないコード量で多くの処理を書けることや、機械学習の分野やデータ分析にも活用することができるライブラリが豊富なことがあり、近年人気が上昇している言語です。

Pythonの特徴

f:id:virtual-surfer:20191213123610p:plain

(画像:【現役エンジニア解説】2020年に初心者が最初に学ぶべきプログラミング言語 - 仮想サーファーの日常

Pythonは、上の画像でわかるように2020年に学ぶべきプログラミング言語1位です。

2020年時点では、学習のしやすさ・求人の多さ・今後の需要の成長度合いを考えると、これから学ぶのであればPythonがいいでしょう。


Pythonの特徴としては、以下のようなものがあります。

プログラミング言語Pythonの特徴

  • プログラミング初心者でも学習しやすい。
  • ライブラリが豊富で、いろんなものが簡単に作れる。
  • Pythonの開発案件は豊富で、将来性がある。


Pythonはプログラミング初心者でも学習しやすい。

Pythonはプログラムを書いてすぐに動作を確認できるインタプリタ言語なので、プログラミング初心者の方でもプログラムを動かしながら理解しやすいことが特徴です。

また、近年Pythonの人気が上昇していることやWebサービスの開発にPythonが採用されることが増えていることから、Pythonを動かしながら学ぶことができるオンライン学習サイトや技術書が数多く登場しています。

プログラミング初心者の方にとって入門しやすい環境が整ってきているのは嬉しいですよね。


Pythonはライブラリが豊富で、いろんなものを作れる。

f:id:virtual-surfer:20191219225328p:plain

プログラミング言語Pythonはライブラリが豊富で、比較的簡単にいろんな機能を開発することができます。

たとえば、Pythonを利用してWebサービスを開発したいときには、FlaskやDjangoというWebアプリケーションの開発が簡単にできるフレームワークを利用できますし、機械学習の機能を活用したいときにも、GANやChainerといった誰でも無料で利用できる機能が公開されています。

それぞれの開発者は、無料で公開されているライブラリを活用することで、簡単にTwitterのようなSNSサービスや、画像を自動で判定してラーメンかうどんか判定する機械学習サービスのようなものを開発できます。


案件が豊富で将来性がある。

f:id:virtual-surfer:20191219224244p:plain

Pythonは、Webサービスの開発や機械学習サービスの開発や、Webサイトのスクレイピングやデータ分析など、利用用途が幅広いです。

現時点でも幅広い利用用途で多くのPython求人や案件がありますし、機械学習やデータ分析など今後も需要が伸び続ける領域で利用されていることから、これからもPython案件の需要は伸びていくと考えられます。

実際、PythonはYoutubeやInstagramやDropboxといった有名サービスの開発にも利用されており、これからも多くの開発現場で利用されていくでしょう。


Pythonエンジニアとは?どんな仕事内容?

Pythonの特徴に関してみてきましたが、Pythonエンジニアとはどんな仕事をしているのでしょうか。

Pythonを利用した仕事内容の種類をみていきましょう。

Webアプリケーション開発エンジニア

f:id:virtual-surfer:20191219225923j:plain

主にPythonを利用してWebアプリケーションの開発をする仕事です。

Webアプリケーション開発エンジニア(Python)の求人の例

職務内容 ・大手HR向け企業の社内システムの開発
・主に画面側からサーバー側の開発及び、来期に向けた新サービスのプロトタイプ開発
単価 〜700,000円/月
求めるスキル ・Pythonを用いた開発経験1年以上
・WEB画面の開発経験
・Djangoを用いた開発経験


作業効率化/Webサイトのスクレイピング

f:id:virtual-surfer:20191219225938j:plain

主にPythonを利用してWebサイトのデータを自動で取得(スクレイピング)したり、Webサイト上で行なっている操作を自動化するなどの仕事をするエンジニアとして働きます。

作業効率化/Webサイトのスクレイピング(Python)の求人の例

職務内容 ・大手通信系企業の自動化サービスにおけるバックエンド開発を担当
・スクラムチームで基本設計からテストまで担当
単価 〜850,000円/月
求めるスキル ・Python を用いた開発経験1年以上
・ AWSでの開発経験
・アジャイル開発経験、あるいはアジャイルとスクラムに関する知識およびチーム開発経験


データサイエンティスト

f:id:virtual-surfer:20191219225955j:plain

主にPythonやRという統計分析によく利用されるプログラミング言語を利用して、膨大な営業成績データから事業の売り上げ分析を行なったり、顧客の購買データから最適なレコメンドを行うロジックを導き出したりするデータ分析の専門家として働きます。

データサイエンティスト(Python)の求人の例

職務内容 ・需要予測と棚割り最適化のアナリストとしてデータ分析・提案
単価 〜750,000円/月
求めるスキル ・Pythonでの分析経験
・scikit-learnの使用経験
・AWS環境での作業経験
・英語の読み書きができること


機械学習エンジニア

f:id:virtual-surfer:20191219230015j:plain

主にPythonで機械学習技術を用いて広告配信システムの自動最適化システムの構築や、自動で画像や動画を生成するシステムの開発などを行います。

機械学習エンジニア(Python)の求人の例

職務内容 ・マーケティングを技術でリードするための機械学習やデータマイニング
・リターゲティング広告配信やプロモーションのためのDMP構築
・サードパーティの広告配信へのオーディエンスデータ連携
・ログからキャンペーンのレポーティングやパフォーマンス実証
・データ解析環境の構築や効果的な広告配信のためのデータ分析
・アプリのプロモーションや広告運用のテクニカルサポート
単価 〜800,000円/月
求めるスキル ・統計検定準1級レベルの知見
・機械学習ライブラリの実務経験
・プロトタイプ実装からパフォーマンス改善までの実務経験
・Sparkなどの大規模分散処理技術を用いたデータ分析の実務経験
・確率や統計および機械学習などの研究経験
・機械学習でのサービス開発や運用の実務経験
・大規模データの取得から整形および分析までを扱うシステム開発の実務経験


Pythonを学ぶことで、以上4つの仕事をすることができるようになります。


Pythonの他の仕事はどんなものがあるのかは、レバテックフリーランスやmidworksなどのプログラミング開発案件の検索ができるサイトで確認できます。

レバテックフリーランスのPython案件

midworksのPython案件


未経験からPythonエンジニアになるまでの学習方法

それではここからは、プログラミング未経験の状態からPythonエンジニアとして働けるようになるまでに具体的にどのようにプログラミング学習を進めていけばいいのかをまとめていきます。

元文系でプログラミング未経験だった状態から現在は現役エンジニアとして働き始めて3年目のぼくの経験と、非エンジニア職種からのWeb系エンジニアへの転職方法を相談されて実際にエンジニア転職を成功させた方の実例ももとにしています。

〜2週間:学習サイトでプログラミング基礎の学習

Python学習 はじめの2週間でやること

  • ProgateでHTML・CSS・JavaScript・Pythonを学ぶ。

f:id:virtual-surfer:20191219231850p:plain

まずはプログラミングとは何かをイメージできるようになることを目標に、ProgateのHTMLとCSSとJavaScriptとPythonのコースをやってみましょう。

Progateは、「こんなプログラムを書いてみましょう!」という課題をスライド形式で表示してくれて、その課題通りにプログラムを書けばどんな動きをするのかWebサイト上で確認することができます。

初心者の方がつまづきやすい環境構築などが不要ですぐにプログラミングを学べるのが嬉しいですね。


f:id:virtual-surfer:20191220003558p:plain

(画像:はてなブックマーク)

何かWebサービスを作りたいとなったときに、HTMLとCSSとJavaScriptは必須となります。Web画面に文字や画像を表示するのがHTMLの役目で、その文字や画像の大きさや色を調整するのがCSSで、その文字や画像を動かす処理を書けるのがJavaScriptです。

また、Pythonを書けるようになることでデータベースからデータを取得してデータを加工して画面に表示することなどもできるようになります。


ここでは、1つのプログラミング言語につき、6時間くらいでサクッと進めていけばOKです。

PythonだけではなくHTMLもCSSもJavaScriptも、学ぼうとするとどこまでも学べてしまうのですが、プログラミング言語を書いてプログラムを動かすとどうなるのかということを理解できればよいです。


2週間〜1ヶ月:学習サイトでPythonプログラミングの学習

Python学習 2週間〜1ヶ月でやること

  • Udemyを参考にして何かWebサービスや便利機能を開発してみる。
  • つまづいたこと、わからないことはググるか技術書を読みながら解決する。
  • つまづいたことと解決した方法は、Qiitaにまとめて公開しておく。

ProgateでHTML・CSSとJavaScriptとPythonを学んだら、プログラミングを書いたらどんなことができるのか少し理解が進んでいると思います。

ここからは、実際になにか自分の身の回りの作業を自動化するツールや、簡単なWebサービスをチュートリアルを参考に作っていくことを強くオススメします。


何か自分の生活で役立つ実践的なものを開発することを目標にすると、どんなものが欲しいのかアウトプットイメージが明確になりますし、プログラミング学習の目的がはっきりするので、学習効率が良くなります。

参考にするオススメの教材は、断然Udemyがオススメです。


Udemyを参考にして何かWebサービスや便利機能を開発してみる。

(画像:Udemy | 【画像判定AIアプリ開発・パート1】TensorFlow・Python・Flaskで作る画像判定AIアプリ開発入門


UdemyはPythonエンジニアとして働いている専門の講師がプログラミング初心者の方向けにプログラミングの解説をしているコースがセール中は1000円台で購入できるオンライン学習サービスです。

本で学ぶよりも動画学習の方がプログラミングの学習に向いているのは、「プログラムを書いている様子を真似しながら学べるから理解しやすいこと」と「講師の方に質問して疑問解消することができる」という点です。


技術書だとプログラムを真似して書いても、省略されている箇所があってなぜかプログラムが動かない...!とつまづくことがありますし、質問をすることもできないので、初心者の方はUdemyでの動画学習の方が向いていると思いますね。

「Udemyでどのコースを選べばいいのかわからない!」という方は、↓こちらの記事で紹介しているUdemyのPython学習コースの1つ目と2つ目をやってみると良いと思います。

www.virtual-surfer.com


つまづいたこと、わからないことはググるか技術書を読みながら解決する。

Udemyのコースの中で動画では詳しく説明されていないけど気になることや、プログラミングをしていて理解がしづらかった箇所は、その都度Google検索して関連知識を学んだり、Pythonの文法が詳しく説明された技術書を辞書的に使いながら理解を深めていくとよいです。

プログラミングをしていく中で気になった疑問をきっかけに学びを広げていくことで、短期間でより効果的にプログラミング知識を学んで成長することができるので。


基本的には、Pythonで実装をしていて困ったことがあればその困ったことに関してGoogle検索することで解決することができると思います。

たとえば、Pythonでのリストの扱い方がわからなければ、「Phthon list」とかでGoogle検索すればPythonでのリストの扱い方のプログラムの書き方の記事が出てくるので、それを読んで理解するというように進めていけばOKです。


ある程度まとまったPythonの使い方を一気に学んでおきたいという方は、↓の本をさらっと通して読んでおけばよいでしょう。

Pythonでプログラミングをするときにどんな文法があるのかが頭に入っておけば、プログラムの処理に困ったときにGoogle検索しやすくなるという嬉しさがあります。


つまづいたことと解決した方法は、Qiitaにまとめて公開しておく。

f:id:virtual-surfer:20191219235717p:plain

(画像:Qiita

上で紹介した方法に加えて、自分がつまづいたことと解決した方法はプログラミングの記事を書いて公開できるQiitaというサービスに書いて公開しておきましょう。

Qiitaにまとめて記事公開しておくことで、自分が数ヶ月後に同じような問題にぶちあたったときに読み返すことで解決時間を短縮することができますし、Pythonエンジニアとして転職したい!と思ったときに習慣的にアウトプットしていることをアピールすることで、評価されやすくなります。


実際、1年前に未経験からのエンジニア転職方法の相談を受けた元銀行営業マンの友人がいるのですが、彼は1週間に1記事はQiitaで技術の学びを記事としてまとめて公開することを半年間続けていて、それが転職時の面接で評価されて転職成功したと言っていました。

習慣的に学習をする人だということがわかれば、入社後も技術的に成長していくことがイメージできるので、採用のプラスポイントになったのだと思います。


1ヶ月〜2ヶ月:個人orプログラミングスクールでWebアプリケーション開発

Python学習 1ヶ月〜2ヶ月でやること

  • 何か独自のWebサービスや便利機能を開発してリリースしてみる。
  • 独学でWebサービスのリリースが難しいようなら、プログラミングスクール入学も検討する。
  • つまづいたことと解決した方法をQiita記事にまとめて公開することは継続する。

何か独自のWebサービスや便利機能を開発してリリースしてみる。

プログラミング学習を始めて1ヶ月ほどたったら、自分が欲しいと思うWebサービスや便利機能を開発してインターネット上でリリースすることを目標にしてプログラミングをしていきましょう。

これまでは、なにかを参考にしながらそれをマネしてプログラミングをしていく方法で学習を進めていたと思いますが、自分の欲しいものを技術書やネット上の記事を参考にしながら開発してリリースすることで、よりPythonエンジニアとして働く上で必要になる実践的な学びを得ることができます。


f:id:virtual-surfer:20191220001637p:plain

(画像:Techpit(テックピット)|サービスを作りながら学べるプログラミング学習プラットフォーム | Techpit(テックピット)

「どんなWebサービスや機能を開発したいか、アイデアがないんです...!」という方は、実践的なWebサービスを開発しながらプログラミング学習ができるオンラインチュートリアルサイトのTechpitで紹介されているWebサービスを眺めてみて、アイデアのタネにするとよいです。


個人開発して10万円以上稼いでいる事例をまとめた記事もあるので、こちらも参考にしてみてください。

www.virtual-surfer.com


独学でWebサービスのリリースが難しいようなら、プログラミングスクール入学も検討する。

自分一人で技術書を参考にしたり、Google検索をして開発を進めることができそうな方は完全独学で進めればよいのですが、以下のような方はプログラミングスクールですぐに疑問解消しながらプログラミングを進められる環境を用意することも検討してみるとよいです。

プログラミングスクールも検討した方がいい方

  • 独学でWebサービスを開発してリリースできる自信がない方
  • すぐに質問できる環境を用意することで、短期間でプログラミングスキルを伸ばしたい方
  • エンジニア転職やエンジニアとして働く上でのキャリア相談もしたいという方

(画像:テックキャンプ

僕自身、テックキャンプ というプログラミングスクールでWeb開発コースに1ヶ月間通いましたが、自分の開発したいWebサービスの実装でつまった箇所をメンターの方にすぐに質問して解消できたので、個人で開発したいWebサービスを高速に開発を進めることができました。

また、そのときにメンターの方にWebエンジニアとして働く上で普段から何を学んでおけばいいか、プログラミングの生産性を高めるためにどんなツールを使えばいいのかなど、エンジニアとして働く上で必要になる周辺知識を幅広く相談に乗ってもらえたのもエンジニアとして働くために役立ちました。


プログラミングスクールはUdemyや技術書での独学に比べると料金が高いので、無料説明会に参加してみて自分がプログラミングスクールに通った方が効果的か判断してみるといいでしょう。

テックキャンプ


つまづいたことと解決した方法をQiita記事にまとめて公開することは継続する。

つまづいたことや学びをQiita記事にまとめて公開することは継続しておきましょう。

継続は力なりですね。


2ヶ月〜3ヶ月:Webアプリケーションのリリースと運用

Python学習 2ヶ月〜3ヶ月でやること

  • リリースしたWebアプリケーションを運用・保守する。
  • PaizaかAtCoderでアルゴリズムの学習をする。

リリースしたWebアプリケーションを運用・保守する。

独自に開発したWebアプリケーションをリリースできたら大したものです。僕の周りにいた9割以上のプログラミング学習者はここまで到達できませんでした。

独自に開発したWebアプリケーションをインターネット上で公開したら、以下のような観点で開発したWebアプリケーションの保守運用をしてみましょう。

Webアプリケーションの保守運用観点の例

  • より多くのユーザーに使ってもらうためにはどうしたらいいか?
  • 勢いで書いてしまったプログラムをもっと開発しやすいプログラムにリファクタリングできないか?
  • エラーが発生した時に、自動でエラーを検知して通知してくれる仕組みは作れないか?
  • セキュリティ的に脆弱な箇所はないか?認証は?不正アクセスはされないか?
  • 大量アクセスされてもサーバーがダウンしない仕組みになっているか?

Webサービス開発は考えることがいくらでもあるので他にも考えるべき観点はたくさんあります。自分の開発したWebサービスをもっとよくするにはどうしたらいいのか考えて、考える中で生まれた疑問を起点に新しい技術書を買って学びを広げ深めたり、Google検索して知見をためていきましょう。


個人開発したWebサービスの運用方法、どうやってユーザーを獲得するかなど、個人開発の事例とTipsがまとまったこちらの本↓も読んでみるとよいですね。


個人開発したWebサービスを公開し、ちゃんと運用しているという実績があると、Pythonエンジニアとして転職するとなった場合に業務未経験でも評価されやすくなります。

とはいえ、Pythonエンジニアになる前に個人Webサービスの運用までできる方も少ないと思うので、リリースまでしたら一旦問題がおきない限りは放置しておき、エンジニアとして働き始めてからWebサービスの運用方法を学んで個人開発したWebアプリケーションも運用を継続していくでも十分です。


PaizaかAtCoderでアルゴリズムの学習をする。

Pythonエンジニアとして働く上でWebサービスの開発能力とは別に必要となってくる能力として、アルゴリズム力があります。

これはWebサービスの開発では直接的には学ぶことができない能力ですが、Webエンジニアとして働く上では求められますし、アルゴリズム力が高いとプログラミング言語の開発経験に関係なく一定の能力があると面接で評価されやすいです。


f:id:virtual-surfer:20191220011234p:plain

(画像:PaizaのA問題)

PaizaAtCoderなどのアルゴリズムの問題を解くことができるサイトがあるので、そこで何問か取り組んでみるとよいです。

プログラミング学習3ヶ月目時点で、PaizaはDランクからSランクまである中のBまたはAランクの問題を解けるようになることを目指して、AtCoderの場合はBeginner Contestという過去に開催されたプログラミングコンテストのA〜Fまでの問題の中で、Cの問題を解けるようになることを目指すとよいでしょう。


3ヶ月〜4ヶ月:Pythonエンジニアとして就職/転職

Python学習 3ヶ月〜4ヶ月でやること

  • Githubと職務経歴書を準備する。
  • 転職サイト、フリーランスサイトに登録する。
  • Pythonエンジニアとして転職する。
  • アルゴリズム学習とQiitaでの発信は継続する。

Pythonエンジニアとして転職する。

ここまでPythonの学習を継続できたのであれば、独学でPythonの勉強をするよりもPythonエンジニアとして転職できる力は十分すぎるほどにあるはずです。

本業でWebエンジニアに関係ない仕事をしながら土日などにプログラミングを続けるよりも、Pythonエンジニアとして給与をもらいながらPythonのより実践的な学習を業務の中で学んだ方が断然いいですからね。


Pythonエンジニアに転職する転職先の探し方としては、以下の方法があります。

Pythonエンジニア転職の方法

  • Wantedlyで希望の職場環境、技術環境の職場に応募する。
  • レバテックキャリアで面談して希望にあった職場を紹介してもらう。
  • PaizaAtCoderで希望の職場を探して応募する。

Wantedlyで希望の職場環境、技術環境の職場に応募する。

一番オススメの方法は、Wantedlyで希望条件を指定して、自分の気になる職場に面談を申し込んでいく方法です。


Wantedlyをオススメする理由としては、Web系開発会社の多くがWantedlyで求人情報を公開しているので、自分の条件にあった職場を見つけやすいことと、Web開発経験が未経験でも可の会社も比較的多いからです。

Wantedlyに求人を出している募集企業は、どれだけ転職者を採用しても固定利用料で利用できるので、採用する企業の立場で考えるとより多くの転職候補者と面談して採用したいというニーズが強いので、会社に面談の時間をとってもらいやすいです。

また、Wantedlyは登録しておくことで企業からスカウトを受け取ることもできるので、その点でも登録しておいて損はないサービスですね。


レバテックキャリアで面談して希望にあった職場を紹介してもらう。

(画像:レバテックキャリア

エンジニアとしての転職活動の進め方や、どんな企業を選べばいいのかなど、転職に関して相談しながら進めたい方は、レバテックキャリア などのエンジニア転職サイトに登録して、キャリア面談をしてもらうとよいです。

はじめてのエンジニア転職だと分からないことも多いので、キャリア面談を通して自分の働きたい環境や取り組みたい仕事をより明確に持ち、その上でWeb系企業での面接にのぞむと、より明確な志望動機や取り組みたい仕事内容を話せるので希望の会社に採用されやすくなります。


PaizaやAtCoderで希望の職場を探して応募する。

PaizaやAtCoderで希望の職場を探したり、スカウトを受け取ることもできます。

これまでにPaizaやAtCoderでアルゴリズム問題を継続的に解いている場合には、スカウトが届く可能性が高まるので、アルゴリズムの問題を解くのは習慣化しておきたいですね。


Pythonエンジニアになってからの学習

ここからは、Pythonエンジニアになってからの学習方法をまとめていきます。

当然ですが、Pythonエンジニアになること自体はただの通過点でしかないです。

学習を継続することでPythonエンジニアとしてより技術力を伸ばし、よりよいサービスを生み出せるエンジニアとして成長し、結果的に単価も上げていくことができます。

4ヶ月〜1年:Pythonエンジニアとして技術力をつける

Python学習 4ヶ月〜1年でやること

  • Web開発のいろはを学び、業務でわからないことは技術書やGoogle検索して学ぶ。
  • AtCoderでアルゴリズム力を高める。

Web開発のいろはを学び、業務でわからないことは技術書やGoogle検索して学ぶ。

Web系の事業会社でPythonエンジニアとして働くことで、Webアプリケーションの開発を行うために必要な技術や、開発方法を一通り経験することができます。

Pythonエンジニアとして働く中で必要となる業務知識には以下のようなものがあり、業務で使えるようにならないと仕事にならないので、学ぶ必要性に駆られて効果的に学ぶことができます。

PythonエンジニアとしてWebサービスを開発する上で必要な業務知識とスキルの例は以下のようなものです。

Pythonエンジニアに必要な業務知識とスキル

  • 依頼者とシステム要件を握り、システム設計をすることができる。
  • Pythonの基礎文法を理解して、計算量・可読性・拡張性を意識した処理を書ける。
  • DjangoやFlaskなどWebフレームワークを活用して開発業務を行える。
  • RDBとNoSQLの特徴と用途を理解し、設計・実装することができる。
  • パフォーマンスの高いクエリをチューニングすることができる。
  • 他人のプログラムのレビューをすることができる。
  • セキュリティやレスポンス速度など非機能要件を加味した設計と実装ができる。
  • REST APIを設計、実装することができる。
  • デザインパターンやSOLIDの原則などオブジェクト指向の基本が理解できている。
  • 障害発生時の原因調査と修正対応、根本対応を行うことができる。

Pythonエンジニアとして働く上で、これらの業務知識とスキルが必要となってくるのですが、仕事で必要になったタイミングで学ぶのが最も学習効率が良いので、仕事で必要になったタイミングで平日夜や土日を活用して技術書で学べるとよいです。


Python学習をはじめてからの2年間で、どのタイミングでどんな本を読むとよいのかは、↓こちらの記事にまとめています。

www.virtual-surfer.com


AtCoderでアルゴリズム力を高める。

AtCoderで毎週か隔週くらいで競技プログラミングのコンテストに出場することは続けて、アルゴリズム力も鍛えておきたいですね。

Pythonエンジニアとして働く上では、高いアルゴリズム力が求められることはないでしょうが、今後のキャリアとして機械学習エンジニアを目指す場合は必須になってくるのと、エンジニア転職をする場合はアルゴリズム力をみられる可能性があるので。


1年〜2年:Pythonエンジニア本業と副業

Python学習 1年〜2年でやること

  • エンジニア副業に取り組む。
  • 職務経歴書をまとめておく。

エンジニア副業に取り組む。

Pythonエンジニアとして1年程度本業に取り組むと、ある程度の技術力をつけることができるので、もっと自分の技術の幅を広げたい方や、報酬を増やしたい方は副業先を探してみましょう。

副業をすることで、複数の会社の開発方法を比較検討しながら学ぶことができますし、本業の会社ではPythonエンジニアとしてサーバーサイド開発をしながら、副業の会社ではPythonを利用したデータ分析をメインでやってみたり、ReactやAngularを活用したフロントエンド開発など、本業と異なる開発をしてみることで、技術力をより広げていくことができます。

www.virtual-surfer.com


職務経歴書をまとめておく。

f:id:virtual-surfer:20191220231729p:plain

副業サイトに登録していると、急にスカウトがくる場合もあるので、すぐに自分の経歴を共有できるように職務経歴書はまとめておくとよいです。

ぼくはGoogleドキュメントに職務経歴書をまとめていて、3ヶ月に1回程度更新するようにしていますが、いつでも簡単に共有することができるので重宝しています。


2年〜3年:フリーランスPythonエンジニアとして独立

f:id:virtual-surfer:20191220232023p:plain

2年間しっかりとエンジニアとして業務経験を積めば、フリーランスとして案件を選んで働くことも可能になります。


レバテックフリーランスmidworksなどのフリーランスエンジニア向けの案件紹介サイトに登録して、自分の希望にあった案件はないか探してみるとよいです。

レバテックフリーランス

midworks


3年〜:ご自由にどうぞ

エンジニアとして会社で働くとしても、フリーランスエンジニアとして働くとしても、業務経験3年を積むことができれば、多くのWeb開発案件に携わって価値発揮できるようになっているはずです。

Web開発エンジニアとしてより専門性を高めていくキャリアを選択してもいいですし、機械学習エンジニアやデータサイエンティストのような職種にスキルチェンジすることを考えてもいいですし、事業開発が好きな方ならプロダクトマネージャーへの転向に挑戦してみてもいいでしょう。

ここまで業務経験を積めば自分が何が得意で、何が好きかもわかってきているはずなので、その時にやりたい仕事を選択するとよいかと思います。


まとめ

以上、プログラミング未経験からのPython学習ロードマップ完全版でした。

未経験からPythonエンジニアになるまでの学習ロードマップを改めてまとめておきます。

Pythonエンジニア学習ロードマップまとめ

  • 〜2週間:学習サイトでプログラミング基礎の学習
  • 2週間〜1ヶ月:学習サイトでPythonプログラミングの学習
  • 1ヶ月〜2ヶ月:個人orプログラミングスクールでWebアプリケーション開発
  • 2ヶ月〜3ヶ月:Webアプリケーションのリリースと運用
  • 3ヶ月〜4ヶ月:Pythonエンジニアとして就職/転職
  • 4ヶ月〜1年:Pythonエンジニアとして技術力をつける
  • 1年〜2年:Pythonエンジニア本業と副業
  • 2年〜3年:フリーランスPythonエンジニアとして独立


もちろん、ここであげたロードマップは一例に過ぎないので、実際にはあなたにあった学習方法を試行錯誤しながら見つけていくとよいです。

では!