background image
2019/03/11

最近のisoppp 3月前半編

  • 最近のisoppp
  • Django
  • Python

なにこれ

最近の活動を気軽に投稿していくシリーズです。週刊なんとか的なものを目指そうと思いつつ大変そうなので一旦不定期にて。

一個一個ちゃんとした記事を書くのになんか疲弊感を感じてきたので日記風に書きつつダイジェストをお送りします。
やってることを共有していって何かを検索ワード的に知るとか興味を持つとか、こいつあほだなとか何かきっかけになれば十分かな精神です。

ダイジェスト

  • 昼活は良いぞ
  • モチベーションの継続
  • Django/Flask/Pythonの勉強
  • Pythonのあれやこれや
  • 学習課題
  • カナダと英語近況
  • 最近の気になったもの
  • おわりに

昼活は良いぞ

最近、というか今年に入ってからはずっと昼休みに隣のパン屋で買うか何か持ち込んで食べつつ何かしらを勉強することにしてたりします。 45分*240日=10800分=180時間分なので一年でお得になります。フルタイム勤務換算で一ヶ月以上昼休みを捧げるだけで他と差がつけられるってお得です。 ランチはすごい大事、とかがなければおすすめです。

すごい人と見比べると意味なさそうにも見えたりもしますが、やらなかった時の自分と比較すると180時間って結構良い勉強量だと思えると思います。

モチベーションの継続

後のRails→Djangoとか何故その範囲なんだとか色々あるんですが、勉強のモチベーションが高いのが正義だなと思い始めたりもしています。 自分の場合モチベーションが爆発して集中的に色々なことに手を出しつつ、それが点線か線で繋がっていく、みたいなことも多いので、 必須ではない範囲であればモチベーションという所も勉強題材選ぶ時に意識していきたいですね。

全く関係ないとよくないかもしれませんが、DjangoやったからといってRailsに対して何も活きない、とかもないですからね…。

Django/Flask/Pythonの勉強

先々週くらいまでちょっとRailsを勉強してサービスを作り始めていたものの魔法具合とかRubyの書き味がどうも合わない感じがあり、Django/Pythonに浮気していてみたりします。 自己サービスを簡単なのでいいから作りたいものの、なんか完全に脇道にそれていっています。 とはいえPython/Djangoは感覚的には今の所しっくり来ていて、上記に書いたように自身の勉強法としてはある意味こういう動きは成功パターンな気がしてこなくもないので、勉強法は人それぞれ、を意識して一般論に囚われず模索していきたいです。

以下触れた教材の簡単な概要と所感です(HTMLは基本全部コピペ)。 教材は英語の部分も多いですが、WebページだとGoogle翻訳すると基本読めてしまうので、甘えていると英語が伸びづらくなってきてしまったな…と思っていたりします。

Build a Backend REST API with Python & Django - Advanced

Udemy教材で、Django REST frameworkに特化した教材です。 FEから来てバックエンドの勉強している時のつらみとしてはHTML等のテンプレートを作っている章がつまらなすぎるという所なのですが、それに対してこの教材は一切そういうものを作らないので割と楽しんで進められました。

また、DockerやTravisCIを使ったり、TDDによる開発、カスタムユーザーモデルの作成等、他の教材をやった後でも、結構良い教材だと思いました。 ただ、最初にやるにはちょっとハードルが高めで、順番は間違えましたと思います。 12h前後で終えることができました(動画は8hです)

最後のほうで動作確認をしていたらバグがありそうだったのでQ&Aで報告したら3日くらいでビデオごと修正されてました。早い。

Udemy教材ページ / Github

Django 公式Tutorial

最初からやっておけばよかったという教材でした。 各機能詳細へのリンク等も随所に入っているのでDjangoへの理解が深まります。

順番的にはこの公式、Django REST Framework公式、他の教材、がこれからやる人におすすめですかね。 学習時間は大体関連リンク全部飛んでいきつつ休憩しつつやって8時間前後でした。

公式チュートリアルページ / Github

Django REST Framework 公式Tutorial

こちらも間違いはなかったです。公式チュートリアルの安定感。 学習時間はこちらは5時間前後でした。

公式チュートリアルページ / Github

Flask 公式Tutorial

学習時間は4時間前後でした。Djangoに比べると噂通りというかフレームワークがかなり薄くて色々怖いのでDjangoから入っていこうかなと思いました。Django慣れてきたらこちらも勉強しつつ使いたいです。

公式チュートリアルページ / Github

Practical Django 2 and Channels 2: Building Projects and Applications with Real-Time Capabilities

現在進行中でまた序盤です。2019年に出たとあって内容が結構新しい空気を感じています。
最初にざっと眺めてからやっていますが、サードパーティライブラリも結構使いつつ、ReactやReactNativeも使いつつ、な感じで良さそうです。(とはいえFE部分はかなり軽くだと思います)

進めている中でも他の初心者向けの物よりは実践よりに近い形な気がします。(標準ユーザモデルをカスタマイズする教材があまりないですがやりそうな気配がしたり、画像、CSV、JSON、PDFとかをファイル的に扱う、上記の通りReact、ReactNative等がある)

とはいえ、序章の方にこれはProduction向けに完璧な例を作る本ではない、みたいな内容があった気がするので、色々な可能性を見せつつ、深掘りは各自で、で着地するのかなと思っています。

本のリンク(Apress)

Pythonのあれやこれや

構文

一応自分のコード書くようになったきっかけが「Python動いたぞ!」なので2系の初学者レベルの雰囲気の知識はあったので困ったら調べようスタンスでやっていました。 以下の辺り以外は調べずに構文自体は大体わかりました。下記も調べたらわかりやすい解説があったのでスッキリできました。

  • with構文
  • @hogehoge構文
  • *args / **kwargs

パッケージ管理

  • virtualenv
  • venv
  • pipenv

調べてもこれだ!みたいな結論のものはほとんどなくて、中々によくわからなかったです。

virtualenv -> venv -> pipenv と遷移してきてpipenvで着地で合っていそうな雰囲気を感じています。 pipenvだとlockファイルが作られたりscriptが書けたりとnpmに近しい感じで使えているので、馴染む所があります。 また、新しい系の教材だとpipenvが割と使われていそうな印象を受けました。

formatとlint

これも決定版がないものの、フォーマット形式が好みな感じがしたのでBlackを使っています。lintは最初の教材で出ていたflake8を使ってみています。 こちらも中々選択肢があるようでよくわからぬです。

学習課題

最近触れたけど知識不足を感じた部分リスト。FE周り。

  • E2Eテスト周り

    • puppeteerでかなり小さいものは作ったことあるけどたりなさすぎた
    • FW多すぎだけど触りくらいは感覚値持ちたい
    • Seleniumとは
    • WebDriverとは
  • PWA/Service Worker

    • チュートリアル程度で結構知識が止まってしまっている

カナダと英語近況

カナダといいつつ実は2カ国留学予定で、先のフィリピン周りとそこからカナダ入りまでは大体準備が整いました。 語学学校探すのは候補が多すぎるし、留学系はネットの情報が信用できなさすぎて本当に難しいし疲弊しますね。ネットも最近良い情報にたどり着くのが難しくなってきている気がします。

英語の方は勉強するべき順序みたいなのを定めていたのですがそのせいで次の本へのモチベーションがなく停滞していたので、その辺りをモチベーション重視で時間を注ぎ込む、という意識にしてそろそろスイッチ入れないと、という状況というかもう既に遅い状況です…。 日曜日には一応TOEICは受験したものの特別な成長感はなし…。

最近の気になったもの

一人でER図一応適当に書いてサービス作っていたのですが、しっくり来たツールはなくて、dbdiagram.ioというのがリリースされた?っぽいのでちょっと触ってみたいなと思ったり思わなかったり。

おわりに

ひたすら教材やりまくる、みたいに近しい最近というか一週間くらいですが、色々ありすぎてもっと軽めにやりたかったもののこれはこれで大変めです。 期間ではなくてインプットとアウトプットのバランス、レビューやコミット粒度的な感じで出す頻度を決めるべきかもしれませんねー。

一旦はたまに概要をまとめて、その中から気が向いたら深掘り記事を出していってみようかなスタンスに変えてみようかと思います。