プログラミングは難しいですか
これは、プログラマーでない多くの人が私に尋ねる質問です。 そのため、「プログラマは自宅で仕事をするのか」、「プログラマになるにはどのような教育が必要なのか」といった質問と肩を並べることになります。
しかし、これらの質問のいくつかとは異なり、この質問は実際にはかなり困難です。
そこで、この質問について詳しく説明し、プログラミングが難しいかどうかを理解する手助けをしましょう。 The Short Answer
では、まず最初に、この質問に短く直接的な答えで取り組みましょう。
プログラミングは難しいか
さて、コンサルタントがよく言うように、「場合による」のです。 プログラミングが難しいかどうかは、特定のプログラミングの種類や、個人としてのあなたの考え方など、多くの要因に依存します。 つまり、プログラミングは驚くほど簡単なものからめちゃくちゃ難しいものまで、実にさまざまであるということです。
- バスケットボールをするのは難しいですか?
- ポルトガル語を話すのは難しいですか?
- 車の運転はどうですか?
なぜ私が「えー…場合による」とヘッジしているのか、おわかりでしょう。
People Tend to Be Overly Intimed by Programming
ただし、私は少し修飾する意見も提示します。 具体的には、非プログラマはプログラミングがどれほど難しいか、劇的に過大評価する傾向があると思います。
Oh, I’m just really not a math person!
まあ、それはよく聞きます。 しかし、プログラミングについては、もっと同じことを聞きます。 なぜなら、プログラミングの一部の領域では本当に数学が必要ですが、多くの領域では必要ないからです。 プログラミングは、「数学」よりもはるかに多様な問題であると私は考えています。
多くの人がプログラマーとして成功することはないと思っていますが、それは完全に間違っています。
Let’s Dispel Some Programming Myths, Beyond the Math One
The point into really home, let’s look at some additional misconcepts about programming, beyond the mythers have really good at math.
誤解 1: プログラマはエリート ハッカー、『ミスター ロボット』の男のように
年齢に関係なく、全盛期にはプログラマがボンド(またはボンド悪役)のようなハッカーとして登場する映画があるはずです。 私は幼少期、映画「スニーカー」でした。 私より少し遅れて大人になった人は、不幸にも『ハッカーズ』や『ソードフィッシュ』に出会ったかもしれませんね。 しかし、映画が『スニーカー』のように素晴らしくても、『ハッカーズ』のようにひどくても、ハッカーの主人公とハッカーの敵は、準社会病質者であり、信じられないほど優秀なプログラマーであることに変わりはないのです。 作業的なプログラミングはおろか、本物のハッキングですらありません。 ですから、プログラミングは画面の周りでキューブを動かす必要があるとか、ヒュー・ジャックマンが「ソードフィッシュ」でやっているようなことが必要だとは思わないでください。
Misconception 2: You Need a Computer Science Degree
これについては、かなり詳しく説明してきましたので、ここでその点を強調することはしません。 しかし、プログラミングにコンピューター サイエンスの学位は必要ありません。 貿易の学位も必要ありませんし、ブートキャンプに参加する必要さえないかもしれません。
これらのことは、最初の仕事を得ることを容易にしますが、必須ではありません。 ですから、「プログラミングは難しい」と思っている人は、飛び越える必要のある輪を活動と混同しているのでしょう。 メモ帳と単一のインタープリターまたはコンパイラーをダウンロードすること以上に、プログラミングに必要な前提条件はありません。 プログラマがひどい社会的スキルを持っているという考えは、私と、あるいはプログラミングが難しい理由と、どんな関係があるのだろう」と思っていることでしょう。
そこで逆説的に、「もし私がめちゃくちゃ社交的でなければ、『本物の』プログラマーになれるだろうか」と考えるのです。
ええ、なれますよ。 プログラマは多くのカンファレンスやミートアップに参加し、講演を行い、コミュニティを形成し、素晴らしい、普通の社会生活を送っています。
誤解 4: プログラマはコンピュータのあらゆることにすぐに優れている
私自身はコンピュータ サイエンスの学位を取得し、プログラミングの仕事をしました。
- Erik, 私のコンピューターから変な音がするんだけど、何がおかしいんだろう。
- ビデオ カードはどれが一番いいのでしょうか。
これらの質問はすべて、私が聞いたものです。 そして基本的に、私はその答えをググるだけでした (「わあ、本当にわからない」とまでは言わないまでも)。 私はソフトウェアを書くことで生計を立てていましたが、だからといって、コンピューターについて何でも知っているわけではありません。
プログラミングにはたくさんの種類がある
いくつかの神話を打ち破ったところで、プログラミングの現実を見てみましょう。 そして、現実は、実際には非常に多様なのです。 5684>
- Web ページのレイアウトや視覚的な特性をデザインする、
- 人工知能アルゴリズムを作成する。
- 手動タスクをスクリプト化して自動化する。
- 複雑な統計モデリング。
- シンプルで反復可能なモバイル アプリケーションを構築する。 5684>
「プログラマーであること」には、「ビジネスパーソンであること」と同じくらい多くの種類があるのです。「
Some Programming Roles Are More Approachable
その多様性を踏まえ、どの役割がより親しみやすく見えるかを少し掘り下げてみたいと思います。 たとえば、私はいつも数学やアルゴリズムは得意なのですが、デザインやレイアウトは正直言って苦手です。 あなたは、私が「ソート アルゴリズムのプログラミングは簡単だ」と言うのを馬鹿にして、「美しい Web ページをレイアウトするのは簡単だ」と言うのも同様に馬鹿にしているかもしれませんね。 その代わり、プログラミングを高度に数学的なものとしてしか考えていない人が、考慮しなかったかもしれないことを指摘しています。 これは、アプリケーションの美学や、ユーザーがどのようにアプリケーションと相互作用するかに大きく関与することを意味します。 複雑な命令を使用してソフトウェアの大きな部分を構築するのではなく、実際のデータとそのデータについての推論にもっと焦点を当てます。 一部の人は「パワーユーザー」としてコンピュータをよく使い、手動で行うことを自動化し、より効率的にする方法をあちこちで学ぶことによって、プログラミングを学びます」
そしてこれらはほんの一例に過ぎません。
プログラミングはエイリアンであり、それはプログラミングが難しいということを意味します
この時点で、少しギアを入れ替えたいと思います。 これまで「プログラミングは思ったほど難しくない」というテーマでかなりの時間を費やしてきたように思います。 そして、それは本当です。 多くの人が「プログラミングは難しい」という質問に「イエス」と答えるのは、単にプログラミングがどういうものかを知らないからだと思うんです。
でも、ここで少し和らげますね。 5684>
Alexa は戦術的な質問にたくさん答えてくれますし、時にはあなたを喜ばせたり驚かせたりしてくれます。 しかし、彼女は本当にイライラさせられることもあります。
さて、コンピュータのプログラムとして、Alexaはあなたを理解するために最善を尽くすように完全に最適化されていることを考慮してください。 あなたは彼女と話している間、非常に正確で、文字通りで、難解である必要があり、彼女はあなたを理解するためにそこにいます。
コンパイラ(コードをアクションに変換するもの)は Alexa と似ていますが、あなたの人生を簡単にするために設計されていません。 実用性を最大化するように設計されています。 ですから、Alexa を扱うのに正確でなければならない場合、正確であることは、コンパイラーが何を望んでいるかを説明し始めることさえできません。 セミコロンをコロンと間違えると、コンピュータをクラッシュさせることができます。
Programming the State of the Art Is Legitimately Hard
「プログラミングは難しい」というテーマを続けるために、プログラミングの世界には、入るのにかなりのスキルと練習が必要な領域があることを考えましょう。 考えすぎないでください。 プログラミングは本当に難しいこともあるのです
ロボット工学、ブロックチェーン、人工知能、取引アルゴリズムなどで高度なことをするには、多くのスキル、練習、才能、競争心が必要です。 シリコンバレーの大企業の中には、ソフトウェア開発者に多額の給料を払っているところもあり、たまたま通りかかった人にそんなことはしない。
プログラミングの世界には、練習、才能、賢さ、運が必要という意味で、lightning in a bottleを要する専門分野が存在する。 そしてその先には、多くの人が十分に果たせない役割、立場、課題、状況がある。 5684>
Like anything else, It Runs the Gamut
But, in the end, it really varies.
バスケットボールは難しいか? いや、「誰でもボールを拾って、バスケットに向かって投げられるか」という意味なら、そうではない。
ポルトガル語を話すのは難しいですか? まあ、あなたがブラジルやポルトガルで生まれたのであれば、おそらくそうではないでしょう。
では、プログラミングは難しいのでしょうか? イエスでもありノーでもある。 そう、エリートレベルや高度に専門的で競争の激しい分野でやるのは大変です。 でも、始めるのは難しくありません。
この投稿は Erik Dietrich 氏によって書かれました。 Erikはソフトウェアの世界ではベテランで、開発者、アーキテクト、マネージャー、CIO、そして最終的には独立系の経営・戦略コンサルタントと、ほぼすべてのポジションを占めてきました。 この幅広い経験により、彼は業界のあらゆるペルソナに語りかけ、いくつかの書籍や数十のサイトに無数のブログ記事を書くことができるのです。