この記事は、「プログラミング初学者」の私の立場から、「プログラミング入門者」の方、挫折したけれど今日からまたプログラミングプログラミングに再挑戦したいに向けて、届けたいメッセージをを中心に書いています。
想定している読者様は、
●これからプログラミングを始められる方 ●(何度か)挫折してしまったが、もう一度、もう2度・・・リトライされたい方
に向けて、下記点で書かせて頂きます。
1点目: 作りたい物、目的から先に決める
2点目: やりたいことが分からない、コードの理解でお困りの方へ
3点目: 目的が見つかったら楽しめる学習法
4点目: 動画学習コンテンツと環境構築時短のIDE
5点目: コメントを入れて自分が分かるように
6点目: プログラミング学習に便利なツール
7点目: お節介な先輩エンジニアの方へ
以上、宜しくお願いします。
■ 1点目: 作りたい物、目的から先に決める ■
Webサイトを作りたいから、HTML / CSS / JavaScriptをやりたい、など、作りたいものが先にあって、目的が明確な分、それに必要な言語を学ぶとモチベーションが高まり挫折しにくくなります。
とはいえ、自分探しが中々進展せず、一体私は何がしたいのだろう・・・と良く悩みを抱えています。そこで、次の項目では、
・自分のやりたいことが分からない方 ・コーディングが難しくて色々な英語や数字が出てきて混乱して学習に躓いて困っていらっしゃる方 ・プログラミング学習が「写経」になって楽しく無い方
に向けて書かせて頂きます。
■ 2点目: やりたいことが分からない、コードの理解でお困りの方へ ■
自分のやりたいことが分からないというのは、決して自己分析が出来ていないからなどではなく、自分の気持ちが分からなくなるほど周囲の方を優先してきた心優しい方達 です。なので、決して自分を責めないで下さい。
また、プログラミングは難しい英語や数字が出てきて初学者にはハードルが高いので、ついつい「写経」になってしまいます。
そういったことでお悩みの方は、ブロックを置いてプログラミングを行う、お子さま向けのプログラミング教育でも使われる、スクラッチ がオススメです。
ブロックを置いてキャラクターを動かせるので、達成感や楽しさがすぐに味わえてモチベーションに繋がります。
ミニゲームを作りながらプログラミングで必要な分岐処理やループ(繰り返し)なども遊びながら学べます。
私の場合は基礎学力の不足も挫折の原因でしたので、ミニゲームと国語や算数などをキャラクターを動かしながら学べる下記の本を購入した所、楽しみが増えました。
スクラッチプログラミング 事例大全集
親子でかんたんスクラッチ プログラミングの図鑑
これらの本でスクラッチを学ぶことは気分転換にもなりますし、いざやりたいことが見つかった時の為に、プログラミングの学習準備はスクラッチで整えられ、もしも見つからなくても、脳トレにはなるので老後の認知症対策に備えられそうです。
なんの才能もない発達障害者の声 この本は私が書いた本で発達障害を中心の内容ですが、スクラッチの自作サンプルを2つ程作成致しました。
もしもどうしてもプログラミング学習が辛くなってしまった場合は、心がラクになる本を紹介している記事 をご覧下さいませ。
■ 3点目: 目的が見つかったら楽しめる学習法 ■
プログラミング学習において、「Hello World」などの文字を、C言語でしたらprintf文、Pythonはprint文、JavaScriptはconsole.logやalert、HTLMではpタグやh1タグなどのタグを用いて出力をする機会が相当多いでしょう。そこで、
「私は天才プログラマー!! !!!!!」 「俺は超イケメンで女にモテまくり!!」 「私はめちゃめちゃ美人で可愛い!!」 「私はキムタクと超ラブラブ!!」 「橋本環奈は俺の嫁 !! 」
など、出力文に自分を褒める言葉や、好きな方とリア充ラブラブになるような言葉を入れてみましょう。 それを何度も繰り返すことで、自分に自信が付きますし、幸せで楽しい気分になれます。
プログラミング学習は、頭脳よりも「どれだけ折れない心を持って自信を付けて保って、更にアップしていくか」が大事です。 キムタク(=木村拓哉さん)や、橋本環奈さんに限らず、好きな芸能人や、または絶対人に見られないのであれば、学校や塾、バイト先、職場で好きな人の名前を入れてもOKです。
定数や変数に例えばGAS(Google Apps Script)やJavaScriptでしたら、
const genius='【私は天才プログラマー!!!!!】';
などとして、console.logを使うタイミングで、定数geniusをテキストの文字列に「+」で連結して表示させると便利かも知れません。 そうすることで、「受け身」から「能動的な学習」に変わって行きます。 私は、この定数geniusをグローバル領域に定義 しています。
人前で「私は美人で可愛い」、「俺、超イケメン!」なんて言ったら、「この人危ない人かも・・・」って思われるてしまいますが、自分のプログラミング学習の環境で、人の目に触れないのであれば、あなたはいくらでも自分のことを褒めて、自信を持っても良い方だと思います。
これから先、printf文、print文、console.log、alert、pタグ、h1タグなどのタグはいくらでも出てくるので、そこで可能な限り自分自身を褒める、ハッピーな気分になれるメッセージを入れて、単調な文法でも出来る限り遊びの要素を取り入れて楽しんで勉強してみて下さい。
これは、単なる「おまじない」に止まらず、以下のような効果があることを、基本情報技術者試験 でアルゴリズムの正答率が88% 取得した者の意見として申します。
頭の中で変数、定数の値を自然に追えるようになり、ループの中でどう動くのか、条件分岐ではどっちに分岐するのか、どの関数(メソッド)に引数が入って、戻り値はどのようになり、実行結果にどのような影響を及ぼすのか、プログラムの流れをトレースする習慣が自然と身に付く のです。
プログラミングとトレースは切っても切れない関係 なので、本を写経しているだけだと、自分のスキルが付いているのか自信がない・・・という方は、是非とも自分褒めメッセージをプログラムの中に組み込んで、積極的にプログラムをトレースする習慣を付けて下さい。
また、そのことを実行前に 行うと、事前にエラーを発見しやすくなるというメリット まで得ることが出来ます!!これは、プログラミング学習を効率よく進めやすくなる効果まで発揮できることになります!! (エラー文を調べることで、人は成長するのは分かりますけれど、出来る限り、サクサク学習を進めたいですよね。)
子どもの頃から、「スクラッチ」などのプログラミング言語を始めている今の子どもたちは、プログラミングが出来ると、先生やパパさんママさんから沢山褒められるかと思います。
しかし、子どもの頃にプログラミングに触れる機会が全く無い環境で育って、大人になってからプログラミングを始めると、褒められて伸びると言う機会は子どもに比べて極端に少なくなります。
そうすると、学校でプログラミングが学べる環境の子どもたちと、大人になってからプログラミングを始めた私たち昭和生まれの中高年とでは、ますます差が開くばかりです。なので、プログラミングの学習を通して、可能な限り自分で自分を褒めて伸ばしてあげて下さい。(世の中冷たいもので、頑張って勉強していても、現実は誰も褒めてなんてくれませんから・・・。)
先ほど、基本情報技術者試験の話をしましたが、私は基本的にはプログラミングに資格は必要ないと考えています。興味のある方はこちらの記事 をご覧ください。
※ スクラッチを本など独学で始めるのに「年齢は関係ない」ので、昭和生まれの私もキャラクターを動かしながらゲーム感覚で勉強をしています ※
■ 4点目: 動画学習コンテンツと環境構築時短のIDE ■
プログラミングの学習方法の中でも最も敷居が低い勉強法は、学習コンテンツによる動画レッスンです。その中でもドットインストール とpaizaラーニング について簡単に比較してみます。
●paizaラーニングが向いている方 ・特に「この言語」と決めていない ・環境構築無しで色々な言語を試してみたい ・アニメのキャラクターと楽しく勉強したい ・問題集やスキルチェックに挑戦して技術を磨き向上させたい ・エンジニアとして正社員でスカウトをもらって働きたい
paizaラーニングについて補足しますと、動画学習では演習課題があり、スキルチェックではDランクからSランクまでランクアップを目指せる様々な実践問題や、スキルチェックに挑戦するのに「計算ドリル」のような感覚でコードを書いて学べる、「レベルアップ問題集」も用意されています。
関連記事:paizaレベルアップ問題集をPythonとGASの両方で解いてみた集
●ドットインストールが向いている方 ・具体的に学習するプログラミング言語を決めている ・環境構築がある程度済んでいる ・1回3分程度の短い動画で効率よく学びたい ・副業やフリーランスとして稼げるようになりたい ・ポートフォリオの作り方を学び、実務にいち早く活かしたい
paizaラーニング、ドットインストールの両方に共通していることは、「無料レッスン」があることです。この記事を読んでも、私の文章力不足の為、どっちが自分に合うのか正直分からない方もいらっしゃると思います。両方の無料レッスンを受けてみて、こっちかな、と思う方に決めるという手もあります。
関連記事:ドットインストールの学習ロードマップとレッスンの感想
また、自分のPCに環境構築をする手間もを省く為に、Web上で無料ですぐにコードが書けるIDE という開発環境もございます。 paizaにもありますし、他にも「ブラウザでプログラミング 無料 IDE」 などで検索すると、いくつか見つかりましたので、自分に合いそうなものでしたら続きそうです。
■ 5点目: コメントを入れて自分が分かるように ■
プログラミングは暗記ではない、という意見を多く見かけます。 とは言え、全く覚えないとコードが書けないので、入門書でプログラミングの模写をする前に、「これは何をするプログラミングなのか」を1〜2行程度の短いコメントで書く ようにしました。
例えば「文字列を検索して下線を引く処理」など、何をするプログラミングなのか、コードを書く直前にコメントで書いてから、実際に入門書の模写コーディングをしました。
また、ノートを取るのではなく、私が知らないメソッドやオブジェクトが出てきたら、例えば、「getName()は名前を取得するメソッド」などと短いコメントを入れる ようにしました。ノートを取る代わりに、コメントにメモ書きというふうに学習方法を変えました。
コメントを書く際、きっちりコメントを書くというよりも、「自分が分かる最小限のコメント文でメモ感覚で まとめて、コメントにかける労力を最小限にして、その分を”思考して理解をすること” に回す」ようにしています。
もしもどうしてもノートの様にまとめたい場合は、Googleドキュメントが私には便利でした。
■ 6点目: プログラミング学習に便利なツール ■
ドットインストールやpaizaラーニングなどの動画の講義を終えましたら、実際に本を買う段階になるかと思います。
まず、プログラミングの本を紹介する前に、ブックスタンドを紹介します。 (デュアルデスプレイを使う方はそれでも良いと思います。) プログラミングをやっているとずっと座りっぱなしなので、適宜ストレッチをしていますが、パソコンで入力して本を見て・・・となると結構疲れるのでブックスタンドを紹介します。
これ、手前の金具にゴムがついていてストッパーになっていて、本を抑えることが出来るんです。これでプログラミングが捗りました。
表側はこんな感じです。 本の著作権があるので、カバーを向けています。
独習Python Kindle版 単行本(ソフトカバー)
また、Googleドキュメントに覚えたことをノートとしてまとめて学習しております。
■ 7点目: お節介な先輩エンジニアの方へ ■
たまにX(旧Twitter)などのSNSで見かける、いわゆる「意識高い系」のプログラミングの先輩の「初心者を不安にさせるアドバイス(??それとも自慢??)」について、「プログラミング初心者から見た意識高い系の先輩はどう見えるのか 」について書かせて頂きます。
「本でコードを模写するよりも、自分で何かアプリを作って、検索(ググりながら)勉強した方が実力が付く」などとX(旧Twitter)で呟いている先輩学習者もいます。
しかし、プログラミングを始めたばかりの方は、入門書やドットインストール などの学習コンテンツの通りに動かすだけで、一杯一杯でヘトヘトなかつての私のような方もいます。
そんな時、「本を写しているだけの私はダメなんだ・・・」って落ち込んでしまったこともありましたが、そういう先輩は大きなお世話だ!!って今となっては断言できます。
初心者に自慢して、マウントを取りたいだけでしょうか? それはアドバイスではなく、クソバイス です。 そんな時間があったら、自分のスキルを磨きましょう。
マウント取りアドバイスのもう一つに、「学習コンテンツを何回も回っていないで、さっさと成果物を作れ!」というのもあります。
1番良く無いのが、「プログラミング学習をやめてしまうこと」なので、自分が納得して続けられる方法でないと勉強がしんどくなってしまいます。(体調が悪い時は、勿論プログラミング学習をお休みして必要でしたら医療機関を受診されて下さい。)
その他、スランプや家庭の事情などで、プログラミング学習を中断してしまうことは仕方のないことですが、そうでないなら、なるべく自分に合った無理なく納得の行く方法で学習を続けることが望ましいです。
また、print文などの出力を覚えたての人に、「そこは関数を使ってこう書くとスムーズになる」と言われるのも、初心者の立場からしたら勘弁して欲しいです。
確かに基礎文法をある程度習得するとその通りだと納得するのですが、初心者の段階ではそのアドバイスでは混乱するだけですし、初心者にとっては、print文を書いてそのコードを人前に晒すだけでも、物凄い勇気のいることなんです。混乱によって挫折のリスクも高まるかも知れません・・・。
「あ、この人、初心者ながら頑張っているんだな・・・」と余計なことを言わず、温かい目で見てあげて下さい。 そうすると、必ず基礎文法を習得して、関数を使って処理をまとめて呼び出すことや引数を自在に使って出力結果を変えることも自分で出来るようになりますから。
プログラミングに限らず、スポーツでもダンスでも楽器でも、その段階、段階に応じて、必要な工程が異なります。
今の自分の段階、レベルに合った方法で学んでいくことが最も挫折しずらいですし、そういう余計なことを言う先輩のせいでプログラミングに挫折してしまうのは余りにも勿体無いと思います。
なので、プログラミングの先輩方に初心者の私から申し上げたいとは、余計なアドバイスをせずに「温かい目で見守ってあげること」 が、最も成長を促すのではないかと私は思います。
くどいようですが、アドバイスは「段階に応じて」異なって来ます。 先輩方は初心者を見て、色々言いたくなるかも知れませんが、その時間をあなたのスキルアップにした方が、プログラミングの挫折者を減らすと思います。
(挫折させたくて言っているのだとしたら、そう言う先輩は、プログラミグの前に「道徳」を学んで下さい。)
関連記事:プログラミング学習で関わってはいけない人と逃げるべき環境
あとは、ちょっと余談ですが、プログラミングに限らずWebデザイン系、Photoshop、などフリーランスに関するYouTuberの方って、胡散臭い方もいますよね(笑) 動画のサムネが過激で、
・その勉強法では稼げない ・失敗する人の特徴・やってはいけない勉強法 ・いつまで勉強してんの!?
みたいな。
一旦、深呼吸して下さい!
サムネが過激な方は警戒しましょう。
本当に実力があれば、サムネはシンプルで伝えやすくて視聴者さんが希望を持てるような内容にする と思うんです。
なので、これから本と並行して動画も見てPhotoshopの勉強をしていくことになりますが、サムネが過激な人や私のモチベーションを下げて絶望させるような動画投稿者、インフルエンサー、自称成功者には騙されないように気をつけたいと思います。
特に、この界隈の勉強をされる方には、絶対に詐欺に遭ってほしく無いので、消費生活センターのリンク を貼りました。
私も十分気をつけながら勉強をして経済的に自立出来るよう頑張りますが、皆様もくれぐれも変な人に 騙されないように気をつけて下さい!
また、ある方の動画では、「勉強沼」についての解説がありました。勉強沼 とは、勉強ばかりして稼いでいない状態のことです。 そこを抜け出して稼げる様になりましょうという内容でした。
それが良いのかどうなのか分かりません が、私には「急かされている、煽られている」様な気がして、パニックになって呼吸が苦しくなり、具合が悪くなりました。 なので、自分のメンタルや体調を崩すような情報は見ない様にしています。
急かされることで実力を発揮出来る人は、そのアドバイスに従って行けば、ドンドン稼げる様になるでしょう。
しかし、世の中そういう人ばかりではありません。
その勉強沼とは、ゴルフのバンカーの様なもので、バンカーから出ようともがけばもがく程、抜け出せそうな気がしてなりません。
だったらむしろ、その勉強沼を「温泉」だと思って、リラックスしてゆっくり浸かって、泉質を楽しんでみては如何でしょうか。
楽しんだ方が勉強の能率が上がって、むしろ気が付いていたら勉強沼(勉強温泉) を抜け出して美味しく牛乳を飲んで稼いでいた、なんてこともあるかも知れませんし、その方が私の特性や性格には向いているような気がします。
焦らせられると不安になったり体調を崩したりする私に近い方 は、絶対に無理しないで地道にコツコツとマイペースが1番なのではと、私は思いました。
勿論、これって「ただの私の感想」 ですので、そういう人もいるんだぐらいで、サラッと流して頂いても構いません。
ここまでご精読、誠にありがとうございました。 皆さまのプログラミング学習にお役立て出来ましたら幸いでございます。
私も、頑張ります!!!
プログラミングのアンケートにご協力頂ける方はこちらのフォーム で勉強法など色々と教えて下さい。
ポートフォリオ を作成しました。
自己紹介 メインメニューに戻る プログラミング学習で関わってはいけない人達と逃げるべき環 プログラミングと資格について