Python初心者～中級者へのお勧めライブラリ紹介と、仕事にしてある程度稼ぐための話

## この記事が向いている人
・大前提：IT業界に興味がある、仕事にしたい。
・プログラムやりたいけど、言語何にしたら良いかわからない。
・IT業界未経験で、やりたいけど入口がわからない(20代半ばとか、後半以上)。
・大学で情報処理関係じゃなかったので自信が持てない。
・Python初心者～中級くらいが対象。上級者は回れ右。

## 書いてない事
・Pythonの基本操作
・具体的なコードとか技術的な話
を求めてる人たちも回れ右。

## この記事を書いている人
・30歳になって初めてプログラムを触る
・33歳でプログラムの仕事に就く(派遣)
・現在、自営でITエンジニア(Pythonメイン)
スクールは一切行ったこと無しで、(情報処理どころか)大学も行ったこと無し。
エンジニアとして仕事をし始めてから「エンジニア35歳説」とか「20代後半で未経験は厳しい」等の記事、動画を見かけてびっくりｗ　他の人はそんなに苦労をしていたのかと…。
なので、未経験者や初心者で迷子になりかけてる人の参考になればと思って書いてます。

## Pythonを推す理由
率直に、勢いが強くて将来性が高いから。
そして、触っているだけで勝手にデータサイエンティストに近付ける可能性が高いから。
基本職：Pythonエンジニア
上級職：データサイエンティスト、AIエンジニア等
みたいなイメージ。

何故今、Pythonの人気が高くなっているかと言えばAIが大きな要因。
時期的には2012年のGoogleの猫辺りから加熱し始めた印象。
google trendで見ても猫の少し後の2015年くらいから勢いある。
https://trends.google.co.jp/trends/explore?date=all&geo=JP&q=python

AIに何故Pythonが選ばれるかと言えば、Numpyというかなり凄いライブラリが存在しているから、とのこと。
このNumpy、歴史もかなり長い(ので気になったら調べましょう)。

#### データサイエンティストって何よ？
「経産省 データサイエンティスト」とかで調べると色々出てくる。
https://www.meti.go.jp/shingikai/economy/jinzai_ikusei/pdf/001_03_00.pdf
求人単価はピンキリだけど、70万くらいが平均らしい。
エージェントに聞いたら最近は「100万以上の案件は減って来た」ということ(2022年6月くらい)。
でも「続けていたら勝手に70万くらいにはなる」なら悪くなくないですか？

## 仕事に就くためのライブラリ
「Pythonの基本処理はわかったけど、次何したらいいかわからんねん」
という初心者後半の人がそこそこいるんじゃないかと思う。
そういう人には「仕事につながる有名ライブラリを触る」をお勧めしたい。

一部のライブラリは仕事と密接に関係していて
「Pythonだけ触れても仕事にならない」という現象は多々ある。
例えば大量のcsvを処理する仕事にあたって、
・Pythonの基本操作は出来るけどpandasは触ったこと無い
・Pythonの基本操作は出来てpandas経験豊富
だと結構大きな差がつく。
というより、「特定のライブラリが触れないと仕事にならない」という求人の方が多いと思う。

じゃあこの「特定のライブラリなんやねん？」という話を独断と偏見で以下に並べる。
●データエンジニアリング
・pandas
●AI、機械学習
・scikit-learn, matplotlib, seaborn, tensorflow, numpy
●Web系
・flask, django

また、Pythonライブラリではないがセットで求められる事が多いもの(知識、経験)。
求人の項目だと「あると良い」みたいな感じが多い。
・SQL操作, DB周り
・AWS, GCP, Azure等のクラウドサービス
・Tableau, PowerBI等の可視化ツール

#### とりあえずpandas推し
上のリストを見て、項目がまだ多いんだけど…と感じるあなたにはとりあえずpandasお勧め。
データエンジニアリング、前処理部分でほぼ必須みたいになってるライブラリです。
個人的イメージとしては「大量のデータを処理出来るExcel」。
なので、Excel経験者(結構多いと思う)ならイメージしやすいし、触りやすいかなと。

でも他にやりたいことが決まっている場合は、もちろんそちらをどうぞ。

## IT業界の入り口はどこか？
さてここまで書いて来たことから一転、リアルな話をする。
一般的な正規ルートはたぶん、新卒 → IT業界なんだと思う(知らんけど)。

困るのはそうでない未経験者。
「20代後半になって業界経験無し、スキルも無し」みたいな人はどうしたら良いか？
お勧めは「どこでも良いからExcel触れる職場に行く」こと。

え、Pythonじゃないの？と思われるかもしれないが、ExcelとPythonは相性が良いので心配はいらない。

また、Excelが触れる職場は非常に多いが、(未経験でも)Pythonが触れる職場は少ない。
なので、まず狙うべきは「誰でも簡単にExcelの実務経験が積める職場」。
業種や部署もどうでも良い。見るべきは「Excelが触れるかどうか？」だけ。
これなら非常にハードルが低い。プログラムスキルもいらない。

#### Excelを自動化
で、職場に入ったらとりあえずExcelを触る。求められなくても触る。
何をするか？Excelに関わる作業を何でも自動化しまくる。
この自動化にVBAというExcelに付属しているプログラム言語を触る。
ここでプログラム知識を身に付ければ良い。
(基本操作はネットを軽く漁るといくらでも落ちている)

そこである程度、自動化が出来て来たら周りの人の作業も自動化しまくってあげる。
これが上手くいけば評価が上がるので、「ちなみにPython使うともっと便利になりそうです」と言ってみる。
通ればそこでPythonを触れるし、通らなかったら別の職場にVBAプログラマとして転職すれば良い。

#### 実務経験が超重要
ここで重要なのは「実務でプログラムを触ったことがある」という事。
そのために「Excelの触れる職場へ」と書いた。Excelさえ触れれば、プログラムはいつでも組める環境になるからだ。
面談では結構、「趣味で数年プログラムやってます」より「実務で1年やってました」の方が評価されたりする印象。

#### Javascriptから入るのも有り
また、実務として触りやすい言語としてVBAを挙げたが、Javascriptも同じくらい触りやすい。
(ここで言う「触りやすい」は初心者向きという意味ではなく、「業務時間に触れる機会がある」の意味)
社会的な言語価値(求人単価の高さ)はVBA < Javascriptだと思うのでこちらの選択も悪くない。
ただ、個人的な印象では「自動化しやすいのは(対象がわかりやすいという点で)VBA」。
お好きな方をどうぞ。
※Javascriptは言語としての需要、勢いが結構あるので踏み台としてではなく本職としても有り。

#### 隙あらばPythonを押す
仕事でVBAを触っているとどこかで「Python押せるわ」ってタイミングが出てくるので、そこで押しまくる。で、職場にPython導入。これが出来た時から「職場でPythonが触れる」という環境になるので、あとはひたすら触る。
繰り返すが「(趣味でなく)職場で触る」という事が大事。

#### いよいよpandas
さて、ここまで順調に進めてきたならば思い出して欲しい。pandas推しの項目で書いていた、
>個人的イメージとしては「大量のデータを処理出来るExcel」。

これ。

そう、pandasはVBAから無理なくジョブチェンジ出来る最強ライブラリなのである。
ここまでにExcel、VBAを触って来たあなたはデータ処理の経験値がそこそこ出来ている。
今度はpandasを使って、今まで行ってきた処理を置換してやれば非常に効率良く学習出来る。

それと同時並行でscikit-learn、flask等も触っていくと色々な方面で仕事にすることが出来るようになる。

## まとめ
1.Excel使える会社に入る(今触れる環境ならそのままで)
2.VBAで業務を自動化する(出来れば周囲の人、上司まで巻き込んで)
　※面談では周囲の環境まで含めて改善した事例を出した方がウケが良い
3.Pythonの提案をする
4.pandasで処理を置換する
5.データエンジニアリング路線で、Pythonエンジニアへ

以上が業界未経験でも学歴がなくても(僕は高校すら出ていない)、スクール費用がなかろうが、誰でも結構現実的に進められる路線だと思う。

#### おまけ
未経験者は「ブラック企業」から入ると通りやすい気がする。
僕も業界、最初入ったところはそうだった。
「ブラックだから誰でも良い」論法。
一定期間、経験を積んだら転職すれば良い。