あることがきっかけで去年の今頃、プログラミングの勉強を本気で始めることにしたのですが
ここで一度、約1年間勉強を続けた結果どうなったかを紹介したいと思います
僕と同じ子持ち30代会社員という境遇でこれからプログラミングを勉強される方、
そして、どんな勉強をどれくらい続けるとどんな風になれるのか?が気になっている方に向けて
僕の体験を踏まえて紹介しますので、ぜひご一読ください🍀
はじめに・・・「子持ち30代会社員」という条件
実際にやってみて分かった事ですが、この条件はプログラミング学習者にとって
めちゃくちゃ過酷な条件です
というのも単純に
十分な勉強時間が確保できない からです
独身時代なら自由な時間なんていくらでもあるので「勉強を中心にして生活を回す」事ができましたが、結婚してパートナーができ、更に子供が生まれると
「家庭と子どもを中心の生活、時間が空いたら”家事”をする」
というという生活になりますので、基本的に家族の理解・協力なしに勉強時間は確保できません
ちなみにそれを踏まえても自由に勉強できる時間帯は
「深夜」か「早朝」しかありません。(もうこの時点で相当過酷です)
無論平日なら会社に行って仕事しないといけません
仕事のパフォーマンスを落とさず家にいる時は家事&育児のサポート、その上で勉強のタスクをこなすのは(特に子供が小さいうちは)かなりしんどいです・・・
僕の場合は朝は4:30~6:00、夜は9:00~10:00の時間帯で勉強時間を捻出しています
なので(その日の気分や体調によりますが)だいたい一日の平均学習時間は1.5~2時間程度です
※ただし週末だけは次の日を気にしなくていいので気が済むまで夜遅くまでやってます
プログラミング言語 "Python"という選択
プログラミングを始めるにあたって一番最初に考える事
それは
どの言語を選ぶか!
いきなり重要なところです(いわゆるC、Java、PHP、Ruby・・・とかいうやつですね)
ここで何を選ぶかで今後どういった方向性で勉強していくのかが決まってしまいます
ただ僕の場合、プログラミング言語の選択はわりと悩みませんでした
というのも僕はもともとAI(人工知能、機械学習)とIot(Internet of Things)に興味があったので、この分野に強いライブラリやガジェットが充実してる
"python"一択で決めていました
どうやってプログラミングを勉強したのか
ここからは実際に僕がどうやって勉強した(している)のかを紹介します
ステップ0:まずはプログラミングに慣れろ
始めたての頃はそれこそ本当にど素人
"Hello World"すらわからない状態です
ということでまずは
とにかくインプット!!
どんどん知識をつけなきゃ始まらないわけですが、これまで僕はまともにプログラミングなんてやったことが無くて、例のあの黒い画面↓↓にすらある種、恐怖心すらあったワケで・・・
というワケでまずは「プログラミングに慣れる」という目的で
ゲーム感覚でプログラミング体験できる "Progete" から始めてみました!!
Progeteはかわいいキャラクターと一緒にパズルゲーム感覚でプログラミングの基礎を学習できます!
しかも勉強環境もスマホでOKという手軽さ、そして月額1000円という低価格のため、プログラミングの初心者にはとっても人気のあるアプリなんです!
複雑なコードや小難しいアルゴリズムは登場せず「基礎中の基礎の習得」に特化して、とにかくわかりやすさ重視で解説してくれますので、僕のような初心者の「つかみ」としてはまさに最適の教材でした!
おすすめの書籍はこちら↓
python一年生は序盤でpythonのインストールとanacondaを使った環境構築について詳しく説明してくれるのでpython初心者でもコーディングまですんなり入っていきやすく、この本を読み終わった後も役に立ちます
しかも全ページカラー&ほぼイラストと漫画なのでプログラミングはじめてでもとっつきやすい!
この本の最後の章ではなんと簡単ですが「AI」を作って画像認識を体験できちゃいます!AIに興味がある方は一度手に取ってみてはいかがでしょうか?
スッキリシリーズのpython編です
これも漫画仕立てになっていて実務をイメージしたpythonプログラミングをテーマにしてpythonの基礎的なところを網羅的に抑えられます!
程よく必要最低限の知識をインプットしたい方におすすめの良書です!
ステップ1:インプット型の勉強
Progateでは正直基礎の基礎しか学べないので
もっと本格的・網羅的にPythonの基礎を学びたいと思うのは当然の流れ
そこで次に登場したのがPyQというWeb教材
PyQはpython学習に特化した教材で実際に自分の手を動かして「コーディング」を体験しながらpythonの基礎を網羅的に学習できます!
価格も月額3000円というWeb教材にしては破格のお値段(機能は制限がありますが、わからない内容はたいていネットのどこかに答えがあるのでこれで十分)
Progete修了者の次の一歩としてオススメのサービスです!
ステップ2:アウトプット型の勉強
Progete、PyQを約半年みっちりやったところ、
だいぶPythonの基礎部分(=どうすれば何ができそうか)がわかってきました
実はここまでで簡単なアプリ程度なら作れるレベルになってます!
ということで、2021年に入ってからはインプットよりも実際に何かモノを作る
アウトプットを重視した勉強に方向転換しました
しかしこれ、やってみると意外と基本的なところで躓いてばかり・・・
最も頭を悩ませたのが
「環境構築」
pathの通し方がわからず自作モジュールのインポートができない、ライブラリのインストールがうまくいかず一日溶かす・・・こんな事日常茶飯事ですね
残念ながらこういう部分はWeb教材ではフォローしきれないところなので、やっぱり手を動かしながら自分のPC上で学んでいくしかないんですね(^-^;
こればっかりは時間かかるし苦労するけどこれ自力でやるしかありません!
でもこういう事をイチから調べて自力で何とかすることが大切ですね!!
python基礎がだいたい理解できた段階では専門的なテーマに絞った書籍学習もおすすめです!
ここで紹介するのは僕も購入して実際に読んでみたものです。次のステップのご参考にどうぞ↓↓
python2年生シリーズのスクレイピング編です
この本ではWebページから情報を収集する技術「スクレイピング」の概要を学べます
例のごとく全編カラー&イラストと漫画構成なので内容がわかりやすくて理解しやすいです
「pythonで儲かるAIをつくる」は機械学習の専門書です
しかし小難しい数式がほとんど登場せず、大事なエッセンスのみをかみ砕いて集約したような一冊!
しかも本の構成として、実際の業務に即したデータのクレンジング方法やどの場面ではどのアルゴリズムを使うのが良いか?といった実際の業務に「使う」事を想定した良書です
1年間プログラミングを勉強し続けた結果
結果1:pythonの基本をマスターできた
pythonの基本構文とコーディングの為の基礎知識、そしてどのライブラリやモジュールを使えば「何ができそうか?」という全体像を抑えることができました
また、使ったことないライブラリや機能も調べながらならなんとか最低限使えるようになったし、書籍の学習でも最低限コードが何をしたいのかは読み取れるようになりました
要するにPython学習のための基礎が身についた感じですね
結果2:オリジナルのアプリが作れるようになった
"Tkinter"というGUIライブラリを使ってオリジナルのデスクトップアプリが6つ
(おみくじやクイズといったおもちゃから、割り勘計算やファイル名変換などの実用的なものまで作ることができました)
そして"Flask"というWebアプリフレームワークを使った簡易SNSアプリを1つ
合計7つのアプリを作りました
試行錯誤しながら自分の力でイチから自分の力で形あるものが出来上がると何とも言えない達成感というか、ある種の"万能感"がありますね
これぞプログラミングの醍醐味!
目標は今年中に10個のアプリを作ることなので6月時点であと3つ!!
ゴールが見えてきました!
(次は機械学習や画像認識を絡めたアプリを作ってみる予定です)
結果3:ほかの言語にも興味を持つようになった
pythonだけでなく、最近はVBAやHTMLといった別の言語にも興味を持つようになりました
VBAはエクセル自動化のシステム構築ができるので会社での業務効率化に役立ちます
また、HTMLはWebアプリ作りやスクレイピングでの情報収集に欠かせない知識で、ここの知識がしっかり頭に入っているとWebと絡めたアプリケーション作りが楽になります
こうやってpythonをとっかかりにして他のいろんな言語に興味を持つようになったのは知識や実戦の幅が広がるので良い傾向だと思っています
結果4:いろんな人とつながれた
プログラミングの学習を通してTwitterでいろんな人のツイートを見たりフォローしているうちに
たくさんの勉強仲間とつながるようになりました
これはとても刺激になります!!!
どうしてもプログラミングを1人で勉強してると
- モチベーションが維持できない
- 次何していいかわからなくなる
- 漠然とした不安 etc....
といった悩みや不安が次から次へとわいてきます
そんな時に勉強仲間がいると「自分は1人じゃない」と勇気づけられます
勉強の進み具合に仲間と差がついてくると焦ったりしますがTwitterの勉強仲間はホントに優秀で良い人ばかりで、プライベートな悩みの相談にも乗ってくれたり勉強方法や書籍を紹介してくれたりと助けられてばっかりです
番外編:変な癖がついた
仕事で資料作るときに、つい"python文法の癖"が出てしまうようになりました
例えば
- :(コロン)の後に改行してインデントを入れる
- 名詞を意味なく””(ダブルクォーテーション)でくくる
- ,(カンマ)の後や演算記号や=(イコール)の前後に半角スペース
こんなpython文法をつい日常的に使ってしまう癖がついてしましました
まぁ、これはこれで資料が読みやすくなったりするんでいいんですけどね笑
さいごに
30代子持ち会社員という状況は圧倒的に時間がなく、(プログラミングに限らず)個人で勉強する方にとってはかなり過酷な状況であることは確かです・・・
どうしても他の方と比べてしまうと進捗も遅いし、どんどん周りに取り残されて行ってる感覚に焦りを覚えることもあります
でも続けることで必ず、一歩一歩着実に前に進めています
たとえ歩みは遅くても僕の場合、自力でアプリ開発(というほど大それたものではないですが)ができる程度にはなりました!
大事なことは途中で折れない事、一緒に頑張りましょう!
コメント