こんにちは、皆さん。当サイトにお越しいただき、誠にありがとうございます。
当サイトを担当しているのは、還暦も過ぎた世間では「お爺さん」の、元プログラマーであり、サンデープログラマーでもあります。大それた事は出来ませんが、プログラムに関して初心者の方を中心に、色々とアドバイス出来たら良いなぁと思います。
まぁ、プログラミングに関しては、特に「資格」とかは持っていないのですが、プログラミング歴に関しては、役に立たない物を結構作っていますが(笑)、可なり長い歴史を持っています。そうですね、足掛け40年位はあるでしょうか(笑)。
勿論、40年間プログラマーをしていた分けではなく、他の職業にも就いていたのですが、元プログラマーの時代は主にオフコンでしたね。サンデープログラマーの時は、今もそうですがパソコンです。
パソコンに関しては、「MS-DOS」~「Windows」まで、ずっと「DOS/V」系だったので、「macOS」や「Linux」に関しては、初心者と何も変わりません。
ただ、OS環境が変わっても、プログラミング自体は、高級言語になればなる程、「OS間の差」は吸収されるので、共通する部分もかなり沢山あると思います。
まぁ、職業に携わっている分けでは無いので、最新の物は解説できませんが、プログラミングの基本とかは、解説できると思います。そして、基本とかを理解していると、イザという時に役に立ったりすると思います。
それでは、当サイトには、どんな「コンテンツ」があるのかを、大まかに見てみましょう。あくまでも、現時点で考えていることなので、将来的に変更することは大いにあります(笑)。
プログラミングにおける環境とは?
先ずは、環境を整えることが重要です。当サイトでは、プログラミングの理論よりも、実践を行うことによって、徐々に理論も理解して行こうという試みです。
例えば、運動の世界を例にとれば、分かり易いと思います。「運動理論」を幾ら理解していても、実戦では使えません、というか「体」が対応できません。プログラミングの世界も、それと同じなんです。
先ずは、基礎的な体力を付けることが重要です。そして、基本的なことが出来るようになるのが重要です。その上で、「理論」というのが重要になってきます。
基礎的な体力を付けるには、どうすれば良いのでしょうか?
それには、具体的で簡単なことを、繰り返し行うことです。とは言っても、プログラマーになる分けでは無いので、その辺りは適当にしましょう(笑)。
しかし、その為にも、先ずは環境を作りましょう。実は、この環境と言っても、世の中には「有償/無償」のものが、沢山あります。ですから、スキル(熟練)に応じて、色々と選択する分けですが、当サイトでは、初心者の方を対象にしているので、一切お金が掛からないようにしています。m(_ _)m
そうですね、お金が掛からない環境は、世の中に沢山あるのですが、有名な所では「C#」と「Java」の環境が、双璧でしょうか?
お金が掛からない方が、良いという分けでは無いのですが、先ずは無料から始める方が、無難だと思います。そういう意味で、Microsoft 社の「Visual Studio Community」は、お勧めします。勿論、「Java」でも同じなんですが。
「Visual Studio Community」の場合は、本家本元の環境なので、安心して使えると思います。また、個人で使う場合や、小規模の会社で使う場合や、学生さんが研究開発で使う場合は、無料で使うことが出来ます。
Visual Studio Community では、どんなことが出来るのですか?
ということなんですが、結論からいうと、努力次第で何でも出来ます。その可能性は、無限大です。個人で使い熟すのは不可能なくらい、何でもあります。
そうですね、メジャーな言語は、殆どサポートされています。また、「デスクトップ」は勿論のこと、「Web 関係」や「モバイル関係」、「ゲーム関係」や「Office 関係」まであります。
その中で、当サイトが使用するのは、最も標準的な「.NET デスクトップ開発」だけです。m(_ _)m
この設定は、後から幾らでも変更出来るので、スキルに応じて追加して行けば、良いと思います。デスクトップ開発だけでも、相当大きな環境なので、SSD(推奨) や HDD の容量を確認して置きましょう。
プログラミングとは何でしょうか?
コンピューターというのは、「ハードウェア(本体と周辺機器)」と、「ソフトウェア(プログラム)」で、構成されています。それぞれが、独立して作成されています。
本来は、「ハードウェア」が優先して、それから「ソフトウェア」が追いかける、というのが普通の発想だと思いますが、昨今のコンピューター業界は、「ソフトウェア」の方が優先している感じです。
そして、「ソフトウェア」を作る過程を、プログラミングと言います。要するに、「プログラム」を作るということです。
実は、プログラムを作成する言語というのは、非常に沢山あります。それぞれに分野が異なっています。大きく分けると、次のような関係になります。
項 目 | OS等の分野 | アプリケーション等 の分野 | WEB等の分野 |
---|---|---|---|
分 野 | * Windows 等のOS * 周辺機器のドライバー等 * 言語等の総合環境 * Office 等の総合環境 * 大規模なゲーム等 | * グラフィックス関係 * データーベース関係 * それに関連するシステム * 一般的なアプリ等 * Office 等の使用環境 * 一般的なゲーム等 | * ブラウザを使用する環境 * ホームページ等 * CMS環境 * 総合WEB環境 * サーバー環境 |
主な言語 | ASM、C、C++、 MFC、WPF、C#、Java | C、C++、MFC、 C#、VB、WPF、 Java、Python、 Office 言語、 COBOL、FORTRAN | HTML、CSS、 PHP、Python、CGI、JavaScript、TypeScript、 スクリプト言語 |
難しさ | * 非常に難しい * 非常に広い知識が必要 * 大勢で作ります * プロの領域です | * ピンからキリまで * アプリの知識が必要 * 個人から大勢まで * 初心者でも出来ます | * ピンからキリまで * 何を表現するのか * 個人から大勢まで * 初心者でも出来ます |
当サイト | 扱いません | C# | HTML、CSS |
どんな事が出来るのでしょうか?
ハッキリ言って、分かりません。遣ろうと思えば何でも出来ますし、特に必要でなければ必要もありません(笑)。そうですね、初心者の方にとっては、何も出来ないよりは、少しは出来る方が良いかな?、という感じでしょうか。
私も、それで良いと思います。例えば、コンピューターですから、「計算」ですよね。電卓では出来ない複雑なことを、コンピューターは出来る分けです。
しかし、初心者の方が、一からプログラムを組むというのは敷居が高いので、「Office スイート」とかの総合環境が人気な分けです。実用的でもあります。
というのは、「C#」で「Office 相当」の事をしようとすれば、天文学的に出来ません(笑)。ですから、「Office 環境」は「Office 環境」なんです。私も、持っています(笑)。
ということで、頑張りましょう。
当サイトで扱う範囲を確認して置きましょう。
そうですね、基本的には「C#」が、メインになります。同じような言語としては、「VB」もあります。この両者は殆ど似ているので、何方か一方が出来ると、他方も理解出来るようになります。
「.NET Framework」を使用する言語は、殆ど似ています。また、マネージド言語なので、初心者の方でも安心して使うことができます。
それ以外には、「HTML」と「CSS」とかも、まだまだ駆け出しではありますが、記事を書いてみたいと思います。まぁ今時は、一番面白い(興味がある)、言語かも知れません。
そして基本的には、個人で扱うものなので、「帯に短し、襷に長し」的なアプリケーションを作りながら、色々と解説して見たいと思います。
それと、プログラミングが出来るからと言って、自分で作ったものを日常で使うということは、実は余りありません(笑)。しかし、別の何かをする時や、職業で必要になる時があるので、その時に役に立つと思います。
また、 無料の環境が、「ベスト」という分けではありません。飽くまでも、スタートラインとしての環境です。会社が大きく成れば、当然無料ではなくなります(笑)。それと、未来永劫、無料になるとは限りません(汗)。
まぁしかし、私のポリシーは、何時も「Take it easy.」です。水の流れのように。
C# とはどんな言語でしょうか?
初心者の方にとっては、「C#」と聞いても、何のことか分からないと思います。もしかすると、「C♭」とかも有るのかな?と思うでしょうが、ありません(笑)。
実は、プログラム言語には、「高級言語」と「低級言語」というのがあります。「高級言語」の代表格は、「一般的なBASIC」です。低級言語の代表格が、「ASM(アセンブラ) と C(シー)」です。
プログラムの難しさは、「低級言語」になればなる程、難しくなります。しかし、高速に動作するようになります。逆に、「高級言語」になればなる程、簡単にはなりますが動作が遅くなります。
「難しさ」と「動作速度」は、反比例(トレードオフ)の関係にあると言っても、過言ではありません。そして「C#」は色んな意味で、丁度「高級言語」と、「低級言語」の中間にある言語です。
そうですね、「C#」が発表される前のプログラマーからすると、「夢のような言語」だったんです。理想的とも言える言語で、「簡単であるのに高速で動作する」というように。
私はそれまでに、「ASM、C、BASIC」は、一通り経験していたのですが、主に使っていたのは「BASIC」の方だったので、直ぐに「C#」に傾倒しました。m(_ _)m
C# の良さは何でしょうか?
まぁ良い所を数えると切りが無いのですが、一言でいうと「マネージド言語」だということでしょうか。日本語でいうと、「管理された言語」でしょうか?
説明すると、本来プログラマーには、実態としてのプログラム以外にも、気を付けなければ行けない事柄というのがあります。そしてその事柄は、結構「OS」とかにも、影響する場合があります。
マネージド言語は、その事柄を「C#」が自動的に行ってくれるので、プログラマーは何も気にせず、「アプリケーション開発」に専念できる分けです。
ガベージコレクションとか、何気ない事なんですが、結構重要なんです(笑)。後は、型の安全性とかですね。
オブジェクト指向の言語
オブジェクト指向というのは、広義の意味があるので、一言でいうのは難しいのですが、「C#」に当てはめて具体的な事柄でいうと、「継承」、「カプセル化」、「多能性」という機能が、使えることです。
これらの機能は、「class(クラス)」という概念に基づいて、使用することが出来ます。この「class」というのは、初心者の方には分からないと思いますが、実は「C#」は殆ど全て、「class」から出来ています。
昔の「BASIC」等とは、全く異なるプログラミング方法になりますが、非常に画期的な方法で、一度習得すると後には戻れません(笑)。一言でいうと、「名前を持った管理単位」ということです。
例えば、「Form クラス」とか、「TextBox クラス」とか、「Label クラス」とか、「List クラス」とか、非常に沢山のクラスがあります。また、自分でクラスを作ることも出来ます。ですから、無限大にクラスがあると言っても、過言ではありません。
それらの「class(クラス)」を組み合わせて、一つのアプリケーションを作成します。
イベント機能が使える言語
イベント機能というのは、コンピュータに対する何らかの「事柄」に対して、処理を書くことが出来ることです。
つまり、その「事柄」に対してアプリケーションに、その都度「通知」が来るので、そのタイミングで処理を書くことができます。
「C#」の場合は、使いきれない程のイベントが、ディフォルトで設定されているので、非常に便利です。また、自分でイベントを、追加することも出来ます。
まぁ一応、大きな項目はこんな所なんですが、「並列処理」も比較的簡単に、出来るようになっています。
HTML、CSS が面白いですね。
私の基本的な範囲は、昔から「デスクトップ開発」だったので、「WEB 環境」には余り興味が無かったのです。というより、マークアップ言語(<cmd>)が、結構敷居が高いと思っていたので、黙認していたのです(勿体ない)。
ところが、「ホームページ」や「ブログ」をしようと思うと、「HTML」と「CSS」は、必須な分けです。それから、勉強を始めたのですが、その高性能な表現に驚きましたね。ここまで進化してるとは。m(_ _)m
最初は、何が何だか全く分かりませんでした。一番分からなかったのは、意外にも「<div>」だったんです。基本中の基本なんですが。
それが分かると、後は、「C#」と共感するところもあるので、何とか今日に至っています。しかし、分かれば分かる程、面白いですね。しかし、まだまだ分からないことは多いです。
日常の諸行無常。
プログラミングの事だけでは、記事数も余り書けないので、「日常の色んな事」や「両親のメモリー」等を、短編小説風に纏めてみたいと思います。
実録にすると、人にお見せすることが出来ないので(笑)。
まぁしかし、本当に昔の人は、我々より大人ですよね。昔の映画とかを見ると、凄いですよ。心が洗われますね。映画ですから、明治維新以降なんですが。
そういう意味では、江戸時代は、もっと凄かったと思います。更に、鎌倉時代や平安時代まで遡ると、もぅロマンですね(笑)。
私の場合、そういう映画(書籍ではなく)は、好きなんです。書籍の多くは「古文」なので、理解できません。m(_ _)m
ということで、何か記事にできるような事があれば、書いてみたいと思います。
道州制は、日本の未来。
私は、そう思うのですが、まぁ30年位後の話でしょうか(笑)。別に、私自身も急いでる分けでもないし、明日からとかになると、社会も対応出来ないので。
何故、「道州制」かというと、やはり地方のインフラですよね。それと今時は、地方でも東京と何も変わらないので、態々東京に行く必要もないと思うのです。
その辺りを、経済や政治を知らない「理科系で、素人の視点」で、綴ってみようかなと思います。
東京一極というのは、歴史の事は分からないのですが、「徳川幕府」からですよね? それまでは、関西が日本の中心だったと思います。というより、「道州制」だったと思います(笑)。
ですから、未だに「徳川幕府」の影響は大きいと思います。
しかし、どうでしょうか? インターネットという環境を見れば分かりますが、一局に集中してないですよね。蜘蛛の巣のように、拠点がありません。それなのに、無限に発展していると思います。
これが、「道州制」だと思います。 頑張りましょう。
画像ギャラリー
文章だけというのは、余程文才がないとやはり疲れると思うので、画像等を入れて「ブレークスルー」を、楽しんで貰いたいと思います。
写真には、人それぞれメモリーがあると思うので、私は私なりの「コメント」を付けて見たいと思います。まぁ一方的な事になるので、ご容赦願います。
尚、写真の多くは、「ホームページ・ビルダー22 ビジネスプレミアム」に付属しているものを、使わせて貰っています。