- 会社からpythonを習得して欲しいと言われたけど、何から始めていいのかわからない
- 周りにpythonを使える人がいないけど、独学でも習得できるの?
こんなお悩みにお答えします。
- 会社員プログラミング未経験でもpythonを習得できる理由
- 勉強を始める前にやっておくべき2つのこと
この記事を書いている僕は28歳のときに、プログラミング未経験から独学でpythonを習得しました。
会社からpythonを使った画像検査システムを開発してほしいと言われたことがきっかけでpythonの勉強を始めました。
現在は自動車部品メーカの生産技術として働いており、画像処理や機械学習を使った画像検査システムを開発しています。
非IT企業でも会社の存続や競争力強化のために、プログラミングができる人材を育成する動きが高まりつつあります。
特に機械学習を使ったデータ分析や画像解析などpythonを必要とする業務の需要が高まっており、pythonの習得に拍車がかかっていることも事実です。
インターネットやSNSが発展した今では、有益な情報を簡単に入手できることもあり、独学でもpythonを習得できる環境にあると言えます。
もしあなたがpythonをこれから始めようと思っているならprogateで勉強することをお勧めします。pythonって結局何者?のイメージを掴むことができます。
「何から始めればいいの?」の答えとしてはprogateですが、この記事では、私の経験をもとにpythonの習得に向けて勉強を始める前にやっておくべき2つのことを解説したいと思います。
1. pythonとは
pythonとは機械学習やアプリケーション開発、webサイト構築、作業効率化ツール開発など様々な分野で使われているプログラミング言語です。
pythonは、初めてプログラミングを習得したいと思っている人にとっても理解しやすく、少ないコードでシンプルにコーディングできるといった特徴があると言われています。
なぜ理解しやすいかというと、日本語の情報も多く、分からないことや疑問に思ったことも大抵のことは検索することで答えにたどり着けるからです。
また、pythonはライブラリと呼ばれるものがかなり充実しています。ライブラリとは、便利な機能をまとめたプログラムの集合体のことでして、プログラミングをしていくうえで必要不可欠なものです。
ライブラリを使いこなすことができれば、pythonを習得できたといっても過言ではないと思います。
自分でコーディングすると100行書かなければいけない処理も、ライブラリを使うことでたった1行で実装できたりします。
例えば、画像処理を実装するライブラリとして有名なものにopencvというものがあります。opencvを使えば、画像の二値化や拡大、縮小、画像の読み出し、保存など様々な各処理を1行で記述することができます。
2. 会社員プログラミング未経験でもpythonを習得できる理由
まず初めに結論を言っておくと、pythonの習得は会社員プログラミング未経験でも可能です。
ちなみに私の場合では、勉強を開始してから3ヵ月後程度(約300時間)で関数を使ってコーディングができるようになりました。
関数とは今後プログラミングを習得するうえで必要不可欠な基礎スキルであり、ひとまず関数を使えるようにすることが一つの目標になります。
会社員プログラミング未経験でもpythonを習得できる理由としては、主に2つ考えられます。
- pythonが習得しやすい言語である
- 勉強するためのコンテンツやサービスが充実している
それぞれの項目について説明していきます。
2-1. pythonが習得しやすい言語である
pythonは一般的にプログラミング言語の中でも比較的習得しやすい言語と言われています。
その理由は面倒な変数宣言もなく基礎文法がシンプルなので、数行でコードを記述することができるからです。
特にpythonはライブラリが充実していることもあり、誰が書いても同じようなコードになりやすいという特徴を持っていることから、ネットでのコードをそのまま参考にできたりもします。
そうは言っても、「プログラミング完全未経験の人にとっては簡単にできるものじゃないでしょ」と思われるかもしれません。
確かに習得しやすい = 誰でも習得できるではありません。しかし、プログラミング完全未経験の僕でも習得できたのも事実です。
僕自身、特別頭が良いわけではありませんが、毎日コツコツ継続した結果、pythonを使えるようになりました。
2-2. 勉強するためのコンテンツやサービスが充実している
インターネットが発展した現在では、pythonに関することを検索すれば、かなり多くの情報が返ってきます。
また、日本語の情報が多いこともあり、先人の方々が悩まれたことや苦労された内容を参考にして勉強することができます。
多くの情報があるということは、勉強中に出てきたエラーに対する解決策が見つけやすいことでもあり、初学者にとって勉強しやすい環境であると言えます。
さらに今では、udemyやyoutubeなどの動画コンテンツも充実しており、本以外でも体系的に勉強ができるところもいいですね。
3. 勉強を始める前にやるべき2つのこと
勉強を始める前にやるべきことは2つあります。
- 勉強する目的を自分の言葉で言語化する
- 会社が求めているレベルを把握する
それぞれの項目ついて説明していきます。
3-1. 勉強する目的を自分の言葉で言語化する
目的が大切だという話は聞いたことがあるのではないでしょうか。仕事を進めるうえでもまず初めに目的を考えると思います。
勉強も同じで、「なんで自分は勉強するだっけ」を明確にすることがpythonを習得するうえで重要になってきます。
なぜ目的が大切かというと、目的が不明確だと勉強すべき内容が分からないからです。
pythonに限らずプログラミングは、学ぶべき内容も活用分野も多く、進化する速度も劇的に早いものになります。
そもそもプログラミングはすべての分野で完ぺきを目指すものではないということです。
だからこそ、私は○○をするためにpythonを習得したいといった具体的な勉強理由をはっきりさせておくべきなのです。
例えば自分の場合ですと、画像処理をするためにpythonのopencv(画像処理ライブラリ)の使い方を習得するといったように考えるということです。
ちなみに冒頭でも書きましたが、ライブラリを使いこなすことができれば、pythonを習得できたと言えます。
ライブラリを使いこなすためには、pythonの基礎的なスキルが必要ですし、何よりどうすればライブラリを使いこなせるようになるのかを考えることが非常に大切です。
さらに「何のために勉強しているか」を見失ってしまうと勉強のモチベーションが低下してしまいます。
勉強理由がはっきりしていると学習意欲が沸き、継続できるものです。なんとなくpythonを習得したい、pythonが使えると何かと便利という曖昧なモチベーションの中で勉強するのは苦しいと思います。
勉強するからには何かをクリアにしたい、○○を実現できれば××みたいな未来が待っているといったようにワクワク感を持つことが行動を促す火種になってくれると思います。
3-2. 会社が求めているレベルを把握する
会社から、pythonを使ったシステム開発をしたいから習得してくれと言われて、「はい、わかりました。頑張ります。」だと正直きついです。
会社方針や業務に影響する内容であれば、必ず割り与えられている工数を把握することをお勧めします。
僕がそうだったのですが、画像の分野で機械学習やりたいからpythonを習得してほしいんだよね。というかなり曖昧な状態で、右も左も分からないまま、「はい、やります」と返事してしまったのが、よくなかったなと反省しています。
結構な遠回り(実現したい内容に直接関係ないこと)をして、時間をかなり浪費したこともあり、もう少し全体像を把握しておくべきだったなと思います。
具体的に機械学習の習得難易度やどれくらいの勉強量が必要なのか、そもそも勉強をするための工数は確保されているのか、生産工程に導入しようと思うとどんな知識や技術が必要で何をどうやって勉強していかなければいけないのかなどもっと真剣に考えることが山積みです。
それプラスpythonの習得となると、会社によってはpythonの習得は自己啓発前提で習得過程まで面倒を見てくれないケースもあります。
自分の場合、pythonを業務で使うはずなのに、ほとんどすべて自己啓発という形で勉強しました。自主的にやれればいいのですが、やらされている感やなんで残業代も出ないのにこんなに勉強してるんだっていうマインドに陥るとかなり危険です。
最終的に何が言いたいかというと目的と目標(全体像)を把握したうえでpythonを勉強した方が結果として、早く身につけられるということです。
個人的にいつも思っていることなのですが、pythonはあくまで手段であって、使うことが目的ではないということです。必ずpythonを使って何を実現したいのかという明確な目的を持ちましょう。
まとめ
会社員未経験でも独学でpythonを習得できる理由と勉強を始める前にやるべき2つのことを解説しました。
結論、pythonを習得するための環境は十分整っており、勉強しやすい環境にあると言えます。
pythonに限らずプログラミングはすべての分野で完ぺきを目指すものではないため、あなたが「何のためにpythonを習得したいのか」を明確にしておくことが最終的に最短かつ低コストで習得できることにつながると思います。
勉強目的を明確にしたうえで、まずはprogateから始めていきましょう。