こんにちは、皆さん。今日は、私が思っている「プログラマーの心得」について、「独断と偏見と経験則」で語ってみたいと思います。
飽くまでも、個人的な意見なので、賛否両論は色々あると思います。
まぁ、世間一般的な「コンセンサス(合意)」としては、多分「1ミリもバグがあっては成らない」とか、「それ故に難しい分野である」とか、「責任を持って遂行しなければ行けない」とか、
色々あると思います。更に、「プログラミングには、英語が必須」だと、思っているかも知れません。
或いは、「数学や、物理や、国語や、簿記が必須」で、重要だと思っているかも知れません。
更にまた、コミュニケーション力や、仲間とのコミュニティがないと、何も始まらないと思っているかも知れません。
しかしどうでしょうか?。それらは、プログラマーの本質ではなく、プログラマーに成ってからでも、習得できると思います。
或いは、会社等に就職すると、社会人として「常識的」な要因になると思います。ですから、特に意識する必要もないと思います。
そういう意味で、これらの事は「 そうでも無いよ 」ということを、一つ一つ見て行きましょう。Let’s get started !.
1ミリもバグがあっては成らない。
ということなんですが、一見当たり前のように見えますが、全然違います。「バグはあって当たり前」だと思った方が良いです。
手前味噌で、言い訳になりそうですが。考えても見てみましょう。そんな堅苦しい世界って、何処かにありますか?。三千世界探しても、無いと思います。
つまり、誰でも知っている簡単なことをする場合は、殆ど「バグ」は発生しません。
例えば、「1+2=3」を間違える人は居ませんよね。しかし、「Sin70°+Cos50°=?」を、電卓なしに答えられる人も、多分居ません。
それと同じで、多くの場合、不可能に近い事をするから、「バグ」が発生するのです。ということは、「バグ」が発生するというのは、最先端技術の「イノベーション」に、他なりません。
ですから、「バグ」を恐れては行けませんし、恐れていれば発展もありません。
そうですね、過去の顕著な失敗から、偉大な発展を遂げたのが、「レントゲン」や「地動説」や「明治維新」ですね。
それ故に難しい分野である。
そんな分けが、ある筈ないじゃないですか(笑)。プログラマーというのは、「医者」や「弁護士」や「政治家」より、遥かに簡単です。誰でも、資格無しで成れます。大卒も必要ありません(笑)。
「やる気」さえあれば、「豊臣秀吉」のように立身出世もできます?!。重要なのは、「好きこそ物の上手なれ」ですよ。
また、コミュニティー力は、有ればそれに越したことはありませんが、何らかのコミュニティーに参加すれば、自動的に仲間とかは、増えて行くと思います。
更に、「類は友を呼ぶ」で、同じ趣味や職業の場合は、案ずることもないでしょう。
それと、プログラミングというのは、地位や名誉やコミュニティーの為に、あるのでは有りません。より良いプログラムを作るという、プログラムの為にあると思います。
責任を持って遂行しなければ行けない。
このことは、日本の社会人にとっては、何事においても「常識的」のように思えますが、特に、プログラマーだけに、言及されることではないと思います。
というより、「何に対して」とか「誰に対して」とか、「どのような責任」なのかが、具体的に上がっている分けでは無いので、考えること自体に意味がありません。
それよりも重要なことは、兎に角何かを完成させることです。小さい物でも大きい物でも良いのですが、また「バグ」があっても良いですし、粗削りでも構いません。
というのは、ある程度動かさないことには、バグも発見できません。そして完成してから、細かいところを修正して行きます。
最初の内は、遠い所を見ながら、遂行するのが良いと思います。自分で設定した「目標」に向かって。
プログラミングには、英語が必須。
ということは有りませんが、プログラミング以外で、英語が必要になる場合があります。
日本においては、「C#」に関する「マニュアル」や「参考書」は、全て日本語ですし非常に沢山あります。
しかしそれは、標準的な内容のものが多いので、少し難しくなったり「Windows API」等に関したものは、英語のマニュアルであったり、「Q&A」が英語だったりします。
勿論、日本語に翻訳された物も、多く出版されているので、多くの場合「日本語」で解決できます。というより、公式のマニュアル自体が、「英語版の翻訳」であったりします(汗)。
ですから、そういう意味で英語が必要になる場合はありますが、プログラム自体は、「簡単な英語」なので、何も心配する必要はありません。
それと、C#のデザイン時に使う「各コントロール」のメンバーは、全て英語なんですが、覚える必要は全くありません。
ソースコードを書く場合は、コード支援の「インテリセンス」が働くので、その中から「選択」するだけです。それに、使っていくうちに自然に覚えます。
数学や、物理や、国語や、簿記が必須。
こちらも、「そんなことは無いのですが」、と言いたいところなんですが、実は、プログラムを完成させる為には、専門的な知識が必要になります(激汗)。
とは言っても、それは、本来「プログラマー」の領域ではなく、「SE(システムエンジニア)」の領域です。ですから、「プログラミング」とは、直接関係ありません。
「SE」というのは、アプリケーションに対して、専門的な知識のある方がなります。ですから、極端な話として、プログラミングを知らなくても、「SE」にはなれます。
会社とかに入れば、「PG(プログラマー)」と「SE」は、明確に分かれます。「SE」の下に、何人かの「PG」が付きます。本来「プログラマー」というのは、この「PG」のことを言います。
しかし、当サイトでいう「プログラマー」というのは、「サンデープログラマー」のことを言います。何度もいいますが、「好きこそ物の上手なれ」ですよ(笑)。
そして、サンデープログラマーなので、「SEとPG」は、同じ人になります(超激汗)。
しかし、どうでしょうか?。「プログラミング」をしたいと思う一般人の方は、「PG」に成りたいと思っている分けではないと思います。
自分の仕事で使う、「ちょっとしたプログラム」を作りたいけど、中々プログラムの勉強までは、時間と根気が続かないと、思っているかも知れません。
ですから、気が付かないかも知れませんが、「サンデープログラマー」は、自動的に自分自身への「SE」なんです。後は、「PG」を付けるだけです(笑)。
例えば、「数学」の専門家が、「物理のプログラム」を作りたいとは、思わないでしょう。作りたいのは、やはり「数学のプログラム」ですよね。ですから、既に「SE」は居るのです。
コミュニケーション力や、仲間とのコミュニティが必要。
こちらも、人それぞれ、「環境」も違えば「立場」も違えば、「状況」も違います。一概に、コミュニケーション力が、必要とすることは無いと思います。
何でもそうですが、最初は「1人」からだと思います。そして、そこから何らかのコミュニティーに参加して、仲間が増えます。
コミュニティー(趣味や職業)が多ければ、仲間も自然に増えます(ヤリー)。
特に、会社とかの場合は、仕事ですから自分の意志とは関係なく、コミュニティー力は必要になります。ですから、何も心配する必要はありません。
仕事なので、「一期一会」や、「乾坤一擲」かも知れません(笑)。
まぁ、とにかく先ずは、ローカルから「ゆっくり」と始めましょう。「千里の道も一歩から」ですよ。私の場合は、結構この諺が好きなんです。
まとめ。
如何でしたでしょうか?。皆さんの、プログラマーに対する認識と、違っていたでしょうか。
まぁ、私が言いたいことは、最先端技術には、必ず「バグ」はあります。ということでも無いのですが、気楽に行きましょう。Take it easy ! ですよ。
それと、当サイトは、私なりに結構「標準的な日本語」で、記事を書いていますので、プログラムの事が分かる外国人が、日本語を勉強したい場合は、どうぞご利用ください。
「Edge」や「Chrome」の「翻訳」機能を使うと、母国語に変換できるので、比較すると勉強になるかも知れません。または、ならないかも知れません。その辺りは、「運否天賦」です(笑)。
私の場合、デスクトップを使う時は、Microsoft の「Edge」を使っています。タブレットを使う時は、Google の「Chrome」を使っています。
一応、「Edge」で記事を読む場合は、音声を使って読むと、楽に読めますし正確に読めます。
方法は、記事の上で「右クリック」-「その他のツール」-「音声で読み上げる」で行えます。音声のオプションは、「Microsoft Keita Online (Natural) – Japanese (Japan)」がオススメです。
男性の音声ですが、非常にネイティブな日本語で、読み上げてくれます。偶に、音読みと訓読みを、間違えることはありますが、全く問題ありません(笑)。
それでは、この辺でごきげんよう。
コメント