はじめに
株式会社タイミーのAndroidエンジニアのみかみ(X:@mono33__)です。
技術の進化が速い現代では新しい知識やスキルを学ぶ重要性が高まっているように感じます。次々と登場する新しいフレームワークやライブラリ、そして技術トレンドが変化する中で、それに追随することができるかどうかはプロダクトの成長や競争力の維持にも大きく影響するでしょう。
今回は自分が普段何となくで実践している技術キャッチアップの方法をざっくばらんに紹介していきたいと思います。
どのように技術をキャッチアップするか
- 情報共有プラットフォーム
- SNS
- コミュニティ
- その他
に大別して紹介していきたいと思います。
情報共有プラットフォーム
QiitaやZenn、MediumやStack Overflowといった情報共有プラットフォームは、エンジニアが書いた実践的な記事や技術ノウハウが集まる場所です。
Qiita & Zenn
QiitaとZennは日本語圏でエンジニアに広く利用されている技術情報共有プラットフォームです。ただ技術記事を共有するだけでなく、エンジニア同士が情報を共有する文化を促進しているという印象があります。投稿者自身が実践したノウハウや失敗談をもとにした記事が多く、実務での課題解決に直結する知識を得ることができるため定期的に見ています。
Medium
Mediumは英語圏を中心とした幅広いテーマの記事が投稿される電子出版のプラットフォームです。技術情報以外の記事も多数ありますがエンジニアリング分野では特に注目すべきリソースです。その規模の大きさから業界全体のトレンドや最新技術に関する考察、実務での取り組み事例が豊富に公開されています。検索性に若干の難がある気はしつつも、雑多な情報収集を目的にほぼ毎日みています。
Stack Overflow
Stack Overflowはプログラミングやソフトウェア開発に関する課題を解決するためのQ&A形式のプラットフォームです。膨大な数の質問と回答が蓄積されており具体的なエラーメッセージや実装の課題を検索することで、似た状況に対する解決策を簡単に見つけることができます。実装中、課題に直面したりやエラーが発生したりした際、最初に頼ります。
SNS
SNSは最新技術やトレンドを素早くキャッチアップできる便利なツールです。情報の流動性が高くリアルタイムで技術的な話題に触れられます。
X
著名なエンジニアや技術系アカウントをフォローすることで日々のタイムラインから最新情報を得ることができます。サービスの性質上、ノイズとなる情報が混在してしまうデメリットがある一方、短文で気軽にアウトプットができる場でもあります。試した技術や気づきをシェアすることで、フィードバックを得たり学びをさらに深めたりできます。必要以上に毎日見ています。
コミュニティ
エンジニアのコミュニティはリアルタイムで有益かつ最新の情報を得たり技術について議論したりする場として非常に有用であると感じます。技術記事と比べると双方向のやり取りをしやすいのも特徴的です。
Redditは米国の大手ソーシャルニュースサイト兼オンライン掲示板プラットフォームです。特定のトピックや分野に特化した「サブレディット」と呼ばれるスレッドが多数存在し専門的な情報を効率よく収集できる点が特徴です。
たとえば、r/androiddevではAndroid開発に関する最新情報やノウハウの共有、活発な議論が行われています。Xと比較すると、特定のサブレディットやカテゴリに絞ることで関連情報を効率的に収集できる点が魅力です。Xと同様に、ユーザーが気軽に情報を発信できるため最新の情報を得やすく業界全体のトレンドや関心事を把握するのにも向いていると感じます。
Slack
Slackは主にビジネスやチーム間でのコミュニケーションツールとして利用されていますが技術系コミュニティでも利用されています。RedditやXと比較するとSlackはクローズドな環境ではありますが、開発元が運営するワークスペースも多く、公式アナウンスを一括してキャッチアップしやすいという利点があるように思います。
たとえば、Android開発ではKotlin Slackが一例です。関心事によってチャンネルが分かれており、Kotlinに関する最新の議論や情報交換が活発に行われています。個人的にfeedチャンネルをよく見ています。
勉強会
勉強会は特定のテーマや技術に関心を持つエンジニアたちが集まり知識を共有し合う場です。オフラインで開催されることが多かった従来の形式に加え、最近ではオンラインプラットフォームを活用した勉強会も増加しており場所や時間にとらわれず参加しやすくなっています。
録画が公開される勉強会も増えており、当日に参加できない場合でも後から内容をキャッチアップできるのがありがたいです。
定期的にconnpassを眺めたり、Xでみた面白そうな勉強会に参加しています。
その他
GitHubや本など曖昧なものについて最後に簡単に紹介します。
GitHub
GitHubはソースコードをホスティングする開発プラットフォームです。エンジニアにとってはコードを管理するだけでなく、技術学習やオープンソースソフトウェア(OSS)活動の中心地としても重要な役割を果たしています。
特にモバイル開発の分野では、カンファレンスアプリがその年の技術トレンドや今後注目されそうな技術を取り入れてOSSとして公開・開発される文化があります。たとえば、Android開発においては、技術情報の共有とコミュニケーションを目的にしたDroidKaigiのカンファレンスアプリのリポジトリでOSS開発に参加できます。
さらに、GitHubではリポジトリのアクティビティを観察することで最新の技術や設計アプローチを学ぶこともできます。その一例として、Slackが開発しているアプリフレームワークであるCircuitやAndroidの設計と開発のベストプラクティスをモデル化して開発されているNow in Androidは定期的にウォッチしています。
本
技術書は体系的な学びや深い知識を得るための重要なリソースです。特定分野を体系的かつ集中的に学びたい場合は本に勝る情報源はないと思っています。ただし、読みたい本が増える一方で、時間やリソースを十分に割けず積読が増えてしまうのが悩みの種でもあります。
公式の学習リソースやドキュメント
Android開発といえば、GoogleやJetBrainsが提供する公式の学習リソースやドキュメントが非常に充実しています。中でもDeveloper guidesはアーキテクチャやプラクティスに関する推奨事項が詳しくまとめられており、チームでの開発を進める上で欠かせない情報源です。さらに、ドキュメントだけでなく、実践的な学びを得られるコードラボや解説動画が公開されておりさまざまな形式で技術をキャッチアップできるようになっています。
感想
今回ざっと挙げただけでも技術のキャッチアップの手段が多岐にわたることがわかります。技術の進化が速い現代では効率的な学習はもちろん、何よりも継続して取り組むことが大切だと感じています。これからも試行錯誤しながら自分なりのやり方で学び続けていきたいと思います。