月曜日, 7月 4, 2022
プログラミングの基礎を覚えた後は、自分がやりたい方向に進みましょう。 本格的にプログラミングを仕事にしたいなら、他の言語を含めてさらに学習してきましょう。プログラミング自体は仕事にしないが、仕事や私生活に生かしたい場合は、自分がやりたい事を実現できるプログラミング言語を学びましょう。 本格的にプログラミングを仕事にしたい場合、コンピュータの基礎を含めてプログラミングを深く知っておくことは様々な面で有利です。プログラミングを仕事にしている方の中には、コンピュータの基礎が曖昧な状態でなんとなくプログラミングを仕事にして、なんとなくやっている方も多いようです。これは、車の基礎を知らないのに、車の関係の仕事をしているような状態と同じです。例えば、車関係の仕事をアルバイトでやれば、なんとなくタイヤ交換できるし、オイルのチェックも出来るし、窓掃除も出来ますが、車がなぜ動くのかなど基本的な事を理解していないような方も多いでしょう。それでも仕事は出来ますが、それ以上の成長は見込めません。 プログラミングを仕事にするなら基礎からしっかり学ぼう 大学のコンピュータ関連学科ではコンピュータサイエンスの授業で、コンピュータの動作原理のような基本から学びます。Web関連の仕事の場合、JavaScript、PHPなどをより深く学習するのは必要ですが、サーバー側がどう動いているのかや、ネットワークに関する基礎知識など含めて深い知識も必要です。機械を動かすためには、コンピュータ自体の深い知識が必要ですが、それを操作するためのユーザーインターフェースなども重要になってきます。 プログラミング自体を仕事にしない場合 趣味で基礎を学んでも問題ないですが、自分がやりたい事を実現するために必要な知識をその都度学んでいけば良いでしょう。特定のプログラミング言語を深く学習するのも、コンピュータの基礎を学ぶのも良いですが、やりたい事だけをその都度学んでいくような方法でもなんとかなります。 仕事でプログラミングを生かしたい場合は、その都度対応するよりも、ある程度基本を学んだ上で、そのプログラミング言語で出来る事を定期的にアップデートしましょう。プログラミング言語自体は定期的にアップデートされ、それで出来る事の周辺環境も常に進化しています。今までやっていたことがより簡単にできるようになっていたり、より高度なことが簡単にできるようになっていることがよくあります。 毎日チェックする必要は無いですが、月に一度くらいは最近の状況をチェックしておきましょう。 プログラミングを深く学ぶと行き着く先
プログラミング言語を学習する際、どの言語を学習するかは重要です。始めに学習した言語が学習者にとって難解でつまらない物なら、ほとんど学習しない段階で投げ出してしまうでしょう。何らかのプログラミング言語でプログラミングとは何かの基礎を学んだ上で、自分に必要なプログラミング言語を学習するという流れが最適です。 初心者向けプログラミング言語 始めに学ぶべきプログラミング言語は、対象者、スキルレベルなどによって異なります。例えば、コンピュータのことをよく知っていて、コンピュータをしっかり制御したい場合などにはC言語が適しているかも知れませんし、Webデザイナー等で、サイトの改善のためにプログラミングが必要になった場合はJavaScriptかもしれないし、PHPかもしれません。コンピュータの操作もよくわからず、インストールなども難しい場合はScratchかもしれないです。 パソコンに関する操作が一通り問題なくでき、その言語をある程度覚えるだけで様々な事にも活用出来るプログラミング言語はPythonです。Pythonなら学習用にも、基本的な学習後の活用にもそのまま利用出来ます。 パソコンの操作がよくわからないし、何かのインストールや設定もよくわからないような場合には、JavaScript及びHTML、CSSが適しています。インストールなどは不要で、ファイルに文字を入力し、保存するスキルさえあれば、自分で何かを書いた結果がEdge、Safari、ChromeなどのWebブラウザに直接表示されるため、パソコンの操作に不慣れた人にでもプログラミングの基礎を学習できます。JavaScriptやHTMLなどは現在のインターネットの基礎になっており、これを覚えておけば今後様々な事に活用することも可能です。 パソコンの操作自体がよくわからないし、キーボード操作もおぼつかないような場合に適しているのはScratchです。Scratchはインストールなど不要で、Webブラウザでマウスからドラッグアンドドロップさえ出来ればある程度のことは可能になります。 ここで説明した中でScratchだけは学習に特化しているので、Scratchだけで様々な事に活用することは難しいですが、ここでプログラミングの基礎を学んだ後に、PythonやJavaScriptに進んでいくのが良いでしょう。 従来、表計算ソフトのExcelなどで高度なことをやる際にマクロで利用していたのはVBA(Visual Basic for Applications)でした。VBAでも様々な事が出来ましたが、Microsoftの環境でしか使えませんでした。ExcelでもJavaScriptを使ってマクロを実行できるようになったため、より一般的なプログラミング言語で活用出来るようになっています。同じようにGoogleドキュメントでもJavaScriptは利用出来るなど、様々なソフトでJavaScriptに対応しています。何らかのアプリケーションソフトを使うのでなく、アプリケーションソフトを活用する際にJavaScriptの知識があれば様々な事が出来るようになります。 そのため、JavaScriptはある程度コンピュータを高度に使いたい方向けの基礎知識になりつつあります。

プログラミングとは

0
プログラミングとは、コンピュータに対して、コンピュータにやって欲しいことを命令を書くことです。コンピュータは命令しなければ何もしないし、して欲しい事を聞くこともないので、人間が何らかの命令をしなければ動きません。コンピュータにやって欲しい事がある場合はプログラミングをします。プログラミングして出来るのがソフトウェアで、アプリ等とも言われています。そのソフトウェアを動かすためのパソコンやスマートフォンの本体のことをハードウェアと言います。 プログラミングをしなくても使えるコンピュータ ここで言うコンピュータのハードウェアは、パソコンやスマートフォンの事です。これらの機器を買ってくると、電源を入れて、アイコンをタップするなどすれば自分がやりたいことが出来るようになっています。これは既にパソコンメーカー、そのスマートフォンにソフトを提供しているメーカーなどが、プログラミングをして使えるソフトを使えるような状態にしているからで、既にプログラミングされた製品を使っている状態です。 つまり、プログラミングは他の人によってされていて、自分ではプログラミングしなくても便利に使えるのが現在のパソコンやスマートフォンです。 自分でプログラミングをする必要はあるのか プログラミングはすべての人には必要ではありません。販売しているパソコンやスマートフォンで使うような高度なソフトは大勢が何ヶ月もかけて作っているので、個人で作ろうと思ってもそう簡単にはできません。 しかし、ちょっとした事なら誰でも簡単にプログラミングできます。 例えば、ある所からある所にデータをコピー作業が沢山ある場合、マウスでデータをコピー、そのデータを貼り付けというのをその回数手動でやらなければいけないような事はよくあります。そのような作業を自分でプログラミングして、一発で終わらせるような事もプログラミングです。 その作業が1回30秒かかっていて、それを120回やらないと行けない場合、手動では1時間かかります。その作業のプログラミングが3分で終わった場合、残りの57分は他のことが出来ます。これを毎日やる場合、1回3分間プログラミングしただけで、月に数十時間節約できます。 このように、プログラミングは人が楽するために使う物で、そのためにプログラミングを学習します。
日本では小学校が2020年度からプログラミング教育が必修化されました。中学校でも2021年度から、高校では2022年度から必修化されたと理解している方が多いですが、中学では2011年度、普通課高校では2003年度から必修化されており、2021年、2022年度からは新しい教育指導要綱での対応になっただけで、基本は変わっていません。 このプログラミング教育のために、自宅での学習の準備をする方もいるようですが、どのような準備が必要になるでしょうか。 プログラミング教育とは プログラミング教育とは論理的思考能力を育てることです。 全員をプログラマーにするという教育ではなく、コンピューターの基本原理を学び、プログラミングの基本となる論理的な思考能力を学び、様々な環境でそれを生かしてもらう事を意図しています。数学で数学者を育ているのではなく、技術で大工を育てようとしているのではないのと同じ考えで、問題解決能力を身につける事などが教育の目的です。 文部科学省の手引き等などでは次のように説明しています。 小学校・総則において,各教科等の特質に応じて,「プログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動 」を計画的に実施することを新たに明記 ・算数,理科,総合的な学習の時間において,プログラミングを行う学習場面を例示中学校・技術・家庭科技術分野において,プログラミングに関する内容を充実 (「計測・制御のプログラミング」に加え,「ネットワークを利用した双方向性のあるコンテンツの プログラミング」について学ぶ)高等学校・全ての生徒が必ず履修する科目(共通必履修科目)「情報I」を新設し,全ての生徒が,プログラミングのほか,ネットワーク(情報セキュリティを含む)やデータベースの基礎等について学ぶ ・「情報II」(選択科目)では,プログラミング等について更に発展的に学ぶhttps://www.mext.go.jp/content/20200608-mxt_jogai01-000003284_004.pdf 具体的に小学校では次のように説明されています。
IT機器はOS毎に環境が異なるため、それぞれのOS向けにソフトを開発する必要があります。Windows、macOS、Android、iPhoneなど向けのソフトは、それぞれの開発環境で、個別に開発するのが通常です。 各環境のアプリを開発には、それぞれの開発環境で開発する必要があり、プログラミング言語もそれぞれ異なるなど、各環境に合わせて個別に開発するのが通常です。それぞれの開発環境で個別に開発するのは単純にそれだけ労力やコストがかかります。そのような労力をかけずに、1つの環境で開発するだけで、複数の環境の開発が出来るクロスプラットフォーム開発もあります。 クロスプロットフォーム(厳密に言えばクロスプラットフォームソフトウェア)とは、AndroidとiPhoneなどOSが異なる環境で、同じ機能を持つソフトが動作するようなことを指す言葉です。マルチプラットフォームなどもほぼ同じ意味ですが、微妙なニュアンスはこの用語を使う方や、コンテキストによって異なります。 例えばAndroidではKotlin、iPhoneではSwiftと、それぞれの言語、開発環境が必要ですが、クロスプラットフォームで開発すれば、1つだけでAndriod向け、iPhone向けに開発が可能です。iPhone向けなら最終的にはMacが必要になりますが、基本的な開発自体はすべて1台のパソコンで可能です。 クロスプラットフォーム開発環境 主なクロスプラットフォームの開発環境は次のようになっています。 XamarinFlutterReact NativeKotlin/Native対応プラットフォームWindows、macOS、iOS、AndroidなどWindows、macOS、iOS、Android、WebなどWindows、macOS、iOS、Android、WebなどWindows、macOS、iOS、Androidなど言語C#DartJavaScriptKotlin主な提供元MicrosoftGoogleFacebookJetBrains それぞれの開発環境、対応プラットフォームなどは異なり、特徴も異なるので、単純にどれが良いか悪いかは判断できません。