みなさん、おはようございます!タカハシ(@ntakahashi0505)です。
こちらの記事は、タカハシが音声メディアVoicyの「スキルアップラジオ」にて放送した内容から、ピックアップしてお届けします!
今回のテーマは、プログラミング上達のための8つの約束【2024年版】です。
なお、以下で実際にお聴きいただくこともできます!
では、よろしくお願いいたします!
プログラミング上達のための8つの約束
さて今日は、2024年版プログラミング上達のための8つの約束、こちらについてお送りしていきたいと思います。
身につけたいスキルの1つ、プログラミングなのですが、何も考えずに始めてしまうと結構大変でして、挫折してしまう、そういったことも少なくないわけです。
そういったことにならないように、ぜひ押さえていただきたい8つのポイントお伝えしていきます。
この8つの約束は、初心者の方が効果的にスムーズに上達していただくためのポイントをお伝えしているものです。学習コミュニティ・ノンプロ研の初心者プログラミング講座の事前課題としてもお伝えしている、そういったものになります。
8つあるので「覚えるの大変」って思われるかもしれませんが、どれもとても大切なので、ぜひマスターいただければと思います。
実務で使う
まず1つ目が「実務で使う」というものです。
大事なのは実務で使えるかどうか
今、リスキリングにおいてデジタルのスキル、非常に注目されているわけなのですが、安易にGoogle検索などをして見つけたプログラミング言語、それを学び始めると結構痛い目を見たりします。
というのも、実務で使えない言語を選んでしまうという、そういった罠があるのです。
ウェブサイトを作ったりとかスマホアプリを作ったりとか、そういったものはプログラミングとして非常に魅力的なのですが、ノンプログラマーの場合は、それらの技術をいくら学んでも今の仕事では使えないという問題があります。
そうなると、プログラミングに触れる時間はプライベートの時間であったり、土日であったりとか、夜、その時間を削って作るしかありませんし、プログラミング学習のゴールのイメージがわきづらいので、学習効果もなかなか上がらないのです。
したがって、まず重要なのは、実務で使えるプログラミング言語を選ぶということになります。
実務に即した言語を学ぶメリット
Excel仕事のルーチンワークが多いのであれば、Excelを操作するのが得意なVBAという言語を使うのがいいですし、Google系のスプレッドシートとかGmailを使っているのであれば、Google Apps Scriptが得意とする領域なんです。
そういったルーチンワークは、かなりプログラミングの得意分野なので、そういうのを見つけて、それを自動化、効率化できる言語を選ぶということなのです。
そのようにすることで、まずはゴールのイメージがはっきりしてきますので、学習効果が上がります。
さらに、業務時間内にプログラミングに触れることができますので、イコール学習時間を兼ねることができるわけです。
さらに、そのルーチンワークを自動化することができるのであれば、新たな時間を生み出すことができます。
もっとプログラミングに触れられる時間を増やせるかもしれません。そうなればこっちのものという感じです。どんどんスキルを上げてっていただければと思います。
習慣化する
2つ目は、「習慣化する」というものです。
脳の仕組み
プログラミングを学習すると、これまで知らなかったキーワードとか概念とか、そういったものが山ほど出てくるのです。
そういった新たな情報をせっかく覚えたのに、すぐ忘れてしまう。だから自分はプログラミング向いてない。そういう風に感じてしまう方、少なくないんですけれども、それは正常な現象なのです。
というのも、人間の脳みそというのは、覚えたことを翌日にはほとんど忘れるようにできているのです。
具体的には、脳の中の海馬という器官が、新しい情報を記憶させるのか忘れさせるのか、これを仕分けする活動をしています。そして、この海馬は結構な場合で情報を忘れさせてしまう、そういった仕分けをするのです。
習慣化は記憶のため
では、記憶される情報というのはどういったものになるのでしょうか。それは、「繰り返し与えられる情報や活用された情報」と言われています。
つまり、頻繁にインプットやアウトプットされた情報が記憶されやすい、ということなのです。まとめてがっちり学習時間を取るよりも、分散してちょこちょこ学習時間を取る方が有利ということになります。
そして、それは毎日学習時間を取るという習慣化によって成し遂げられるわけです。
理想は、毎日1時間とかカレンダーに予定を確保して、そこで学習に取り組んでいただくというのが良いと思います。
ぜひ、みなさんの生活スタイルに合った習慣化チャレンジを、してみていただければと思います。
構文どおりに書く
続いて3つ目ですが、「構文どおりに書く」というものです。
プログラミングはルールが決まっていて、正しく書けば、必ず正しく動くようにできています。
ただし、人というものは100パーセント正確に覚えていて、それを正確にアウトプットするというのは苦手なのです。
そのようなあやふやな記憶に頼って、「確かこうやって書いたはずなんだけど。お願い、動いて!」みたいな感じでコードを入力したとしても、ちょっとでも間違えているのであれば、エラーになっちゃうわけです。
悲しいかな、僕たちは学校の勉強の癖で、正確に覚えて、その記憶をそのまま引っ張り出す、それが正しい勉強だと教わってきてしまっているので、そういう癖がついちゃっているのです。
でも実際は、それは得意じゃありませんので、「記憶に頼るのはやめましょう」ということです。
本とかネットとか、今で言うと生成AIとか、そういったものを頼りにして、正しい構文を参照しましょう、そして、その通りに書けばオッケーということになります。
曖昧な記憶に頼るのはやめましょう、ということです。
調べて、頼る
次の4つ目ですが、「調べて、頼る」というものです。
わからないときは調べる
プログラミングをしていてエラーが出た時、この先をどう書いていいかわからない、こういった時どうしたらいいんだろう、と考え込んで固まってしまうということがあるのです。
ただ、ちょっと考えてわからないのであれば、あなたの脳みその中に情報がないということなので、いくら頭を回転させてきても答えは出なかったりするわけです。
ではどうするかと言うと、さっさと調べるということをします。
Google検索はもちろんなのですが、最近で言えば生成AIはめっちゃ使いますね。
それでもわからないときは他人を頼る
しかし、そのように自分で調べようとしても、どうしてもわからない時というのが出てきます。
そういった場合は、他人を頼るようにしてください。
これに関して有名な「Googleの15分ルール」というのがあります。
これはどういったものかというと、何か問題が起きた時、最初の15分は自分自身で解決を試みる。そして15分後も解決していなかったのであれば、必ず人に聞く。このようにしようというものです。
なぜなら、前者を守らないのであれば他人の時間を無駄にしますし、後者を守らないのであれば自分の時間を無駄にしてしまう、そういった理由があるからです。
質問は正義
コミュニティ・ノンプロ研では、「質問は正義」という言葉で、これをみなさんに促しています。
誰かが分からないことがあるのであれば、他のコミュニティのメンバーもそれを知りたいかもしれません。だから、質問をしましょうということです。
そして、その質問に回答するメンバーがいてくださるのですが、教えることは2度学ぶこと、回答することで、その件についてより深く理解することができます。
つまり、人を頼って質問をするということは、コミュニティへの貢献にもなるわけです。
ぜひ、そういった関係性のコミュニティを見つけて、人を頼れるように環境を整えてみてください。
打ってはいけない
さて、5つ目です。「打ってはいけない」というものです。
人は正確に打つのが苦手
「構文通りに書く」でお伝えした通り、プログラムはちょっとでもスペルを間違えるとエラーが出て動きません。スペルはもちろん、ほとんどの言語では大文字とか小文字、これを間違っても動かないのです。
人は正確にキーボードを打つというのもそんなに得意ではありません。
慣れないアルファベットとか記号、頑張って1つ1つ手打ちしたりしても、どうしても間違ってしまうことはあるんです。
予測変換インテリセンスの活用
ではどうすればいいかと言うと、文明の力を使ってください。そしてキーボードをいちいち打つことなく、コードを書きましょうということなのです。
たとえば、プログラミングで使用するソフト、エディタと言いますが、多くのエディタには、インテリセンスと言って、自動でキーワードを保管してくれたりとか、次のキーワードを予測して一覧化してくれたりとか、そういった機能が搭載されているのです。
それらの機能を使うことで、1文字1文字丁寧に打たなくてもコードを入力していくことができるということです。
さらに、最近で言えばAIも使えますよね。
これらの機能や技術を使うことで、確実かつ素早くコードを書くことができるようになりますので、ぜひ使いこなしていただければと思います。
構造化データを使う
6つ目は、「構造化データを使う」というものです。
構造化データと非構造化データ
データには、大きく分けて2種類あります。構造化データと非構造化データです。
構造化データというのは、データベースなどコンピューターが、データを操作するのに適した構造で置かれているデータのことを言います。
ノンプログラマーであれば、データを置くことが多いのは、Excelやスプレッドシートなどの表計算ソフトだと思います。
こちらのソフトを使うのであれば、縦横に綺麗にデータを敷き詰めた「テーブル」という構造で置くと、構造化データとして扱うことができます。
一方で、非構造化データというのは、書類ファイルだとかメールだとか、ウェブコンテンツなど、特定の構造を持たないデータのことを言います。
実際、仕事で扱うデータはほとんど非構造化データと言っていいんじゃないかなと思います。
このデータの置き方に関して、少なくない非IT部門で言うと、データの置き場としてExcelとかスプレッドシートを使っていると思います。
そして、そのデータの置き方が「非構造化データになっている」ということが少なくないわけです。
コンピューターが扱いやすい構造化データ
人にデータを入力してもらったり、人にデータを見せるために作られていたり、そういった目的であれば非構造化データは望ましいですが、コンピューターの力を借りようとした場合はそうはいかないのです。
というのも、非構造化データはコンピューターで扱うには向いていないデータ構造になりますので、それに対して無理やりプログラミングをしていこうとすると、とても複雑なプログラムを組まなくてはいけなくなる、そういったことになってしまいやすいのです。
そして、プログラミング初心者はその非構造化データは扱いづらいということを知りませんので、無理してそれに立ち向かってしまい、撃沈するみたいなことが結構起きてしまっています。
しかし、その場合、データの置き方を適切なものにするだけで、割と簡単にクリアできるものだった、ということもあるのです。
ということで、みなさんの現場で使っているデータ、これからプログラミングで扱おうとするのであれば、それが構造化データなのかというのをきちんと確認していただければと思います。
読みやすいコードを書く
さて7つ目ですが、「読みやすいコードを書く」というものです。
プログラムを運用するために
読みやすいコードというのは、人が読んで早く解読できるコード、これを読みやすいコードと言います。「リーダブルコード」などとも言いますね。
初心者のうちはとにかく動かすことに夢中になってコードを書きますので、動いたらオッケー、あとはコードを見ない、こういったことになりがちなのですが、それはあまり良くないのです。
というのも、そのプログラムを運用する必要があります。
たとえば、ある時不具合が発生するようになった、機能を追加したくなった、そういったタイミングに再度コードを確認する、そして、そのコードを直すタイミングがやってくるのです。
そしてその時、自分が書いたコードであったとしても、どんなことをしているコードなのか読み解くのにものすごく苦労をしてしまうということがよくあるのです。
そういう読みづらいコードのままどんどん作ってたくさん運用するようになると、保守とかメンテナンスで自分の首を絞めるようになってきます。
そうならないように、未来の自分やチームメイトが見た時に読みやすいコードを書いておこう、ということなのです。
さらに、読みやすいコードを残しておくのであれば、別のプログラムを作ろうとした時にそれを参考にできたりとか、部分的に再利用したりとか、そういったことがしやすくなりますので、むしろ資産になります。
生成AIの活用
今で言うとChatGPTなど生成AIを使ってコードを解説してもらうということもできるのですが、生成AIを使わなくても読めるというのがやはり1番ではあります。
なお、あるコードを読みやすく書き直す、そういったタスクにも生成AIを使うことができますので、ぜひ活用してみていただければと思います。
アウトプット
さて最後、8つ目ですが、「アウトプット」になります。
僕らは学校での習慣から、学習というと、本を読む、先生の話を聞く、そういったインプットをイメージしてしまっているんです。
しかし、学習をする際のインプットとアウトプットの適切な比率は4対6、もしくは3対7と言われています。
つまり、アウトプットの比率を意図的に増やして、6割から7割確保したいということになります。
本職のプログラマーのみなさんは、チームでプログラミングについて会話をしたり、社内勉強会を開いたり、教え合ったり、ドキュメントを書いたり、ブログを書いたり、そういったアウトプットの機械がそれなりにあって、かつ積極的に取り組まれているのです。
しかし、非IT職ノンプログラマーの場合は、社内にそういった仲間がいない、環境がないということが少なくありません。
ですから、本を読む、動画を見るといったインプットに偏りがちなのです。
しかし、先ほどお伝えした通り、アウトプットの確保ができないと学習効率が悪くなってしまいます。
したがって、かなり意識してアウトプットの機会を確保しないといけないということなのです。
具体的には、XなどのSNSで発信する、ブログを書く、社内で勉強会を開催してみる、コミュニティに参加してコミュニケーションをしてみる、イベントに参加してみる。そういった機会を積極的に取っていただきたい、このように思います。
8つの約束のおさらい
プログラミング上達のための8つの約束、お伝えしてきました。
これを実践するのとしないのとでは大違いですので、ぜひみなさんしっかり守っていただければと思います。
おさらいしますと、「実務で使う」、「習慣化する」、「構文どおりに書く」、「調べて、頼る」、「打ってはいけない」、「構造化データを使う」、「読みやすいコードを書く」、「アウトプット」、以上8つの約束となります。
ぜひご活用いただければと思います。
まとめ
ということで、今日はVoicy「スキルアップラジオ」の放送から「プログラミング上達のための8つの約束【2024年版】」をお届けしました。
ぜひ、これからプログラミング学ぼうという方、みなさんに聞いていただきたいなと思います。ぜひご活用ください。
そして、今日の放送は実は、第31回プログラミング上達のための8つの約束、それのリニューアル版になります。から回りお父さんから「パワーアップしたタカハシさんの話し方でリメイクしてほしい」と、こういったリクエストがありましたので、お送りしました。
特に生成AIなんか入ってきて、少しずつニュアンスが変わっている部分もありましたので、それも含めて、刷新をさせていただいたという形になります。
ぜひ、こういった放送を聞きたいなみたいなリクエストがあれば、ぜひ遠慮なくコメントいただければと思います。お待ちしております。
タカハシのVoicyの放送はこちらからお聴きいただけます。
チャンネルのフォロー、コメント、SNSでのシェアなどなど、楽しみにお待ちしております。
では、また。