0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

文系・歴史専攻のド素人が、業務で突然 Neo4j を触ることになって毎日泣きそうだったけど、気づいたら少し好きになった話(新人 SE の導入苦労記)

Last updated at Posted at 2025-12-08

結論:ゴリゴリ文系でもなんとかなる:laughing:

文系でも、よく分からない状態だとしても、地道に勉強していれば何とかなります。
では本題です。

はじめに — 私が “Neo4j” と出会うまで:computer:

SE になったとき、まさか Neo4j という聞いたこともないグラフデータベースと毎日のように向き合うことになるなんて、本当に想像していませんでした。(Ne4jに失礼です。)

私は歴史専攻の文系で、データベース、プログラミングも完全に未経験。
入社後に Java や SQL、サーブレットを一通り教わったものの、「とりあえず覚える」で毎日が精一杯でした。

そもそも、第一志望の会社(非IT企業)に落ちて気持ちが沈んでいた私を支えてくれたのは、当時の彼氏のひと言でした。
「ここ受けてみたら?」
その言葉をきっかけに、今の会社へ。
最初は どこでもいいや… という正直な気持ちもありましたが、
いま振り返ると Neo4j と格闘した日々が、少しずつ自分の物語になっている気がします。
(ちょっと大げさかもしれませんが…)


1. 新人 SE、いきなり Neo4j プロジェクトに放り込まれる:runner_tone1:

配属されたのは、地図上にデータを可視化するデータ分析プロジェクト。
しかも、私がジョインしたタイミングで、ちょうど Neo4j を使った実装が本格的に動き始めていました。

ただ――ここで大きな壁が。

私が使える Neo4j の環境は ブラウザ版の Neo4j Browser のみ
Neo4j Desktop は使えないし、Docker や VSCode などのツールもセキュリティ上 NG。
CSV のインポートだけは許可されていましたが、自動化やスクリプト化は技術的に無理でした。
(正直「詰んだ」と思いました)

勉強できるのは退社後のみ。
業務時間中はひたすら “困惑するだけ” の日々。

「Neo4j……?それってデータベースなの……?」
そんな状態でプロジェクトに入ってしまったのです。


2. 最初に直面した絶望 — 本当に何もわからない:angel:

最初にぶつかったのは、完全に“言葉の壁”でした。

  • 「クエリって何?」
  • 「MATCH と SELECT の違いって何?」
  • そもそも文法が呪文みたい
  • 公式ドキュメントは英語で、翻訳してもよくわからない
  • 社内に Neo4j をちゃんとわかってる人がいない
  • PC の基本操作も怪しいのにセットアップを任される

初日は Neo4j Desktop の起動方法すらわからず、ChatGPT に聞いて .bat ファイルを作って起動していました。
便利な時代に生まれてよかった…と本気で思いました。

毎日コピペして起動しているだけで、何が起こっているのかは全然わからない。
「これ、本当に仕事になるのかな…?」と不安だらけでした。


3. 技術的なつまずきポイント:pencil2:

Neo4j の概念そのものが、文系の私には未知の言語でした。

  • ノード / リレーション / プロパティ
    → テーブルの世界しか知らないと、まったくイメージできない
  • JOIN と MATCH の違い
    → “結合”ではなく“関係パターンをたどる”思想に戸惑う
  • 矢印の向きに毎回迷う
  • データの絞り込みが難しい
  • WITH可変長パス (*1..3) が理解できない
  • 実務データを見ても、ノードやリレーションの切り分けがまったくイメージできない
  • モデリングの全体像が見えず、手が止まる

質問できる人もいない中で、毎日が“手探り”でした。


4. 私を救ったのは ChatGPT と “毎日同じクエリをコピペする生活”:robot:

そんな生活の中でも、少しずつ理解を深めたきっかけがありました。

毎晩 ChatGPT に「これをやりたいんですけど…」と聞いて、返ってきたクエリをコピペ。
次の日も、その次の日も同じことの繰り返し。

でも、不思議なことに何度も同じクエリを見るうちに、

「この MATCH はこういう関係を取ってきてるんだ」
「MERGE は重複を防いでるんだ」

と、少しずつ“読める”ようになってきました。

そしてある日ふと、

「これ、歴史でやってた系譜図と同じじゃない?」

と気づいたんです。
人と人、場所と出来事、関係と関係。
そんな繋がりを図にして眺める感覚が、Neo4j のグラフと重なりました。

そこから、グラフの世界が一気に理解しやすくなりました。


5. 最初にできるようになったこと:clap:

  • ノード作成
  • 関係(リレーション)の作成
  • MERGE で重複を防ぐ
  • MATCH でデータ探索
  • 特定エリアのノード抽出と、可視化画面での表示/非表示の設定
  • “切断ノード” の抽出と接続
  • 単独ノードの抽出
  • グラフ構造の確認
  • モデリングの相談(少しずつ意見が言えるように)

手を動かす → 読める → 理解できる → 少し提案できる
そんな小さな成長が積み重なりました。


6. それでも今でもできないこと、悔しさ:crying_cat_face:

とはいえ、まだまだ課題はたくさんあります。

  • 自力で応用クエリを書くのは難しい
  • 英語の資料を読むと理解に時間がかかる
  • JavaScript と Python を並行して扱うのが大変
  • ChatGPT がいないと進まない場面が多い

できることが増えた分、できない部分も見えてきて、焦ることもあります。


7. それでも Neo4j を少し好きになれた理由:heart_eyes:

  • 気づいたら、頭の中が ノードとリレーション の構造で整理されていた
    → 同期に軽く驚かれました(笑)
  • 歴史専攻の私には、“人の関係性を図にする”感覚がグラフとよく似ていた
  • 文系でも、「関係性をどう見るか」という考え方が得意なら入りやすい

まだまだ未熟ですが、少しずつ Neo4j の面白さにも気づけるようになりました。


8. まとめ — 文系でも Neo4j はできる。むしろ相性がいいかも!?

もしこの記事を読んでいるあなたが、

  • 文系
  • プログラミング初心者
  • コードが苦手

でも大丈夫です。

「グラフ = 人間関係や歴史の流れ」と感じられる人なら、Neo4j はきっと面白いデータベースだと思います。

最初はコピペで十分。
同じクエリを繰り返し眺めているうちに、必ず読めるようになります。
そしていつか、自分の手で“関係”をつくり変えられる瞬間が来ます。

文系、新人、未経験。
そんな自分でも Neo4j は触れるし、ちょっとは楽しめるようになる。


少し大げさに聞こえるかもしれませんが、
ゴリゴリ文系でもなんとかなるを伝えたくて書きました。
これから Neo4j を触る誰かの背中を、そっと押せたら嬉しいです。


おすすめ勉強サイト

公式が一番最強!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?