🥧

他言語からPyQを使った感想

2024/03/20に公開

概要

Python未経験者がPyQに登録しPythonを学習した記録をつらつら書いています。PyQそのものの記事はいくらかあったのですが、具体的な内容について言及されている記事がやや少ないと感じたため、自分なりに良かった点と気になった点をまとめました。

PyQ(パイキュー)とは

・ビープラウド社(Webサイトconnpassなどが有名) の運営しているPython学習サイトです。
 PyQ: https://pyq.jp/
 ビープラウド: https://www.beproud.jp/

・紹介記事としては下記のようなものがありました。
 https://toukei-lab.com/pyq-review
https://i-fc.jp/web/pyq-reputation/

・個人契約プランは2種類
 ①ライトプラン (3040円/月) 
 ②スタンダードプラン(8130円/月 エンジニアに質問できる機能、過去の質問を閲覧出来る機能)

・主な学習分野
 ①文法
 ②開発実践
 ③Webアプリ開発・データ収集
 ④データサイエンス
 ⑤アルゴリズム
 ⑥数理最適化と問題解決
 他にも、他サービスとのコラボレーション問題やPython 3エンジニア認定基礎試験対策などのコーナーもありました。

筆者について

・35歳
・非情報系の理系卒
・エンジニア歴1年(Ruby on Rails)
・他に触った言語・・趣味の個人開発でJava, Kotlin, 研究でR少々
・PythonでのWebアプリ開発を学習したくてPyQに登録した

学習の流れ 全体

・ライトプランで契約
・25日ほどで基礎的な内容~Webアプリ開発まで終了
・データサイエンス、数理最適化と問題解決も面白そうだったので2か月目に突入
・39日、106時間程度でひとまず1周

学習の流れ 各分野毎

①文法
内容:関数やデータ型などの基本的な仕様
・他言語の学習経験があり時間はかかりませんでした。イメージとしてはProgateと近い感じがしましたが、ユニットテストの書き方やデコレーターなども扱っていたのでもう少し難しめかと思いました。

②開発実践
内容:公式ドキュメントの読み方、コーディング規約PEP 8、標準ライブラリ、データベースなど
・実務でRailsを使用していたので、両言語での違いの確認が学習の中心となりました。

③Webアプリ開発・データ収集
内容:Django, Flaskを用いたWebアプリケーション開発
・API作成やスクレイピングも扱われていて実務的だと感じました。
・このコーナーが最も気になっていた所でもあったので、自宅PC環境でもDjangoのWebアプリを作成してみたりして学習を追加しました。

④データサイエンス
内容:Jupyter Notebook・pandasを用いたデータ処理、Matplotlibを用いた統計分析・機械学習
・機械学習のコーナーではクラスタリングや回帰分析等がテーマでした。以前統計検定準1級を取得した時にこの辺りを勉強した事があり、興味深く取り組めました。

⑤アルゴリズム
内容:DPやBFS,DFSなどのアルゴリズム
・競技プログラミングなどのコーディング経験があると理解しやすい内容かと思いました。私は競技プログラミングでC++を利用していたので、Pythonの書き方が比較出来て良かったです。

⑥数理最適化と問題解決
内容:数理モデル作成、ソルバーを使用した最適解作成
・ソルバーは使用経験が無かったのですが、楽しく取り組めました。以前職場でシフト表をExcel VBAを用いて自動作成するプログラムを作成した事があるのですが、Pythonだとこんなにスマートに出来るのか・・とわりと感動しました。

良かった点

①Webアプリ開発について学べた
もともとこのために登録したので、ある程度プログラムのイメージが掴めて良かったです。ドキュメントを読んだり自分でプログラムを動かして学習する時間はまだ必要ではありますが。

②初歩から機械学習・統計分析のライブラリ使用まで幅広く学べる
かなり基本的な内容から、応用的な内容まで幅広く学習出来ると思いました。それでいて、それぞれの分野についてきっちり説明してくれている印象でした。

③動く環境を用意してくれている
環境構築は大事なスキルではあるものの、新しい概念を学びたい場合には他にもやるべき事が多くなるため負担になります。そういう場合にまずPyQで機械学習や統計解析のプログラムを動かす学習が出来れば、負担を分散出来ると思いました。

気になった点

「扱っている範囲が広い + 初心者も使用している 」という事を考えると、学習過程で迷子になる可能性はあるかなと思いました。例えば機械学習の所で、機械学習そのものがわかってないのかライブラリの使い方がわかってないのかが把握出来ていないけどとりあえず写経してる‥、みたいな状態になると、次に何を学ぶべきか判断出来ないので勉強効率が落ちそうです。時間が掛かりすぎていると感じたら、一旦振り返るのが良いかもしれません。

まとめ

・PyQでPythonでのWebアプリ開発を学びたくて、ある程度学べたと感じた
・他にもPythonで使用できる代表的なライブラリに触れて良かった
・PyQは扱う範囲が広いので、自分が何をどこまでやりたいか考えて使うのが良さそう

Discussion