プログラミング初心者が挑む初実装|家族の依頼でチケット通知システムを作ってみる

1. なぜ今、プログラミングなのか

正直に言うと、私はハンドルネームに「働きたくない」とつけるくらいの面倒くさがり屋だ。

データエンジニアという肩書きはあるが、経歴はインフラエンジニアからの転身で、プログラミングの実装経験はほぼゼロ。学生時代にC言語を触った程度で、それ以外は何も作ったことがない。

これまで何度もプログラミング学習に挑戦しては挫折してきた。理由は単純で、「プログラミングでしか解決できない問題」に困ったことがなかったからだ。教材を開いても「これ、何に使うんだ?」と思ってしまい、モチベーションが続かない。

しかし、ついに初めて「作りたいもの」ができた。

きっかけは家族からの依頼だった。

「ジャニーズのライブチケットのリセール情報を通知してほしい」

この記事でわかること:

  • プログラミング初心者が実案件に挑む理由
  • 何から始めるべきか(学習の流れ)
  • 実装経験ゼロから挑戦する価値
  • ジャニーズチケットリセールの仕組み
  • プロジェクト計画(今回実施)
  • 今後の連載予定

※この記事は連載企画の第1回です。今回は「プロジェクト計画」まで。実際の実装は次回以降で公開していきます。

結論:初めての「作りたいもの」が学習のスタート地点

プログラミング学習で最も重要なのは、「目的を明確にすること」だ。

多くの入門記事では「目標設定が大事」と書かれているが、私の経験から言えば、それは単なる「やりたいこと」では不十分だった。困っている問題があって、それをプログラミングで解決する必要性がある―これが揃って初めて、学習が続く。

今回の私の場合:

  • 問題: 家族がジャニーズチケットのリセール情報を手動で確認し続けるのが大変
  • 解決策: Pythonでスクレイピングして、リセール出品があったら通知
  • 必要性: 家族からの依頼=期限と責任がある

この「作りたいもの」が明確になったことで、ようやく学習のスタート地点に立てた。

2. なぜ今までプログラミング学習が続かなかったのか

「作りたいもの」がなかった

過去に何度もProgateやUdemyで学習を始めたが、すべて挫折した。

理由は明確で、何を作れば良いのか分からなかったからだ。

教材では「ToDoアプリを作ろう」「天気予報アプリを作ろう」と提案されるが、正直なところ、既存のアプリで十分だった。わざわざ自分で作る理由が見つからない。

プログラミング学習の最大の壁は、「学んだことを使う場がない」ことだと痛感している。

データエンジニアでもプログラミング未経験だった

私の経歴は少し特殊だ:

  • 高専卒業後、フィールドエンジニアとして5年勤務
  • 2023年にデータエンジニアへ転職
  • 主な業務: SQL、BIツール、データ分析基盤の構築

「データエンジニアならプログラミングできるでしょ?」と思われるかもしれないが、実際にはSQLがメインで、PythonやJavaScriptでアプリケーションを作った経験はゼロだった。

これが、今回の挑戦の大きなポイントだ。実装経験がない状態で、どこまで実装できるのか。

3. 家族からの依頼:ジャニーズチケットリセール通知システム

依頼内容

家族から来た依頼はこうだった:

「ジャニーズのライブチケットのリセール情報を通知されるようにしたい」

ジャニーズ(現:STARTO ENTERTAINMENT)は、2025年6月から公式リセール制度「RELIEF Ticket」を導入した。ファンクラブで当選したチケットを、行けなくなった人が定価で再販できる仕組みだ。

RELIEF Ticketの仕組み

  • 出品タイミング: 期間中いつでも出品される可能性がある
  • 購入方法: 出品されたらすぐに購入手続きが必要(争奪戦)

問題は、いつリセールが出品されるか分からないことだ。

期間中ずっとRELIEF Ticketのサイトをリロードし続けるわけにはいかない。だからこそ、自動で監視して通知してくれるシステムが必要になる。

私の初期知識レベル

依頼を受けた時点での私の知識:

  • 「Pythonでスクレイピングすればできるのでは?」
  • スクレイピングという単語は知っている
  • BeautifulSoupやSeleniumという名前を聞いたことがある
  • 実際に書いたことは一度もない

これくらいのレベルだ。

家族に「できるかもしれない」と伝えたところ、「問題ないならやってみてほしい」と言われた。

4. なぜ今回は挫折しないと思うのか

理由1:「直したいもの」が初めてできた

過去の挫折と今回の違いは、問題が明確で、解決する意味があることだ。

これまでは「勉強のために何か作ろう」という発想だったが、今回は「家族の困りごとを解決したい」という動機がある。この違いは大きい。

理由2:技術に興味はある

面倒くさがり屋ではあるが、技術には興味がある。

自作キーボード沼に足を踏み入れ、VivaldiやBraveといったマイナーブラウザを使い、VSCodeの設定を延々とカスタマイズする―こういう「効率化」「カスタマイズ」が好きなタイプだ。

プログラミングも、その延長線上にある。

理由3:期限と責任がある

「いつか作ろう」ではなく、「家族から依頼された」という事実が大きい。

期限はないが、放置すれば家族に迷惑がかかる。この「誰かのため」というプレッシャーが、モチベーションを維持してくれる。

5. 今日やったこと:実装までのプロジェクト計画

今回の記事では、実装までのプロジェクト計画を立てた。

実際のコーディングや環境構築は、次回以降の記事で公開していく。まずは「何をどの順番でやるべきか」を整理することから始める。

ステップ1:スクレイピングの基礎を学ぶ

まず、Pythonでスクレイピングをする方法を学ぶ必要がある。

調べたところ、以下のライブラリが必要そうだ:

  • Requests: WebページのHTMLを取得するライブラリ
  • BeautifulSoup: HTMLを解析して必要な部分だけを取り出すライブラリ。例えば「このページのタイトルだけ取得したい」といった場合に使う
  • Selenium: JavaScriptで動的に生成されるページに対応するためのライブラリ。ブラウザを自動操作できる

RELIEF TicketのサイトがJavaScriptで動いているかは不明だが、まずはRequestsとBeautifulSoupから試してみる。

ステップ2:RELIEF Ticketのページ構造を調べる

次に、RELIEF Ticketのサイトがどういう構造になっているかを確認する。

  • どの部分にリセール情報が表示されるのか
  • どのHTMLタグ・クラス名を取得すれば良いのか
  • ログインが必要か

Google Chromeのデベロッパーツールを使って、HTML構造を確認する必要がある。これは次回の記事で実際に調査する。

ステップ3:通知方法を決める

スクレイピングでリセール情報を取得できたとして、次は「どう通知するか」だ。

候補:

  • LINE Notify: LINEに通知を送る(最有力)
  • Slack: Slackに通知を送る
  • メール: Gmailで通知

家族が一番使いやすいのはLINEなので、LINE Notifyを使う方向で進める。

ステップ4:定期実行の仕組みを作る

スクレイピングと通知ができたら、最後に「定期実行」の仕組みが必要だ。

  • cron(Mac/Linux): 一定間隔でPythonスクリプトを実行
  • Windows タスクスケジューラ: Windows環境で定期実行
  • クラウドサービス(AWS Lambda、Google Cloud Functions): サーバーレスで定期実行

私のPC環境はWindowsかLinux。今の所windowsのタスクスケジューラを使う予定だ。

6. どれくらいで実装できるか

正直、分からない。

スクレイピング経験ゼロの状態から、以下のステップを踏む必要がある:

  1. Python環境構築
  2. スクレイピング基礎学習
  3. RELIEF Ticketのページ解析
  4. 通知システムの実装
  5. 定期実行の設定
  6. テスト・デバッグ

目標は2週間以内に動くものを作ることだ。

完璧を目指さず、まずは「動く」ことを最優先する。これが、面倒くさがり屋の私が挫折しないための戦略だ。

7. 今後の連載予定

このプロジェクトは、連載企画として進めていく。

実装の過程をすべて記事にし、初心者がどこでつまずき、どう解決したのかを正直に記録する。

連載スケジュール(予定):

第1回(今回): プロジェクト始動・計画立案
第2回: Python環境構築とスクレイピング基礎学習
第3回: RELIEF Ticketのページ解析と実装
第4回: LINE通知の実装と定期実行設定
最終回: 結果報告・実装にかかった時間・学び

「プログラミング初心者が実際にどう進めたのか」をリアルタイムで追える連載にする予定だ。

次回は、実際にPython環境を構築してスクレイピングの基礎を学んでいく。

まとめ

プログラミング初心者が学習を続けるために最も重要なのは、「作りたいもの」が明確であることだ。

私の場合、それは家族からの依頼だった。

これまで何度も挫折してきたプログラミング学習だが、今回は違う。初めて「直したいもの」ができたからだ。

今回の記事では、実装までのプロジェクト計画を立てた。実際のコーディングは次回以降で公開していく。

もし同じように「プログラミング学習が続かない」と悩んでいる人がいれば、まずは自分が本当に困っている問題を探すことから始めてみてほしい。

次回は、Python環境構築とスクレイピングの基礎学習に挑戦する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です