プログラミング独学のはじめ方

この記事を書いた人
鈴木朝
システムエンジニア

■ 得意なプログラミング言語
・フロントエンド(HTML/CSS/Javascript)
・バックエンド(C/C++/Java/PHP/Python)
・その他(アセンブラとか・・・?)

プロダクトエンジニアとテクニカルサポートエンジニアのキャリアは合計4年です。
インフラ周りもそこそこ触っていました。

システムエンジニアとしてのキャリアは15年以上です。

生徒ちゃん
生徒ちゃん

あのぅ・・・
質問があります!

鈴木朝
鈴木朝

はい、何でしょう?

生徒ちゃん
生徒ちゃん

プログラミングって
独学できるって言う人と
独学できないって言う人がいるんですけど、
本当はどっちなんですか?

鈴木朝
鈴木朝

独学できますよ。
ただ、他の資格勉強なんかと比べると、
やや独学しづらいかもしれませんね。

生徒ちゃん
生徒ちゃん

たしかに、独学しづらいと感じることもあります。
Webサイト見てもよくわからないことあったりするし・・・

鈴木朝
鈴木朝

内容の正誤をおいておいたとしても、
わかりづらい説明や、
参考書から拝借してきただろ!っていう説明があったりしますね。

生徒ちゃん
生徒ちゃん

そう、それです!
よく、そういうのでやる気なくしちゃうんです。
私には無理なんだーって。
で、ネット調べると、
さっきのように「独学できる/できない」論が目に入っちゃって・・・
不安になっちゃうんですよね・・・

鈴木朝
鈴木朝

「独学できる/できない」論は昔からありますが、
結論は先ほど言った通り「できる」です。
学習時に理解の難しい壁にぶちあたると、
基礎がないことが多いので真っ暗になっちゃうんだと思います。
学習者が良く挫折するポイント・・・C言語のポインタなんかが良い例ですね。
理論やら専門用語やらが一気に説明されるので、
知識を受け取る側が抱えきれないことが多いですね。

生徒ちゃん
生徒ちゃん

そう!そうなんです!
一回挫折すると、立ち直るまで時間がかかっちゃったり、あきらめちゃったりするんですよね。
正直、めんどくさくなっちゃうっていうか・・・。

鈴木朝
鈴木朝

めんどくさいって思った時点で、その情報からは距離を置くのが適切だと思います。
ただ、そこから「できる/できない」論に流れ込まないように、
己を律していきたいですね。

生徒ちゃん
生徒ちゃん

先生はやっぱり学校でプログラミングを教わったんですか?

鈴木朝
鈴木朝

僕?
僕は全言語独学ですよ。

生徒ちゃん
生徒ちゃん

え!全部ですか!?
全部っていって2個とかだったら軽蔑しますよ。

鈴木朝
鈴木朝

そこは大丈夫かな・・・。
お仕事で使っているものとプライベートのみのものを合わせると、およそ10個あります。

生徒ちゃん
生徒ちゃん

え!それすごくないですか?
どうやって独学でそんなに覚えたんですか?

鈴木朝
鈴木朝

昔は書籍をお小遣い貯めて買って読んだり試したりしてました。
最近では、書籍はほとんど買いませんね。
買わない代わりに、インターネットで情報収集するようになりました。
今の時代は便利ですよね。
タダで情報が手に入るのですから。

生徒ちゃん
生徒ちゃん

それだけですか?
ありきたりで面白くありませーん。

鈴木朝
鈴木朝

けっこうグイグイ来るね・・・。

鈴木朝
鈴木朝

一番気にしないといけないのは、実は学習法じゃないんです。

生徒ちゃん
生徒ちゃん

!?
どういうことですか?

鈴木朝
鈴木朝

学習法ってどこからか情報を取得する以外に方法は無いんです。
だから、上手く進めている人は学習法以外で差をつけているんです。

生徒ちゃん
生徒ちゃん

精神論とかいうめんどくさい話をしようしてます・・・?

鈴木朝
鈴木朝

いや・・・精神論でできるもんじゃないです。
っていうか、ずいぶん疑ってかかってくるね・・・。

生徒ちゃん
生徒ちゃん

そりゃそうですよ!
だって、これまでネットの色々な情報に振り回されてきたんですから。

鈴木朝
鈴木朝

まぁ、そういう背景があるんならしかたないね。
じゃぁ、教えてあげましょう、その差というものを!

生徒ちゃん
生徒ちゃん

おおおおおお

鈴木朝
鈴木朝

まずは「書き方」への執着をやめましょう。

生徒ちゃん
生徒ちゃん

へ?
書き方知らないとプログラム書けないんですけど・・・

鈴木朝
鈴木朝

「書き方」っていうのはたしかに必要なんだけど、学習手順において重要では無いのです。

生徒ちゃん
生徒ちゃん

どういうことですか?

鈴木朝
鈴木朝

実は、「書き方」って「やれること」に直結しないんです。

生徒ちゃん
生徒ちゃん

でも、書き方を知らないと・・・

鈴木朝
鈴木朝

すとーっぷ!
執着しちゃってるねぇ。

生徒ちゃん
生徒ちゃん

ぶーぶー

鈴木朝
鈴木朝

これからメリットのある話をするんだから、ぶーぶー言わないの!

鈴木朝
鈴木朝

「書き方」は「やれること」を増やす段階で平行して覚えていけるんです。
だから、まずは「やれること」をネットで調べてみてください。
「やれること」っていうのをもう少し具体的に表現すると、「サンプルプログラム」のことです。
実際に動いているプログラムのことです。

生徒ちゃん
生徒ちゃん

でも、書き方のルールとかを覚えてからじゃないと、他人が書いたサンプルプログラムなんて読めないです。

鈴木朝
鈴木朝

そう、そこがポイントなのです。
僕からすれば「今読む必要ありますか?」です。

生徒ちゃん
生徒ちゃん

え・・・だって・・・
ちゃんと理解してから使わないとちゃんと使えるかわからないじゃないですか!

鈴木朝
鈴木朝

それは、品質を重視するからですよね。
お仕事の一環としてやるならちゃんと品質を見極める必要があります。
そういう場合はスピードも要求されるので、独学してる暇はありません。
有識者に手伝ってもらってでも完成させることを優先すべきです。

鈴木朝
鈴木朝

でも、生徒ちゃんは「独学」でなかなか上手く進められないことに対して何とかしたいんですよね?

生徒ちゃん
生徒ちゃん

まぁ・・・それはそうですけど・・・
品質も大事だと思います!

鈴木朝
鈴木朝

品質ももちろん大事ですし、最初から最高品質のものをサクッと作れる方がカッコイイです。
でも、「学習」段階ではやれることを増やすべきだと思います。
やれることが増えた方が、楽しいって思いません?

生徒ちゃん
生徒ちゃん

うーん・・・

鈴木朝
鈴木朝

まぁ、言いくるめられて悔しいのはわからんでもないです。
でも、一歩引いてみてください。
1か月後に増えたことが「ポインタの書き方」だけよりも「データベースの作り方」ってなった方が誰に説明する時も伝わりやすいそうですよね?

伝わりやすい=自己認識しやすい=自己PRもしやすい

こういうことなのです。

鈴木朝
鈴木朝

ちなみに、C言語でデータベースを作る時はポインタと構造体が必須となります。
つまり、データベースを作れて動かせてしまえば、ポインタも構造体も使ったソースコードを実装したという事実になります。
でも、ポインタだけだと「で、それで何ができるの?」って言われて悔しい思いをするだけでなく、自らの発想力をも縛ってしまうことになるのです。

生徒ちゃん
生徒ちゃん

なるほどぉ・・・
それは納得です。
たしかに、マウントとるなら「ポインタできる」よりも「データベース作れる」の方が良いし、何なら「データベース作れるからポインタも構造体もいける」って言えて一石三鳥ですね!

鈴木朝
鈴木朝

生徒ちゃんはプライドが大事なのか実利が大事なのかよくわかりませんね・・・。

生徒ちゃん
生徒ちゃん

どっちも大事です!
で、その一石三鳥プランはどうやって実現すれば良いですか?

鈴木朝
鈴木朝

このプランを実現するには、単純にネット検索のキーワードを変えれば良いです。
今までどんなキーワードで検索していましたか?

生徒ちゃん
生徒ちゃん

色々あるんですけど・・・
たとえば「C言語 ポインタ 記述方法」とかですかね?

鈴木朝
鈴木朝

なるほど。
ためしに今検索してみましょうか。

鈴木朝
鈴木朝

たとえば、一番上に表示されているところを開いてみると・・・

生徒ちゃん
生徒ちゃん

あ!これです!
私、このわけわからん図でショートしました。

鈴木朝
鈴木朝

まぁ、だいぶやっちまってる図だよね・・・。
正しい説明なんだけど、学習する人が求めているのはそういうことじゃないって感じですね。

鈴木朝
鈴木朝

じゃぁ、この検索キーワードを変えてみましょう。
そうですね・・・たとえば「C言語 データベース サンプルプログラム」とでもしてみましょうか。

生徒ちゃん
生徒ちゃん

全然違う結果だ!

鈴木朝
鈴木朝

そうですね。
やれることのやり方が出てきますね。
ちなみに、一番上のを開いてみたところ、どうやら雑誌の記事みたいでした。
著作権的な問題で本記事には載せませんけど・・・。
上から2つ目のURLはデータベースを自作するサンプルプログラムではなく、既存のデータベースソフトに接続してあーだーこーだするサンプルプログラムのサイトでした。
ちゃんとポインタ使ってました。

生徒ちゃん
生徒ちゃん

期待していたのと違いますね・・・

鈴木朝
鈴木朝

まぁ、そうですね。
ざっと調べたところ、C言語でデータベースを自作するちゃんとした記事は全然出てこないことがわかりました。
というか、そもそもC言語の良いサイトがない・・・

生徒ちゃん
生徒ちゃん

えー・・・
どうするんですか?

鈴木朝
鈴木朝

専門用語の組み合わせで検索する必要がでてきちゃいますね。
しかたないので、このサイト「PGYM」に記事作っておきます。
記事が出来上がるまでは、Youtubeで「無料で学べるC言語」という動画を検索してポインタを学習してみてください。
僕が制作している動画で、このサイトでも動画アップロード時に記事にしてます。

生徒ちゃん
生徒ちゃん

宣伝ですか・・・

鈴木朝
鈴木朝

いーじゃん、宣伝くらい・・・
ちゃんとしたポインタの解説ページ作ってあげるって言ってるんだし。

生徒ちゃん
生徒ちゃん

はいはい・・・
じゃぁ許してあげますよ。

他の言語でも似たような感じですか?

鈴木朝
鈴木朝

JavaやPythonなどの最近流行りのものは良い記事がいっぱいあるので、サンプルプログラムを検索すればいっぱいでてきます。

生徒ちゃん
生徒ちゃん

そですか。
じゃぁ、いったんC言語はおいておきます。
ページできたら教えてください。

鈴木朝
鈴木朝

はい、連絡しますね。
じゃぁ、今回はこの辺でおしまいにします。

生徒ちゃん
生徒ちゃん

ありがとうございました。

コメントを残す

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