「変数」を含む日記 RSS

はてなキーワード: 変数とは

2019-04-23

「参照渡し」と「参照の値渡し」のバトルの構造

x = 10


という変数xについて考える。

ここで、

x

と書いた場合、xの値が返ってくる。

&x

と書いた場合、xの参照(参照値)が返ってくる。参照とはメモリ上のアドレスのことである

次に、なんかの関数func()があるとする。以下のようにして呼んでみる。

func(x)

これが、値渡しである

func(&x)

これが、参照渡しである

さて次に、新しく変数yについて考える。

y = &x

yはxの参照を値として持っている。

これもx同様、

y

と書くとyの値が返ってくる。

&y

と書くとyの参照が返ってくる。

で、ここから本題。以下のように関数func()を呼んでみる。

func(y)


再度書くが、yはxの参照を 値 として持っている

これを何渡しと呼ぶか?ここで対立構造が発生する。

・「yの値を渡してるんだから『値渡し』と呼ぶよ(でもまあ、xの参照を渡してるからあえて言うと『参照の値渡し』だよ)」派

・「xの参照を渡してるんだから『参照渡し』と呼ぶよ」派

のバトルである

歴史的に(?)は前者が正しいのだが、後者の誤解は根深く今も争いの種となっている。

ちなみにこの話にC言語C++が入ってくるとややこしくなる。なぜなら「C言語には参照渡しはない」からである。別の表現をすれば、「他言語で『参照渡し』と呼んでいるものの書き方と、C言語で『ポインタ渡し』と呼んでいるものの書き方は非常によく似ている」である

C言語だけ呼び名が違うので、C言語は他言語と違う言葉を使いだした空気読めてない糞言語みたいに見えるが、おそらく順序としては逆である

ここからは完全な憶測であり妄想だが、つまり

(1) C言語では「値渡し」と「ポインタ渡し」が使われてきた

(2) ポインタを直接扱うのはバグの温床だよね、ということに人類気づき始める

(3) C言語進化C++では新しく「参照渡し」という機能が追加された。これは「ポインタ渡し」に代わる「制約の厳しいポインタ渡し」みたいなものであった

(4) モダン言語ではポインタという概念を捨て(?)、この「参照渡し」を参考にした(ただしモダン言語の『参照』とC++の『参照』は意味合いが異なる)

(5) モダン言語では「値渡し」と「参照渡し」の2種類がスタンダードとなった

構文的にはモダン言語の「参照渡し」とC言語の「ポインタ渡し」は似た書き方をするので、モダン言語学習者がC言語の「ポインタ渡し」を見て「C言語では参照渡しってこう書くのかー^^」と言うとフルボッコあいC++の「参照渡し」を見て「C++の参照渡しってこう書くのかー^^」と言った場合でもその理解はずれている場合が多い。

というのが私の頭の中の真相であるソースはない。

2019-04-17

若者応援おじさんの思い出

https://twitter.com/MAEZIMAS/status/1113114798672113665

若者説教する老害は二流。

一流の老害は「君たちこそが真のニュータイプだ」とか言って、若者自分既得権益確保のための鉄砲玉にする。

…いやマジ本当に、若い人気をつけてね。若者説教おじさんは、せいぜいまだ極限の不愉快ですむけど、若者応援おじさんに乗せられると最悪人生詰むので…

というツイート流行っているので、私が遭遇した若者応援おじさんについて書こうと思う。

当時の私は親との折り合いがつかず、学力もそこそこあったし、勉強もしていたのにも関わらず大学に進学せずにフリーターをしていた。実家を出たかったし、大学にも進学したかたから金の工面が当面の目標だった。そんなとき出会ったのが若者応援おじさんのAさんである。Aさんはバブルの頃に就活をしていて、まだインターネットやパーソナル・コンピュータというのが流行る前から電子工作プログラミングをやっていた人だった。実際、経歴を聞いてみると10回以上転職を繰り返しているものの、有名企業(今にして思えば、カビ臭いSIerだが)で部長をしていたことがあって、年収が1700万ぐらい稼いでいたこともある人だった。

最初出会ったとき自分が如何にすごいかということを熱心に語っていた。80年台後半ぐらいのコンピュータ開発の大型プロジェクトに関わっていたとか、セキュリティ専門家とか、今までに触ったことのあるプログラミング言語が300個を超えるとか。でも、当時の技術的なトレンド(MongoDBRuby on Rails、AngularJSとか)についての知識が限りなく少なく、「フレームワークなんてその場で覚えればいい」みたいなタイプだった。中学生の頃にラジオ工作したとか、はんだごてで電子回路設計したとか、そういう話は熱心にするのに、Bram Moolenaarの名前を知らなかったりした。要は、最近プログラマがどういう関心やインセンティブプログラミングやってるかを知らずに、過去の栄光を語ってるようなタイプだったと思う。

まぁ、それでも、その人のコネで中規模程度のSIer入社して、そこそこいい感じの待遇だったように思う。当時の私の技術力は『わかりやすJava入門』『たのしRuby』を一通り終わらせて簡単言語仕様を把握したぐらいでろくにコードも書いたことのないような人間だったから、定時で帰れて手取り二十万もらえるのは甘い汁を吸えたとは思うんだ。

でも入社を決めた一番の理由が、そのAさんが私の関心に理解があると思っていたからだ。というのも、当時の私は「人工知能人工生命に興味があります。三年後に大学入学するまでにプログラミングスキルを磨きつつ生活費学費を稼ぎたい」ということを明言した上で、それを叶えてくれる会社を探していた。技術力はないものの、「自頭がいいか入社してからプログラミングを覚えればすぐに戦力になるよ」と複数人間から言われていて、それぞれ就職先を紹介してもらえるような状況になっていた。今から思えば、そんなコードを書けない人間を自頭なんて胡散臭いもので褒めるような人間は信用してはいけないと思うし、口車に乗せられたと思うのだけど。そこは自分にも甘いところがあったように思う。あ、あと、補足しておくと、当時はDeep Learningなんていうのは全く人口膾炙してなかった時期で、スチュアート・カウフマン金子邦彦に憧れてたような、周回遅れの複雑系に魅せられた若者が私だった。

駄文を書き連ねてしまったが、要は

①親との折り合いが悪く、大学に進学したいが、金が足りない

実家を出るために生活費を稼ぐ必要があったが、飲食バイトとかではスキルが身につかない状態で、価値の高い若い時間無駄にしてしま

③そんなところに現れたのが過去の栄光を話す若者応援おじさんのA

自分殆どコードを書いたことのない業務経験で、21世紀になっても複雑系の話に興味をそそられるような斜に構えたスノッブ

という状況設定理解してくれればいい。

では、入社後の話をしよう。私が配属されたプロジェクトは80万行程度のJavaコードで動いてるBtoB向けの製品保守開発してるプロジェクトだった。やってることはGoogleAmazonMicrosoftみたいな大手ならやってるようなサービスの完全下位互換みたいなソフトウェアを、情弱だけど社員数は多いみたいな企業に売りつけるような仕事だ。国産とか、セキュリティとか、そういうよくわからない言葉を並べ立てて、海外UIも洗練されていて、優秀なエンジニア管理してるものセキュリティ的に怪しいと不安煽り立てて売りつけるようなやつだ。そんなクソみたいな製品でも年間5億円ぐらいの売上になるのだからIT系って糞だなって思う。ネット上では優秀な人間ばかりがアウトプットしてるし、NDAの名の下に詐欺まがいのソフトウェア(今回の例なら無料UIも洗練されていて、使いやすサービス)が明るみにならないのだから、こんな国はさっさとスクラップ・アンド・ビルドすればいいのにって思うよ。IT化されてないのが時代錯誤で〜みたいな記事ネット上でもバズるけど、実際には10年前のスパゲッティコードを惰性と不安につけ込んで売りつけるようなSIerがたくさんある。そんで、そんな意味不明ソフトウェアを導入すれば、どこに何があるのか分からないUI操作に大切な業務時間を奪われて、日本全体の生産性が落ちてしまう。ユーザー時間生産性を奪い、開発者にとっても技術負債しかならないようなソフトウェアを売りつけてる悪性腫瘍みたいなSIerはさっさと滅んでしまえばいいと思うよ。

まぁ、私が配属されたプロジェクトはそんな感じだ。まるで意義を感じないが金にはなってるプロジェクトに配属された。そのプロジェクトの根幹部分は一人のエンジニア設計開発しており、そのエンジニアは既に退職して、どこに何が書いてあるのかわかってない人間が後任として保守を行っている。盲腸みたいに全く有難みのない機能を増やすことでより高く売りつけるようなプロジェクトだった。

そのプロジェクトの中にいる人について話そう。プロジェクトマネージャー仕事漬けで毎月350時間ぐらい働いている60連勤とか当たり前で、常に酔っ払ったような、眠そうな目をしてる人だった。にも関わらず、同じプロジェクト人間仕事がなさすぎて業務時間中に関係ない談笑をしたりしていた。プログラマテスター文書作成をするスタッフが40人ぐらいいるところで、閑散期(機能追加のサーバーリリース前以外)は暇そうにしてる人が多かった。プロジェクトマネージャーを除いて。要は、PM一生懸命働いているが、その一生懸命さは惰性で行われており、無能なのに業務時間が長いPMがいて、その人が全部仕事をやってしまう。他人に頼めない性格らしくて、存在意義が分からない業務他人に頼んでは「なぜこんなこともできないんだ?」って怒鳴るのが生きがいみたいな人だった。頑張ってることがアイデンティティになってて、その頑張りに意味があるのか、必要なのかという吟味ができず、タスク他人に振ることもできず、情報もそのPM一人だけが握っているから、周りの人も「私が仕事を請け負いましょうか」ということもできない。それで新入社員をイビるような存在意義のわからない仕事を振って、できなかったら人格否定をするような感じの。

私が受けた仕事ととしては、週に1回ベンダーのところに会議をしに行くんだけど、そのときの社内の資料を全部紙でプリントアウトして持っていくというのがあった。文書作成スタッフ製品仕様Wordでまとめて、600ページぐらいのpdfにしたものが1500万円ぐらいで売れるらしく、その増えた言語仕様プリントアウトしてベンダーのところまで持っていく。追加された仕様以外にも、今週やったテスト内容をExcelで纏めたものプリントアウトしたりしていた。紙の量で言うと、一回の会議で2500枚ぐらいで、それをキャリーケースに詰めて客先であるベンダーまで持っていくらしい。聞いた話では、その2500枚の会議資料殆どまれずに捨てられるのに、そのPMベンダーにその慣習を廃止しようとは提案しない。ベンダーとの週一の会議の他にも、進捗報告を主とする社内会議があって、PM以外の人はあのプリントアウトする悪習は廃止すべきという話が上がっているのにPMが首を縦に振らないから一向に改善されない。まぁ、そのプリントアウトするのをやるのが私の仕事だったわけですよ。毎週4時間ぐらい掛けてWordExcel文書サイズとか調整してさ。元の文書サイズや余白が狂ってるのに、客先に失礼だと言われて、手直しして、プリントアウされたコロコロコミック何冊分だよ? みたいな紙の束をホチキスで止めていくんだけど、ホチキスの止め方が汚いとやり直し。

じゃあ、なぜPMは頑なに意味のない業務をし続けて、それによって新入社員を使い潰そうとするのかと言えば、弊社の業績が悪くて倒産しそうだったときにそのベンダーが手を貸してくれたからそのときの恩義があるとかなんとか言っていた。だから、靴を舐めるようなことをするし、他人生産性を奪うようなクソ製品を世の中に出して何も感じないらしい。読みもしない産業廃棄物を作り出して、それを無碍にされて喜んでいるような業務が、今の日本の何割を占めているのだろう? そのPMの口癖は「俺はプログラミングは全くわからないが、こんなプリントアウト段取りもできないようなやつはプログラミングなんてできないと思うよ」だった。FizzBuzzどころか変数関数すら知らないような人間にこんなことを言われるのは屈辱だったし、これが高卒経験就職することなのだろうと思った。

他にも、私が受け持った仕事に、製品が動くかどうかを確認するテスターという仕事があった。RSpecSelenium自動化しようと言っても、そんな技術を持ってる人がいなかったから、一々自分でその製品を触って仕様通りになっているか確認しないといけなかった。画面遷移が600ページのpdfになっているから、それを見ながら正しい画面遷移ができているか確認する業務だったが、正直人間のやる仕事ではないと思う。画面遷移だから前のページから次のページに移行したときに前にどのページだったなんてスクショを撮ったぐらいじゃわからないのに、「このテストExcelにした内容じゃ、本当にテストしたのかわからないだろう?」と言われた。言われたとおりにExcelファイルスクショをひたすら貼り付けていたというのに。しかも、その他にも特定ファイルアップロードするときにどの条件だとアップロードができないか判別するテストをどうやって行うのか考えろというのがあった。今までにテスターをやっていた人に聞いても指針なんてないと言われ、「賢い人はそういうのを考えつくものだ。俺はパソコンに詳しくないが」とPMに言われ、嫌気が差した。

まぁ、ここまで書けば、如何にブラックと言うか、理不尽で不合理な職場かというのはわかったと思うけど、いい面もあったんだ。前にも書いたように、未経験高卒手取り20万貰えたのは嬉しかったし、研修のない会社だったから、最初の二ヶ月ぐらいは一人で勝手勉強しててと言われたから、実働換算で時給3000~4000円ぐらい貰える計算だったのかな。一番瞬間時給が高かった日はメールの返答に20分ぐらい使ったときだったから、日給1万、実働換算の時給が30000円ぐらいになった。それぐらい放任されていた。

最初社長が「君にはソースコードUMLを書いてもらおう」とか言って、クラス図を書く練習をしていたんだけど、現場の人は「今更UMLなんて必要ない」「ソースコードを読めばわかる」と言って、全く必要とされていなかった。だから業務とは関係ないTCP/IPRubyGit勉強をしていた。家のことで勉強に対してモチベーションが落ちていた私は、金を貰えるという環境では目の前の勉強に集中できるようになって、元の勉強するための生活リズムっていうのか、そういうのを取り戻せた。それは当時の私にとっては有難かったと思う。

ここまでをまとめると

無料で使えるサービス下位互換といえるような、他人生産性と金無駄にするような製品を開発してるプロジェクトに配属された

PMけが忙しく働いて、周りの人の割り振りができていない。

PM多忙なのはしなくていい仕事を引き受けているだけ。

社会悪のようなソフトウェアを売りつけて金を稼いでいるプロジェクトだった。

仕様書やテスト内容のプリントアウトという必要ない業務をしたり、指示内容と叱責内容が矛盾する理不尽を受けなければならなかった。

しかし、勉強してるだけで月20万貰える環境は有難く、当時の私にとっては願ったり叶ったりだった。

では、次に私がその会社入社から辞めるまでの経緯について書こう。最初のうちは、自分勉強時間を取れていたし、振られる仕事理不尽で意義を感じられないものであるものの、すぐに終わることが多かったか問題ないと感じた。それが徐々に仕事が増えていき、勉強時間が取れなくなっていった。

ここで若者応援おじさんAの登場である。Aさんは私と会ったときは有名企業に勤めていて、そこを辞めて私を紹介してくれた中小企業で働き始め、その数カ月後に私を紹介してくれた。元々、その会社社長とは懇意にしていたから、一緒に働こうという話が何十年も前からあって、今回ちょうどタイミングが合ったから、その友人の会社の重役として就職したらしい。私が就職したのはその数カ月後だった。

Aさんは「何か問題があったら、部下や上司という立場を気にせずに忌憚なく言ってほしい」「俺は人を見る目はある方だ。君は一本芯の通ったところがあるから、周りに流されずに新しいことをできるだろう」「君には将来性がある」「俺は新しい会社でも権力を持ってるからへんなことを言ったり、したりしてる人がいたら遠慮なく言ってほしい」とかそういうのを入社する前に言っていて、まぁ、色々とおかしいところ、FAKE野郎みたいな発言が多かったけど、そこだけは信じてたんだよね。本当に騙すんだったら、そんなすぐに辞められるようなリスクを上げるような発言はしないだろうってさ。ちなみにFAKE野郎って感じたのは、一方的自分の話だけをして、私が質問すると煙に巻いたり、私のことを買ってるという割には私の話をすぐに中断させて自分の話をし続けるとか。その人はFラン出身だったから、ちょっとインテリなことを言うと「君は変わってるね」って言ったり、きょとんとした顔で10秒ぐらい固まった後、すぐに自分の自慢話を再開したりと、決して自分の知らないことや分からないことを認めようとしなかった点だ。他にも、「私と働きたいと言ってくれていた会社はあったけど、そこは技術的に成長できそうだけど給料は月7万程度でバイト身分から、迷ってるんですよね。バイトから自由時間は多く取れるんですけど」みたいな発言をしたら、鳩が豆鉄砲を食ったような顔をして、私が感じていた不安を取り合ってはくれなかった。Aさんは「俺は社内で影響力を持っているから、君を正社員にすることもできる」みたいな話を延々としてたのに、いざ蓋を開けてみると、「君の面接での受け答えが駄目だから契約社員として雇用することになった」「あれから上層部に渋られてしまって、請負契約にすることになった」と話が二転三転していった。だったら、他にも選択肢があったのに、他のところに就職したのにと思ったが、自分能力や経歴で負い目を感じていたから強く言うことはできなかった。高卒就活するというのはそういうことだ。他にも選択肢があるのにも関わらず、どうせ労働に関する知識がないと足元を見られて、条件を徐々に下げられ、他に選択肢をなくした後で、悪い条件で働かざるを得ない状況になっていた。結局、勤務時間タイムカード管理されてるのにフリーランスとして請負契約を結ぶという偽装請負契約させられ、もっと技術力を磨ける選択肢は潰されてしまっていた。

私は会社問題点を丁寧に分析してpdfにまとめてAさんに送ったんだ。それが間違いだった。如何に会社がそのベンダーに良くしてもらったか、大変なのをわかった上で俺たちが会社を立て直してきたかということばかりを話していた。百歩譲ってそこはいいとしても、ベンダーとは関係なく職場環境を良くするための話までいい加減に聞かされてうんざりしていた。

「Aという問題があります。その背景にはBがあります。そのためにはCという解決策があります

という話をしたときに、「Bぐらいみんな当たり前にしている。君だけ特別扱いすることはできない」みたいな返し方をされて、問題が発生してる事自体はないものとされていった。結局、職場にはびこる不合理で理不尽業務ルール改善することはなく、私への人格攻撃で終わってしまった。

毎日どうでもいい作業で疲れ切って勉強時間が取れなくなってしまった私は、最初出会った頃のAさんの言葉を信じて、「私が本当にしたいことは、仕様書やテスト時のスクショプリントアウトしたり、よくわからないテスターをやったりすることではない。このままでは、プログラマとしてのキャリアを積むための勉強時間を作ることもできないし、業務内でコードを書くこともないか業務時間を短くしてほしい」と言った。少なくとも、最初Aさんと会ったときは、「君には人工知能このエントリーをはてなブックマークに追加ツイートシェア

2019-04-11

anond:20190411144951

すまんな…Google翻訳とかで妥当名前考えるけどうまいことでてこなかったら変数名を「number_01」とかにしてるます

anond:20190411143815

プログラミング教室変数名を好きにしていいって言ったら自称ガノタがgandamって書いてて

ガンダムスペルgundamだろって指摘したのを思い出した。

2019-04-09

新卒で入った富士通を9ヶ月で退職しました。

前提。何を語るのか。

2018年4月入社した富士通を同年12月退職したので、順を追って経緯を説明する。

昨今さまざまな問題が浮上している企業ではあるが、大変お世話になったことに違いはないため、最大限の敬意を払いながら語りたい。

3月入社に至ったきっか

キーワードは3つだ。①新卒採用パンフレット、②メジャー感、③人の良さ。

まず、富士通新卒採用パンフレットの出来がよかった。大企業ながらも新しいことに取り組んでいく姿勢ヒューマンセントリックという標語SIer実態とはかけ離れた煌びやかさ。(当然ではあるが)新卒者が入りたいと思うような仕上がりになっていた。いま振り返ると、自分視野があまりに狭かったと反省するばかりだが、当時は純粋パンフレットを読んでワクワクしていた。

また、会社メジャー感も入社の大きな決め手となった。富士通には、大手企業ならではの採用における露出の多さや安心感があった。「最初はやっぱり大企業だよな...」社会の右も左も分からぬ中、大手企業以外の選択肢自分にはなかった。

最後に、人の良さも入社する理由となった。老婆心忠告しておくが、企業を「人の良さ」で判断するのは悪手だ。採用担当は「人が良い」に決まっているし、何より社内の人間は流動的で、いつ誰が辞めていくかもわからない。

とにかく、このような理由入社することとなったが、数ヶ月後にミスマッチだと気がつくことになる。

4月8月新人研修

富士通では、約4ヶ月にも渡り研修が行われる。自分にとっては、良くも悪くも学びの多い期間だった。

最初の数週間は、富士通という組織について学ぶ。会社歴史文化を知るだけでなく、タグラインである「shaping tomorrow with you」を、単語レベルで分解し意味咀嚼していったりもした。この研修で、自分富士通が大好きになった。というよりも、自分所属する組織に誇りを持っていたかった。事実から目を背けようとしていたところもあったかもしれない。いずれにせよ、自分は至る所で「shaping tomorrow with you」と意味もなく吹聴して回った。普通に死にたい

5月に入ると、プログラミング研修が始まった。使用する言語Javaだった。初めてのプログラミング不安もあったが、本当に楽しく学ぶことができた。「変数とは、配列とは」という基礎レベルから手取り足取り教えてくれる企業富士通くらいのものだろう。文系出身自分プログラミング第一歩を踏み出せたのは、他の何でもなくこの研修のおかげであり、いまでも本当にありがたく思っている。

そして7月プログラミング研修が終わった頃、富士通に対する不安、というよりも漠然とした恐怖感を覚えた決定的な瞬間が訪れる。新入社員全員で、社内のとある講演を聞いていたときのことだ。前後文脈は省くが、講演者の方がこのような発言をした。

「私がam I shaping tomorrow with you?と訊くので、皆さんは全員でYes! I am shaping tomorrow with you! と答えてください。am I shaping tomorrow with you?」

その後、新入社員一同が起立し、

Yes! I am shaping tomorrow with you!」

という声が響き渡った。

場内は盛り上がっていたようだが、自分は「Yes! I am shaping tomorrow with you!」と言えず挙動不審にあたりを見回していた。「shaping tomorrow with you」というタグラインはいまでも大好きだが、あまり画一的で、どこか宗教的な様子に一歩引いてしまったのだ。この瞬間から、「この会社自分に合わないのかもしれない」という確信めいた気持ちが生まれていた。

8月12月。待ちに待った配属、そして実務。

8月中旬。当然のように配属は希望通りにならず、長年運用が続くレガシーシステムに携わることとなった。使われている言語は、当然のようにCOBOLJavaアプレット新卒パンフレットとは全然違うじゃないか!とは思わなかった。その頃にはある程度SIer現実を知っていたからだ。だから、何とか楽しくやっていこうと思った。興味のない分野かつ、レガシー環境だったが、自分の周りだけでもハッピーにしていくつもりだった。それに研修でも「置かれた場所で咲きなさい」と教わった。(ある種の教え込みだったのかもしれない)

しかし、その意気込みは数週間しか保たなかった。

業務に関して詳細を語ることは控えるが、自分のメインの仕事は「コピペ」だったのだ。EXCEL方眼紙で作られた手順書の通り、文字通り、ctrl+Cとctrl+Vを交互に押していくだけの簡単お仕事。一日中コピペを繰り返していると、指が変になりそうだった。また、ディスプレイは貸し与えられないため、いくつものウィンドウを小さなラップトップで開き、何とかやりくりして捌いていた。

それが何週間にも渡って続き、9月中旬には退職を決意していた。

しかし、そんなすぐには会社を辞められるはずもなく、当面は転職のための勉強を続けながら働くことになった。

念のため言っておくと、富士通での仕事は決して悪いことばかりではなかった。メインの業務は相変わらずコピペだったが、トレーナー不憫に思ったのか、マネジメントや社内ツール作成にも携わる裁量を与えてくれた。残業ほとんどなく、毎日定時で帰ることができた。それでも自分がたったの9ヶ月で退職をしたのは、「今のままではマズイ」という本能的な危機感だった。コピペEXCEL方眼紙業務では何のスキルも身につかないし、たとえ開発に携われたとしても言語COBOLだ。自分未来果たしてどうなるのか?ひたすらに頭を捻った。自分人生について、初めて本気で真っ正面から考えた。

...可能な限り早い段階での退職。それがベストな答えだと悟った。

12月末〜。その後。

退職するに当たって、一切の問題は発生しなかった。退職の旨を伝えた際、引き止められることはあっても理不尽なことはなかった。手続きも大変スムーズであり、非常に感謝している。

自分はこれからWebエンジニアになることが決まっている。結果として、富士通での9ヶ月は「自分が本当にやりたいこと、実現したいことは何か」に気づくための期間となった。周りよりも一手遅れてしまったが、とにかく、富士通での業務自分にとって必要ステップだったのだと思う。昨今、富士通に対するネガティブ記事が数多く出回っているが、富士通をはじめとするSIerは決して悪ではない。そこにはただ「合う合わない」があるだけだ。誰もが自分に合う職場で、ハッピーに働いていければそれでいいと思う。苦い経験ではあったが、富士通での経験無くして今の自分はいないということを忘れず、これからハッピーに働いていきたい。

2019-04-06

anond:20190406105140

実際はできるケースの方が多いと思うよ。

きれいなプログラムだったらちゃんとできる。

だけど、直しづらい構造のきれいじゃないプログラムだったり開発環境に大きな制約があったりすると、新元号を直接入れなければならなかったりするし、

そういうプログラムがどこにどれだけあるかを調べて対応優先順位をつける手間も増える(新元号が早く発表されればそんななことしないでただ直せばいいから早い)ので元号は早く発表してほしかったんだと思う。

それに、仮の元号入れてテスト完了してても、本当の元号決定後に変数だけ置き換えて終了、というわけにはいかず、やっぱりそのあとでもある程度はテストもするから面倒。

2019-04-05

プログラミング入門はこんな感じでいいのでは?

最初BASIC

まずはプログラミングがどんなものBASIC体験してみましょう。

BASICの種類は「十進BASIC」でいいでしょう。

必要情報は大抵「ヘルプ」にあります

BASICではとりあえずは以下のこと(プログラミングの基本)を理解しましょう。

このくらいなら一週間もあれば完全に理解できるようになるはずです。

次にC++

BASIC完全に理解したら次はC++です。

C++ではとりあえず「ロベールC++入門講座」を購入して読むといいでしょう。

「ロベールC++入門講座」が無理そうなら「Cの絵本」→「C++絵本」→「アルゴリズム絵本」あたりにしておきましょう。

ここまでおおむね理解したら次は好きなルートに移行しましょう。

ルート分岐

やりたいことによって必要技術は変わってきます

(ルートは下記以外にも無数にあります)

WEBルート

ゲームルート

マイコンルート

本屋に行って適当な本を買えば分かるようになると思います。たぶん。

2019-04-03

anond:20190402104530

私は文系理系中間ぐらいにいる。

プログラム的な考え方が苦手な人と文章的な考え方が苦手な人の両方の気持ちがある程度わかっている。

そこで元増田がわかっていない文系の人がプログラムでつまづく理由を考えたい。

 

プログラムは一度にできることが一つ

 例えば、プログラム変数は、一度に一つの変数しか変えることができない。一方、文章では一度にがらりと変えることが多い(一度に変えないと読み手に伝わらない)

 

プログラムは変化が読み取りにくい

 「このif文が全体の要だから他と違う書き方にして印象づけたい」といったことはほとんどできない

 (文章ではある事実が明らかになる地点を超えたときに落差をつける。この落差が読み手への感情移入や注意換気につながる)

 

プログラムはif文など書き方が決まっていて、書き方の多様性があまりない

 言葉選びの多様性に比べるとプログラムの文は多様性が少ない

 言葉選びの多様性がその文章説得力現実味を高めるのに対して、プログラムには説得力現実味といった概念そもそもない

 

文章を書くとき主観的になりきる(感情移入する)必要があるが、

 プログラム客観的メタな考え方でつくる必要がある

 例えば小説を書くとき主人公になりきる必要があるが、プログラムは何かに感情移入しない

 プログラム機械的作業に感じられる(実際、相手機械なのだが)

 

プログラム意味や内容がわかっていないことについて書けない

 プログラム仕様理解がしっかり必要になる

 文章意味や内容がわかっていないことを書きはじめて、書きながら理解していくことができる

文章ではこうした書き方をしたほうが生産性モチベがあがることが多い。

また、わざと情報弱者視点や最弱の立場視点を使ったほうが読み手に伝わりやすくなることも多い)

 例えば、プログラムは調べながら書き進めることができない(書き直しになる)。

 プログラムは書きながら謎について理解していくことができない。わかっていることしか書けない不自由さがある。

 

 

 

なぜこうした些細なことが問題になるか?というと、文系理系ではそもそもロジックが異なっており、

それまで文系として積み上げてきたことをいったん捨てなければならない。

相手人間コンピュータかというので対応方法が180度変わってくることもある。

とくに無意識に立ち上がる文章作成能力プログラムを書くことを困難にする。

その過去経験有益だった無意識思考を捨てる行為が難しいとも言える。

このへんの対人間と対コンピュータの違いについてもっと詳しく書けば、それが理系コミュニケーション能力の低さを客観的に見直すことにもなって有益面白いのだが、誰かやってくれないかな?

2019-04-01

新しい現場コードレビューがうざい

resultとかvalueって変数名にすると

もう少し具体的なものにして頂けませんか?とか言われる

スコープいか別にいいじゃんってのを言っても

いやあ、後で読むの大変になるじゃないですか?とか言われる

こんなのか一日中あるんだけど書いてて楽しくない

動けばなんでもいいだろ

2019-03-27

anond:20190327135951

なるほどね。

しか素人同然で入ってきた新人君変数説明とかするのに毎回苦労してるしな。

変数とは値を保存しておく箱みたいなものさら変数には「型が~」とか「プロパティが~」とか「メソッドが~」とか言っても難しいもんな。

動的型付けなら、変数とは数値とか文字列を入れておく名前の付いた箱だよって言えばすむもんな。

2019-03-19

機械学習増田を誰が書いたのか特定するAIを作ろうと思ったんだが機械学習言葉が分からないので止まってる

初心者用のページを見ても引き数とか変数とかAPIとか専門用語をズラズラ出すので理解できん

2019-03-13

変数tmpを見るとティムポって音を付けたくなる病気になった

2019-03-05

なぜ「Hello world」は誰が書いても高品質になるのか

品質ソフトウェアは変更が容易である

例としてこちらをご覧いただきたい。

/* Hello world */
#include <stdio.h>

int main(void) {
    printf("Hello, world!");
    return 0;
}

このコードは高品質である

理由は以下の通り。

  1. 設計シンプル
    何の分岐も判定もない。容易にC2カバレッジ100%にできるシンプルさ。
  2. 高凝集度、かつ低結合度
    変数を使っていないし、そもそも単一ブロック構成されているので結合のしようがない。
  3. 環境依存せず、移植性が高い
    標準ライブラリのみで構成されている。
  4. 適切に構造化されている
    そもそも構造と呼べる要素がない。
  5. 実行時エラーの恐れがない
    唯一、コンパイル時に検出できないのはprintf引数だが、例えここが"hellow world"になっていたとしてもプログラム問題なく実行できる。

2019-02-16

メーカーSIer作成したソースコードが酷すぎる

メーカーSIer(仮にF社とする)が過去作成したJavaソースコードを読んでいるんだけど、非常に読みにくい。

適切な単位メソッドとしてくくりだすことができていない

  • 1つのメソッドの行が多すぎる(いわゆる神メソッド)。数百行/1メソッドとかがざら。ほんとにざら。何なら10000行/1メソッドとかがある。読めねーよ。
  • 制御文のネストが深すぎる。for{if{if{if{for{if{}}}}}}とかがざら。ほんとにざら。何なら50多重ネストとかがある。読めねーよ。
  • 意味単位メソッドでくくりだしてくれない。if( /* ここに10行くらいにわたってなんかの式が書かれている */ ){}とかがざら。ほんとにざら。

命名適当すぎる


英語ができない


まとめ

これ読んでメンテナンスする身にもなってくれよ...。

もう疲れた

2019-02-14

anond:20190214111431

から置き換えられてねえだろっつってんだガイジ。

まず意味ちゃんと改めて考えられたのも俺が質問して思考を促したからだし

そこで出てきたふわふわ定義を「こういうことね?」と子供らしい単純なセンテンスにまとめたのも俺。

そして絶望的なのが

「人体ちゃんと覚えてていいと思う!」とは全然別の意味のしたかぶりを「デッサン」に格納してる奴が大勢居る。

依然として変数デッサン」は意味機能ガバガバ

わかったかガイジ。

まあもうガイジくんはふてくされモードに入りかけてるからただでさえ低い理解能力もっと落ちてそうだけど。

anond:20190214110630

意味定義できてない(むしろをそれを誤魔化してかっこつけたいための)変数

コミュニケーションに害なのはもちろん

当人思考も誤魔化してぼんやりさせるよ

2019-02-09

プログラム勉強をしています

からないことはネットでググって解決しています

なんとか完成したコードは、参考にしたサイトとかなり近いものになってしまます

イラスト界隈ではトレスなどが問題炎上するのを目撃しますが、プログラムではどのていどトレスが許されるのでしょうか。

申し訳程度に変数名などは代えているのですが・・・

2019-02-08

anond:20190208123102

java変数名やクラス名にマルチバイト文字が使えるよ。

何か制約とかはあったはずだけど、細かい事は忘れた。

2019-02-07

未来COBOLくらいの単純な言語覇権を握ると思う

変数スコープ概念が薄くて、データ構造配列くらいで、IFとループだけでロジックを組むみたいな。

記述が膨大で、静的型なのが欠点だけど、そこらあたりを克服したらすごいことになると思う。

オブジェクト指向言語を使ってる現場でも、オブジェクト指向らしい書き方をしてるところは皆無だし。

(世の中、イキってるWeb系の会社くらいでしかオブジェクト指向機能なんて使われてない)

オブジェクト指向やら関数型やら人類には難しすぎる。

2019-02-06

フリーエンジニア1年生雑感

紹介会社から「3ヶ月のプロジェクト」と聞いていたがどうも妙な話ががが。

pc持ち込みというので指定windowsノート買って行ったら他の人ほぼ全員mac

プロジェクトリーダーに当たる人が役員でほぼ席にいない

環境構築も箇条書きの手順があるだけでホスト/ゲストが明記されてない上にmac前提で書いてあるので極めて困難

・でもリーダーがいないから聞くに聞けない

・当初言われていた機能とは別の機能を開発せざるを得ないことが発覚し、それが非常に重く開発時間の大半をその機能のために費やす

ほとんど想定外要件だったらしく仕様が安定しない

機能仕様は書いてくれるのだが、根本的なシステム仕様とかERがないので何をやるにしても聞くしかない

・開発手順書とかコーディング規約とかがないので素で書いたらアホみたいに手戻りが発生。関数名とか変数名まで修正させられる

・1書くと1.8くらいになって戻ってくる

場合によってはリーダー関数作って返してくる

・どう考えてもリーダーが直接コーディングしたほうが早いし正確

会議が非常に多い。毎朝の部署ミーティングに加えてチームミーティングがあり、さらに週一回は部署全体の進捗/タスク振り分け会議会社全体会議がある。あと勉強会

・四半期会議かにも呼ばれる。薄々知っていたが大赤字らしい

・進捗会議で半人前扱いされる。そりゃまこれだけ手戻りがある上に業務知識依存してりゃそうだろうね

入社年次での年功序列が顕著。その上IT知識でのマウント取りが顕著

・入って半月くらいのとき賃金減額を打診された。それを承諾したら逆にこの先何があるか分からないので「今月一杯で退所する」と言ったら月額から時給にするという話で形式上は減額なしの継続で落着

最近知ったが俺の前に入った人が1週間で逃げたらしい

・「どう考えても契約延長はないだろう」と安心してたら契約延長を打診された

感想

もちろんこちらの知識不足な面もあり、プロジェクトを通して学べたこともあるが、これはもっと若くて単価の安い人を正規雇用として育てていくやり方で、高単価の非正規を雇う意味がない

結論

いる意味ない

2019-02-05

COBOLer、人を呪わば穴2つ

リーナスですら自身攻撃発言自戒するこの時代、本邦の好戦的技術者を見てげんなりした話。

 

COBOLは難しいか、記者が試しにコードを書いてみた 」という記事日経XTECHに掲載された。はてブでも賑わいを見せている。

この記事では COBOL体験記者が OpenCOBOL という処理系FizzBuzz 問題を書き、それを踏まえて COBOL への評価と雑感が示されている。

これに対して、反論記事を見つけた。

 ま た 大 森 敏 行 か

タイトルからし技術批判というより個人攻撃主題にあり、すでに怪しげな雰囲気が出ている。

そんな雰囲気を交わしつつ途中までは「なるほど、COBOL特性データ構造にあり、件の記事では COBOL の特徴を捉えきれていないので結論勇み足だし的外れなのか…」と思っていた(私はCOBOL経験)。

けど、結語まで読んでげんなりしてしまう。

日経BPの記者ふぜいがgdgd言ったところでCOBOLはなくならない。それでいてこのようなFUD技術者敬遠させる効果はある。なくなりもしないのに技術者敬遠したら何が起きるか、わからない記者腹を切って死ぬべきである

日経記事的外れなのは分かったが、ここまでくると読んでて辛い(腹を切って云々はネットスラングだとしてもなんだかな)。

しかも、この人自身過去日経で連載を持っていて、それをプロフィールに書いている(!)のに個人宛じゃなくて日経BP記者ふぜいとか言っちゃうのか…。さら企業社長とのこと……

 

かなり本気で思ってるんで、日経ネットワークの当該記者コンタクト取って欲しいんだけど。 (「悪い大人」より)

あの語調で返されたらコンタクトを取りたがる人はあまりいないんじゃないかなぁー

 

この方、以前にはこんなことも言っていた(この際の批判対象の記事は私も問題があると思うが)。

まさにこれだった。いつの間にか、「オープンソース界」は英語hackマウンティングする奴等が力を持つようになってしまって、陳腐hacker集団に成り下がってしまったようだが。

まさに人を呪わば穴2つ。

 

---

ちなみに批判記事にある「(真の)グローバル変数」の話ですけど、へぇ勉強にはなった。

これは私が不安になったので確認ですけど、一般には「コンパイル単位内でのみグローバルな変数」もグローバル変数って呼びますよね?(ですよね?)

 

あと、"DATA DIVISION" の箇所についても「鶏を裂くに牛刀を持ち出す」という喩えを使うのにもなんか違和感がある。

というか COBOL では問題がなんであれ "DATA DIVISION" を使わざるえないのだったら、「鶏を裂くにも牛刀を持ち出さざるを得ない(だから鶏を捌くな)」のほうが適切なのでは…

COBOLer からすると前者の喩えで膝を打つ感じなんでしょうか?)

その後の「丸木橋経験本四架橋を論じる」の喩えはよくわかる。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん