競技プログラミングのブログを始めて、変えようとしていること
2月末から競技プログラミングのブログを書き始めて、当時の意識と今の意識で変えたことを記します。
vermee81-coding-memo.hatenablog.jp
競技プログラミングと向き合おうと思ったきっかけ
競技プログラミングで思ったような結果が出ないとすごく悔しくて、 ふと我にかえった時に、自分が想像している以上にこれが好きなんだなと気づきました。 せっかく一生懸命やるなら、半年以内に水色くらいを目標にして、取り組もうと思いました。
ブログを始めようと思ったきっかけ
どんなことでもそうなのですが、成長すると、初心者だった時の気持ちがわからなくなります。 同じ問題を見ていても着眼点が違いますし、良い意味でも悪い意味でも視野に偏りが出てきます。 そういう初心者の時の視点を忘れないようにできると、人に説明するスキルの基礎体力になると思いました。 もちろんブログに記録を書いて、言語化することで自分が理解できていないことに気づけますし、 後で読み返すと、理解が不十分で誤魔化して書いている箇所にも気づけるメリットもあります。
ブログを始めてよかったこと
習慣化するために、最初の1ヶ月ちょっとは毎日更新しました。
睡眠時間を削って毎日更新していたら、睡眠不足で体調も悪くなり、今でも頭が十分に働いていないと自覚するときがあるくらいになってしまいました。 とにかく今は、毎日更新するのをやめて、夜は眠くなったら寝ることにして、回復をはかっています。
ブログを書くことへのハードルはだいぶ低くなったので、毎日更新したことは無駄ではなかったと思います。 前は全然ダメだったのですが、日本語で1000文字ほどならすぐに書けるようになりました。
読者への意識の変化
ブログのPVはほとんどないのですが、傾向が気になり始めました。 比較的PVが集まってる記事は、公式の解説が若干わかりにくいことが要因なのか、公式の解説をもっと丁寧に解説したものでした。 大したPV数ではないのですが、その数字を見て少しだけ読む人を意識するようになりました。
仮ですが、想定読者を自分と同じくらいのレベルの人として、そういう人が読んで理解して学びや気づきがあるようにしようと決めました。ソースコードにはなるべくコメントを入れるようにして、変数も短いものではなくてわかりやすさを重視するようにしました。
今はもう少し欲張って、競技プログラミングを楽しいと共感してもらえるようにしたいと思っています。 具体的には、単純な解説だけでなくて、心理的なことを起承転結に整理して書くことで、ある程度ストーリーのようなものを作って、読んでて楽しいと思ってもらえることを意識して書こうと試行錯誤を始めようと思っています。
それで読む人が増えるのかどうかはまた1ヶ月くらいしないとわからないような気がします。
地力は前よりは確実についていると思うので、落ち続けているレーティングはあまり意識せず、もくもくと健康第一で続けていこうと思います。
最後まで駄文にお付き合いいただきありがとうございました。
iOSDCJapan2019(1日目)で紹介された、ちょこっとお得だった情報
今年もiOSDC Japan 2019に参加しています。 初日から面白い発表が多くて家に帰ってからもしばらくアドレナリンが出てました。 ちょっと趣向を変えて、発表やライトニングトークで紹介されたリンクを中心に、知ってても良さそうなのに気づけなかった細かい情報をピックアップしたいと思います。
EAR(Export Administration Regulation)の和訳判定チャート
@kazu0620さんのライトニングトークで和訳のEAR判定チャートが紹介されていました。 今まで和訳の判定チャートがあると知らなかったので、頑張って英語を読んでいました。。。 @kazu0620さんのスライドと合わせて読めばもう迷うことはないはずです。
今こそ理解しよう、輸出コンプライアンス - Speaker Deck
Apple Teacher Swift Playgrounds認定は実は簡単にとれる?
@temokiさんの自己紹介で紹介されていました。
以下のブログ投稿によるとオンラインで学習して、クイズに答えるとゲットできるようです。 Apple好きで自分の自己紹介にAppleのロゴを入れたい方はぜひチャレンジしてみてはどうでしょうか。 とはいえ、Teacherとして登録するところが一番のハードルな気もします。。。 会社の新人研修担当者=先生ってアウトなのかなぁ。
Apple Teacher Swift Playgrounds認定を受けました | Tamentai.jp
swift playgroundであの懐かしいLOGOで遊べる
またまた@temokiさんのネタになってしまいますが、子供の頃に遊んだLOGOがswift playgroundで遊べるとわかり、感動しました。 いつか子供と一緒にLOGOで遊ぶのが夢です。 スライドでは、アランケイ先生の話から、swiftplaygroundでどうやってLOGOを実現したか紹介されていて、おすすめです。
余談(完全にいらない話)
私がはてなブログを放置してしまったため、いつの間にかはてなダイアリーに移行が完了しており、twitter連携も途切れ、 1年ぶりの更新になってしまいました。。。 技術系のことはQiitaに書き溜めているのでこのブログの位置付けに迷いが出てきてしまいました。。。
iOSDCJP 2018 1日目のおすすめトーク
今年もiOSDCJP2018に参加しています。
ブログ書いて微力ながら貢献したいと思います。
1日目のトークで目から鱗が落ちたり、感銘を受けた自分の中のベスト3を紹介します。
動画も公開されるようなので、動画のリンクは後で貼ろうと思います。
基本的に面白いトークがたくさんあったので、最後にスライド一覧も貼っておきます。
MicroViewControllerで無限にスケールするiOS開発
複数人でiOSアプリを開発するためにViewControllerを階層的に分けて開発するノウハウがいっぱい詰まっています。
まだ理解が追いついていないので、githubのコードを読んで理解したいと思います。
サンプルプロジェクト
差分アルゴリズムの原理について
iOSの内容とは離れますが、とても丁寧に図を使ってMyersのアルゴリズムを解説されています。
Edit Graphを使った考え方とか初めてだったので新鮮でした。
ちなみに同じ時間帯に「差分計算アルゴリズムを用いた高速なUITableView描画」というトークもあって、こちらは私は聞けなかったのですが、iOSの開発にもふれたトークです。合わせてスライドのリンクも貼ります。
差分計算アルゴリズムを用いた高速なUITableView描画
安定したチャットを実現するための アプリとAPI設計
アプリでチャットを実装する時の工夫やツラみがわかるトークでした。
メッセージの送信状態をみたり、タイムスタンプを使ったサーバー側の工夫も見えました。
アプリでチャットを実装したことのない方には、何かしら学べる要素があると思います。
1日目のトークで公開されているスライド
- iOSエンジニアの為のgrpc-swift入門
- 再利用可能なUI Componentsを利用したアプリ開発
- MicroViewControllerで無限にスケールするiOS開発
- 安定したチャットを実現するための アプリとAPI設計
- Declarative UICollectionView
- Introduction to Font and Typesetting
- 差分計算アルゴリズムを用いた高速なUITableView描画
- Swift 4.2 はどのような進化をしているのか
- コンパイラから紐解くSwift method dispatch
- Difference Algorithm
- Swiftの型システムに入門する
- Swift 4.2 はどのような進化をしているのか
- iOSアプリ内で不正なSSL証明書を検知する / SSL Pinning for iOS apps
- Haptic Feedback による効果的なマイクロインタラクション