結論:ゴリゴリ文系でもなんとかなる
文系でも、よく分からない状態だとしても、地道に勉強していれば何とかなります。
では本題です。
はじめに — 私が “Neo4j” と出会うまで
SE になったとき、まさか Neo4j という聞いたこともないグラフデータベースと毎日のように向き合うことになるなんて、本当に想像していませんでした。(Ne4jに失礼です。)
私は歴史専攻の文系で、データベース、プログラミングも完全に未経験。
入社後に Java や SQL、サーブレットを一通り教わったものの、「とりあえず覚える」で毎日が精一杯でした。
そもそも、第一志望の会社(非IT企業)に落ちて気持ちが沈んでいた私を支えてくれたのは、当時の彼氏のひと言でした。
「ここ受けてみたら?」
その言葉をきっかけに、今の会社へ。
最初は どこでもいいや… という正直な気持ちもありましたが、
いま振り返ると Neo4j と格闘した日々が、少しずつ自分の物語になっている気がします。
(ちょっと大げさかもしれませんが…)
1. 新人 SE、いきなり Neo4j プロジェクトに放り込まれる
配属されたのは、地図上にデータを可視化するデータ分析プロジェクト。
しかも、私がジョインしたタイミングで、ちょうど Neo4j を使った実装が本格的に動き始めていました。
ただ――ここで大きな壁が。
私が使える Neo4j の環境は ブラウザ版の Neo4j Browser のみ。
Neo4j Desktop は使えないし、Docker や VSCode などのツールもセキュリティ上 NG。
CSV のインポートだけは許可されていましたが、自動化やスクリプト化は技術的に無理でした。
(正直「詰んだ」と思いました)
勉強できるのは退社後のみ。
業務時間中はひたすら “困惑するだけ” の日々。
「Neo4j……?それってデータベースなの……?」
そんな状態でプロジェクトに入ってしまったのです。
2. 最初に直面した絶望 — 本当に何もわからない
最初にぶつかったのは、完全に“言葉の壁”でした。
- 「クエリって何?」
- 「MATCH と SELECT の違いって何?」
- そもそも文法が呪文みたい
- 公式ドキュメントは英語で、翻訳してもよくわからない
- 社内に Neo4j をちゃんとわかってる人がいない
- PC の基本操作も怪しいのにセットアップを任される
初日は Neo4j Desktop の起動方法すらわからず、ChatGPT に聞いて .bat ファイルを作って起動していました。
便利な時代に生まれてよかった…と本気で思いました。
毎日コピペして起動しているだけで、何が起こっているのかは全然わからない。
「これ、本当に仕事になるのかな…?」と不安だらけでした。
3. 技術的なつまずきポイント
Neo4j の概念そのものが、文系の私には未知の言語でした。
-
ノード / リレーション / プロパティ
→ テーブルの世界しか知らないと、まったくイメージできない -
JOIN と MATCH の違い
→ “結合”ではなく“関係パターンをたどる”思想に戸惑う - 矢印の向きに毎回迷う
- データの絞り込みが難しい
-
WITH や 可変長パス (
*1..3) が理解できない - 実務データを見ても、ノードやリレーションの切り分けがまったくイメージできない
- モデリングの全体像が見えず、手が止まる
質問できる人もいない中で、毎日が“手探り”でした。
4. 私を救ったのは ChatGPT と “毎日同じクエリをコピペする生活”
そんな生活の中でも、少しずつ理解を深めたきっかけがありました。
毎晩 ChatGPT に「これをやりたいんですけど…」と聞いて、返ってきたクエリをコピペ。
次の日も、その次の日も同じことの繰り返し。
でも、不思議なことに何度も同じクエリを見るうちに、
「この MATCH はこういう関係を取ってきてるんだ」
「MERGE は重複を防いでるんだ」
と、少しずつ“読める”ようになってきました。
そしてある日ふと、
「これ、歴史でやってた系譜図と同じじゃない?」
と気づいたんです。
人と人、場所と出来事、関係と関係。
そんな繋がりを図にして眺める感覚が、Neo4j のグラフと重なりました。
そこから、グラフの世界が一気に理解しやすくなりました。
5. 最初にできるようになったこと
- ノード作成
- 関係(リレーション)の作成
-
MERGEで重複を防ぐ -
MATCHでデータ探索 - 特定エリアのノード抽出と、可視化画面での表示/非表示の設定
- “切断ノード” の抽出と接続
- 単独ノードの抽出
- グラフ構造の確認
- モデリングの相談(少しずつ意見が言えるように)
手を動かす → 読める → 理解できる → 少し提案できる
そんな小さな成長が積み重なりました。
6. それでも今でもできないこと、悔しさ
とはいえ、まだまだ課題はたくさんあります。
- 自力で応用クエリを書くのは難しい
- 英語の資料を読むと理解に時間がかかる
- JavaScript と Python を並行して扱うのが大変
- ChatGPT がいないと進まない場面が多い
できることが増えた分、できない部分も見えてきて、焦ることもあります。
7. それでも Neo4j を少し好きになれた理由
- 気づいたら、頭の中が ノードとリレーション の構造で整理されていた
→ 同期に軽く驚かれました(笑) - 歴史専攻の私には、“人の関係性を図にする”感覚がグラフとよく似ていた
- 文系でも、「関係性をどう見るか」という考え方が得意なら入りやすい
まだまだ未熟ですが、少しずつ Neo4j の面白さにも気づけるようになりました。
8. まとめ — 文系でも Neo4j はできる。むしろ相性がいいかも!?
もしこの記事を読んでいるあなたが、
- 文系
- プログラミング初心者
- コードが苦手
でも大丈夫です。
「グラフ = 人間関係や歴史の流れ」と感じられる人なら、Neo4j はきっと面白いデータベースだと思います。
最初はコピペで十分。
同じクエリを繰り返し眺めているうちに、必ず読めるようになります。
そしていつか、自分の手で“関係”をつくり変えられる瞬間が来ます。
文系、新人、未経験。
そんな自分でも Neo4j は触れるし、ちょっとは楽しめるようになる。
少し大げさに聞こえるかもしれませんが、
ゴリゴリ文系でもなんとかなるを伝えたくて書きました。
これから Neo4j を触る誰かの背中を、そっと押せたら嬉しいです。
おすすめ勉強サイト
公式が一番最強!