メインコンテンツへスキップ
見出し画像

2024年度の振り返りと2025年の抱負

    1.概要

     「2024年度の振り返り」と「2025年の抱負」を記載しました。

    2.2024年度の振り返り-note

    2-1.創作記録/前年との比較

     今年の結果は下図の通りです。

    画像
    画像

     まとめ結果を手動で抽出して結果を可視化しました。発行記事数が増えた分だけ閲覧数は増えてますが、記事の作成数が減っています。
     原因はシンプルに仕事で時間が取れないのと、いろいろとモチベーションが下がっているためと思います。

    [IN]
    #note記事まとめの結果:1. 作成記事数, 2. Like数, 3. 閲覧数, 4. 増えたフォロワー
    datas_note = {2021: [54, 145, 4462, 22],
                  2022: [107, 282, 72000, 61],
                  2023: [82, 445, 224000, 126],
                  2024: [34, 357, 261000, 113]}
    
    columns = ['作成記事数', 'Like数', '閲覧数', '増えたフォロワー']
    _df_note = pd.DataFrame(datas_note, index=columns)
    df_note = _df_note.T
    
    #可視化
    fig, axs = plt.subplots(2,2,figsize=(10, 10))
    ax1, ax2, ax3, ax4 = axs.flatten()
    colors = ['blue', 'red', 'green', 'orange']
    
    for ax, column, color in zip(axs.flatten(), columns, colors):
        df_note[column].plot(kind='bar', ax=ax, color=color, alpha=0.5)
        ax.set(title=column, ylabel=column)
    
    plt.suptitle('図 note創作の記録', fontsize=20, y=-0.01)
    plt.tight_layout()
    plt.show()
    
    [OUT]
    画像

    2-2.結果分析(閲覧数vsいいね数)

     せっかくなので、下記手順で閲覧数といいね数の関係を可視化しました。

    1. noteの「マイページ/ダッシュボード/アクセス状況」から記事情報(記事、ビュー、コメント、スキ)を取得し、Excelに貼り付け

    2. Excelのカラム名を変更(Item, View, Comment, Like)

    3. Pythonスクリプトで可視化

      • 閲覧数といいね数

      • 閲覧数といいね率

     Pythonスクリプトおよび結果は下記の通りです。

    1. 閲覧数がとびぬけているのは多分他の方がX(Twitter)で紹介していただいたためと想定

      • 2023年も一番人気->最新情報より、使えそうな情報がよさそう

    2. いいね率は基本的にどの記事でもほとんど変化なし(0.05~0.3%)

    VBAをVSCodeで書くための方法をとてつもなく丁寧に解説してくれている記事。GitHub Copilotもちゃんと効いて震えた…😱

    VBA基礎5:VS CODEでVBAを編集(ariawase)|KIYO https://t.co/XUqEkcM6ls pic.twitter.com/G8rj4dnuv6

    — たわら ¦¦ HackGenのひと (@tawara_san) June 17, 2023
    [IN]
    import time
    import requests
    import json
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.ticker as ticker
    import japanize_matplotlib
    import datetime
    
    path_excel = 'note2024.xlsx' #MyPageから手動で作成
    df = pd.read_excel(path_excel)
    
    #データの抽出
    def roundup_tick(x, num_tick:int):
        output = (x//num_tick + 1) * num_tick
        return output
    
    views = df['View'].values
    likes = df['Like'].values
    df['LikeRate'] = df['Like'] / df['View'] * 100 #いいね率[%]
    rate_like = df['LikeRate'].values
    
    max_view = roundup_tick(max(views), 5000)
    max_like = roundup_tick(max(likes), 5)
    print(f'Max View:{max(views)}, xtick:{max_view}, Max Like:{max(likes)}, ytick:{max_like}')
    
    #可視化
    fig, axs = plt.subplots(2,1,figsize=(10, 14))
    ax1, ax2 = axs
    
    #閲覧数vsいいね数
    ax1.scatter(views, likes, color='blue', alpha=0.5)
    ax1.set(xlabel='閲覧数', ylabel='いいね数', xticks=np.arange(0, max_view, 2000), yticks=np.arange(0, max_like, 2))
    ax1.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))
    ax1.yaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))
    ax1.grid()
    #ラベルを付与
    for idx in range(5):
        ax1.text(views[idx], likes[idx], df['Item'][idx], fontsize=8)
    
    #閲覧数vsいいね率
    ax2.scatter(views, rate_like, color='red', alpha=0.5)
    ax2.set(xlabel='閲覧数', ylabel='いいね率[%]', xticks=np.arange(0, max_view, 2000), yticks=np.arange(0, 1, 0.05))
    ax2.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))
    ax2.yaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.2f}'))
    ax2.grid()
    #ラベルを付与
    for idx in range(5):
        ax2.text(views[idx], rate_like[idx], df['Item'][idx], fontsize=8)
    
    plt.suptitle('図 2024年度-note記事のデータ解析', fontsize=20, y=-0.01)
    plt.tight_layout()
    plt.show()
    [OUT]
    Max View:23637, xtick:25000, Max Like:15, ytick:20
    画像

    【参考:記事全体のLike数確認】
     全期間における記事のLike数も簡単に振り返りました。コードは下記記事をベースに作成しました。
     定性的に、VBAの記事以外はいいねと閲覧数に相関はなさそうでした。

    [IN]
    import time
    import requests
    import json
    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib.ticker as ticker
    import japanize_matplotlib
    import datetime
    
    def getAllnotes(username:str, maxpage:int, waittime:float=1.0):
        output = None
        
        for numpage in range(1, maxpage+1):
            time.sleep(waittime) #サーバー負荷軽減のため
            res = requests.get(f'https://note.com/api/v2/creators/{username}/contents?kind=note&page={numpage}')
            data_json = json.loads(res.text) #JSON->Dict
            content = data_json['data']['contents'] #データ抽出
            
            if content: #データが空でない場合
                df = pd.DataFrame(content) #Dict->DataFrame
                if numpage == 1:
                    output = df
                else:
                    output = pd.concat([output, df], axis=0) #axis=0:行方向に結合
            else:
                print(f'page {numpage} は空のため処理完了!')
                output = output.reset_index(drop=True, inplace=False) #indexを振り直す
                return output
            
        output = output.reset_index(drop=True, inplace=False) #indexを振り直す
        return output
    
    #データ抽出
    df = getAllnotes(username='kiyo_ai_note',
                     maxpage=100,
                     waittime=1.0)
    
    columns = ['id', 'name', 'likeCount', 'commentCount', 'publishAt']
    df_extract = df[columns]
    df_extract.set_index('id', inplace=True)
    
    #PublishAtを年月日に変換
    df_extract['publishAt'] = pd.to_datetime(df_extract['publishAt']).dt.date
    df_extract.sort_values('likeCount', ascending=False, inplace=True)
    df_extract.head(15)
    
    #Like数の多い記事を抽出
    def plot_barh_likes(df: pd.DataFrame, num_xticks: int = 5):
        fig, ax = plt.subplots(figsize=(14, 7), facecolor="white")
    
        ax.barh(df["name"], df["likeCount"], color='blue')
    
        ax.set(xlabel="likeCount", ylabel="記事名")
        ax.xaxis.set_major_locator(ticker.MultipleLocator(num_xticks))  # 目盛りを設定
        ax.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, pos: f'{int(x):,}'))
        ax.grid(axis='x', linestyle='--', alpha=0.7)  # 縦軸に補助線を追加
        plt.tight_layout()
        plt.show()
    
    # 関数を実行してグラフを表示
    df_sorted = df.sort_values('likeCount', ascending=False) # 降順にソート
    df_sorted = df_sorted.iloc[:12, :]
    df_sorted.sort_values('likeCount', ascending=True, inplace=True) # 昇順にソート
    plot_barh_likes(df_sorted, num_xticks=5)
    
    
    [OUT]
    画像
    画像

    3.2024年度の振り返り-仕事

     2023年に転職(私の退職エントリ、転職半年後の振り返り)した後、2024年は何とか頑張って過ごしました。

     2024年の仕事において、技術面で大きな変化はありませんが社内のドタバタ(チーム内編成が崩れる)によりプロジェクトを一人でまわし、グループ内雑務も全部ひとりでする状態になりました。頑張ってアウトプット出したため高い評価はもらえ、年収は元より上がりました。

     今まで知らなかった技術の方向性(PLCやSCADA)は得られましたが、グループ内に専門家がいないため完全に独学の状態です。技術も重要ですが、年収も重要なので自分の将来をどうしたいかは常に考えていきたいと思います。

    • 将来の目標は(目的は人生を楽しむ)?

    • 人生を楽しむためには何が必要か/何がしたいか?

    • どのくらいお金・時間が必要か/そのための手段は?

    4.2025年の抱負

    4-1.note記事/学習

     記事化・学習は将来につながる(仕事に使える->年収UP狙える)ものがよいです。基本的にモノづくりが好きなので、メーカーに勤める/関わること前提で最近は下記のような求人に興味があります。

    1. 製造業系のコンサル

      • モノづくりではないため注意

      • ITコンサルとかの方が年収は高い(ような気がする)->SAPとか

    2. 量子化学計算/機械学習/マテリアルインフォマティクス(MI)

      • 大体プログラミング+機械学習+評価分析技術(NMR, IR, XRD, XRFなど)の知識・実務経験も求められる。(+組織マネジメント)

      • 純粋なITエンジニアなら高級(1,500~2,000万円以上)だが、メーカー系は国内だと(学ぶこと多いわりに)年収上限あり

      • データサイエンティストもあるが、モノを触る機会が減る

    3. DXの推進

    4. 新規事業/事業企画

      • 企画創出(0->1)

      • 事業化・事業拡大(1->10)

     上記を考えながらも「やりたいこととすべきことが重なる」部分をを選んで記事作っていきたいです。直近では「PLC、SCADA、通信、計器」関係を学習予定です。

    4-2.仕事編

     2024年の抱負は「やりきること」であり、これは達成できました。ただ自分を削った年(特に2024年6月以降)※^{※}と感じ、「自分の幸せとは何か」を考える年でもありました。
    ※一番しんどい時期は前の会社でしたが若かった/社畜だったため、乗り越えることができました。

     今年色々経験した中で、おそらく今後もDXやエネルギー(カーボンニュートラル)関係のプロジェクト携わることになると思っています。2025年の抱負は、やりきることは当たり前として下記を実行していきます。

    【2025年の抱負】

    1. 技術だけでなくプロジェクトマネジメント、英語、契約関係などを高いレベル(ちゃんと本・論文などで知識も入れつつ実践)で経験を積む

    2. 「仕事=価値づくり」を認識しながら働く

      • 企業文化として大量の説明資料/申請書は必須のため、あくまで頭の中で分類すること

      • 7つの習慣でいう第2領域/エッセンシャル思考も大事

    5.参考

    5-1.note記事記録

    5-2.振り返り/抱負記事

    6.あとがき

     一応恋愛も頑張らないと・・・・・

     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ