![見出し画像](https://assets.st-note.com/production/uploads/images/20784083/rectangle_large_type_2_0ff4c0d7132b08700800700d39d74aea.png?width=1200)
CourseraでPython for Everybodyコースを完全修了した
3月25日、ミシガン大学がCoursera上で開講されているPython for Everybody Specializationの第5コースのCapstoneワークを全て修了し、晴れてPython for Everybody全カリキュラムを修了しました!
Python for Everybodyの受講を始めてから約1か月半、当初は「初心者向けって書いてあるしサクサク進むでしょう~」とお気楽モードで受講していましたがそれは良い意味で裏切られました。第3コース以降、本当に骨のある講義内容と課題で、時間をかけ取り組むことで、力になったと感じています。
これがSpecialization Certificate...コース修了証とは違った雰囲気で、達成感が得られますね。
1.コースで身についたこと
全5コースを振り返っての感想ですが、まずはPythonのプログラミングをほぼゼロから学び、最後には比較的複雑なデータベースの操作やWebからのデータ取得などまで一通りのプログラミングを体験することができた点はとても有意義であったと思います。
最初のprint()だけのプログラムから100行近いプログラムでSQLやJSONを駆使するまで出来るようになったのはコースの受講によるものです。途中でコードの複雑さや解説不足なところにイラッとしたりもしましたが(ちょっとだけね!)、後になってみたらそれはそれでよい経験だったのかなと思いました。
さて、このコースで出来るようになったことを箇条書きで振り返ります。
・Pythonのコードを書けるようになった!(超重要)
・ファイルの操作や文字列の検索ができるようになった!
・Webサーバにアクセスして、必要な情報を自動抽出することができるようになった!(BeautifulSoupというライブラリを使います)
・Pythonを利用してXMLやJSONなどの構造言語を理解できるようになった!
・SQLの読み書きができるようになった!
・英語に対して(ちょっとだけ)自信がついた!
中でも、Webやデータベースのことを大まかに知ることができたのは非常に勉強になりました。実務上も、多対多の関係を持つデータベースを設計することで業務の自動化ができそうな例もあり、仕事への応用という点からも社会人になってからの学び直しの意義があったと感じています。
2.課題の難しさ
Python for Everybodyでの課題は、基本的に一からプログラムを作るというほどの負荷はなく、モデルとなるプログラムを改良して課題で求められるアウトプットを得る、というものが多いです。プログラムやアウトプットをAutograderという自動採点ツールに読み込ませて解答が合っていれば合格という仕組みです。(最初はこの仕組みにすごく感動しました)
とは言え、授業をしっかり聞いていないとプログラムがどのような挙動をするのか理解はできませんし、プログラムのどこを変えれば正しいデータが得られるかというのは、コードの数行を変えるとは言え、経験や勘所が必要になるものなので一筋縄ではいきません。コードを変えたらあちこちでエラーが頻発する、なんてこともよくありました。
時にはコメントアウトしながら慣れない型の変化をトレースしたり・・・地道なデバッグ作業に何時間も掛かることもありました。
(上のコードは一回正規表現形式でEmailの@以下を取り出そうとしたがどうにもリスト形式になってしまったために断念した時のものです。泣)
特に、後半の第3コース~第4コースの各課題は外部サイトやデータベースを読み込んだり、書き込んだりすることもあり、その構造を理解するのにも時間がかかりました。
英語というハードルも日本人特有のネックです。Coursera上で提供されているものは当たり前ですがすべて英語です。参考サイトも、Forumでの議論もすべて英語です。そして、日本でCourseraを受講している人は未だそれほど少なく、頼れる人がいないという孤独との戦いでもありました。(大げさ?)
そのため、Pythonを日本語で解説されているサイトを読み、時にマニアックすぎる記述にハマり、そしてまた時間を浪費してしまうこともありました。
ただ、その分だけ、達成感は大きかったです。
まとめると、課題の難易度は決して難しいものではありませんが、時間をかけてじっくり考えるものが多かったという印象です。
3.What's Next?
コースの受講を通じ、ひとまずPythonプログラミングとは?という基礎的な知識と技術が詰め込めたかなと思います。もちろんアルゴリズムや各処理の高速化、各ライブラリを応用させた複雑なプログラムなどはまだまだ勉強の余地がありますが、次なる目標を決めていきたいと思います。
・本業である金融機関での業務に役立つプログラムの構築
・現場の業務効率化に貢献するプログラムの構築
前者はいわゆるEUC的なものを想定しています。自分はITの専門家ではないので、あくまで会社で提供されているプラットフォームを活用した補助的プログラムという、エンドユーザ的視点で考えていけたらよいなと考えています。また、Coursera上でも有用な講座がいくつもあるので、それを取りながらブラッシュアップしていけたらよいなと思っています。
それから、業務効率化。残念ながら日本の金融業界はまだまだエクセルによる手入力で手間のかかる作業をしていることが多いです。悪名高いエクセル方眼紙もまだまだ健在です。そのような作業負荷を少しでも軽減できるようなシステムが作れたらよいなと考えています。
4.さいごに
今や、世界中の大学の講義がオンラインで国や地域を問わず聴講できることはテクノロジーの進化と学びに対する各大学の開放姿勢の賜物であり、その恩恵にあずかれる機会はまたとないものと言えるでしょう。世界各国、数万人のCoursera受講生がDr. Chuckの講義を受けている姿を見て、我が身が引き締まる思いです。
最後に、このような機会を提供してくれたCourseraと、画面の向こう側でも親しみやすく毎回懇切丁寧に解説してくれたDr. Chuckに本当に感謝しています。ありがとうございました。機会があったらoffice hourに参加してみたいです!(笑)
これで、ひとまずPython for Everybodyコースの講義メモは一旦終了します。最後まで読んでくださいましてありがとうございました。それでは、次回のエントリもお楽しみに!
この記事が気に入ったらサポートをしてみませんか?