プログラミング初心者 マジでズブのド素人が始めたときの憎しみと苦しみ

※ちなみにいつものゲーム感想ではない。

はじめに

悩み苦しみたどり着いた地(獄)で、自ら毒杯をあおる人々よ。
めっちゃわかる。
文系でもできるつった馬鹿コンサル野郎を●して●●してギャーーーーーーッしてやりたいよな。わかるぜ。

この文章は数年前プログラミング始めたてのヒヨヒヨだった自分が書き残した
プログラミング初学者の怨嗟である。
メモをひっくり返していたら存在を思い出したため、供養のため記す。
今もなお兆しが見え始めてきただけで自由にコードを作ることもままならない。
つらい。死にたい。 まあでも以下の時分よりはマシになっただけ成長していると信じる。
この感情分かる人がいたら(いるはずだ)一緒にギャーーーーーーッってなってくれ。
勉強する予定のあるひとは、こうならないように全力で参考にしてくれ。ならないことを祈る。

自分の開始時の状態

  • やり始めて:数年
  • 出身:ド文系 ド素人
  • 頼りになる先輩・上司・友人:0
  • 頭:よくない
  • 数学:クソ苦手
  • 選択した言語:Java

およびなひと

  • ブログを読んでは「結局こいつも頭いいだけじゃねえか」と激憤しているひと
  • サルでもネコでもわかる!みたいなタイトルに自尊心をバキバキにされてる系のひと

立ちはだかる壁ども

  • 初心者向けに説明するという言葉は大体U・S・O
    ぶつかる壁①「そもそも分からない人の気持ちが分からない人種が半数を占めている」
    ぶつかる壁②「そういうやつらが書いた書籍を読んでもわかるわけがない」
    ぶつかる壁③「初心者向けと銘打ってある教本は十中八九初心者向けではない」

だれしも教えるのがうまい訳ではない。説明がうまい奴はそれだけで市場価値がある。つまり希少ということだ。それはこの界隈においても変わる訳がないのだ!!!! そして↑はかなりの偏見だが、数年たってもあまり変わらない気持ちでもある……。この界隈でいう初心者という単語には
(他の言語は経験があるがこの分野は)初心者
みたいなクソデカ接頭辞がついている場合が多い。そしてマジの初心者が死ぬ。 まじでレビューサイトとかで謙遜しないでほしい。

  • ひたすら浴びるJava
    ぶつかる壁④「言語以前に、”プログラミング”という概念を理解しないとイカンということを知る」
    ぶつかる壁⑤「知らん単語を調べると湧いてくる全く知らん単語」
    ぶつかる壁⑥「オ ブ ジ ェ ク ト 指 向」
    ぶつかる壁⑦「分からないことが分からない」
    ぶつかる壁⑧「ネットで調べればすぐわかるよ(わからない)」

もはやJavaの方言を学ぶどころの話ではなかった。配列だけでもその概念にビビってるのにオブジェクトとかインスタンスとか言われても脳に染みるわけがない。クラスとメソッドの違いがわからない。初期化って0を代入することじゃない。数学が嫌いだが、あまりにもわからないことが多すぎたため、このとき変数という存在を知っていてよかったと感謝の念すら湧いた。

勉強し始めて陥ったこと(作る以前の問題

  • 「で?簡単に習得できる言語ってどれなの??」→ない
  • 「全く簡単じゃないが????」と思うことの多さ
  • 初心者向けすら理解できない私は一体なんなのか……?……ゴミ…????
  • 文法を学んでも「で?結局これで何ができるわけ???」
     基礎文法は習っても全く使えない英語と一緒の状態に陥る
     自分でアレンジして話そうとするとあっというまにおかしなことになる
  • なにがつくりたい/やりたいのかよくわからない
     なんでもつくれるよ?とか言わないでくれんか????
  • したくても質問できないししづらい(なにが分からないのか分からないので)

わからん殺しの中でわかったこと

マジマジのマジでなにも知らんドサンピンがはじめても
参入壁がヒマラヤ山脈マリアナ海溝ばりに高い&深すぎる
(あたりめーだろ)
 高校の英語の授業とおなじ。文法が分かったところで、自発的に楽しく会話できないのとおなじ。
 加えて以下の複数要因が複雑に絡み合っている…

  • 周辺基礎知識が必要
    歴史的背景がわからないと、分かるに分かれない 事柄が多い なんで画面真っ暗なの?ソフトどこ? (GUIでない意味がわからない)  なんで仮想化するの???パスワードなんでつけてないの??なんで暗号みたいな略し方してんの???など

  • 触れてこなかった人間には、イメージしづらい形のない概念がある
    自分の意図を機械に伝えるとき、
    それを数式に変換しなければならないことこれを自覚するのに時間がかかった
    「1+1を計算しろ」と打ったとしても 画面になにも表示されない → 表示するにも指示がいるんじゃん??????ってなる
    「画面に表示しろ」まで言わないとでてこないんだよ!!!!だからsystem.out.printlnはすごいんだって初めから言えや!!!!!!おまじないじゃねーーーーーーんだよボケが!!!!!!!!

  • 機械につたわるように書かないと無理
    ここでも基礎知識が必要となる
    機械には「なにが理解できて」「なにが理解できないのか」
    それを知っている必要がある

  • プログラム言語は言葉ではない
    変数や関数に大ざっぱな単語的意味はあるが
    書いて計算した数式の結果と意図が一致しているから
    文のように見えるだけ 国語の点数が高いとか低いとか全くの無関係である。

結論

なにごとも考えすぎは良くないが、無策でやり始めるのも大変だったわ。 テキトーに簡単って言ってるやつ、説明責任を果たせよな????????マジで。

分からねーのが悔しい、かっこいいwebサイト一人で作れるようになりたい
というのが、ほそぼそとしたモチベである……
もう少し早くだれかJavaScriptがいいよって教えてくれていたら…などと思う。それも理解するのにめっちゃ時間かかってるけどな!!!!!!!! まあなんだ、病まない程度に頑張りた~~~い!!分かりづらい界隈への憎しみを祝福にかえた~~~い!!!!!おわり!!!!!!!!!!!