プログラミングは繰り返し作業ではないことをプログラマ以外に説明するにはどうすればよいですか?[閉まっている]


11

一部の人々は、それがキーボード上で繰り返し入力するだけであるというプログラミングの見方をしています。これは真実ではありません。まず第一に、設計アーキテクチャなど、実際にコードを入力するよりも多くの作業が必要です。第二に、非常に多様で非反復的なタスクであり、常に新しい課題が発生する可能性があります。

プログラミングは非プログラマーにとって反復的な作業ではないことをどのように説明すべきですか?


5
彼らの仕事は繰り返しの仕事ですか?それが彼らにとってうんざりしていれば、彼らはおそらく創造的で多様な職業の喜びを知らないでしょう。そうでない場合は、まったく同じだと言います。
マークカンラス

4
@マーク・カンラス:良い点。これらの人々は(プログラミングを繰り返しタイピングとして見ている)どのような仕事をしていますか?日常のタスクで表面的な反復性を指摘し、その仕事を「反復的な何かまたは他のもの」に減らしてから、そうでないことを説明してもらうことができます。
FrustratedWithFormsDesigner

14
繰り返しの場合は、間違っています。

1
その声明は一般的な意味でした。同じことを何度も繰り返すと、多くのタスクが間違って行われます。車の部品を貼り付けるだけですか?それを行うためのロボットを設計します(もちろん、できると仮定して-そうでない場合、申し訳ありませんが、仕事を失うことになります)。ロボット部品を貼り付けるだけですか?ロボットを構築してロボットを構築します;)それは基本的にプログラミングです。無限の非反復性のためにレイヤーを追加します。

2
サッカーは繰り返しスポーツであると言います(誰もが同じことをし続け、ボールを蹴ります)。
apoorv020

回答:


31

関係のある例を挙げてください。

テニスは反復的です。ネットの反対側にずっとボールを打つだけです。

サッカーは反復的です。ゴールポストを見つけるまで、毎回ボールを蹴り続けるだけです。

ピアノを弾くのは繰り返しです。ボード上で指を動かし続けます。

くそー、すべてとても退屈な!!!


3
プログラミングはそうではありません、テニス、サッカー、ピアノの演奏退屈です。それらのすべての追求において、人は同じ状況に繰り返し直面し、同じことをしなければなりません。しかし、プログラミングでは、他の答えが指摘しているように、同じ状況に2度陥ると、間違ったことをしていることになります。
アヴィ

1
@Aviも同じやり方で、テニスやピアノとは違う方法で退屈しているので、実際には議論の余地はありません。
モーリシー

18

プログラミングは、散文を書くのとまったく同じ程度に、繰り返しタイピングであるといつも言うことができます。座って慎重に手紙をまとめることで、素晴らしい(または平凡な)小説を書くでしょうか?


18

まあ、それはある意味です。同じ文字(AZ、az、0-9)を何度も繰り返し入力します。さまざまな組み合わせで。

私は通常、そのような人々とのそのような議論を避けようとします。


1
@Rook-良いアドバイス。
ジョンシャフト

4
+1。本とアルファベットのいい比較を考えさせます。(大まかに言うと、アルファベットは文字のコレクションであり、構造と内容の両方で本を上回っています。本では文字がすべて混同されていますが、アルファベットの文字は昇順で連続して書かれています。
back2dos

1
あなたがあなたに興味を持っているすべての人々を避けないことを願っています。

3
@Rook:プログラミングの世界について誰かに質問することは恵みです。それらを避けないでください。彼らと話してください。できるだけ。

4
句読点を使用して物事を混同しようとします。AZは私にとって十分に興味深いものではありません。
MJB

13

プログラミングは作曲によく似てます。これは繰り返しのプロセスではありません。

  • 達成する必要があるものの全体像について考え始める
  • 作曲の小さな部分について考え、それを書く
  • 完了したら、再生します(Visual StudioのF5)
  • 必要に応じてプロセスを繰り返します
  • アイデアを借りたり、他のコンポジターからインスピレーションを得たりすることもあります
  • 場合によっては、パーツを移動またはリワークして曲をリファクタリングします

時々、あなたはあなたが何を望んでいるのか分からず、遊んでいます。おそらく最も興味深い作品を手に入れる最良の方法...


1
ハハ... +1(Visual StudioのF5)。ギターにF5キーしか追加できないとしたら
...-JasCav

3
-1 for Visual Studio;)
ヨルダン

Pierreは、OPに対する全体的な反応に異論はありませんが、音楽の構成はプログラミングに似ているとは思いません。構成が難しい-私はこの投稿に十分にうまく入れていると思う:linkedin.com/…-azheglov
16:09に

1
@azheglov:何に基づいて難しいですか?誰でも作曲できます。私たちの非常に少ないが、CNNでインタビューされるようになりました非常に少数のは、MTVになります

たとえば、音楽の作成が「難しい」としても、CSの問題はそれを補うためにスケールします。コードの各行は1つの音符よりも簡単に書くことができるので、文字通り何百万(それ以上)のコード行を持つプロジェクトがあります。そのため、各アトミックアクションがよりシンプルであっても、最高のプログラマーはより難しい問題を解決することが期待されています。
ティコンジェルビス

4

私は通常、プログラミングは創造的な問題解決であることを説明します。問題があります-製品に機能が必要です(通常、よく知られている製品、Amazon.com、MS Wordなどを選択します)が、そこにはありません。これまでに行われたことはなく、あなたが最初なので、これは他のアートプロジェクトと同じです。ビジョンはありますが、パスを把握する必要があります。

また、問題を解決する方法が複数あるという事実、たくさんの本当に悪い方法、そしておそらく複数の良い方法があることに焦点を当てています。長い目で見れば最善の方法があるかもしれませんが、その最善の方法は長い間明白ではありません(拡張性、再利用性など)。そのため、開発時には、多くの重要な判断の呼び出しがあります。

最後に、最終製品は受信者に愛されたり嫌われたりする場合があります。一部の人々がピカソを愛し、一部の人々が現代美術の頭や尾を作ることができないように-一部の人々は機能を愛し、一部の人はそれを嫌うかもしれません。あなたはほとんどの人のためにできる限りのことをします。

焦点を当て:

  • 未知の領域
  • 誰も答えない
  • 解釈の対象

この作品は芸術に非常に似ており、繰り返しの退屈な作品にはあまり似ていないことを示しています。

私はこれをアーティストと頻繁に話します(そして、彼らはコンピューターの仕事は創造的でないという本能的な信念を持っているようです。通常、私はそれをアーティストの好きな芸術の形に関連づけることもできます。 、ダンス、音楽の作成、そしておそらく他のアート-すべては、新しい、異なる、創造的な何かの実行のポイントにあなたをもたらす一連の反復的な活動を伴います。インスピレーションと美しさの作品に。

その時点で、彼らは通常、私の「芸術」が奇妙な見た目の構文の文と当たり障りのないUML図のセットを含んでいるからといって、それがそれらのコード行とシステムのモデルは最終的に、その部分の合計とはまったく異なるものを作ります。


2
私はアーティストであるため、この比較が好きです。それは、あらゆるタイプのほとんどのアーティスト、および芸術活動に関連することができる人々にとって意味があります。(非アーティストについては
わかり

3

プログラミングは抽象化に関するものです。記述すればするほど、類似点が多くなります。しかし、抽象化する時間です。リファクタリングにより、フレームワークが進化し、重複がなくなります。これにより、問題のあるドメインコードの複雑さが軽減されます。

繰り返しプログラミングが可能です。しかし、それは非効率的です。


コーディングが非常に反復的になった場合、+ 1は、おそらく「間違っているのです!」という兆候です。
FrustratedWithFormsDesigner

3

本当にそうだった場合は、コピーアンドペーストを使用します:D

プログラミングの重要な課題の1つは、高品質のビルディングブロックを作成することです。

  • それらを使用して、固体コンポーネントの建物(つまり、構築中のソフトウェア)を構築し、安定性向上させることができます。
  • 同じ建物内または異なる建物内でそれらを複数回再利用して(繰り返しを減らすため)、生産性向上させることができます
  • 建物全体を崩壊させることなくブロックを変更できるため、ローカルの柔軟性が向上します
  • ブロックのすべてのインスタンスを一度に変更できるため、グローバルな柔軟性が向上します

まさにその性質上、この課題は繰り返さないことを要求します。

当然のこととして、プログラマーとしての自分を繰り返すと、ソフトウェアの構築に時間を浪費することになります。それは安定でも柔軟性でもありません。


1

反復性やタイピング/クリックがどのように表面的であるかを指摘する他の回答とは別に、プログラミングは通常、タイピングよりも問題解決の方がはるかに重要であることを指摘することもできます(コンピューターサイエンスは天文学は望遠鏡に関するものであるため、コンピューターについても同様です。

入力は、ソリューションを実装する1つの方法に過ぎません(現在最も一般的です)が、次のような他の方法もあります。

  • ホワイトボード上の擬似コード(ソリューションを示していますが、実際には実行または何もしませんが、残念ながら)
  • パンチカード(現在は時代遅れと見なされています)
  • おそらくプログラマブルロジックアレイ、またはソリューションをハードウェアに直接実装する場合(ほとんどの場合、脳からPLAにソリューションを取得するための入力がありますが、これらを「コーディング」するのが一般的かどうかはわかりません)物事を直接-私は彼らとは本当に仕事をしていません、他の人から知っているだけです)。
  • 人々(ダンスとしてソートアルゴリズムを実装したグループについて最近聞いた)
  • 砂漠の岩。;)

0

プログラミングの行為の多くはタイピングです。ペイントにはブラシでなでる必要がありますが、繰り返しの呼び出しはかなり表面的です。

彼らはそのロジックを以下に適用しますか?-営業担当者は電話でよく話します。-マネージャーは多くの会議に出席します。-歌手はただ歌います。-アクターはスクリプトを繰り返します。

もしそうなら、それは彼らがプログラマーではない理由です。


-2

プログラミングが得意であれば、それは繰り返しですが、何でも同じことが言えます。繰り返しは、あらゆるスキルを習得するための核心です。


-2

まあプログラミングは本当に繰り返しの多いタスクです。特に、インフラストラクチャが構築されると、同じダイアログ/ビジネスソフトウェア(わずか異なる)を何度も何度も構築する退屈なプロセスが開始されます。締切に間に合わせるために参加する必要がない場合、またはそのような仕事をするのに十分な後輩がいる場合、あなたは幸運です。


1
あなたがどんな仕事をしているのかによりますが、私は推測します
アント
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.