トップ画像イメージ

エンジニアが習得すべき技術をQiitaAPIで調べてみた

タイトルから「は?」感が物凄いですね。

筆者もエンジニア(気持ち的にはPG)の端くれとして、常に学習意欲が物凄いのですが⭐️、何を勉強すれば良いのかよくわからないということがあります。

というのも、やれ「初心者こそJavaから始めるべき」とか、「Rubyこそ至高」、とか、「Pythonが出来ないなんて生き残れない」とか、色んな意見があります。

ということで、 QiitaのAPIを使って、エンジニアが習得すべき技術とは何なのか、ちょっと調べてみました

調べ方

※今回の調査は統計学などの考え方は一切使っていません。あくまで、遊びとしてとらえていただけると幸いです

QiitaのAPIを使えば、特定のキーワードをタイトルや、記事本文に含む記事を簡単に調べることができます。

今回は、本文に「習得すべき」とか書いてある記事で、「いいね」がある程度もらえている記事であれば、良いことが書いてあるだろ!それらの記事のタグを調べれば、エンジニアが習得すべき技術が分かるはず!(適当)⭐️

という単純な思考で調査を行ってみました。

コード的には↓のように非常に簡単なもので、本文に「習得すべき」という文言が含まれている記事を検索しています。

# coding: utf-8
require 'net/http'
require 'json'
require 'pry'
#投稿一覧を取得するための変数宣言
page = 1
PER_PAGE = 100
ACCESS_TOKEN = ENV["QLITA_API"]#セキュリティ的に危ないから環境変数を使っています
GET_ITEMS_URI = 'https://qiita.com/api/v2/items'
#検索用クエリー
query = "body:習得すべき"
#検索のトータル記事数を格納
total_pages_num = 0

# リクエスト情報を作成
uri = URI.parse (GET_ITEMS_URI)
begin
    uri.query = URI.encode_www_form({ query: query, per_page: PER_PAGE, page: page })
    req = Net::HTTP::Get.new(uri.request_uri)
    req['Authorization'] = "Bearer #{ACCESS_TOKEN}"

    # リクエスト送信
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    res = http.request(req)
    json = JSON.parse(res.body)

    #タグの中で最も使われているものトップ10を表示
    tags = {}
    
    json.each do |record|
        if record["likes_count"] > 5
            record["tags"].each do |tag|
                if tags["#{tag["name"]}"]
                    tags["#{tag["name"]}"] += 1
                else
                    tags["#{tag["name"]}"]  = 1
                end
            end
        end
    end
    page += 1
    total_pages_num += json.size
end while json.size >= 100#文言を含む全記事を取得するまで続ける
#取れてきたタグと、カウント数を修正して表示
result = tags.to_a.sort {|a,b| b[1] <=> a[1] }
puts "トータル記事数:#{total_pages_num}"
n = 1
result.first(10).each do |record|
    puts "第#{n}位:#{record[0]}(タグ数#{record[1]})"
    n += 1
end

調査結果

本文に「習得すべき」が含まれていた記事についているタグの数ベスト10

トータル記事数:299
第1位:ポエム(タグ数10)
第2位:Python(タグ数9)
第3位:JavaScript(タグ数8)
第4位:新人プログラマ応援(タグ数7)
第5位:Java(タグ数6)
第6位:機械学習(タグ数5)
第7位:Ruby(タグ数4)
第8位:データ分析(タグ数4)
第9位:DeepLearning(タグ数4)
第10位:DDD(タグ数3)

😢

はい! みなさん、エンジニア見習いの人たちは、PythonやJavascriptの勉強をする前にポエムを習いましょう!

・・・タグって何も必ずしも技術名ではないから、こういうことになりますよね・・・

習得すべき技術を書いている、(筆者的には)ポエムのようなもの・・・ってことですもんね・・・

クソワロタww

その他の文言での調査結果

まぁ、ポエムで終わらせるのもあれなんで、他の言葉でも調べてみました

本文に「学ぶべき」が含まれていた記事についていてるタグの数ベスト10

トータル記事数:4355
第1位:JavaScript(タグ数9)
第2位:PHP(タグ数6)
第3位:Go(タグ数4)
第4位:Java(タグ数4)
第5位:Ruby(タグ数3)
第6位:TDD(タグ数3)
第7位:Rails(タグ数3)
第8位:iOS(タグ数3)
第9位:TypeScript(タグ数2)
第10位:PHP入門講座(タグ数2)

本文に「学習すべき」が含まれていた気にについているタグの数ベスト10

トータル記事数:5275
第1位:JavaScript(タグ数11)
第2位:Python(タグ数9)
第3位:機械学習(タグ数8)
第4位:Ruby(タグ数6)
第5位:Java(タグ数5)
第6位:iOS(タグ数4)
第7位:Git(タグ数3)
第8位:NaiveBayes(タグ数3)
第9位:Angular(タグ数3)
第10位:Rails(タグ数3)

この辺で調べてみると、割と技術のようなタグが取れてきましたね。

Javascriptが言語的には、上位に上がってきていますね。

まとめ

  • ちゃんと統計学を学んでみたら、世界がすごく面白くなりそう
    • DBとかの勉強をしながら、統計学も学んでみようかな
  • QiitaAPIも簡単にデータ取得できて、面白かった
  • エンジニアにとって一番大事なのは、「ポエム」