どのようなプログラミング/ソフトウェアサブカルチャーが存在しますか?それらの定義は何ですか?あなたはどちらに属しますか?[閉まっている]


13

外の世界にとっては、プログラマー、コンピューターサイエンティスト、ソフトウェアエンジニア、開発者はみな同じように見えるかもしれませんが、それは生計のためにソフトウェアを作成する人々の場合とは程遠いものです。単一のプログラマーの能力と知識は、そのツール(OS、言語、そしてはい、好みのエディター)と同様に非常に広範囲に及ぶ可能性があり、その多様性は、ソフトウェアで多くのサブカルチャーを生み出します-Stack Overflowやこのサイトを積極的に使用するプログラマーのように、しない多くの人に対して。

他の人から、彼らが出会った、属している、賞賛している、嫌いな、または作成したソフトウェアサブカルチャーを聞いてみたいです。手始めに、私は遭遇しました:

  • マイクロソフト主導の企業と開発者:スタック全体はワシントン州レドモンドにあります。電子メールはOutlookは電子メールです。WebはIEおよびIISです。VB、.net、Visual Studioなどの複数のバージョンでいっぱいのMS Developer Networkサブスクリプションの大きなバインダーがあります。シェル/コマンドラインでの作業を避けます。オープンソースなどの大騒ぎがどういうものなのか見ないでください。MS中心の企業は9〜5であり、非常に企業的である傾向があります(ソフトウェア担当者ではなく、ビジネスマネージャーが主導します)。最近(MS以外のツールが広く利用可能になったため)、これはハッカー文化のアンチテーゼです。
  • 昔ながらのCSの人々:LispとUnixを非常によく知っていることがよくあります。時には、彼らは半人気のLisp自体、またはシステムユーティリティを書いたかもしれません。あるとしても、「ソフトウェアエンジニアリング」に関するものはほとんどありません。また、それらに感銘を受けることもありません。参照、履歴、およびLisp、C、Prolog、Smalltalkなどのプログラミング言語の高レベルの意味を理解します。80年代と90年代のAIの結果について苦いことがあります。Emacsユーザーになりがちです。目を点滅させることなく、複数行のシェルコマンドを入力できます。彼らのアドバイスは不可解なこともありますが、一度理解すれば金が含まれます。
  • 新しい学校のWeb開発者:コンピューターやビデオゲームで遊んでいたが、実際にプログラミングを始めたのは90年代後半または00年代前半でした。1〜1.5のスクリプト/動的言語で快適。CやRuby / Perl / Python以外の言語は不必要/魔法だと思います。最初はHTMLをプログラミングと見なしていた可能性があります。Macを手に入れて、それについて熱狂的/非合理的になりがちです。構築する以上のフレームワークを使用します。多くの場合、NoSQLやRuby On Railsに過度に熱心です。
  • New-school CS:統計、ベイジアンモデル、および推論に関する多くのトレーニング。「AI」とは言わず、「機械学習」と言います。LispよりもJavaの方が多いですが、Haskellのエキスパートプログラマでもあります。各分野の専門家(Google、財務/クオンツ)による現実世界での大きな成功を目にすることで、多くの場合、自信が持てます。しかし、ビッグデータとそのような分散処理は、実際に世界を変えています。

上記の例は、完全、正確、直交、または客観的なものではありません。:)私が個人的に見たものであり、より広範な質問の議論と概要を刺激するために提供したもの。反対意見をお気軽に!


1
「Lil」はあいまいですが、おもしろそうです。
ルーク

6
私は答えが一つのことを示していると思う:問題は本当に何もないところに明確な境界線を引くことです。私たちは、それぞれ連続体である約5つの直交する概念を扱っており、その超平面を簡単に識別可能な個別のグループに分割しようとしています。IMO、それは絶望的な努力です。
ジェリーコフィン

3
@ジェリー・コフィン-はい、同意します。言うまでもなく、いくつかの答えはいくつかの「文化」に対する攻撃に接している、と私見。ただし、これらの回答は、今日(プログラマーまたは少なくともこのコミュニティ)が他のコミュニティについて考えていることを示すという点で優れています(他のコミュニティは、このコミュニティの一部でもあります(わずかな割合で))。
ルーク

@JerryCoffinまあサー、...「直交」という言葉を使いたい人や、最近の数十年で、それがスタックに普及していますという理由だけでそうでないものがあります
エリックReppen

回答:


12

私は自分自身をReal-Time Systemsグループの一員と考えています。「オールドスクール」の特徴がいくつかありますが、CSに重点を置いておらず、ハードウェアに重点を置いています。

アーキタイプ:

  • 「C」の専門知識がある
    • K&Rのオリジナルコピーがあります
    • 「C」の代替構文であるかのように他の言語で記述します
  • コードからアセンブラ出力を予測できます。
  • 回路図を読むことができます
  • 「時期尚早な最適化」を行わずにコードを記述する方法を知りません。
  • コマンドラインに非常に慣れています。

魅力的です、ありがとう。リアルタイムシステムの人々に会ったことがありますが、そのような場所で働いたことがないので、文化を特徴付けようとしませんでした。私たちプログラマーの多くは、皆さんを「ハードコア」と呼ぶでしょう。:)
リミスト

1
私はそれが他の学問分野のようだと思います-ハードコアの「ロックスター」があり、そしてプレーンな古いロックがあります。(私はどこかにいることを願っています)
AShelly

2
私もこのグループにいます。私の同僚のほとんどは、電子工学のバックグラウンドからこの場所に「上がって」来ましたが、データベース/アプリ開発者であることから「ダウン」しました。しかし、私は今このグループに非常に満足しており、時々、私の異なる背景が異なる有用な視点をもたらすことがあります。
ヴィッキー

1
また、それは私の認識かもしれませんが、このグループの女性は他のグループのいくつかよりもさらに少ないように感じます。
ヴィッキー

1
うわー-これは、回路図を読むだけでなく、回路も設計することを除いて、私をほぼ完璧に説明しています。1970年代後半に私の最初の組み込みシステム(PL / M-86)で作業しました。
tcrosley

6

メインフレームのプログラマを忘れないでください。彼らもサブカルチャーです。


1
メインフレームのコーダー文化についてもっと知りたいです。メインフレームで多くの時間を費やしている人や、定期的にコーディングする人はほとんどいません。
リミスト

1
これらは立派な散髪を持つ人々であり、ビジネススーツを着ている他の人々と見分けがつかない。COBOLが好きです。彼らにとって、システム/ 360以外のシステムはありません。
oosterwal


4

私はいくつかの文化が存在していると思います

  • ハッカー/オープンソース文化:コードを共有し、本名を使用するかどうか。おそらく、1つの問題を解決する小さなツールに集中しました。プログラム内のハッキングを許可します。言語:CLispC ++Python。おそらくあなたのオールドスクールCSの人々と重複しています。
  • 学界:アルゴリズムに集中し、正しい方法で物事を行う。本名は必須です(とにかく紙に表示されます)。言語:JavaHaskell、(F#?)
  • 一致:ソリューション(おそらくすべて)に集中します。オープンソースの名前与える必要がない場合。言語:JavaのC# VB.netルビー
  • ハイスクール」:うまくいけばいいが、そうする必要はない。「SuperXP for Windows XP」などの名前に集中します。(申し訳ありません-良い名前は見つかりませんでしたが、私はCSを使い始めたプログラマーのことを意味します-少なくともまだ)。言語:PHPVBRuby
  • New School Web Developers:上記のとおり。

その点に注意してください:

  • 文化を組織内および個人で混在させることができます。実際、それはよくあります。
  • 言語はであり、たとえばC#で作業する「ハッカー」の非常に大きなグループです。本当の研究は連想ゲームですので、気分を害しないでください(はい-PHPで優れた工学的実践などの優れたプログラムが書かれていることは知っていますが、たとえば、XSSが何であるかを知っている)
  • 私は高校という名前で誰かを怒らせたくありませんでした。多くの場合、この文化を介したプログラミングへの最初のステップであることを意味します(そして、うまくいかないことを願っています)
  • 編集: アカデミアは、人がアカデミアにいることを意味するのではなく、アカデミアにいることは、誰かがアカデミアに属していることを意味するものではありません(科学者/研究者など)。それは、パフォーマンスが欠けていたり、時間がかかったりした場合でも、明確で明らかに正しいソリューションを提供するツールを好むことを意味します。同様に、企業文化は企業と同等ではありません。

私は現在、ほとんどがオープンソースで、アカデミアの影響をわずかに受けていると思います(パッシブ)。


私は、現代のCS /アカデミアのサブカルチャーとHaskellプログラマーの重い重複について考えていました。Haskellで少し遊んだ後、なぜ公式科学(CS、数学)のトレーニングを受けた人にそれが魅力的であるかがわかります。実際、Haskellはプログラミングをより高いレベルから見るのに役立ちます。
リミスト

アカデミアではJavaとHaskellだけですか?Fortran、C、C ++、R、MATLAB、* sh + awk(はい、そのような人々を知っています)、Mathematica、Python、LabVIEWはどうですか?また、Haskellはおそらく「任意の関数型言語」に置き換える必要があります。
mbq

それらは例です。偏った例。前述したように、言語は文化固有ではありません。また、アカデミア文化はアカデミアに限定されず、アカデミアの全員がアカデミア文化を受け入れる必要があるわけではないことに注意してください。Fotran / C / C ++ / R / Matlab / ...が学界で使用されていることに同意しますが、私の頭の中ではそれと強い関連性はありません。* SH + awkは文化として非学界(間違いなくある-ユーザーが学界で作業し、ブリリアント科学者かもしれ- thing0全く違うのです。
マチェイPiechotka

1
あなたはコンピューターサイエンスの学者に向かっていると思います。
mbq

2

私はAlt.NET/古い学校のCSキャンプにいます。私はMicrosoft tech(C#など)で働いていますが、私の周りには世界全体、他の言語、アルゴリズム、フレームワーク、「ボンネットの下のもの」などがあることは承知しています。完璧ではなく、明らかにそれは仕事です進行中。


1
Alt.NETの群衆は間違いなくプログラミングサブカルチャーであり、Microsoft主導の文化に関するリミストの記述とはまったく異なります(私にとって、その文化は10年前のように聞こえます)。
Carson63000

2

私は、MSサブカルチャーに関するこの声明に完全に同意していません。 9〜5であり、非常に企業的(ソフトウェアマネージャーではなく、ビジネスマネージャーが主導)。ハッカー文化のアンチテーゼ。」私は今までに2つの.Netショップで働いてきましたが、環境は実際には非常にハッカーに似ていました。私たちの仕事には多くのオープンソースプロジェクトを採用しています。私の選択では、それはすべて、働く相手の種類に依存します。彼らが真の開発者なら、彼らは常に改善し分岐する方法を探します。彼らが使用する技術は無関係です。

さまざまなバックグラウンドの開発者が組み込まれているアジャイル手法サブカルチャーを忘れないでください。


はい、アジャイルの人々は自分自身に対するサブカルチャーです。良い点再。開発者とツール、そしてもちろんあなたの経験は私のものとは非常に異なる可能性があります。限られたサンプリングから、ツールがメーカーをかなり形作っていることがわかりました。
リミスト

私はMSショップで働いていました(そして、私はファンボーイかもしれません)が、私が経験したメンタリティは「最初にMSに目を向け、それが無料ならそれを使用します。 」
スティーブンエバーズ

2

Old School CSNew School Web Developersの間に中間点があると思います。

私は伝統的に自分を「Web開発者」と考えていました。PHPとJava、そして一流の市民、適切でシンマンティックな有効な HTML / CSS。SQLを投入すると、堅牢で十分に丸みを帯びたスキルセットが得られます。

New SchoolScript Kiddiesに移動し、Web Developerのブランドを変更します

スクリプトキディ -言語について「内部」の知識がほとんどない人。盲目的にコードをコピー/貼り付けする前に、Googleでチュートリアルを探します。通常、複数の言語の構文を完全には理解していません。


2

コンピューターに関する研究ではなく、コンピューターを使用して研究を行う学者。

彼らは:
- CPU時間の無制限の量を消費することができるソフトウェアを書いている、メモリとディスクスペース、彼らは気に(またはケアに少なくとも試みで)パフォーマンスのため、いずれかのようなものを使用することにより-O3timeプロファイラ、memcheck、多かれ少なかれ時間を過ごしますランダムにいくつかのスピードアップを収集するためにコードを変更するか、無思慮に自分のscripsにいくつかの神話のトリックを適用します。
-実数を使用し、「数字」という名前の別の科学が存在できるように、それが十分にトリッキーであることを知っています。
-多くの場合、非常に特定のプログラミング言語/ライブラリ/プログラムを使用し、それについて非常に熱狂的です。火炎戦争は一般的で、主にパフォーマンスに関するものです。
-プログラムを「コード」と呼び、ユーザーインターフェースが非常に難読化されていることを強調して、作成者のみが使用方法を知っているようにします。
-通常、Linuxで動作するか、少なくともPuTTYを使用して一部のLinuxワークステーション/クラスターにSSH接続します。


1
ええ、私もこのクラブにいます。このリストは、典型的な高エネルギー物理学者(つまり、クォークを研究し、コーヒーが多すぎないこと)または現在の大型機器で作業する天文学者の説明の良い出発点です。
DarenW

1
そして、このサブカルチャーは実用的で、再現性があり、極端な効率を非常に重視しているため、並列処理、巧妙なキャッシュスキーム、HPCなどに関係する場合を除き、コンピューターサイエンスの世界で起こっていることのほとんどをほとんど気にかけません。
-DarenW

@DarenW:彼らはコンピューターサイエンスの世界にほとんど関心がないとはどういう意味ですか?彼らは良いソフトウェアの実践などを気にしないという意味ですか?私は同意しないだろうから。パフォーマンスを気にかけるために、優れたソフトウェアエンジニアリングの原則を捨てる必要はありません。
n1ckp

1

私はおそらく、オールドスクールのCSの人々ニュースクールのWeb開発者の組み合わせです。PHP、Javascript、SQLを使用してWebサイトを作成することでプログラミングを学び、現在UNIXでコマンドプロンプトとEmacsですべてが行われている大学に通っています。


0

「古い学校」の男として私をカウントダウンします。しかし、私はLISPをうまくやったことがありません。Emacs?いや、viset -o vi私のシェルで私のためにありがとうございました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.