にちプチ 【Nichi-Petit】

日常のプチ情報やプチンときたことを書きなぐるブログ

これで安心!プログラミング上達のコツとおすすめ参考書を紹介!

スポンサーリンク

プログラミング初心者の心の叫びを聴け!!

 どうもこんにちは、プログラマー見習いのせいじです。

 

僕は今、ある会社の研修生としてプログラミングの勉強をしています。

日々スキルを身に着けるための課題を出され、それを考える……それが仕事。

 

そしてそんな日々を過ごしながら思うこと、それは

 

この業界、初心者に優しくねぇ!!

 

これが全てであり真理。まさに軟弱な精神と頭脳の持ち主は淘汰される無慈悲な世界。

プログラミングの独学者の9割以上が挫折するというホントかウソかわからない統計も、この有様を見れば十分信じられる。

 

初心者をナメてる

 一企業に研修生として賃金を頂き、勉強させていただいている身としては会社に「もっと初心者に優しくしてくださいよぉぉお!」なんて言えない。それはお門違いってもんだ

 

ただし参考書、テメーはダメだ

 

ここは全プログラミング初心者を代表して言おうと思う。

 

初心者は、わからないものなんだ!!

 

僕は現在Pythonという言語を独学しつつ、会社ではJavaを勉強している。

数あるプログラミングの教本などを手に取ると、「初心者にもわかりやすい!」だとか「独学でもできる!」なんていう初心者をナメくさった表記が目立つが、そんなのは最初に実行する「Hello World」くらいであり、その後は途端に難易度が上がってゆく。こんなもんなら書籍を買うでなく、ググって真似たほうが手っ取り早い

Hello world - Wikipedia

 

分かるまい……プログラミング中~上級者にはこの悩みが分かるまい!!

こういった書籍を出した会社は想像しているのだろうか? 新しい単元に入り、急に情報量が増え、パニクる初心者を。

「初心者にもわかりやすい」という触れ込みがどれほどの初心者を打ちのめしてきたのかを!!

 

友人に教えを乞うてみる

 書籍に絶望した僕は、幸運にもJavaを仕事で使っている20年来の友人がいた。

身近な人にこういった技術を持っている存在がいるのはありがたい。素朴な疑問から高度な質問まで、ネット上で距離の離れた方に聞くよりずっと理解が深まるし、レスポンスも早い。

 

僕は神の御心と思い、その友人に師事している。

しかーーーーし!!

いかに近しい友人と言えど、僕との理解度・技術の差は雲泥どころか砂粒とベテルギウスほどの差があった。

 

「なんでそんなところにif文を書くの?」

「引数が指定されてないじゃん。それじゃ処理できないでしょ?」

「何の変数に対しての評価式を書こうとしてるの?」

「さっき言ったじゃん!?」

 

超初心者に容赦なく浴びせられる「上級者の」疑問。そう、彼からすれば僕の勉強した内容なんてハナクソを天日干しして濾し取ったダシほどの価値もないのだ。慣れない手つきで見当はずれのコードを書く僕は赤ん坊以上に理解不能な存在なんだろう。

 

僕はそんな友人に対して思った

 

「あ、こいつ『バカ』に教えたことねーな」

 

そう、初心者と言える存在ならどの業界にもごまんといる。

その中でも割と理解の早い者は参考書に載っている内容をロジカルに、そしてコンスタントにインプットしアウトプットすることができる。そういう人は独学でもやってける

しかし僕のような「超」初心者は違う。

 

参考書の内容というのは通常1を学べば2、2を学べば3へと少しずつ、段階的に進むものだ。学習者はそれを熟読し、少しずつ理解度を上げていく。

だが、超初心者というのはそれすらままならない。前の単元と今の単元を橋渡しする参考書の一文に対しても、どこが重要でどこが実際のプログラムに活きてくるのかが分かっていない。

なぜなら「バカ」だからだ。

 

そう、友人は決して欠陥のある教師ではない。むしろ参考書よりも噛み砕いて教えてくれ、たとえ話なども駆使してなんとか教えようとしてくれたりする。若干キツいときもあるけど

学ぶ側がバカである以上、そこまで面倒見きれねーよという気持ちも十分理解できる。

 

ただし参考書、テメーはダメだ

 

初心者向けのプログラミング参考書に必要なのは「バカ」の存在

 多くの初心者向けプログラミングは「初心者に分かりやすい内容」として簡単なたとえ話であったり、簡単なコード例で済まそうとしている

 

分かっていない。実に高慢ちきな初心者への誤解だ

 

初心者は本来バカであり、そして初心者ゆえの不安があるのだ。その不安が苦手意識を生み、その苦手意識が挫折につながる。

僕は2度ほどプログラミングを独学でやって挫折した。そして今また勉強中だがいつ挫折するかも分からない

 

そんな初心者ゆえの唯一の心の支えは「自分と同じ失敗が存在するか」である。

 

参考書でもなんでもエラー例があるのとないのでは大違いだ。初心者ならではのエラー例が示されたページがあればモチベーションは大きく上がる。

「なんだ、こういう失敗というのは、ままあることなのか」と認識し、安心を得ることができるからだ。自分なりに書いたコードがコンパイルエラーで終わり、そこで不安になって終わるなんてなんとももったいない話である。

 

そんなバカが登場する参考書で僕の中のヒットはこの書籍。

 

【簡単な内容】

主人公の湊 雄輔(22)は能天気な新米プログラマー。最初はプログラミングのプの字も知らない段階から、先輩である浅香 あゆみ(24)、菅原 拓真(31)と共に、少しずつJavaプログラムを学び、簡単なRPGを作って行くという、会話型の参考書だ。

 

そしてこの湊くんはとにかくバカで、書籍の中で度々プログラムミスをしたり、クソみたいなコードを書いたりする。

 

だがそれがいい!!

 

これほど初心者に寄せた内容の参考書を僕はなかなか見たことがない。あったら教えてほちい

この参考書の素晴らしいところは超がつく初心者に対する手厚い配慮だ。

 

湊くんを始めとする登場人物が書くまずいコードの作成例も所々載せてくれるおかげで、「こんな間違いしちゃうこともあるんだな」「自分の間違いも突拍子もないことではないんだな」という初心者ならではの安心を得ることができる。

 

そして普通の参考書であれば、一度記載した文法などを後述で語ることはまずないが、この本は「再掲」という形でもう一度思い出させてくれる。

新しい単元に入り、前の単元の決まり事などを忘れそうな初心者には、これがとてもありがたい。

これを読んだ後、他の参考書を読むと「そのへんの文法は別ページで話したやん。覚えとけや」と言われている気がしてならないくらいだ。

3歩進んで2歩下がるくらいが初心者にとってはちょうどいいと思う。

 

Javaという言語を元々学ぶ気がなかったとしても、この本で「プログラミング」という広義の概念に触れることできっと他の言語にも応用できる。

もちろん一度流し読みした程度では到底理解できる生半可なものではないけど、2度3度と重要な部分を読み返していくと「Hello World」で停止したあなたの時間をきっと取り戻すことができるはずだ。

 

「正解しか書いていない参考書なんてテストの答えに毛が生えた程度の価値しかない」

それを痛切に感ずることができた1冊でした。間違いを学んでこそ、人は強くなれる!!

 

初心者よ、臆するな!

 「初心者にもわかる」「誰でもできる」等の触れ込みをする書籍を読んで、結局理解できぬまま終わったときの「敗北感」「自分を否定された感」はハンパないだろう。

しかしそれは慣れないプログラミングという世界に足を踏み入れたことによる通過儀礼だと考えてもいいと思う。

 

事実僕は今もヒーヒー言いながら何とか新しい知識を日々インプットし続けて何とかかんとか学習を続けている。

初心者というのはパニクるもの。初心者というのは忘れるもの。僕はそう思ってる

 

ましてやプログラミングだぜ!?

学校とかで習ったならまだしも、ほとんどの人が社会人になってから出会うようなこの世界にそんな簡単に順応できないよね!!

 

プログラミング上達の近道とは?

 プログラミングをある程度できる人は誰もが言う「とにかくコードをガリガリ自分で書くことだよ」という言葉。

僕も確かに自分で書いていくことは理解につながり、結果自分の力になることは実感している。

 

しかーーし!!

それはあくまで参考書をある程度理解し、文法をきちんと扱えるようになった脱超初心者が達することができる境地だ。

マジな超初心者は自身で書けるコードすら生みだすことができない。何故なら「勉強の仕方」すらわからないから。結果参考書にあるようなコードを真似て書き写すような「写経」と呼ばれる作業に陥ってしまう。コレ全く効果ないわけじゃないけど、割と時間の無駄なのよね

 

だってよ? 英語だって参考書に文法が載ってるけどよ? 参考書見れば何でも訳せるようになる? 書けるようになる?

ならねーーよなーーーー!!

 

そうなった時に有効なのはやはり「人に聞く」ということ。

僕自身技術を持った友達に色々聞くことで理解を深めて、脱超初心者は成し遂げることができた。

そう、参考書はあくまで「正しいこと」のみが記載されているもので「初心者の素朴な疑問」を網羅しているわけではないのだ。

ただ難点はその友達がいつでも自分に教えられる立場にないこと……そら向こうのスケジュールもあるからな

 

teratailならその初心者の素朴な疑問を質問できる上、ソースコードなどを貼り付けた上で細かな説明をプロフェッショナルな方々に求めることができる。

取り扱っている言語もJavaやPHPを始め、メジャーな言語であれば網羅されているので学び始めの初心者は安心。

しかも、利用登録は無料であり課金や利用上限などを心配する必要もない。これ重要

そんで回答率は2017年現在で90%を超えている。すごい

 

他にも質問系サイトは「Yahoo!知恵袋」や「教えて!goo」などが有名だけど、こちらはプログラミング専門の知識を持った回答者が少ない上冷やかしも非常に多いので使用は控えたいところ。煽られてまで質問したくないわ

 

もしあなたがプログラミングの細かな部分の理解や、参考書には載っていない自身が作ろうとしているプログラムの学習に行き詰ったら是非使ってみてほしいツールだ!

 

ほんま、何時間も悩むくらいなら人に聞くのが一番よ!!

 

モチベーションを維持すれば何とかなる!

 プログラミングを学ぶのに必要なのは第一に「モチベーション」だと思う。次点で「作りたいもの」「目標」が来る

僕は作りたいものがあったにもかかわらず、そこまでの大きな壁に絶望し挫折した過去がある。それは道のりが長すぎて「今見える一歩」を完全に無視していたからだ。

 

for文1個でもいい。なんだったら変数1個の宣言でもいい。前日にできなかった「何か」を一歩と考え、たとえ進歩が遅くてもその日得た知識を大事にすべき。

それがモチベーションの維持に繋がり、勉強するハリにもなる。

独学だろうが何だろうが、僕と志を同じくして勉強に勤しんでいる超初心者はそのことを胸に日々邁進していただきたい。

 

同志諸君、プログラミングの勉強、がんばれ!!(俺も!!)

 

 

エンド