パソコンが苦手で業界未経験な文系出身エンジニアがお届けする意識低い系コラム

文系と理系の壁

»

世の中には犬という動物がいて、猫という動物がいて、それらは動物と呼ばれます。犬は「ワン」と鳴き、猫は「ニャー」と鳴きます。 要するに、おおよそほとんどの物事はカテゴリーに分類でき、そのカテゴリーに属するものにはそれ相応の性質を持っています。さらには、それらは特有の振る舞いをします。 オブジェクト指向におけるクラスというのはカテゴリーのようなものだといえます。

■プログラミングにおいて例え話は必要ないのではないか

ITという業界に入る時一度は聞いたことのある文言だろ。斯く言う私も200回くらいは聞いた。または#include <stdio.h>という文章をおまじないのようなものだと聞かされたことはないだろうか。これも私は150回くらい聞かされた。

両親に子供はどうやってできるのかと聞いたところ「それはね赤ちゃんはこうのとりさんが持ってきてくれるの」そういう聞いててもやもやした回答をもらった気分だ。なんだよおまじないって。そうぼそりと呟くも誰からも回答をもらえない。プログラムの初学者として電子の海に飛び込もうとしてかえって孤独にさせられた気持ちになる。

プログラムを始めるときこういう曖昧な言葉でお茶を濁されると理系というものの存在に懐疑心を抱いてしまう。そういう文系は多いだろう。私もそうだった。なるほど確かに犬はワンと鳴くな。このようにオブジェクトが分かれてるんだな。よしと思い参考書の次のページをめくると

package samples.file;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileToString {
  // ファイル内容を文字列化するメソッドです。
  public static String fileToString(File filethrows IOException {
    BufferedReader br = null;
    try {
      // ファイルを読み込むバッファドリーダを作成します。
      br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
      // 読み込んだ文字列を保持するストリングバッファを用意します。
      StringBuffer sb = new StringBuffer();
      // ファイルから読み込んだ一文字を保存する変数です。
      int c;
      // ファイルから1文字ずつ読み込み、バッファへ追加します。
      while ((c = br.read()) != -1) {
        sb.append((charc);
      }

もうこんな感じの謎のアルファベットの羅列である。一体ここのどこに犬がいるのか。ワンと鳴くとは何だったのか。分かりやすく書こうとしてかえって分かりにくくしている。なんかケムに巻かれているというか、馬鹿にされている気持ちにすらなる。ここで何か壁があるなと思ったのが理系に対するファーストインプレッションだった。

理系との壁

ITという業界はまずプログラムを書く必要、もしくは読める必要があるからか必然的に理系が多い。だけども文系も結構な数を採用しているから不思議な業界だ。

ちなみに私はこの業界に入るときに自分の強みを説明が得意だと言った。元々バイトで塾の講師をしていたから説明するのが好きだったのかもしれない。

「例えばガンダムとかありますよね。ガンダムをお互い知っている人同士なら赤良いよね。そのワードで通じ合えるものがあるかもしれませんが私はわからない人にはきちんと赤とは何なのか。その赤は何故人気なのか。それを知らない人にも分かりやすく説明できます」

この時の回答が受けたからかとりあえず今の会社には受かった。

だけど別にガンダムにはそんなに興味がなく例えで話しただけであった。僕の中での勝手なイメージだが専門用語を使いたがる人はそれを知らない人に対しての説明が非常に下手だと勝手に思っていた。今もその認識は変わらないが、なぜ説明が下手なのかと言うと相手がどのようにその物事を認識しているかの想像力がかけているからだと勝手に思っていた。

だから、自分がその間を埋めれるようになればその架け橋になるのではないか。そう安易な気持ちでこの業界に飛び込んだわけだが、入ってから苦労の連続である。さっき述べたjavaのクラスやインターフェースなど理系の側が歩み寄ってきているんだろうなと思うがこれがなぜ英数字の羅列になるのかこちらとしてはさっぱり理解ができない。同じ日本語を使っているはずなのにコミニケーションの絶望的な断絶があるのではないか。この業界に入って理系と接してからその思いが強くなっていた。

研修で組んだ理系への印象

今の会社に入って研修の時アンドロイドアプリの作成というOJT研修を受けた。その時に組んだプログラマーが理系で大学院まで出ていてメガネをかけてて、僕からしたらTHE理系でいわゆるパソコンの先生だった。そして彼は優秀だった。大学の時にC♯しか使ってなかったようだが、アンドロイドアプリに使われるjavaのクラスやメソッドインターフェースなどを理解しこのアプリのコアとなる部分を作成していた。あまり詳しく書くと身バレにつながるからかぼかして書くが、食べログやぐるなびのパクリのアプリの作成だ。その時に始めて理系と組んで仕事をすることになったわけだ。

この時点で僕は会社に入ってからわずか2ヶ月でプログラミングのイロハのイの部分もよく分からいまま研修をしていた。なのでプログラムングの先生と僕とのあいだにはあまりにも差がありすぎてとてもペアを組んで作業が出来るとは言い兼ねる状況だった。こちらとしてはプログラミングがあまりにも分からないため、ペアの先生に任せきりだったのだが、研修の身分とは言え給料が発生しているため何もしていないということでは居心地が悪い。そのため、定期的に進捗状況、現状を確認しどれくらい進んでいるか進捗の確認をして僕なりに理解をしようとしてみた。

その時彼は「あー」だの「うん」だの「まあまあ」くらいしか返してくれず理系とはこれほどまでにもコミュニケーションを取れないのかと絶望していた。僕は文系出身で高校もそれ専門のコースであったため普段理系とはあまり話す機会がなかった。学生の頃の理系の印象といえばチェックのシャツを着て数学が出来てアニメやゲームの話では盛り上がるがほかの日常会話がまともに取れない俗に言うコミュ障だと勝手に思っていた。なのでペアを組んだ彼に関してコミュ障だからコミュニケーションが取れず、好き勝手にプログラミングを組んでいて、僕には教えたがらないのだと勝手に思い、日増しに苛立ちを募らせていた。きっとプログラムを分かっていない僕を馬鹿にしているから何も話さないのだろうと理系に対する怒りとこんな研修をさせる会社の方針とかいろいろに腹を立てて、辞める時は転職会議と2chに会社の悪口を書きまくって会社を辞めようと思いながら、一人でITパスポートの資格でも取ろうと本を読んでいた。

だが、本を読んでいても途中で集中力が切れる。そこで自分でもeclipseを開いて彼の書いたコードを読んで見ようと思っても最初に文法を習っただけでは全くと言っていいほど分からなかった。そこでふと彼自身を観察してみようと思った。するとプログラムに規則性は分からなかったが、パソコンの先生からは一定の規則性を発見した。

彼がひたすらパソコンを眺めて睨んでいるとき、これは声をかけても返事をしてくれない。また、「うーん」だの「これもダメか」そう独り言を話しているときも声をかけても無駄だ。コードがうまく書けてないのだろう。この時に声をかけても嫌そうな顔を露骨に浮かべられる。だが、カタカタとパソコンをタイピングして体を若干揺すり始めて顔に笑みが生じたときこの時はうまく動いたようだというのがわずか1月ほどの一緒に作業をしていて分かったことだった。つまり口では説明してくれないが態度で何となく進捗状況がわかってきたのだ。

日が進むにつれて彼の笑みと喜びの貧乏ゆすりが増えてきた時に、このプログラムがどのように動くのかを聞いてみた。すると彼はようやく時が来たなと言わんばかりにホワイトボードを全部使って説明してくれた。その時説明を受けてようやく分かったのだ。プログラムのクラスを複数に分け呼び出す関数をいくつもつくり複雑にできていたため進捗を説明しづらいことに。正直今はあまり覚えてないがjsoupでぐるなびや食べログの中のhtmlの必要なキーワードを抜き出しそれを画像処理班に渡しデータベースからも必要なデータを持ってくるという内容のプログラムだったと思う。それでデータベースの処理に時間がかかるためasynctaskをいくつも立て、プログラムに遅延が起きないようにしていたという内容だった。そのメインのクラスを彼がほぼ一人で書いていたのだ。

ホワイトボードが全部埋まるほどの説明を受けたときようやく彼がコミュ障ではないことに気づいた。コミュニケーションで壁ができる要因に説明ベタという印象が浮かぶかもしれないが、片方にあまりにも知識に差があることも挙げられると思う。この時私はあまりにも無知すぎて理系の彼と意思疎通ができなかったのだと思う。

■文系と理系は収斂する?

初めて入った現場で一人仲良くなった同僚がいた。彼も理系出身ではあったが彼は喋りがうまかった。あまり専門では習っていないがプログラムの基礎を理解できる程度の技術はあった。そんな彼と手順書をタクシーで運びに行く間暇だったから雑談をしていた。その中でお互いの出身学部にふれ理系と文系の差はどうやったら埋まるのかと話をしていたら彼がこんなことを言った。

「たぶんですけど最初のうちは文系とか理系で差が出るかもしれませんがおっさんになっていくうちにほとんどなくなっていくと思いますよ。だって大学で学んだことはたったの4年間ですけど働くともっと長いわけですし」

この時文系だからプログラムが出来ない。理系だから喋ることが出来ないそういう安直な発想を持っていた自分が恥ずかしくなった。そう、文系だの理系だの些細なことなのかもしれない。駄目なのは文系だからプログラムがわからなくても仕方ない。理系だから話せなくても仕方ない。こういう固定概念が成長の妨げになるのではないかと。プログラミングがわからない文系はプログラミングを分かるべきだし、それを全く知らない人に対して接するときは相手がどれくらいの知識を持っているのか探りながらも説明が出来る。それこそが理想なのではないかとこの時何となく分かった気がした。

■まとめ

何が言いたいのか自分でも正直分からない。文系と理系はお互い収斂するとか何か偉そうなことは言ったけど、じゃあお前はうまくやれてんのかというとやれていないと思う。社員をよそ様の会社に常駐させる会社に勤めているのだが、この2年間で既に現場を4回ほど転々としている。恐らく仕事が出来ないのもあるのが原因だろう。毎日楽しくもないドキュメント修正ばかりしてこんなことして自分にとって何の意味があるのだろうかと毎日自問自答している。

元々コンサルを目指して最近はITコンサルというのがあるからそこから上流工程に登っていくかという安易な気持ちでこの業界に入ったのを最近は後悔し始めてきた。これから1年経たずに退職しました。ひゃっはーなんてコラムを書いてるかもしれない。

だけどこの業界に入る文系、もしくは入って1年目でプログラムとかさっぱり分からないから辞めたいとか思う人へのアドバイスとしてだが、数学が分からない。プログラムが分からない。だから向いていない。そんなことを考えることが1度や2度、いやもっとあるかもしれない。逆に理系の方も説明が苦手。相手の知識不足が原因なのに俺の説明が聞いてもらえないのはおかしいと思う人もいるかもしれない。だが、そこは○○だから出来ないではなく、そこをどう克服するかを考えていけば少しは気が楽になるかもしれない。

とりとめのないコラムしか書けなくて恐縮だが、もう少し理系とかプログラムできる人はわかりやすく教えてくれたら色々みんな幸せになるんじゃないかなと何となく思いました。

久しぶりのコラム更新。次は小話でも書きたいです。

Comment(43)

コメント

山無駄

理系だから、文系だからという大雑多なくくりで物事を考えるのは危険かと。
理系という括りでも理学系だと数学、生物、化学それぞれの専門があるし、
工学系でも建築や電気、機械などの専門があります。
こと、プログラミングは技術やスキルの問題だから、理系でもあまり使わない
分野もありますし、文系でもバリバリに使う分野があるのではないでしょうか。

また、技術の取得、スキル向上の問題とコミュニケーションの問題も一緒に
しない方が良いかと。例えばメタファーを使って一見わかりやすい説明を受けて
も分かった様な気になるだけで、正しく理解しているとは限りません。

この業界、大切なことはしっかり技術を取得し、一生スキルを向上させていく
事です。それは理系とか文系とかは関係なく、モノづくりの業界に足を踏み入れ
た者の責任かと。

DEEP ACID

実際には文系、理系なんて消去法の人が大半なんじゃないんですか。英語ができないから理系とか、数学分からないから文系とか。理系文系を乗り越えられる人はそもそもごく一部、乗り越えられないからこそ通じ合えないわけであって、そんな簡単に言わないでほしいです。

Su++

文系理系以外にもいろいろな壁がありますよね。男女とか年代とか人種とか国籍とか生まれた地域とか。文系同士なら本当に通じ合えるんでしょうか。関係あるんでしょうか。
要は視野・視点の広さ高さの問題じゃないかと思いますが。

公ちき

歴史を紐解いてみると、偉大な数学者=偉大な哲学者であることが多々あります。
アリストテレス、デカルトなど。そういう意味ではどちらも極めて行けば収斂する、というのはその通りかと。

話は変わりますが、コミュニケーションというのはco-(=共同の、相互の)がつく言葉であり、お互いに認識の統一をさせる共同作業のはずです。
そういう意味では相手のレベルに合わせられる方が、相手のレベルにあった話をする必要がある、というのが私の考えです。

とは言え、自分が説明を聞く側だった場合に相手にそれを要求するのは気が引けるので、極端なときは「申し訳ありませんが、小学校3年生にも理解できるような説明をお願いします」と言ってしまいます。

Anubis

ニャー。

おっさんエンジニア

うーむ若いなぁ、若いっていいことかも。
プログラミングスキルが理系だというのは、ここほんの20年くらいなものでしょうか。
今40歳以上で就職前からプログラミングをやっていた人は、「文系」として学んだわけでも「理系」として学んだわけでもなく、「趣味」で身に着けていったから、文系でも理系でもなかった。
そもそも今でいうITを学んで仕事にするっていうイメージがなく、「趣味でビリヤードやっていたら、いつの間にか全日本ランキング上位になって、プロとして食べていけるようになった」という人と、同じ感じで、とてもとても理系とか文系なんていう体系づけられるようなものじゃなかった。
1980年代から1990年代初頭とか、ゲーム(ファミコンとか)つくるっていっても、プランナー・シナリオ・システム設計・プログラミング、どれも1人でつくって、分業されているのはCG原画とBGM原曲くらいとか、普通だったし。

夢夢

この手の話題でいつも疑問に思うのだがそもそも理系とやらにコミュニケーション力ってなんだろうか?
例示されているプログラムをわからない原因は情報技術に対する知識不足であり、理系文系の違いは関係ない。
しかし不勉強という事実を無視してわかるようにするのがコミュニケーション力だという。
しかしそんなことが可能ならば情報技術のプロは存在しえない。
何故ならばどこかに居るコミュニケーション力が高い人が一瞬にして情報技術の全てを理解させるからだ。
誰でも理解できる分野で専門家は存在できない。
専門分野の知識を一言で真に理解させることは到底無理だ。
専門分野の習得には学習が必要という当たり前の真理がそこにあるだけだ。
コミュニケーション力とは魔法か超能力の一種なのだろうか?
当然、教える側の伝える力も必要だと思うが、何がわからないのか伝える能力が聞き手に必要なのでは?
具体例を挙げると冒頭の例の何がわからないのかがわからない。
オブジェクト指向の初歩程度はその手の説明で伝わる。
何がわからないのかわからない状態で何をどう説明しろというのだろうか?

はむぱぱ

プログラミングは難しいものではない。
なぜなら、プログラミング言語は「どんな人でも簡単にプログラムがつくれるように」開発されるものだからだ。(ただしJavaに限るかもしんない。)
プログラミングは一部の人にしかできない高級な作業ではない。ましてや理系・文系なんてね。そう思いませんか?

ネットの対立煽りの人達がプロレスで文系理系言ってるならまだしも
院卒の有職者がいい年こいて文系理系とかの括りに囚われてる、分けてるってある意味すごいというか信じられん。

説明技術だのコミュ力なんかは卒業学部なりなんなりで統計を取れば関係があるかもしれんが、実際付き合う分には人によるとしか言い様がないだろう

実務上、分けて何になるのかな…

ri@kei.com

さすが文系、話が長い。
結論だけサッと書いて欲しい。

かなた

>さっき述べたjavaのクラスやインターフェースなど理系の側が歩み寄ってきているんだろうなと思うがこれがなぜ英数字の羅列になるのかこちらとしてはさっぱり理解ができない。同じ日本語を使っているはずなのに

はははは、やだなぁ。Javaはプログラミング「言語」なんですから日本語という言語とは違うに決まってるじゃないですか

かなた

>さっき述べたjavaのクラスやインターフェースなど理系の側が歩み寄ってきているんだろうなと思うがこれがなぜ英数字の羅列になるのかこちらとしてはさっぱり理解ができない。同じ日本語を使っているはずなのに

はははは、やだなぁ。Javaはプログラミング「言語」なんですから日本語という言語とは違うに決まってるじゃないですか

MM

コラムを読ませていただきましたけど、まず、エンジニアリングの場合、なんらかの実利、つまり、役に立つことがあるから理論なり技術がある場合が多い。

例えば、オブジェクト指向の説明で、よく巷の本では、動物にたとえたりしてます。それはそれで悪くはないんですが、私なんぞは、「C言語における構造体や共用体の中に関数も入れることができないだろうか?」、というところから出発しているという説明があり、それで「なるほど」と思ったクチです。複数の種類のデータとそれを処理する関数群を効率よくパッケージングしてしまうと、複雑なデータ構造を処理するのにプログラムコードが書きやすくなる。

現在のPCやスマホは、GUI環境でのイベントドリブン型のプログラムが主流になったため、各イベントにあわせてオブジェクトを対応させていくという形にせざるを得なくなった。これをバッチ処理みたいにループと分岐だけで書くというのは、ものすごく手間がかかるでしょう。

また例示しているJavaのコードですが、たしかにJavaは物理装置への入出力はまどろっこしいところはあるように思います。ファイル出力をバッファに入れるのに、2回ラップしなくてもいいような(笑)。しかし、それも、いろんな状況に対応できるようにあえてそのままにしてるんでしょう。このへんは、ハードウェアの知識も多少持っている必要があります。

Jitta

JavaでもC言語でも、語学の習得を、なぜ文系がためらうのだろう?
プログラムって、自分がコンピュータにして欲しい事を説明する文章を組み立てることなのに、コミュ障じゃないという文系が尻込みするのはなぜだろう。
理系がプログラム書くなんて、弾道や星の軌道計算やるためであって、「あなたの悩みを解決します」なんてのは文系こそ得意なんじゃないの?!

夢夢

Anubisさんのコラムをみて気付いたんだが、もしかしてひろ氏さんはプログラム中に犬猫&鳴き声がない事を質問しているのか?
それならすまん。
俺の読解力が足りなかった。
冒頭の譬えを使うと、FileInputStreamは犬、readがワンだ。
猫とニャーでもいいぞ。
ちなみにこのプログラムは文字コードを後で変えられる。
new InputStreamReader(new FileInputStream(file)) //この部分
だが初心者に教えるのにそんなことをする必要はない。
改めて見ると確かに説明が下手かもしれんな。

I don't even know how I stopped up here, however I believed this post was once good. I don't recognize who you might be but certainly you're going to a well-known blogger in the event you are not already. Cheers!

研修三ヶ月目

はじめまして!

いつも楽しく読ませて頂いてます!

自分もド文系で同期に理系大学出身のインテリメガネがいますw

彼も大学時代プログラミングをやっていて物凄く飲み込み早いので境遇が自分と同じだな~って思いました。

自分は同期一人だけマンツーマン補習+マンツーマン研修を受けて1からプログラミング出来るようになりました。

覚えが悪いんで、上司から呼び出しくらってクビにもされかけましたw

ひろ氏さんは覚えが悪いんじゃなく、基礎的なことを抑えてないからわからないだけだと思いますよ。

自分はアルゴリズム、関数メソッド、引数を理解してオブジェクト指向がやっと入りました。

記事を読んでいて自分と非常に似た境遇なのでコメントさせて頂きました。

お互い一人前エンジニアなりましょうね!

Jitta

ああ、ごめんなさい。
前言撤回。犬いないわ。
「FileToString」クラスに「fileToString」メソッドってなんだよ。
「ワンと鳴く」クラスに「わんと鳴く」メソッドかよ。
そりゃ、犬いないわ。
つーか、「全部staticで宣言すれば良い」かよorz

通りすがりのエンジニア

>理系とかプログラムできる人はわかりやすく教えてくれたら色々みんな幸せになるんじゃないかなと何となく思いました。

六法全書の全容を近所のおばちゃんにわかりやすく説明しろと言われたらどうする?

そんなことができたらそらみんな幸せだろうさ。

わかったら、手元のソースの記号・文法・単語についてマニュアルと首っ引きで
どう動作するもんなのか追いかける作業に戻るんだ。

ppp

タイトルだけ読んで本文読まずにコメントしてる人多すぎ。
筆者の言いたい事をもうちょっと汲み取ってあげて。
(文系じゃないからできませんとかそういうのはナシでw)

もともと文系の筆者がIT系の会社に入社した時は理系に対するバイアスがかかっていて
理系の人とコミュニケーションが取れなくても「こいつ理系だしな」と思っていた。
しかし理系文系の前に同じ人間なのだから本当に必要なのは相手への理解だった。
それを安易に文系と理系の壁だと思っていた。
他人と仕事をする上では相互理解が大切であり、まずは双方が歩み寄らないといけない。
なので、文系は技術的な知識を、理系はコミュ力を(知識の無い人への配慮)をすれば互いに幸せになれるだろう。

って感じかな。

電気電子卒

大学時代は深く理解せず、教科書に沿ってプログラミングを行っていましたが、仕事についてから必要に迫られて、もう一度勉強し直しています
大学時代は日本語で書かれたテキストを使っていたのですが、現在は英語の学習も兼ねて英語のテキストを使っています
英語のテキストを使ってみて思ったのは、日本語のテキストよりも遥かに分かりやすいということです
日本語のプログラミングテキストは、なぜなのか知りませんが無駄な記述が多く、基礎的な部分についての説明が厳密にされておらず、明らかに記述が不足しています
おそらく、面倒なことはひとまず置いといて、手っ取り早く習得してもらおうというのが日本語テキストの目指すところなのでしょうけれども、細部まで稠密的に理解したい人が読むと、かえって分かりにくく、理解に時間を要する構成になっています
プログラミングのテキストが分かりにくいと感じたら、米国のプログラミングテキストをみてください
早急にこの良書が翻訳されることを願っています

通りすがり

>他人と仕事をする上では相互理解が大切であり、まずは双方が歩み寄らないといけない。
できる理系が、なぜ同じ待遇のできない文系を持ち上げなきゃならんのか
しかもその過程でコミュ力云々という言われもない偏見を見に受けなきゃならんのか
コミュ力のある文系なら、パソコンともしっかりコミュニケーションとれてプログラムなんて簡単だろうに
そもそも文系にコミュ力があるのかという疑問すら感じる昨今

今の就職の実態そのものが、理系からすれば文系超優遇の謎のシステムだから
「理系が同僚の文系に冷たく当たる」ってのは当然のこと
記事内の理系君が1ヶ月以上経ったところでようやく口を開いたってのも、
キャリアを邪魔されたくなかったからに尽きるだろう
文系君にとっては理系君しか見えていなかったのかも知れないが、理系君には数多のライバルがいるんだよ

おじさん

書かれてることはそうだよね、と思い理系/文系というより個人と個人だと気づくのがお互いに大事だよねとは良く思う。

その上で、理系というか情報系の専門なり大学を出る人間が開発スキルに関してアドバンテージがあるのは当たり前なので、情報系の人間はそれを「圧倒的に」伸ばすか、別な社会人スキルを伸ばすかしないと1、2年後には追い付かれるからね?
とはここで書かれてる理系君に対しては言ってみる。アドバンテージは上手に活用しよう。

匿名

文系にコミュ力があるのかというとそうでもないし、理系に技術力があるのかというとそうでもないし、プログラミングに技術力が必要なのかというとそうでもない。

匿名

文系もコミュ力ないし。
何が分からないかも分からないようじゃ、書いてる本人もコミュ障ね。

匿名

消去法で決めたから文系じゃない、理系じゃないとか嘘だね
どんな理由で入ったにせよいくつになったにせよそれぞれに特徴があるよ
一言でいうとパソコンに向かって独り言を発する人は理系の素質がある
逆に独り言を嫌う人は100%文系だね

匿名

1から学ぼうという気持ち。
良書や講座の動画を見て、手を動かせば、誰でも書けるようになるよ。
そして何よりも大事なのは楽しむことじゃないかな。ペアの子は楽しそうにプログラムを作ってたろ?ものを作るのは楽しいことなんだ。

あと先生という語には少し馬鹿にするような響きが含まれている。そういうのは良くないよ

匿名

理系文系関係なくPCに触れてこなかった、そう言った知識興味を無しに業界に来たんだからそうなるわな。理系で情報技術系なら否応無くプログラミングなんてするはずだからね。

匿名

このサンプルはひどいね。
書くならFileクラスでしょう。で


・インスタンス変数としてバッファを初期化
・ファイルをバッファへ読み込むreadメソッド
・バッファの内容を文字列に変換するtoStringメソッド
・バッファの内容を出力するshowメソッド


に分解しないと。
オブジェクト指向どころか、構造化設計すらできてないですわな。


こんなのが初心者向けの解説だなんて、世も末ですわ。
書籍学習なんて、百害あって一理なしですな。

匿名

へえ、あなたが羨ましいですね。
大学4年で文系の学問を学んだ後会社でプログラミングを身につけられるなんて
理系より得してますよ

匿名

>ホワイトボードが全部埋まるほどの説明を受けたときようやく彼がコミュ障ではないことに気づいた。
>コミュニケーションで壁ができる要因に説明ベタという印象が浮かぶかもしれないが、
>片方にあまりにも知識に差があることも挙げられると思う。

文理の差が明確に出てると思います。
文系に比べて理系の扱う内容は体系で理解しないとどうしようもない物が多いと感じます。
1を理解するのにバックグラウンドで必要になる知識や理解が多すぎるんですよね。
文系でも民法の一部を切り取って何も知らない人に話すのは相当厳しいですし、
経済の個別の効用を説明しようにもすぐに偏微分が出てきて、聞き手はうんざりしてコミュ障認定するでしょう

にーとくん

いつも思うが、文系理系の違いというよりは、専門家・非専門家の違いなんだよな。
日本の多くの大学の文系学部教育が非専門家を生み出すことしかできないので、文系VS理経になってしまうわけだけど。

結局、専門家は、体系だった学術知識を身に付けてるわけで、それを掻い摘んで説明するのは難しい。
実際、非専門家にわかりやすい説明っていうのは、専門家からすると受け入れ難い間違った説明であることが多々あるからね。

文系プログラマが生まれること自体、日本企業の新卒至上主義・終身雇用前提な感じで、個人的にはヤバイよなあと思うのだがね。

名無し

プログラムの読み書きするのに理系の知識っているのかな?何を開発するかによるのでは?
少なくとも普通の?業務アプリのプログラムを読み書きしてる分に必要なのは、国語の力(誤解を産む余地がない→バグの少ない、ロジックをくみたてる)、英語の力(言語習得能力)と感じています。

匿名

プログラムを読み書きするのに必要な知識は、プログラミング知識ですよ。
理系知識ってのは物理や化学であって、文系知識ってのは世界史や日本史でしょう。

プログラムを発展的に書きたいなら
そこに必要なのは論理思考なのであって、つまり国語と数学を合わせた総合スキル。
国語も数学も、文系・理系両方に必要な前提のスキルですから
プログラミングに文系も理系もないのでありますな。

匿名

つーか、ICT系の会社に入る時点でどんな業界なのかのチェック、勉強すらしてない見通し0の思考がいけないのでは?
文系理系の前に、固定観念で決めつけてしまう思考をなんとかした方が良いかと。

匿名

確かにアルファベット圏の人は読みやすそうで羨ましいです。日本語のコメントが沢山なコードは結局本文が読めません。
研鑽が足りないのですが...

匿名

文系理系は関係ないですね。今まで見た感じ、プログラミングが得意な性格とはととりあえずやりたいことを調べてその後にとりあえず実行する人です、文系理系など関係ないです(重要なのはリスク感覚)。これをせずにとことん論理武装して実行する人はあまり向いてません。特にルールを順守しようとするタイプ、ワークフローをロジックをもとに守ろうとするタイプはあまり向きません(彼らは管理が向いてます)。何故ならネーミングは言語の数だけあるし、併用して使える部分を除きネーミングは人間がつくってるからです。
ネーミングにロジカルなんて求めても時間の無駄です、単純にキーが近かったからとかIntelがxxx等と色々と変な理由で名前が決められてます。
要するに昔プログラミングの基礎を作った時点ではかなり論理的な仕組みで、ビジネスロジックなどをゼロから組み立てる人はロジカルですけど。今プログラミングで要求されるスキルはプラモデルをくっ付ける、他人の暗号化されたプラモデルを理解する、よくわからないネーミングを覚える力です後は楽しむことだと思います。

IT屋

文理とかじゃない話。
プログラムは結局のところ「コンピュータと会話するための『言語』」なのでその振り分けだけで言うなら何故文系が出来ないのかと思う。
こう言う伝え方をすれば相手に正しく伝わるだろうと考えられるなら相手が機械に置き換わってるだけなのに。
しかも機械は自分の判断をしないので結果が間違ったなら認識の齟齬だのはなく100%自分の伝え方が悪い。
だからどう伝えてあげれば正しい結果を導き出してくれるのかを考える。
できる人とできない人の差はそこに興味を持って取り組めるかどうか差だけです。
結局のところ見慣れないものを習得しようとする興味の差でしかない。
英語が苦手な中学生と変わらないですね。
機械だから理系。だから文系が苦手。なんて先入観だけで語っているに過ぎないかな。

ぽち

専門性が高いのは理系勢の方な気がします

匿名

大学で文系から理系に転籍したプログラマです。
色々な人が言ってる通りプログラミングに数学的な知識や物理工学的な知識なんかいらない。と言うか、そういった物を用いて仕事したいなら、OSや言語を作る側の人間になるべき。
所詮はプログラマーはそういった人間が作ったプログラミング言語のルールに従って作業を組み立てているだけと言う事に気づかないと文系理系とかいうくだらんマウント合戦を取り合う事になるので勘違いせんように。
現在なんか沢山情報が溢れてるしフレームワークも多数あって選択肢の幅があるから、開発はかなり楽になってるよ。
こんな時代で文系理系の違いがあるとか抜かす奴は本物のバカ。説明書読まずに動きませんとか言って大騒ぎする連中と同じ。
むしろ、初学の場合は文章理解能力が発達に大きく左右されるのでプログラミングは国語力が重視される。
それはそれとして、よくも知らん他人を平然と偏見で見下しておきながら相手はコミュニケーション能力が低いとかよく思えたもんだ。
こういう勘違い野郎ってプロジェクト内だと一番邪魔だよな。自分は与えられる事前提で自学しないのも勘違い甚だしい。
関係ないと言った手間あまりいいたくないが、大学でいうなら理系の方が全然コミュニケーション能力要求される場面多いよ。プレゼンも良くやる。ダメ出しもキツくされる。そういうのもあって結構根性がある。他、同僚を見下すやつは理系には多くないよ。但し、話が分からない奴は相手から話しかけられない限り距離を置く傾向はある。お前、話す価値なしと判断されてんだよ。
よくコミュニケーション力があると勘違いする奴で、お節介やいて勝手に教えたり仲間にしてやろうとするやついるけどさ迷惑なんだよ。
皆んなが皆んなお前と仲良くなりたいと思うなよ。好意の押し付けはコミュニケーション能力っていわねーから。

匿名

普段ブログにコメントを残そうなんて微塵も思わないのですが、とても面白い記事だったのでコメントします。非常に文才があり、読んでいて気持ちのいい文章でした。批判的なコメントが多く驚きました。人に説明するのが得意な人は言語化も上手ということなのでしょうか。プログラミングよりも記事を書く仕事とかの方が得意そうですね。私は就活でSEを滑り止めに受けようかと思っていた22卒の愚かな文系大学生ですが、これを読んで受けるのをやめようと思いました。文理別のSEの空気感がここまで伝わる記事は初めてで、とても参考になりました。ありがとうございました。

mars

結論からいいます、そのプログラムは「ゴミ」です。
理系らしいと言えば理系らしいというか私も散々やらかしてその後は製造から全然違う業種から何やかんやで無職ですが、そいつの自尊心の為の「技術デモンストレーター」です、相手しちゃいけない。
まず「オブジェクト指向」自体不必要で次世代を見据える人は「使いません」、C++なんてWindowsとかのウィンドマネージャを記述した時点でお役ご免です。世の中の全てが「オブジェクト」とかデジタル人間の思い上がりです。
今だから「正直な気持ち」を言えます「せっかく覚えたものを使いたくてしかたがない」のが本音です。さらにどうせ人月計算でプロジェクトが動いてる方式だったら「無駄に汚くて長い」方が儲かります、3月の工事で道路をボコボコにしてるアレと一緒なんでやってるフリしてりゃ褒められます。
というかJAVAとかオワコン。
python楽しいぞ。

コメントを投稿する