最初にプログラミングの独学の勉強法を志向したあなたは、プログラマー向き!
全くのプログラミング初心者であった管理人は、フリーランスのプログラマーになるまでの起業の過程で時間とお金を無駄にしました。
この経験をもとに、これから独学でプログラミングを勉強されるあなたが、気軽にスタートできて、かつ挫折しないプログラミングの学習法をお伝えします。
この記事を読むことで、プログラミング学習の初期にありがちな、①時間を無駄にする独学勉強法や、②プログラミングスクールに依存して、お金を無駄に使う学習法を回避することができます。
独学を志向した事自体に、すでに、プログラマーの素質があります。
プログラマーは、実務についてからは、なにかわからないことが起きてしまったときに、自力で解決するスキルが要求されます。
自分で書いたコードに問題があるときに、他人から、その解決策を導き出そうとしても、うまく解決できない場合が多く、解決までの間に時間がかかってしまうからです。
ただし、全くの初心者が、0から独学で勉強しようとすると、時間を無駄にすることもありますし、また難易度が高いと感じて、挫折してしまうこともあります。
だからといって、すぐにスクールに通うことも、お金や時間を無駄にしてしまうことが多いです。
プログラミング 独学 何から始める?
どのプログラミングスクールも初心者には、PHPというプログラミング言語を勧める傾向があります。
PHPの得意とするWEBプログラミングが、案件としての参入障壁が低い上、クラウドソーシングなどの案件募集サイトで、スクールの生徒に応募させ、案件を手掛けたという既成事実としてのポートフォリオを構築させるためです。
※ポートフォリオとは、プログラマーの作品集のようなものです。作品集としてのポートフォリオは、プログラミングの会社へ、プログラマーとして応募する際に、添付を要求されます。
一見案件を初心者がすくに受注できて、効率がよさそうに見えますが、WEBプログラマー以外には、つぶしが効かないというデメリットがあります。
たとえばサウンドプログラマーになりたいのなら、PHPからC++言語にプログラミング言語を移行する必要があります。しかし、C++言語をPHPのあとに勉強するには、障壁が大きいです。
WEBプログラマーを勧めるプログラミングスクールの中には、PHPとワードプレスというブログ構築システムを同時に学習させるスクールもあります。
ブログ構築システムといっても、世界中の企業のHPや博物館の公式HPの作成などで、使用されるプラットホームなので、制作案件の需要があるのが、その理由です。
初心者が何から、プログラミング言語をスタートすべきか?を考える3つの視点!
- 気軽に始められる。環境設定の難易度に依存しない。
- 次のプログラミング言語に移行するときに最初に選ぶプログラミング言語の経験が活きる!
- 充実したサポートが、無料で受けられる。公知の言語で大多数のユーザ−がいる。
VBAは、気軽に始められ、案件を受けるために必要な言語に移行しやすいです。
VBA(Visual Basic for Applications)とは、ExcelやAccessなどのOffice製品のアプリケーションソフトで利用できるプログラミング言語です。
VBAはエクセルやアクセスの中にプログラミング言語やライブラリーなどの統合システムが、組みこまれていて、あらたに統合システムをPC内に構築する必要がないからです。
またエクセル作業の自動化をプログラミングできます。
その結果、今現在、エクセルで仕事や学問をこなしているビジネスパーソンや、学生さんのモチベーションは、上がります。
日々のエクセルで何時間もかかるルーチン作業を、ボタンワンクリックで1秒で自動でこなしてくれるプログラミングを誰でも、作れるからです。
自動化することを、コンピュターの世界では、マクロといいます。マクロをプログラミングする言語は、他にもあります。
とくに、マイクロソフトのオフィスのアプリケーションソフトを自動化するためのマクロをプログラミングする言語は、VBAといわれます。
他のプログラミング言語の本などで、独学で勉強をスタートすると、目的がないまま勉強が進むので、挫折率が高いです。
ウインドウズユーザーなら、通常エクセルはofficeとセットにして、OSと一緒にインストールしているので、エクセルさえ起動することができれば、簡単にプログラミングの環境設定ができます。
※ライブラリーとは、プログラミングに使用するメッソッド(特定の作業をするためにコーディングされたもの)を集めたもの!
※統合システムというのは、単にプログラミング言語をマシン言語に変えて、コンピューターに実行するための環境にとどまらず、コーディングにあたって必要なシステムが、全てそろったものを意味します。上記ライブラリーも必要なシステムの一種です。
VBAからPHPやPythonへ
VBAは、C++から派生したプログラミング言語です。C++は、プログラミング言語の基本型といわれる言語なので、VBAからPHPやPythonへ言語を移行することが容易です。
他の言語では、この統合システムの環境設定をするためのハードルが高く、初心者では、この環境設定の段階で、つまずき、挫折してしまいやすいです。
たとえば、Pythonでは、Anacondaと言われる統合システムの環境を設定しないと、プログラミングができないという難点があります。
※Pythonは、google colaboratoryを使ってもプログラミングできます。ただし、Pythonを使用する上でのライブラリーを都度、コードを打ち込んでgoogle colaboratoryに読み込ませなければ、ならなく、初心者には、かなり困難を伴います。
C++がわかるようになると、たとえばWindows、macOS、Linuxなどの、OSをカスタマイズするといった高度のプログラミング
も可能になります。
VBAなら、公知のプログラミング言語なので多くの先輩ユーザーに無料で聞ける!
無料のプログラミング専用の質問サイトやQAサイトを利用すると、VBAに関しては、公知のプログラミング言語で、ユーザー数が多いので、すぐに質問にたいする回答が得られます。
代表的な無料プログラミング専用 QAサイトを紹介しておきます。
QAサイト テラテイル
- サイトの利用料は、完全無料なのに、質問への回答率は、90%以上です。
- 独学で、プログラミングを勉強している人には、最適です。
- メールアドレスだけで、アカウントを作れます。
プログラミングの独学勉強法は本を読んでも、無意味?
コーディングには、プログラミング言語を超えて、型のようなものがあります。
たとえば、①関数の宣言や、②関数に引数があるものと、ないもの、③引数に数値やデータを入れて、その関数で処理した結果を、値にして、④戻すといった共通の型のようなものがあります。
③で利用するのが、⑤変数です。変数の中に、値を入れて、その変数を引数にして、関数の処理を行わせます。
コンピューターに入力した値を、変数に記憶させ、この記憶された変数をプログラミングによって定立した関数に代入して、処理します。処理した結果を、値の形に戻して、出力し、この出力結果を、人が、プリントアウトしたりして利用するわけです。
関数で引数のないものは、関数での処理がプログラミング作業の中で、一回だけ行うものです。
引数というのは、その関数での同じ処理パターンを、入力する値を変えて、何度か行うときに必要な概念です。異なる値を使用させる際の公式の一部のようなものです。
処理が一度きりの関数なら、公式として、定立させる必要がないのです。
このような型は、どのプログラミング言語でも共通している型です。
個々のプログラミング言語によって、関数の宣言の仕方や、引数の書き方、変数の代入の仕方、変数をその関数に代入して処理した結果を出力する方法、などをコーディングしていく際に、表現方法に差が出てくるだけです。
こういう型は、ある意味で、実際にコーディングしてみて、わかることです。
5チャンネルより引用!
35:以下、5ちゃんねるからVIPがお送りします 2021/12/25(土) 09:31:13.866 ID:vU7A9QRg0XMAS
老舗のヒューマンアカデミーとか職業訓練校は流行り物は勉強してないけど基礎がしっかりしてるから積極採用している
流行り物なんて入社後にどうにでもなるからな
論理思考や基礎の方が重要
論理思考や基礎をしっかり指導するヒューマンアカデミーの資料はこちら
流行りもののプログラミング言語よりも、基礎的な型を教えるスクールは、企業の評価が、高いです。
入社後に、スクールで習った言語とは、異なるプログラミング言語で仕事をさせても、吸収が早いからです。
プログラミングの独学勉強法は、コーディングも書籍の精読も両者必要である。
このため、プログラミングはとかく手を動かすもので、本を読んでも何も得られないということがスクール系のブログや書籍でまことしやかに囁かれることがあります。
ただし、この型は、コンピューターの動きが、入力→記憶→処理→出力という流れに沿って、手続き的に進行していくという基礎知識がないと、なぜ異なるプログラミング言語で共通しているということに気づけないのです。
このようなコンピューターの基礎知識は、書籍などを通じて、系統立てて理解しないと、身につかないものなのです。
プログラミングを何から始める!コーディングからか?書籍を読むことからか?
いずれかという発想ではなく、ゴール達成に必要な要素なら、いずれも必要という発想が重要です。
どの分野のプログラマーになるとしても、実務にて一人立ちしてからは、独学で問題点の解決策を探したり、必要とあらば、検索した情報を組み合わせて、解決策を作ることも要求されてきます。
そのためには、コーディングのスキルだけではなく、ハードウェアーの基礎知識やプログラミングがなぜ動くのか?といった原理的で体系的な理解と知識が必要です。
自分の書いたプログラミングが、エラーを起こした際に、当該、エラーが、入力レベルでのトラブルか?処理レベルでのトラブルか?出力レベルでトラブルか?によって、解決策の方向性も変わってくるからです。
このような知識は、定評のある書籍を読むことで、得ることが可能です。
参考図書
コンピュータはなぜ動くのか-知っておきたいハードウエア&ソフトウエアの基礎知識-
著者名 矢沢久雄