プログラミング初心者入門 プログラミング初心者の初心者による初心者脱出方法(随時更新)

(更新)2019/4/7

0.コラム

きっとこんなどこの誰かもわからない。更には著者自身まだプログラムが出来ないと公言してるやつのブログを読んでおられるというのは、よっぽど暇か、すごく性格が悪いか、マジで困ってる!巷に沢山ある『初心者向け』、『入門』、『バカでもわかる』、プログラミング学習法を色々リサーチしまくって、「それでもわからん、私は途方もないアホなのか…」と挫折寸前の方なのだと思います。
このブログは前述した“本当に困っている”方だけをターゲットにしておりますので、それ以外の方の野次は受け付けません。勿論、有難いアドバイスは、初心者を代表して伺わせて頂きますので、そのような尊い方はどしどしコメント頂けると嬉しく思います。

と、前書きはこれぐらいにしておいて、なぜ、まだプグラミングが出来ない私が、釣りタイトルのようにこのブログを始めたかですが、プログラミングが出来ないにしても、ようやく、出来るようになりそうな光明が見えてきたからです。

これまで様々な勉強法を試しました。みんな大好きドットインストールから始まり、Progate、スクー、udemy、paiza、techacademy、PyQ...全て課金し、1ヶ月以上やりました。

結論から言いますと、多少のわかりやすいわかりにくいはありますが、どれも一緒です。当然、その他書籍や短期ではありますが、スクールにも何回か行ったと思います。基本的にどこも基礎の勉強で終わります。

そんな基礎学習だけなのに、プログラミングが出来る人は「ドットインストールを3週しただけだよ。」とか言いますが、それは“嘘”です!いや、本当かもしれませんが、私には到底信じられませんし、この記事を読んでくれてる方はみな、ウンウンと共感してくれてると思います。上記教材の勉強だけでは、“実際に作れるように”なんかなりません。
上記教材はあくまでも“ただの教材”であって、その教材から先が出来るようになるには、“実戦”しかありません。ただ、この実戦教材と言うものは用意されておらず、基礎の次は、ある機能の写経と言うのがほとんどの流れです。人によっては、この写経を“実戦”だと仰られるのですが、私たち怠惰な初心者にとって、実戦教材として“与えられるアプリ(機能)”は、普段使っているアプリに比べるとウンコ以下のもので、学習するモチベーションがわかず、作る意味もわからず、全く頭に入ってこない“無駄な写経”に他なりません。
(写経が無駄ではないと思いますが、無駄だと思って取り組むと本当に何の意味もありませんね)受験勉強の様にその場しのぎで学ぶただの短期記憶教材でしかないのです。

と、このまま続けるとただの愚痴になってしまいますので、最後に私の現在のステータスと前提についてお話させて頂き、本編に移ろうと思います。

【私のステータス】
私の本職はブランディングディレクターとして、企業の商品開発や企画などに携わっているのですが、元はデザイナーで主に店舗デザインやプロダクトデザインなどリアルなもののデザインをやってきました。
その中で、WEBサイトであればWordpressを使って作れますし、HTML、CSSであれば多少の読み書きも出来ます。と、こんな話をすると、全くの初心者の方にとっては「インチキだ!」「出来るんやないかい!」と批判を食らいそうですが、私の出来るレベルと言うのはあくまでも、レイアウトや配置だけであって、ボタンを押したら何かが動くとか、データベースを使って保存したり、APIを叩いて情報を取ってきたりなんて事は一切できません。
私の中ではこれこそプログラミングであり、私の出来る事と言うのは、説明書を見ながらプラモデルを作れる程度であって、これは勉強すれば誰でも出来る様になるものです。
例えば、ブログのタイトルは、<h1>タイトル</h1>と言う様に、<h1>で囲いましょう。と言う様な作法の様なもので、ここまではどこにでも書いています。

その他の言語は、pythonが初心者にはいいらしい!JavaScriptが汎用性が高い!今はphpがいい!みたいなのを聞くにつけ、各言語で基礎から次のステップに行く時に「詰まった…、他の言語だとわかるかも!」「基礎はわかったけど、詰まった…」「他の言語の方がわかりやすいらしい…。」「つぎは!…」と、素人のよくあるパターンで、“最も効率の良い勉強方法”ばかり探して、結局何も積み上がっていないと言う残念パターンです。
結局これって、受験勉強と一緒で、研究の様に地道にコツコツやるしかないのだよ。という結論にたどり着くわけですが、この結論にたどり着くことが大事で、ここからようやくスタートが切れるわけですね…。

本当に長かった、そして諦めが悪すぎた、結果、効率が最も悪かった…と、過去の反省もこれぐらいにして、私のステータスは、各言語、様々な教材に手は出したが結局どれも基礎しかわかっておらず、HTMLは多少かけるぐらいのステータスです。次に、このブログの対象及び内容は下記となります。

【前提】
・コードの解説の様なものは記載しません。
・言語は今勉強中のswiftです。
・変数や分岐などのいわゆる基礎と呼ばれるものが出来る事を前提とします。

1.入門者・初心者の前提が適当

2019年2月27日現在、私のステータスは、初級者です。プログラミングの勉強が体系的にできない理由の一つは、この定義の適当さにあると思っています。ネット記事だけでなく、書籍やブログを見ると、いたる所に初心者、入門者、初級者などの”本物の初心者”にとって、藁にもすがる思いで開くサイトが星の数ほどあります。理由としては、ビギナーユーザー藁にもすがっているので、釣り記事に引っかかりやすく、アフィリエイトもポチッとしやすいから、そういうタイトルにしているのでしょう。サイトを開くと怒髪天を突きそうなぐらい「おどれのどこが初心者じゃーーーー!!!」と思うサイトがたくさんあります。

たくさんの”本物の初心者”が、私のようなストレスでプログラミングの勉強を諦めるようにならないためにも、そろそろこの定義を明確にするべきだと思い、私の独断で定義付けをしてみました。以降の記事は下記定義に基づいて進めたいと思います。

賛同される方はぜひ、下記の定義を一緒に広めて、後に続くであろう私達のような人を救ってあげましょう!笑

【プログラミングスキルレベル】

・入門者 文法など基本の勉強を始めた人
・初心者 文法を終え、動画などで勉強し始めた人
・初級者 簡単なアプリをコピペしながら作ることができる
・下級者 他の言語をやっていて、該当言語はできないが他の言語ではアプリを作れる
・中級者 簡単なアプリなら自分で作れ、メソッドなどもある程度組める
・上級者 職業にしている人

初心忘れるべからずで、いつまでも初心者の気持ちでいるのはとても大事なことだと思いますが、東大理3の大学1年生と、地方大学の大学1年生では明らかに勉強内容のレベルが違い、それを同等の基準とされると100%グレます。初心者とか、入門者とかブログであったり、プログラミングコミュニティに入って自分を偽っておられる方、地方大学の1年生の気持ちになって、本当に自分が初心者なのか考えてみてください。

初心者向けコミュニティに入って、みんな初心者だから質問しよう!と、楽しい気持ちで入って、質問欄が横文字だらけで、「それはググれ。」と突き放される"本物の初心者”の気持ちになってみてください。あなたも同じ様なレベルの時、めげそうになりませんでしたか?「私はそんなに弱くない!」って方は、さっさと、こんなブログを読むのはやめましょう。

2.入門者おすすめ教材 「プログラムはこうしてつくられる」

入門者や初心者の人がまっさきに考えるのが、どうすれば一番効率よく勉強できるかです。私もさんざんそれを考えて、手当たり次第試しましたが、言えることはひとつです。どの教材でも良いから、最初から最後まで学び尽くすこと。私自身確実にできているかと言われれば胸を張って言えることではありませんが、基本的にどの商材もすべて同じことが書かれています。表現がわかりやすいか、わかりにくいかにつきます。書いてることは全部一緒です。自戒も込めて、一番わかり易いのを探すのではなく、買った教材を徹底的に勉強しましょう。

とはいえ、「じゃあ、せめて、どれがわかりやすいかだけでも教えてほしい。」と思いますよね。私がおすすめするのは、書籍であれば、下記1択です。

この本は、プログラミングに出てくる用語がすべて日本語で書かれています。初級者以上の人にとっては、回りくどく、丁寧すぎて、他の書籍と違い、教材としては書かれている内容は非常に少ないです。ただ、プログラミング学習の一番の難敵は"知らない言葉(英語)”です。

知らない言葉が連続すると、“わからない!”、“わからない。”、“わからない。。”、“わからない…”、私が馬鹿なのか…、プログラミングは向いてないのか…、と負のループに陥ります。英語学習でも一緒ですよね。わかっているうちは勉強も楽しいですが、わからなくなるとどんどんやる気が失せていく、特に社会人になり、勉強する時間がなくなったり、端切れにしか勉強できないと、わからないがいつまでたっても残り、続ける気が完全になくなっていきます。

そうならないために、まずは”わかる”を積み重ねていくことが何より大事です。この『プログラムはこうして作られる』は、日本語で書かれているので、冗長で、本自体も分厚いですが書かれている内容は薄いです。※プログラミングで一言で表されている表現を噛み砕いて書いている為

入門者の方は、この本を読んでから、次の初心者教材(何でもいい)に進むのがおすすめです。基礎学習を終えた初心者の方にも、復習教材としておすすめです。

3.初心者におすすめの教材 swift playgrounds

初心者教材はなんでもいいと言いながら、おすすめとしてあげますが、基礎を学んでもはっきりいって、一瞬で忘れます。理由はひとつ、"使わない”からです。プロとしてや学生として、これから実務や課題で必須という方は別ですが、こちらを読んでくれてる方というのは、すぐにもプログラミングをマスターしなければならないという、緊急性が高い方ではないと思います。そのような私達非プログラマーにとって、一番の課題が“学んだプログラミングを使う場所がない”ことです。

ここで、いわゆる優秀なエンジニア(「ドットインストールを3週しただけだよ。」)は、基礎学習だけで十分楽しさを見出し、いろんな勉強を独自で探し始め、日々継続していくことができます。できれば私もそう有りたかったですが、”忙しい”という日々の言い訳に甘えてしまいます。

そんな私でも継続できたのが、『swift playgrounds』※xcodeのplaygroundとは別物です。

言わずとしれたappleのプログラミング向け、学習アプリです。こちらも学習内容は基礎学習のみですが、基礎学習を繰り返し実践するので復習に役立ちます。入門者の方もここから始めても問題ないと思います。

ただ、iPadがないといけないのでそこが課題ですが、いろんな学習教材を買い漁ったり、調べたりしている時間があったら、買っちゃったほうが良いと思います。2019/3/30にiPad mini もでましたからね。私も買って良さを実感しました(笑)

iPad mini Wi-Fi 256GB - ゴールドamzn.to 67,813円(2019月04月07日 12:43時点 詳しくはこちら) Amazon.co.jpで購入する


プログラミングなんてただの魔法 ※近々公開予定

3.よく言われている勉強法 ※近々公開予定

4.よく言われている勉強法のだめなところ ※近々公開予定

5.プログラミングはプラモデル ※近々公開予定

6.一番最初にやるのはアイデアスケッチ ※近々公開予定

7.まずは自分の行く海の広さを知ろう ※近々公開予定

8.次は材料集め ※近々公開予定

9.1番重要な調べ方 ※近々公開予定



この記事が気に入ったらサポートをしてみませんか?