「プログラマーは文系の仕事か、理系の仕事か」

http://zentoo.hatenablog.com/entry/2014/06/07/031513

「理系,特に数学の能力と高い相関が見られる」くらいじゃね.いわゆる文系の仕事じゃねーです.

  • id:karasu9113 あー。文系プログラマ最高とかそういう流れにしたいならやめた方がいい。社会全体が不幸になる。本質が理解できてなくて表面だけ追いかけてるっぽい。まずちゃんとしたソフトウェア工学勉強しろ。コードだけ追うな
http://b.hatena.ne.jp/entry/zentoo.hatenablog.com/entry/2014/06/07/031513

だと思う.たとえばオブジェクト指向のくだりなどは,何言ってるか意味不明なレベル.

その人間がまがりなりにもコードを書いて生計を立てているので、やはり文系理系というのはあまりプログラマーとしての能力に関係がないような気がしている。

根拠になってない.セウォル号の船長だって,「経験30年のベテラン船長」として生計をたててたけど,それこそが韓国船舶業界の問題と再認識されたわけで.

日本のIT業界も同じ.オブジェクト指向が何かを全く勉強したこともないような人でどれほど糞プログラムを書いていても,プログラマとして生計を立てられてしまうのが日本のIT業界の問題のひとつです.*1


「食えるならそれで良いじゃないか」という人もいるでしょう.でもこういう人が作った糞プログラムは,いつか誰かが尻ぬぐいさせられるんです.それが誰だとお思いですか?彼等は自分の作ったスパゲティプログラムを,自分で読んで問題を認識することさえできないんですよ.

要は何がいいたいかというと、「コードを書く」という営為を「数学的なモデルをコードに落とす」と捉えるか、「誰かに伝わるように文章を書く」と捉えるかで、その人のコードの書き方は影響を受けるのではないか、ということである。

おそらくない.というか,どっちもプログラミングの主流じゃない,どっちも間違いだと思う.

僕は、オブジェクト指向というものが人口に膾炙した理由はそれがプログラミングの技法として適切であるからとかそれを使うとコードの設計がうまくいくとかそういったことが本当の原因なのではなくて、オブジェクトのない世界観(f -> g -> hみたいな関数の連鎖)よりも、オブジェクトのある世界観、つまり「AがBする」「BはCを持つ」みたいな世界観の方が人間の世界の捉え方(もっと大雑把に言ってしまうなら、人間の脳)にマッチしているからなのではないかと思っている。

なんかトンデモ系だな.一体どんな本を参考にしたのか聞いてみたい.


「オブ脳」とか「憂鬱本」とか「プログラミングのセオリー」とか,そういう糞本を読んで「変な世界に目覚めちゃった人」じゃないだろうね.

オブジェクト脳のつくり方―Java・UML・EJBをマスターするための究極の基礎講座

オブジェクト脳のつくり方―Java・UML・EJBをマスターするための究極の基礎講座

憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection)

憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection)

プログラミングのセオリー

プログラミングのセオリー

※いずれも超糞本なのでお間違えのなきよう.
http://d.hatena.ne.jp/JavaBlack/20080401/p1


これも関係するかな.
http://d.hatena.ne.jp/JavaBlack/20120520/p1
ただし文系/理系というくくりではないし,異論もあることは認める.

http://b.hatena.ne.jp/entry/zentoo.hatenablog.com/entry/2014/06/07/031513

  • id:qwerty86 数理モデルを理解してない奴がプログラミング能力とか言っても何の説得力も無いだろ。数学を何か特殊能力のように考えるのは頭が悪い。
  • id:uzo_orz 数学的にものを捉えられない抽象化の苦手なプログラマーが多いから、伝える為のコーディングという変な危惧が必要になっちゃったんじゃないの?
  • id:hiroyuki1983 現実世界の数学的なモデルを作ってそれを撫でまわすことで現実世界を理解しようとする思考特性は、理系教育を受けないとなかなか育まれない気がする。文系はモデルを経ずに一足飛びに現実と組み合う傾向がある
  • id:cider_kondo id:tenjin68kさんの言ってる「問題領域」がすべてだと思うなあ。自分は制御屋なんで、電気系統の学問を一通りやってないと何もできん。大昔、パンチカードの国勢調査システム作ったチームはどういうメンツだったんだろ

例えば小児科医に子供相手の話術が必要だからと言って,医者である以上は軸足が理系にあるのは変わらない.


高度な数学や電子回路の知識が求められる分野に理系知識があるのは間違いないだろうが,そういう知識が必要ない分野でも,プログラミング自体が理系の技術だと思う.*2

  • id:nyop 新しい言語やパラダイムを作る一部の先進的な人を除いて、既存のフレームワークを使ってアプリケーションを作る上では、文理とか関係なくそのフレームワークを理解し、想像し、言語化する能力の優劣だと思う。
  • id:tenjin68k プログラミングは問題解決の手段でしかない。プログラマに必要なのは対象となる問題領域への適性であり、そこに文系理系の区別はあるかもしれない。
  • id:jiminko ただの対話ツールが欲しいだけなら数学やら基礎知識なんて必要ない。パフォーマンスやモデリングや革新を求める以外は理系っていらないんじゃない?
  • id:kno sys 開発するシステムの業務知識として理系要素が必要でない限り、あまり関係ない気がする。むしろ文章読解力のほうが大事じゃないかな…と文系出身者が
  • id:harumomo2006 ロケット飛ばすような特殊なプログラムでない限り文系でもおk

そういう「文系でも一応書ける」領域においても,やはりコード品質に抽象概念やメンタルモデル構築の差は出るもので.なんちゃって文系プログラマの出番はない.

  • id:rkisato 何が言いたいかよくわからないけど、5教科で言えば数学と国語ができるに越したことはないと思う

いや二つなら数学と英語でしょう.

日本語能力も必要だが,必要なのは国語でやるような文学作品の読解じゃなくて理科系の作文技術.

理科系の作文技術 (中公新書 (624))

理科系の作文技術 (中公新書 (624))

  • id:kikuchi1201 理系よりも英語できる人の方が強い。理由は海外のコードビューの方が遥かに良質だから、それを読めるようにした方がよい。
  • id:yygattya プログラムって、ただの言葉だからでしょ? 理系が力を発するのは、ゲームアプリやアルゴリズムを考えるときなのでは。

うん,それ大間違い.人工言語自然言語は全く別.

*1:ある意味で,こんな世界. http://d.hatena.ne.jp/JavaBlack/20091031/p1

*2:少なくとも,世の中には救いようがないほど汚いプログラムしか書けない人種は実在するのだ.あれは「プログラムが書ける」のうちに入らない.