見出し画像

#074 勉強ログ:今後の学習戦略(オープンデータ×メンター活用)

さて、最近は毎日なんらかコードをみるということを意識しております。

“コードがスラスラかけるようになったのか”と問われると何もいえなくなりますが、少なからず、アレルギーはなくなり人のコードを解読するくらいはできるようになりました。

そのため、今回はプログラミング初心者における学習ポイントを振返って整理したいと思います。

▼学習の位置づけ

今年に入ってからは"とりあえずプログラミングを学ぶ!"というスタンスでここまで来ましたが、"そもそも、どこに向かって何を頑張っているのか?"未だにゴールが曖昧でした。

そのため、PythonやRの学習のゴールを定義し、位置づけを明確にしてみました。ザクッと私的なゴールとしては以下の通り。

---プログラミング学習で目指すこと---

【フェーズ1 】 クリア!
  基礎知識の習得をして参考書の内容程度を理解できる

【フェーズ2】 ←イマココ(今回の論点)
 身の回りのオープンデータを使って遊べる/自由研究できる

【フェーズ3】 未クリア
 学んだ知見を実務のデータに応用してアウトプット出来る

【フェーズ4】 未クリア
  独自チューニングで事業にカスタマイズさせ予算獲得できる

【フェーズ5】 未クリア
  仲間と共にコンペ受賞、論文投稿など社外でも実績が創れる

最終的には実務で使えるの一歩先にいくような成果を出して、社外でも武器になるようなものにしたいなぁと思っております。

このようにまとめると、現状この3ヶ月間でようやく、5段階中のフェーズ2まではこれたかなという感じです。ここで、今までの学習の振返りをしたいと思います。

▼学習初期のカベ

上記の通り、今回はフェーズ1から2について触れます。つまり、基礎知識をつける、そしてそれを応用するかという点です。

ここで、まず最初に言及しておきたいのが、私はこの手の勉強しようと思うのは初めてではないという点です。今まで何度も”手を出しては挫折…”を繰り返してきました。

一体これはなぜなのか?

この課題を解決しないとまた元の木阿弥です。今までのことを考えると、学習のカベになっていたのは以下の3点です。

---プログラミング続かない問題---
その①:基礎がないので次につながらず単発で終わりがち
その②:ずっと続ける動機がなく一時的なマイブームでおわる
その③:ちょっとしたデバックエラーが解決できず嫌になってやめる

大体今までの挫折経験はこれらのどこかで躓いています。

例えば、大学生時代を思い返すと②が圧倒的に不足しており自分のものになりませんでした。また②をクリアをしたとしても、今度は③が壁になりします。

ではこれらをどう解決していくか?

これについて考えます。

▼今後の学習戦略

上記を踏まえ、考慮すべきは以下の通りです。

---プログラミング続けるアプローチ---
その①:体系的に知識を積み上げていく

→カリキュラム等に則して積み上げる×毎日触れる等の習慣をつける
その②:使う必然性を持たせる
→業務でアウトプットするなどの計画を立て学習の必然性をもたせる
その③:勉強する仲間や先生を回りに作る
→困ったらすぐ聞ける相談できる環境を作り身を置く

まず①は参考書や動画教材(Udemy)等のカリキュラムを利用するなどが考えられますが、一番手っ取り早いのはスクーリングすることだと思います。オンラインであれば費用も時間も拘束すくなくオススメです。

そして②は如何に目標レベルの達成後のセルフイメージがもてるかどうかです。特にビジネスマンは現業へどう影響させられるとハッピーかという妄想力に依存する気がします。

そして上記の③の解決方法は端的に”周りを巻き込み”です。具体的には困った時にフラッと聞ける人、聞ける環境を作ることです。特にオススメしたいのは以下の組み合わせです。

『オープンデータ×メンター作り』

これが最強だと思います。何かというと、学習する素材はオープンデータを探せば腐るほどあります。そのためその素材で色々実験してみて、わからなければすぐに聞ける人を作っておけば如何様にでも学べるわけです。

例えば、私はスクーリングしておりチューターがいます。先日はkaggleのデータを使ってデバックエラーがでたので、授業後にそのチューターに口頭質問したらその場で色々対応してくれました。

チューター

(直接回答もらっただけでなく、後日slackでここまで助言をもらえたりしました。。感謝しかないです。。)

特に、この手はウェブ上でもできなくはないですが、思うような回答が得られない、そもそもうまいこと質問ができない(言語化できない)という状況において、ウェブで完結は無理です(相応のレベルでないとできない)

そのため、身近に教えてくれる人がいるというのは学習効果高いと思います。チューターを利用せずとも社内に詳しい人がいるならその人をメンターにすればいい気がします。

ちなみに現在自分が通っているのはこれです。今のところ良い感じ。

▼今後に向けて

まずは、スクーリングで学んでいることを学びつつも、自由研究もちょくちょくして”カリキュラム外のことも聞きまくろう”と思います。

また、社会人になってからの勉強は、がむしゃらにやるのも時には大事ですが、都度都度、学習のゴールを再確認しながら、意図した方向に積み上げることが何よりも大事なのではないかと思っております。

ーおわりー

▽蛇足:AzureBlobの活用

蛇足ですが、前回言及した”iPadだけでKaggleの勉強環境を整備する!”を実現するハードルとなっていた「大容量データ扱えない問題」が解決できました。

結論から言うと、Azure Blobを使えばiPad上から大容量ファイルをアップしてそこで加工したりできます。

 #Blobにファイルアップロード 
from azure.storage.blob import BlockBlobService
from azure.storage.blob import PublicAccess

account_name='自分のコード'
account_key='自分のキー'
file_path='参照ファイル'
 #ファイル名を指定 
service = BlockBlobService(account_name=account_name,account_key=account_key)
service.create_blob_from_path(container_name,'train.tsv',file_path)
 #Blobのリストを確認する 
from azure.storage.blob import BlockBlobService

account_name='自分のコード'
account_key='自分のキー'
container_name='参照コンテナ'

service = BlockBlobService(account_name=account_name,account_key=account_key)
blobs = service.list_blobs(container_name)
for blob in blobs:
   print(blob.name)
 #Blobを取得 (ダウンロードする)
from azure.storage.blob import BlockBlobService

account_name='自分のコード'
account_key='自分のキー'
blob_name='参照Blob'

service = BlockBlobService(account_name=account_name, account_key=account_key)
service.get_blob_to_path(container_name,blob_name,'download.png')

これで色々みたり実行したりで勉強できそうです。

最近のコロナ系の情報が賑わっていますが、個人的にはマーケティングデータとして自分でもオープンデータをいじって何らかアウトプットできないかと思っています。また試行錯誤しようと思います。

▽蛇足:iPadでの学習環境の整備


ここまでご覧頂き誠にありがとうございます!今後も誰かのためになるような小ネタや気づきを発信し続けたいと思いますので、スキでもコメントでもフォローでもリアクション頂けると死ぬほど嬉しいです🙇‍♂️🙇‍♂️