ほりすのぶろぶろぶろぐ

ほりすのぶろぶろぶろぐ

非情報系から最高のエンジニアを目指す旧帝大学生

あんざいゆきさん講演、Androidエンジニアの成長戦略に参加した

今回は、からくり株式会社さんにお邪魔して、あんざいゆきさんによる「Androidエンジニアの成長戦略」という講演に参加してきました。
caraquri.connpass.com

あんざいゆきさん

Androidエンジニアをしていれば、おそらく一度はお世話になっているのではないでしょうか。
これです。このブログです。

Y.A.M の 雑記帳


僕は何度もお世話になりました。

紹介 uPhyca Inc. 代表取締役社長。 Android のアプリつくったり、本書いたり、講演したりしてます。
GTUG Girls、droid girls マネージャー。
Google Developer Expert for Android
Suica Reader 作ってます。
「Master of Fragment」「わかる!ドメイン駆動設計 」という本だしました。

あんざいゆきさんのブログのプロフィール欄より


ここに書いてある、Google Developer Expert、通称GDEは、Androidに関しては日本で2人しかいないめちゃめちゃすごい人たちです。
Kotlin Festや、DoroidKaigiを初め、国内外のカンファレンスに登壇している実績もあります。
数日前のKotlin Fest2019もAndroid初学者に向けた講演をされていました。
kotlin.connpass.com
Kotlinの便利な標準関数のお話をする予定だったのが、リジェクトされてしまい、クライアントサイドの話がないなということでAndroidに関する話をされたとのことです。


そんな、雲の上のまた上の存在のあんざいゆきさんの講演があると聞き、詳細すらよく見ずにすぐさま申し込みました。
後々見てみると、先着順で8名の枠しかなかったので、かなり運が良かったです。

講演

当初はあんざいゆきさんをお招きするという社内イベントを想定していたそうですが、せっかくだからということで「Caraquri TechNight」として、少人数の一般公開してくださりました。


講演内容が「Androidエンジニアの成長戦略」。
メインターゲットはエンジニア初学者&&Androidエンジニア初学者~中級者を想定されているとのことでした。

全てを転載するわけにも行かないので、これいいなと思ったところをポイントで抜粋してご紹介しようかと思います。



あんざいさんがお話しされていた部分を中点(・)、自分の感想とかひとことを矢印(→)で書いていきます。

情報工学の基礎を身に着ける

・CSの知識があるとないとでは後の伸び代が違う
基本情報技術者試験の参考書を一通り読めばいいと思う。
 ・過去問もあるが、基本は教科書として参考書を読むだけで良い。


自分も非情報系からエンジニアを目指し始めた時、プログラミングと並行して基本情報技術者試験受けました。

ここは賛否両論あると思いますけど、"資格をとる"ことが目的でなければ基本情報技術者の勉強をするのもありだと思います。
これを勉強するだけでプログラミングができるようになるとか、ないとダメだとかそういうことはないけれど、もっと全体的な"コンピューターとは"を知ることは大事かなーと。

Androidの中でも得意なもの、好きなものを見つける

・1人で全部詳しくなるのは現実的ではない。広く全体的にAndroidを把握しつつ、好きなものに力を入れるほうが良い気がする。
 

UI作るのが好き

・Viewに詳しくなろう(RecyclerView,BottomSheet,ConstraintLayout...)
 ・Animationに詳しくなろう(Animator,Transition,Lottie)
 ・style,themeに詳しくなろう
  ・DarkThemeがAndroid10から本格的に入るよ
 ・Material Designに詳しくなろう(MaterialDesignComponent)
 ・ノンデザイナーズ・デザインブック
  ・センスは理論である
  ・個人でアプリを作る時になぜアプリの画面がダサいのかがわかるかも
 ・誰のためのデザイン
  ・D.A.ノーマンの本はみんな面白い(CSの知識いらない)


勉強するためのライブラリやコンポーネント、本を提示していただけるのはすごくありがたい...。
なんとなくUIやってみたいな〜って言う人はこれらをやってみて極めるといいのではないでしょうか。

ロジックをごりごり実装が好き

Android Test必要!テストなしにロジック好きは語れない
 ・Instrumentation Test/Unit Test
 ・Truth AssertJ…
 ・テスト駆動開発
  ・最初からテストを書く方があとからテストを追加するよりはるかに楽
  ・UIをTDDで開発するのは大変,ロジック部分はTDDを取り入れやすい

→テスト大事ってわかってはいるものの後回しにしちゃいがちなんだよな...これを機に勉強しよう。

設計が好き

Google IOのソースコード読んでも良い、参考になる
AAC(Android Architecture Components)を使わない選択肢はまずない.
 ・LiveData, ViewModelは必須 
 ・NavigationとかPagingは必要に応じて
・WorkManager
 ・Push通知のレジストレーションIDをサーバーに送る時とか.
・Kotlin coroutine
 ・ほぼ必須
 ・RxJavaからどんどん移っていくと思われる
・DIコンテナ(Dagger, Koin,Kodeinなど)
現場で役立つシステム設計の原則(ガチ設計の話)
 ・読みやすい
 ・DDDへの助走
 ・DDDというよりオブジェクト指向の話ではある.
 ・あんざいさん的に「むむ?これはどうなんだ?」というのがあるけどまあいいでしょう
わかる!ドメイン駆動設計
 ・いきなりEric Evansのドメイン駆動設計を読んでも挫折する.
・Droid Kaigi2017のあんざいさんの講演を見る!
 ・あんざいさんのブログ記事から飛べるよ
・準備をした上で,Eric Evansのドメイン駆動設計
 ・何言っているかわからなくても一旦は読み進めてみよう
 ・実践ドメイン駆動設計のほうがまだ読みやすい
  ・サーバーサイドの話なので,クライアントサイドではなかなか活かせるか微妙なところではある


→設計は本当に奥が深いけど、言語への依存度は割と高くないから、設計に強くなれば他のプラットフォームでも活躍できると思う。
自分は設計をゴリゴリに強くなりたい感あるのでガンバルゾ。

その他

フレームワークやハードに近いレイヤーが好き
リファクタリングが好き

も言及されていましたが、前者は母数が少なそうなのと、後者は割とこれまで出てきたテストを頑張ろうねとか、設計に強くなろうねの話にも近くなってくるので割愛します。


アウトプットする

・未来の自分のために書く
 ・完璧を求めない
 ・求めてたら永遠に終わらない 
 ・別に拙い言葉でもいい、だって未来の自分への備忘録なんだから
・他人の反応を期待しないこと
・すでに誰かが書いているから は,あなたが書かない理由にはならない
 ・他の人が書いたものよりも,あなたが書いたことの方が未来のあなたに役立つ
・すぐ書く!


→はい!すぐ書きます!今書いてます!

カンファレンス・ミートアップに登壇

・数をこなさないとうまくならない
 ・最初はLTとか時間んの短いもので挑戦する
 ・おしゃれなスライドより話の流れが大事
  ・何をどういう順番で話すのか
   ・話の流れが大事だよ
 ・スライドは理解のための補助
  ・コードを乗せるときは白背景にしよう(黒背景のコードは見づらい)

継続は力なり

・少しずつでいいので,まずは続けること
 ・続けるのは大変
  =大抵の人は続かない
  =続けるだけで差がつく


→これは真理。
ひたむきにひたすらコツコツ続けていたら、そのスピードに個人差はあるかもしれないけど必ずどこかで成果がでるはず...!



まとめ

少人数の講演だったので、あんざいさんとの距離がつねに大股3歩くらいっていう意味のわからない単位で測れるくらい近かったです。


めちゃめちゃすごい方の講演を近くで聞けるだけでなくて、懇親会で普通に隣で長時間話せるの控えめに言って最高だった。


写真も撮ってもらって満足of満足なのでこの講演で聞いたことを今日から実践してつよつよAndroidエンジニアになろうと思います。

素晴らしい機会を与えてくださったあんざいさん、カラクリさん、ありがとうございました!