見出し画像

ノンプロ研「Python初級講座」を終えての感想

はじめに

今年の5月くらいから、「ノンプログラマーのためのスキルアップ研究会」通称「ノンプロ研」に加入して学んでいます。
加入に至った経緯や動機、また学びにおけるコミュニティの活用の仕方など気づいたこと色々書きたいことが溜まっているのですが…それはまた別の機会に書くことにして、今回の記事では6〜7月に受講した「Python初級者講座」について感想を残しておきたいと思います。
(だいぶ時期が過ぎてしまい旬を逃してしまった雰囲気がありますが、そこは気にせず行きましょう)

ノンプロ研とは

講座の感想の前に、まずはコミュニティについて簡単に。

ノンプロ研に加入しているメンバーは、多くの方がノンプログラマ、つまり「別で本業を続けながら自身の仕事に生かすためにプログラミングを学んでいる」方々です。
中には本業プログラマの方もいらっしゃいますが、普段業務でコードを書くことの無いエンジニアの方や、IT関連の仕事をしている方も多い印象です。

コミュニティの中では業務効率化と相性の良いVBA, GAS, Pythonを中心に学べる環境があり、勉強会やLT登壇の機会があったりと、プログラミング学習に留まらない学びの機会があります。

代表のタカハシさんは「いつも隣にITのお仕事」というブログを運営されており、VBAやGAS、Pythonの記事、また最近はノーコードアプリ(AppSheet)の情報発信にも取り組まれています。

特にGASについての情報が少ない中で、独学で必死に情報を探していたらこのブログに行き着いてコミュニティに出会うという、独学ノンプログラマのオアシス的な場所になっています。笑

「Python初級者講座」の進み方

ノンプロ研のコミュニティをベースにした講座が定期的に開催されており、その中の一つに「Python初級講座」があります。

講座は全6回、1回2時間で週1ペースで講義を行います。
(情勢的にオンラインでの開催でしたが、過去にはリアルでの開催も行っておりました)

「業務で使うツールを作る」ことを講座のゴールとしており、この講座ではPythonの基礎文法から学び、最終的にブラウザ操作、スクレイピングに特化してWebからの情報収集を行うスキルを学びます。

講座は講師の方によるスライドを使った授業をベースに進行します。
途中、ちょこちょこと演習としてコードが提示されるのでそれを写経(コードを書かれた通りに書いて実行)することで手を動かしながら理解していきます。また毎回の講義の中で宿題(学んだことを活用してプログラムを組む問題)が出されるので、次の講座までにその宿題に取り組んで実践と復習に取り組みます。

全ての講座が終わった後には卒業LTがあります。発表は強制ではないですが、LTで発表した受講生には卒業証書が授与されます。
(今回からの新たなシステム!)

定期的に講座後にZoomでの懇親会もあり、何気にそういうところの雑談から新たな発見や学びが生まれるのが、コミュニティがベースにあるこの講座の良いところです。


講座を受講して得たこと

(1)Python文法の基礎を理解して正しく綺麗なコードを書く意識がついた
講座では簡単な文法から学習が始まりました。
ただ、知識(=インプット)としては簡単な文法なのですが、それをどう使うか(=アウトプットする)ことに焦点を当てて学習が進んでいきます。

第1〜3回で変数や文字列・スライスなどのpythonの基礎から制御構文、データ構造(リスト、タプル、辞書)をじっくり学んでいきます。
第4回には「組み込み関数、組み込み型」が出てきて、一気に範囲と深さが広くなる感じです。
この辺は良く使うものは限られているので、全てを覚えるのではなく必要なものから手に馴染ませていって、徐々にできることを増やしていくのが良いと思いました。

「正しく綺麗にコードを書く」というのは、独学では意識しづらい点だと思います。講座の中では、課題に対して受講者の皆さんやTAの方の解答も見ることができるので、自分の解答と比較することでより良いコードの書き方を知ることができました。

(2)できることの範囲が広がった
講座の第5・6回(最後の2講座)に、この講座の目的であるBeautifulSoup4やSereniumというライブラリを使ったスクレイピングのやり方を学びました。
スクレイピングとは、WebのHTMLを解析して欲しい情報を取得すること。
これをPythonを使って行うために、先ほどの2つ(実際にはRequestsも合わせて3つ)のライブラリを活用します。
HTTPリクエスト/レスポンスについての基本的な理解も合わせて学習しました。

スクレイピングをする際に気をつけることとして、法的・モラル的な注意点があります。
講座に取り組む前に僕がスクレイピングに対して抱いていたイメージって「勝手にデータをとる=悪いことをしている」というようなイメージでした。
ところが、注意することを抑えておく…例えば「サーバーに負荷をかけない」「規約をしっかり確認する」など相手の立場に立って節度のあるスクレイピングを行うことが大事というのは、なかなか独学では身につけられないことだなと思います。

スクレイピングは「情報収集のための手段」と捉えられます。
あくまで手段でしかないので、得たい情報・活用したいサービスによってはスクレイピングよりも提供されているAPIを活用した方が安全かつ効果的な場合もあり、自分が「実践したいこと」からどの手段を選択するかが重要ですね。


(3)「言語化」の重要性を理解して習慣化できた
講座を通じて「業務で使うツールを作る」ことがゴールなのですが、最後にはLT大会があり、それまでに卒業制作を作り発表する、というのが1つのカリキュラムになっています。
この「LTで発表する」というのは正直しんどいのですが、かなりの利点があります。

言葉で人に伝えるということは、その過程で自分の中でもやもやっとしていた知識を言語化することになります。言語化ができれば人に伝えたり、また自分が忘れてしまっても後で見返して思い出すことができます。

受講の際にはtwitterでの発信が推奨されており、そこでもプチ言語化の練習をすることができます。twitterならLTで話すことをまとめるよりも、ブログに書いたりするよりも気楽ですね。

上手い文章を書く必要はありません。文章化スキルというのはプログラミングスキルと直接関係はないですが、文章化して誰かに伝えようとすることで理解度が深まり、自分にとって生きた知識になるものだと思います。

講座を通じてその練習と習慣づけができて、更には発信したり質問したりすることの恐怖感が薄れたのが、とても良いことだなと思っています。


おわりに

もちろんプログラミングを学ぶことが本筋で、技術を習得したり学習した内容を共有したり教え合ったりすることでスキルアップにつながります。
しかし、それだけじゃないのがコミュニティの面白いところだと思います。

プログラミングという共通の技術・趣味、また「ITスキルを学んで実務に生かしたい」と共通の考えを持つ人たちと交流することで、新しい情報、新しい視点が得られて、生活や仕事にもハリが出てきます。

そこには単なるプログラミング学習にとどまらない価値があるんじゃないかなと思っています。

次回、第4回Python初級者講座
次の講座が9/23からスタートいたします。

今回の講座の感想記事を読んでいただけて、いいなーと思ってくださった方は是非、講座の情報をチェックしてみてください。定員が決まっているのでご注意を。

コミュニティ連携型!ノンプロ向けプログラミング講座開講のお知らせ

Pythonに興味のある方、Pythonを使って作りたいものがある方、是非一緒に学びましょう!


この記事が気に入ったらサポートをしてみませんか?