;
プログラミングを仕事とするか、趣味とするか?
これは最初の選択で最も重要です。
世の中では、java、PHP、JavaScript、Python等が上位を占めていますが、「その理由は求人数が多い」からです。即ち、仕事にする場合の順位です。
ただ、いくらIT業界のプログラマーが不足しているからといっても、いまこのホームページを読んで学習しようと思っているプログラミング初心者を雇う程、プログラミングは簡単ではありません。
基礎知識だけでもし就職先が決まっても、他人の書いたソフトの読解、難解なデバッグ、納期が待ち受けています。
楽しさを知らずに、苦しさだけを味わって、プログラマーを辞めてしまう人も多くいます。
プログラミングの楽しさを理解し、経験を詰み、必要な技術を覚えていくことでプログラマーを職業とできるようになります。
でも、趣味としてプログラミングを学ぶのならば、このような苦しさを味わう必要は全くありません。プログラミングの楽しいと感じる部分だけを知り、「またプログラミングをやってみたい」と思えれば、趣味にできます。
デバッグ作業がプログラミングを趣味から遠ざける
その「楽しさ」や「達成感」を味わうためのハードルが「デバッグ」作業です。
「デバッグ」とは、ソフトウェアが思い通り動作するように、間違っているプログラミング部分を探し、修正する作業のこと。
職業の場合、プログラマーとして一人前になるまでは、他人が作ったプログラムの読解を命じられ、その一部を手直しする作業が基本
そのプログラミング言語自体を勉強して、何が書かれているかを理解できれば良いのですが、難解なプログラミングも多く、デバッグ作業の繰り返しがプログラミングと思ってしまう人も多くいます。
マラソンで言うと、「息が苦しい後のゴールまで走った時の達成感」、釣りで言うと、「我慢して釣り竿の先や浮きを見続け、魚を釣り上げた時の楽しさ」と同じようなものです。
その後の達成感を味わえれば良いのですが、「ゴールが見えない」、「魚が全く釣れずにボーズ」という日々が続くと嫌になってしまいますよね。
プログラミングも同じです。プログラミングの楽しさを実感することが重要です。
まずはプログラミングを趣味の一つとして始めてみて、その楽しさを実感してから「デバッグ」を体感し、自分に適正があるかを確認してみては如何でしょうか?
プログラミングの楽しさは何といっても「考えること」です。では、それを実現し易いプログラミング言語とは何でしょう?
難しい入出力部分を簡単に取り扱えるのがC#とエクセル(excel)のVBA
それを早期に実現できるプログラミング言語で、私の第1のお薦めは
C#です。
私が使っているPCがWindowsなので、アップルについては分かりません。ごめんなさい。
理由はGUI。GUIとはグラフィック・ユーザ・インターフェースのことで、入出力方法が可視的に分かり易いのが特徴です。
例えば、下のプログラミングは私が作ったもの。
点で出来た3D画像をポリゴンという三角形の集合体に変換し、色々な方向から見るというプログラムです。
デザインには目をつぶって頂いて、ボタンや調整つまみ等、可視的に分かり易い機構がたくさん付いていますよね?
C#はこのような入力・出力が非常に簡単にできるように工夫されています。GUI用に作られたプログラム言語です。
ボタンを作るのもクリック・ペースト処理のみ。この入力と出力機能を、他のプログラミング言語で実現しようとすると相当難しいです。
「可視的に見える」とデバッグ時の問題点を探す情報出力も挿入が簡単で、デバッグが行い易く、上記の「考えること」に注力できます。
次にお薦めなのがエクセル(excel)のマクロであるVBA(ビジュアルベーシック)。
エクセルは皆さんも一度は利用したことがあるのではないでしょうか?
何といってもエクセルの優れた部分は表管理。
その表の中の一つ一つのセルに数式を入れて計算したり、グラフにしたりできるのが魅力です。
でも、式が複雑になると、セルの中には納まりきらない・・・表計算を手動でやる作業を自動でやりたい・・・・等の願望が出てきます。
そんな時に使うのがVBA。下のプログラミングは私が作ったもの。
光線軸がレンズでどのように屈折して光が集光するかを3次元で光線追跡する光学設計ソフトです。
光学設計の数値を取り扱うのはエクセル(excel)が便利ですが、光線追跡を3次元の計算で行うのは大変。
こんな時にはエクセル(excel)のVBAを使って複雑な計算や光線や収差の画像表示を行うのが良いです。
でもVBAは計算が遅いのが難点。ではエクセル(excel)は入力のみに使い、エクセル情報をC#で読み取って、処理速度の速いC#で計算、色々な情報を出力なんてこともできます。
下のプログラミングがエクセル(excel)のデータを読み取り、C#で計算、表示した例です。
これはあくまでも一例、皆さんの作りたい何かを「考えて実現」するにはGUIがお薦めです。
勿論、シミュレーションからゲームまで色々な分野に挑戦できます。
また市販されている「画像処理ソフト」や「ホームページ作成ソフト」も自分のオリジナルが作れてしまいます。下は私が作った例です。このソフトを利用して本ホームページも作成しています。
ちなみにIT業界から求人が多いとされるjava、PHP、JavaScript、PythonはCUI、キャラクター・ユーザ・インターフェースです。
これは「コマンドプロンプト」という黒い画面に文字入力だけで作業を行います。殆どがキーボードからの入力です。
サーバーやインターフェースの管理や複数の技術者による共同開発、色々なOSに対応可能等の利点があります。
でもWindowsが搭載されたPC上で、初心者が趣味としてプログラミングの楽しさを味わうのでしたら、CUIの選択はありません。
あなたもC#やエクセル(excel)のVBAを使って、プログラミングの楽しさを感じてみては如何でしょうか?