2019/07/21
何かインプットする際に技術書を読んで体系的に学ぶ、ということが以前より増えてきたので、自分が欲しいと思うサービスを作りました。
正直「QiitaのAPIを使ってエンジニアに紹介される回数の多い技術書を探すことができるサービス」で言うと何番煎じだよという感じですが、個人的にこんな機能も欲しいというものがあったのでそれらを盛り込んでサービス化しました。
ちなみに既存の技術書ランキングサイトだと
技術書ランキング | テック・ブック・ランク
techbooks - 技術書籍のレビュー・ランキングサイト テックブックス
が有名です。QiitaAPIの使い方や見せ方はかなり参考にさせて頂きました。
読みたいと思った本を読みたいリストに追加したり、読んだ本を記録しておけるようにしました。
読んだ本は、気が向けば同時にレビューコメントを残すことができます。
最近本を読んだユーザーやよく本を読んでいるユーザーは、トップページで表示するようにしています。
「最近の読んだ」は一定数を超える文字数のレビュー付きで読んだ記録を付けた方が表示されます。
「ユーザーランキング」はスコアを元に変動する作りで、スコアは本を読んだ際にレビューを書くことと、レビューに対して「いいね」がつくことで加算されます。
Qiitaに加え、はてなブログでエンジニアに紹介されたかどうかも活用しています。具体的には、
というロジックになっています。
さらに、特にQiitaだと記事がバズっていいねがかなり多くつくということがあるので、対数計算とかをごにょごにょすることで、いいねが多すぎてもそこまでスコアに影響しないように調整しています。
検索は
の2つから検索できるようにしてあり、基本的にタグからの検索を想定しています。
そのため、検索キーワードからタグを見つけられなかった場合のみ本のタイトルでの検索されます。
タグはQiitaのタグを流用していて、10,000種類以上あるため、キーワード入力時にサジェストを表示するようにしました。
こんな感じで動きます↓
複数のタグで検索できるようにもしました。
例えば「画像認識」で検索したけど、Deeplearning全般に関してよく紹介されている本が上位に出てしまったので、「OpenCV」も検索対象のタグに追加することでより専門的な本を探す、みたいなことができるようにしてあります。
こんな感じです↓
真新しい技術は特につかっていません。
継続的に機能追加とかをしていきたいので、あまり新しい技術にトライしてしまうと少し経った後に触ろうとしても「あれ、これどうやって使うんだっけ?あかん」みたいなことになるのが怖いので、そこは保守的な進め方をしました。
なのでむしろ今後も運用しやすいように気をつけていて、例えばGithubにプッシュすると自動でデプロイする、みたいな部分は対応しています。
いろいろ見ていると
などなど、アウトプットがエンジニアの評価につながることが多いなーと感じますが、インプットも同じように評価されてもいいんじゃないかと思っています。
個人的にWebの断片的な情報をもとに知識を得ることに加え、書籍からインプットをすることが以前と比べて増えました。
書籍はしっかり体系立って網羅的に書かれているので、足りない知識を吸収するには最高なんですが、けっこう時間かかるし心折れそうになります。なので、もっと書籍でのインプットそのものが見える化できて評価されるようになったら素敵だなと思うわけです。
今回は一応読書の量によってスコアリングできるようにしましたが、まだまだ見える化とまでは言えません。
今後はタイムラインに合わせてスコアが上がっている様子をチャートにしたり、GitHubのように草が生える様にしたいと思っています。
それで面接の時とかに
「Book HackでXXスコア取ってます!」
「めっちゃいいですね!」
みたいな会話になったら最高だなと。
良かったら是非使ってみてください。
もし何かお気づきの点があれば、コメントいただけると嬉しいです。