Why I Love Programming

Matthias Endler

私がプログラミングを愛する理由

原文は Matthias Endler により に公開されました。 このブログを購読する

プログラミングにはさまざまな顔があります。構造化された思考の科学であり、雄弁な表現の芸術でもあります。他の人の魅力的な仕事に触れれば、謙虚であることを教えてくれます。そして何よりも、自分自身について多くのことを教えてくれます。
構文は変わっても、概念は変わりません。

この投稿は二部構成です。前半では、プログラミングの喜びについてお話しします。後半では、プロのプログラマーであることの意味について考えます。

プログラミングを学ぶべきかまだ迷っているなら、この記事はあなたのためのものです。

自動化で手に入るスーパーパワー

プログラミングができるようになることは、この上なく報われることです。妹のために千枚の写真を数秒で整理してあげることも、おばあちゃんのために小さなバックアップスクリプトを書くこともできます。可能性は無限大です。

コーディングは楽しい!

何かを作るためにコードを書くことは、それを使うことよりも楽しいものです。ゲームで遊ぶことよりも、もっと楽しいのです。なぜでしょうか。コンピュータにプログラミングする方法を学べば、最高のゲームを無料で手に入れることができます――あなた自身が作ったゲームを。すべてをコントロールするのはあなたです。アイデアも、ロジックも、物理法則さえも、あなたの思い通りです。建材にお金を払わずに家を建てるようなものです。豪邸だって無料で建てられるのです。

共有することもまた楽しい!

次のプロジェクトのインスピレーションを得るために、他の人のプログラムを読んでみましょう。彼らがどう考え、どう問題を解決しているのかが見えてきます。優れたプログラマーの多くが、自慢のコードを惜しみなく公開しています。あなたも同じように、自分のプロジェクト――あるいはその中で最も美しい部分だけでも――を他のプログラマーと共有できます。誰かがあなたの作ったものを使ってくれるのを見るのは、人生で最も満たされる経験のひとつです。自分のツールが、想定していなかった目的のために役立つのを見るのは、格別な喜びです。

エレガントで創造的な解決策

自分のビジョンのために懸命に取り組み、不要なものがすべて剥ぎ落とされていく感覚は、とても魅力的です。細かなアイデアや根本的な洞察が、ふいにぴたりと収まります。後に残るのは、蒸留された真実、野心的でありながら報われる思考プロセスの結晶です。そしてそれをプログラムとして書き下せば、小さな部品のひとつひとつが連携して動くのを目の当たりにできます。だからこそ、自分で考え抜いて答えを見つけ出すのは、これほどまでにやりがいのあることなのです。プログラミングとは、問題を徹底的に理解し、金属の塊にその解き方を教えられるようになることです。プログラムの構造そのものが芸術作品になり得ます。簡潔で、機知に富み、しかも高速であることだってできるのです。

機械と対話する

機械と人間の両方に同じ言語で理解されるものがあるというのは、なんとも魅力的です。回路の集まりが、ある意味で言葉を「理解」し、解釈できるのだと気づくたびに、私は驚かされます。

巨人の肩の上に立つ

他のプログラマーと話したり、彼らが働く様子を見たりすることは、大きな刺激になります。あなたが今この文章を読むために使っているシステム自体が、彼らの仕事の上に成り立っています。たとえ遠く離れていても、オンラインのオープンソースプロジェクトで彼らの仕事を学ぶことができます。もし機会があれば、カンファレンスで彼らのトークを聞き、地元の勉強会で会ってみてください。コミュニティの一員になることは、大きな喜びです。アイデアを交換し、プロジェクトで協力することで、自分の限界を押し広げ、毎日何か新しいことを学べるのです。

楽しむこと、あとは忘れよう

機械はあなたの肌の色を気にしません。あなたが12歳の少女であろうと、大学の講師であろうと関係ありません。10時間続けて同じ間違いをしても、コンピュータはあなたを怒鳴りつけたりしません。罰を与えることもありません。ただ喜んであなたの次の命令を待ち続けます。それに、始めるためのハードルはとても低いものです。古いコンピュータが一台あれば十分ですし、ペンと紙と本があれば、クールなプログラミングのアイデアに取り組むことさえできるのです。

さあ、始めよう!

プロジェクトを選ぶのはあなた自身です、他の誰でもありません。自分には頭が足りないなどと、誰にも言わせてはいけません。決して。
一つひとつのプログラムが素晴らしい旅です。さあ私たちと一緒に、あなたの周りの世界をコードで形作っていきましょう。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント