はてなキーワード: フローチャートとは
最初に言うが、これがそういうタイトルの増田文学で、全部単なるフィクションなんてことはない。紛れもない事実だ。
私は今年で40になる。これはちょっと嘘。±30歳ぐらいの範囲で嘘をついてると思って欲しい。
そこそこ安定した業界の安定した職場で正社員をやっている。給料は良くない。
ぶっちゃけこの仕事は嫌いだ。まず面白くない。労働時間も長めだ。スキルの身につきも悪く同業他社への転職だって苦しいだろう。なまじ安定してるせいで変な人間だけが居着いて、ちゃんと他所で生きていける人間は逃げていく。
こんな妄想にいつも取り憑かれている。
夜中にアイディアをひらめいてプロットエディタに設定を並べて、次の日見たらつまらなすぎて消したことが10回ほど。
それとパロディ小説が流行っていた頃に、真似事をしようと匿名掲示板の書き込み欄に妙なものを打ち込んで5分後に完全に飽きて消したのが3回ぐらい。
ハッキリ言って、この小説を書く以前の行為の段階で自分には才能と呼べるものがないことがハッキリしている。
アイディアは思いつかないし、文章力はないし、情熱も続かない。
小中学生の頃は青い鳥や角川の文庫をよく読んでいたので同級生よりはちょとばかり文章は上手かったが、それでも読書感想文の賞すら貰ったことはない。
ある時提出した宿題の出来が良かったのか論文コンクールへの応募を薦められ、好きにしてくれと教師に伝えたら後日参加賞をそっと渡されたことはあった。惨めだった。
ブログの投稿内容を10年前と見比べると露骨に語彙が減ってきたなと感じる。
そんな状況なのに、私は今でも「私はいつか作家になるのだ。超売れるのだ。そして仕事をやめるのだ」と思い込んでいる。
信じられるかい?
ツイッターで面白い(と自分では思っていること)を呟いた時にいいねが2個ついたら喜ぶような人間が、作家として大成する可能性があるのか?
もうこんな妄想ぐらいしか自分には残ってないからなんだろうな、と。
あまりにも毎日が惨めすぎるから何かしら妄想に縋ってないともう限界なのだろう。
たとえばこれが「仕事で大成功する」とか「エンジニアとしての才能に目覚める」だったりすれば、きっとそれはもっと生々しい実感を伴って日々何も積み重ねていない自分の姿を映し出すことになるのだ。
「小説家になる」というアホみたいな夢だからこそ、本当に何もしてないままでなんとか夢を見続けられているに違いない。
なにせこうやってどうでもいい言葉を書いたり読んだりするだけでも「読み書きの練習」だと言い張れるんだから。
インプットはともかくアウトプットにはそれ相応の労力が必要になる。
昔ネットにプログラマーにもイラストレーターにもなれない奴が小説家を目指すというフローチャートが貼られたが、そのどうしようもなさがいい方向に働いているのだ。
とにかくこの妄想は私が死ぬか、次の妄想に取り憑かれるまで続くのだ。
むしろ、私の人生を貶めるような妄想から私を守ってくれているのがこの妄想と言える。
宗教や薬物や恋愛に人生の逆転を求めてのたうち回らぬようにするためのものだ。
自分の人生に余計な劇物を混ぜ込まれないよう、なにかコントロールしづらいものが始まらぬよう、不活性な夢を詰め込んで空虚なままにしているのだ。
昔2chでみたコピペ「人生を壺に例えるのなら、小石や水を詰めてしまう前に大きな岩を入れなさい」。
あの話における岩を自分の人生に入れることも出来ず、かといって手頃な石を必死に集めて人生の価値を取り繕うのも面倒だから、風船を一つ押し込んで人生を終わらせることにしたのだ。
このままつまらない仕事を続けて、結婚もせず、大した趣味も持たずに死ぬ。
酔生夢死を夢見ながら実際にはそれなりの苦痛を緩やかに味わい続けて命が潰えるのを待っていく。
そのための連れ合いとして必要不可欠だから生まれた夢だったのだと思う。
全て忘れたい。
こんな程度の人間に生まれたことも、生きるために人波の中でゆっくり針のむしろを感じて生きる時代の中に生まれたことも。
何もしたくない。
何もせずに生きていたい。
だけど、いつか何かが起きて生きててよかったと思えるからと自分に騙されてここまで生きて、今更何もなくて終わらせるのは耐えきれない。
それで選んだ夢がこんなものか。
それで結局、何もやっていない、と。
どうすればいいんだ。
駄目だ。
自分で書いて読み返すのもキツい。
業務分析が8割のプログラム仕事だと、フローチャートが出来上がった時点で半分終わったも同然なんだよ。
一方で、そもそもフローチャートが書けないプログラムの場合、フローチャートはそれこそA4一枚の概略でしか書けなくて、詳細は実装時にファインチューニングしないといけないことになって、それはもう
名前を公開すると経歴にも結び付けやすくなる。経歴を文章と同時に公開すると本題より経歴についての反応が来ることも多い
・同じ人物の判定がしにくくなることにより、上記と同様にノイズを排除できる
よっぽど特徴的な文章、主張でない限りは同一人物であることが判断されにくい
・特定されないことにより、反論の多そうな内容も書くことができる
そしてなにより、
無名の一般的な人間の場合、名前を公開するより匿名のほうが不特定多数の人間に文章を読んでもらえる率が高い
他にはどんなメリットがあるだろうか
なお、現状況では匿名でも誹謗中傷は訴えられる実績が多くできた上に、
今後はもっと簡単に訴えられるフローチャートができ共有されていくだろうので、
昔のように匿名で気に入らないやつを好き勝手ボロクソ叩けるメリットは消滅していくと思われる。
10年以上前ならともかく、いまだにやってるやつはすげーな。
と言うのを辞書っぽく書いてもよくわからないと思うので、ここでは「小さな指示をまとめた手続き」ぐらいの説明で十分だと思う。
イメージで言うと、
と言うような感じ。これがプログラムです。
この例で明らかにしたいのが、基本的にプログラムは上から順番に実行される、と言うこと。
大人ならさっきの例でお米が炊けると思う。じゃあ5歳児ができるか、と言うとちょっと説明が足りないと思う。どうかな? 実は子供を育てた経験がないので、5歳児がどれぐらい賢いかわからない...。でも次の例ならいけるんじゃないかな。
どうだろう? できそうじゃない? これは例だから感覚的な感じだけど、実際のプログラムを書くときの指示の細かさはだいたいこれぐらいだと思う。
自分がやりたいことをプログラムに起こすときは、5歳児に教えるぐらいの気持ちでやるといいと思う。本物の5歳児はもっと賢いかもしれないけど...。
暗記力のある5歳児だと、
と言うのを覚えることができると思う。パソコンは5歳児より暗記力があるので、パソコン向けのプログラムなら安心して覚えてもらう前提で書ける。
これで 1 合でも 5 合でも炊けるようになった。釜さえ対応できれば 100 合でもいけるはず。これがプログラミングで変数って呼ばれるやつです。
ここまで、お米をとぐステップは 3 回やればいいってことにしてたけど、2回でいい時もあれば、4回やりたい時もあると思う。箇条書きにしてみよう。
1. ボウルに水を入れて、猫の手で5回かき混ぜる
2. 水を見て、真っ白に濁っていたら 1. に戻る。うっすら濁る程度なら次に進む
ちょっと複雑になった。でもこれでいい感じにお米がとげると思う。プログラミングの解説書を読んでいると「制御構文」ってやつが出てくるんだけど、これです。上から実行するはずのプログラムが、また上の行に戻ったりするのが面白いね。
プログラムの雰囲気をより掴むためにそれっぽく書いてみると、こうです。ふーんって感じで見て。
for { // KomeWoTogu(ToguKaisuu): コメをとぐ命令。コメを研いだ後にはどれぐらい濁ってるか(0.0 〜 1.0)を教えてくれる。1.0が真っ白。 nigoriGuai := KomeWoTogu(5) if nigoriGuai < 0.5 { break } } // 続きの処理...
実は "(1) に戻る"、みたいな意味の命令もだいたいのプログラミング言語にあるんだけど、プログラムが読みにくくなるのであまり使いません。ここではループって言う繰り返し処理に置き換えてます。
気がしませんか? 気がしない人は大丈夫。難しい気がした人にはおすすめのツールがあります。フローチャートっていうの。
https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AD%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88
これは限られた図形を使ってプログラムで解決したい課題を表現するので、課題を理解するのにとても役立ちます。
プログラミングを初めて最初のうちって、「自分がやりたいこと」と「プログラムで表現できること」の間に谷があって苦しくなることがあると思うんだけど、そういうときは落ち着いてフローチャートを書くといいよ。慣れてくるとフローチャートなしでバリバリ書けるようになります。
あんなことできるこんなことできる、確かに事実なのだろうが、そんなことが出来ているのは結局のところエリート採用された上澄か、所謂大都市の拠点支店に初任で配属された一部の人間ばかりだ。自分をはじめとした圧倒的大多数は地方の、さらに片田舎の支店に配属され、一生同じような仕事を繰り返すことになる。まさに歯車と言っていい。尊敬していたかなり年上の先輩は「手をあげ続けてきたけどチャレンジすらさせてもらえなかった。」とかなんとか言って他所に移って行った。研修に行けばいつ辞めようかあいつはもう辞めたと言った話ばかり。
とは言え楽しそうに仕事している人がいるのも事実。10年目ともなると担当先も案件のある先が増え、仕事もある程度自分で回せるようになり、それなりのやりがいを覚えるようだ。若手で楽しそうに仕事している人は稀だろう。大概は支店の、誰も持ちたがらないような先を持たされて疲弊している。若手で楽しそうに仕事している人間は、本当に案件と同僚に恵まれたか、よほどの営業の才能があるか、あるいはただの馬鹿だ。「これまで誰も掘れなかった先を持ってるんだぞ。やりがいしかないだろう。」本気でこう言ってきているのなら余程の呑気であるし、闘魂注入のためであればこれも余程の呑気だろう。
外回りしろ、じゃないんだ。準備してから訪問しろ、じゃないんだ。どこに何が書いてあるのかわからないような手続き書と睨めっこしながら通常の事務をまわしつつ、好き勝手頼まれる雑用をこなしつつ、誰もやりたがらない支店のお荷物先の対応をしてるんだ。いつ潰れるかもわからない会社でご奉公なんて時代じゃ今はもうないんだ。
銀行の採用は実に卑怯である。上の人間が仕事に集中できるように若者を使い捨てている。雑用を、前の世代の尻拭いを、無駄に抱え込んだ不採算先を全て若手に押し付けるために、キラキラした「バンカー」を喧伝し、これまで大量採用を続けてきたに違いない。徐々に減ってきているとはいえ今もそうだ。離職率を見ればわかる。そして生き残った人々が自覚か無自覚か知らないが同じことを続けていくのだ。僕は事務屋さんではない。20代をこんななんのスキルも身につかないような場所で終えたくない。3年で身についたのは「おっしゃる通りです。」「申し訳ございません。」のスピードだけだ。財務もエクセルも英語も、何もわからないまま。仕事は書類を擦り出して一枚一枚丁寧に付箋を貼って、上司の印鑑をもらうだけ。親が泣いているぞ。
給料。世間的に見れば〜という話もあるだろうが、自分の周りを見れば圧倒的に低いと言えるだろう。聞いた話では若手の給料は庶務さんと同じ程度だそうだ。ことによれば事務のお姉さまよりも断然低い。「私たちには責任は取れないので、そちらで判断してから持ってきてください。」だったら判断の分だけでも俺の給料を上げてくれ。もちろん堅確な事務は車の両輪の如く大切であるのは間違いない。ただ、どこまで行っても若手は事務処理要員の一つとしか見做されないのだなあと思うとやりきれない。
銀行は業界も内部の人間ももうめちゃくちゃだ。銀行に限った話じゃないのだろうけれど。
業界はお互いにお互いの首を真綿で締めあっていると言える。採算度外視の金利競争。地方は地方でズブズブの企業・人間関係。じゃあ今度は金利じゃ儲からないから手数料だ。収益を上げろ。そうして投信を売る。かつてはゴルフ会員権を売った銀行もあったそうだ。流動性が桁違いなので全く同じとは言わないが、似たものを感じる。顧客第一主義とは何か。本部から還元される資料には必ず「切り返し話法」が載っている。洗脳と変わらないじゃないか。
内部も内部だ。本部の言うことは一貫していないし、表彰のルールだってややこしい。あれしてこれしてこうして下さい、分厚いルールブックを配られて、それでもよくわからないことだらけ。皆が上席に忖度して媚び諂っている。風通しが良いふうを装っているあるいは本気で信じている上席はいるが、結局のところは自分の意見が正しいのだ。誰も自分の意見は言わず、本人のいないところで愚痴を言うだけ。
「やめられない」のは一番悪いところかもしれない。今やどこの支店もセコムやらアルソックやらを導入しているのに、いまだに金庫内のキャビネットの鍵すら丁寧に施錠している。セコムが破られて、分厚い金庫まで破る相手にキャビネットの鍵がなんだと言うのだ。そう言う決まりだから。これで終わりなのだ。鍵の開け閉めに一日30分はかかっているのに。朝礼も無限に長くなっていく。と言うかそもそも毎日朝礼する必要があるのか?あれもこれもとコンテンツを追加していって、結局始業の時間ギリギリになっている。知っていると思うんだけど、時間は有限だぞ。
仕事の仕組みも散々だ。手続き書に全てが書いてあるはずの銀行業務は、確かに全て書いてあるのだが、各所に分散していて、そこを参照すればいいのかは経験に強く依存している。ある業務を行うにはこの手続き書と、別の手続き書と、あの通達と、どこにも書いていないあの様式の書類を添付する必要がある、なんてのはザラだ。掲示板もいくつもいくつもいくつもあってまるでキメラのようだ。
この原因はおそらくデジタル化の勘違いからきていると僕は考えている。要はかつて銀行業務にパソコンを導入した人たちは「紙でやる業務にワープロを導入した」世代で、上にならえの我が業界人たちは長いことこれを踏襲してきているから不便なのだ。
定型的な業務であれば全て一つのシステムで、一気通貫に、指示通りの動作を行っていけば約定・実行まで終わるようにできて然るべきだろう。いくつもいくつもシステムがあって、それに対応するようにいくつもいくつもパスワードがあって、結局皆覚えきれずに手帳なりノートなりに一覧を作って管理している。何もかも無駄である。銀行にはこれを改革することはできない。お客さんには新しいシステム!を案内しておきながら内部でやる事務はなんら変わっていないどころか手間が増えていたりする。これじゃできの悪いハリボテである。採用もそうだが外面だけ立派で中は人を消耗するボロボロのシステムが銀行である。偉い人々はもう使うことがないから忘れているのだろうが、次世代金融どころの話ではない。そういった妄言はまず中身を整えてから、せめてそういった姿勢を見せてからだろう。若手はもう限界だ。文句を言うくらいなら手続きを覚えろと言うのは全くその通りであるが、人材の流動性が高まろうといった現在、手続きと言うある意味本質的でないところで時間を取らせる現在のシステムのままでは人材の受入はできないだろう。
銀行人材を斡旋すると言うニュースがある。世間がどの程度銀行人材を誤解しているのか知らないが、その太宗は大したスキルのないおじさんたちである。排出は考えるが受入は考えない、いつまで殿様のつもりなのだろう。銀行は働き方改革などと言う訳のわからない施策を講じる前に仕事の仕組みを改めて整えるべきだろう。
サービスが大事だと偉い人は言う。寄り添った提案が大事だと。僕はそうは思わない。これは特にリテール分野の話ではあるが、真に投信等に関心があれば手前でやるのだ。それも手数料の安いネット銀行で。ソニー銀行は口座開設から何から便利だし、楽天銀行はUIは流石楽天あまり良くないが結局便利だ。僕自身のメインバンクもネット銀行だ。寄り添った提案なぞ今働く世代にはできっこない。どうせ同じ時間帯で働いているのだ。寄り添った提案、結局のところ金持ちや年寄りに媚びて情に絆すだけのサービスに過ぎない。フローチャートを細かくすればそれこそネットで出来ることだ。
日本は多くの人が銀行口座を持つ珍しい国だと聞く。この傾向は続くだろうがそれはネット銀行に偏るだろう。店舗型の銀行は今のままでは本当にただコストだけ抱える過去の遺物に成り下がるだろう。いっそ法人と個人を全く別の銀行にしてしまえとさえ思う。そっちの方が余程効率がいいだろう。
偉い人曰くサービスが大事なのは銀行が同じような商品を取り扱っているからだと言う。確かにそうだ。特に法人分野はその傾向が強い。担当者の能力に依るものは大きい。一方で個人分野では少し違うんじゃないか、見落としがあるんじゃないかと思う。
我々商業銀行は商業銀行であるが故に、もっとブランドを意識するべきだろう。それは金持ちや年寄りに対する温い媚びのサービスであってはならず、どちらかと言うとアップルカードに連想されるような、スマートな商品開発だ。キャッシュカードやらスマホアプリやら、実は銀行には他行差別化の図れる商品がいくつかある。保有して人に自慢したくなるような商品の開発こそ、何も捨てられない銀行がいつまでも大衆の銀行であるために必要なことだろう。
なんだってやるべきだ。いつまでもジャケットを着てるのではなく、ポロシャツを着て街に出るべきだ。銀行がタイアップしたカフェやらコーワーキングスペースやらをもっと作るべきだ。せっかく無駄な資産をたくさん持っているのだから。無形の価値を、ブランドを、高めて向こうからやってきてくれる銀行になるべきだ。〇〇BANKがお洒落でスマートの代名詞になる日がくればいい。BANKの語源の確かなところは知らないが、いずれにせよ皆が腰掛けることのできる公器たるべきだ。因みにポロシャツはエスカレーションラダーを増やすといった意味でも是非とも推進するべきだ。普段がカジュアルであるからこそスーツがより際立つのだ。振り切りが大事だ。年寄りと金持ちには徹底的に媚びよう。大理石造りの基幹店を作ってもいい。マホガニーかなにか高級な素材を使った店内で、徹底的に厚遇すれば良い。そしてブランドで大衆を惹きつけよう。認知なくしては居ないものと同じなのだ。
思うがままに書き連ねて、推敲すらできていないが、日々感じるストレスの中、間も無く来るであろう異動を思い、こんなことを書いてしまった。
普段の業務ではこんなことできない。つまらないオトナ達が上の顔を見ながらクソみたいな施策を出してくるのを見守るだけだ。
仮にこう言う仕事ができるような年次になった時、おそらく僕もそういったクソみたいな大人になっていることだろう。
人事へ。探さないでください。なんだかんだ言って僕はまだクビにはなりたくありませんので。辞めるまで待ってくれよな。
何もできない若手の、根拠もない取り止めのない妄想である。これを根性のない若手と切り捨てるのは容易だ。僕でもそうする。ただ、そうして肥大してきた結果が「必要とされない銀行」であると言うことは偉い人は強く認識するべきだろう。だから、少しでもいいから真の改革の姿勢を、我々が充実して働けるような未来を見せて欲しい。何を言ってるのか自分でもわからなくなってきたな。いつかもっとまとめて書くこととする。
頼むからセンスのない奴はプログラマにならないでくれ。迷惑だから。
これが最もプログラマになってはいけないタイプ(犯罪行為などの言うまでもないことを除けば)。
たとえば
等。
不要なものを作ることで、プログラムは複雑になり、メンテナンスの手間は増え、バグは発生しやすくなる。
一定レベル以上のプログラマが最も自然だと同意するような実装(「実装しない」という選択肢もふくめて)をパッと思い付けない奴は、センスが足りていない。
将棋で言えば、駒がぶつかったら先ず取る手を考えるといった基本的な手筋が思い浮かばないようなもので、現実的に使い物にならない。
これは、「Code Complete」「The Pragmatic Programmer」等の著名なプログラミングの本に共通する結論である。
これが「The Pragmatic Programmer」にあるDRYの原則である。
要するに、すべての情報が単一のソースから決定されるべきということだ。情報が二重化すると、それらの間で不整合が生じバグの原因になる。また、二重化した情報は、修正の手間が二倍になる。
たとえば、ユーザーのプロフィールを管理するレコードやクラスに「生年月日」と「年齢」を同時に保持する必要はない。年齢は生年月日から計算できるからだ。
世の中には、「xxxFlag」みたいな不要な変数を作ったり、共通のロジックを抽出せずにコピペコードを濫造するダメプログラマーが多すぎる。
もちろん、合理的な理由があって、この原則が適用されない場合もある。
たとえば、多くの言語組み込みの配列や文字列は、その要素と長さを二重に管理している。配列の長さは要素を数え上げることで求まるが、それには要素数に比例した計算時間がかかるためだ。
ただし、こういう場合でも、公開されたメソッドによる操作では、必ず内部の変数は同期されるように作ることが可能である。それをしないのは、怠慢でしかない。
一文字変数とか連番とかは論外だが、「ary」とか「setData()」みたいな何の情報も伝えないような変数名・関数名を付けるやつ。
正直、コードの読みやすさなんて6〜7割くらいは変数名の付け方で決まると思っている。
名著「The Art of Readable Code」も、半分以上が変数名の付け方に関連する内容だ。
なぜ変数名が曖昧になるのかと言えば、怠慢を除けば理由は2つある。
1つは、コードを書いた奴自身が、そのコードの機能を明確に言語化できないということ。
もう1つは、1つの関数で多くのことをやりすぎたりしていて、その変数の役割が曖昧になっているということ。
たとえば、関数の内部で宣言した変数は、多くの言語では関数の外からは参照できない。
スコープは狭い方が良い。これはほとんど全ての状況に適用できるプログラミングの大原則だ。
スコープが広いということは、ソースコードの多くの場所からその情報を参照・変更できることを意味する。
たとえば、クラスのメンバ変数は各々のインスタンス内でしか参照できないが、静的な変数はすべてのインスタンスが共通に持つ。このため、静的な変数を変更すると、すべてのインスタンスに影響を及ぼし、影響範囲の把握やテストが困難になる。
スコープを広げるか狭めるか、2つの選択肢があったとして、広げる方に心が傾く奴は、プログラマをやめた方がいい。
結果的にメンテナンス困難なコードを生むというのも勿論だが、単に書くだけでも、スコープが広い方が書きづらいのだ。つまり、必要もないのにわざわざ変数のスコープを広げようとする奴は頭のおかしい奴しかいないということになる。
複雑なメトリクスなどを持ち出すまでもなく、たとえば1メソッドの行数が何百行もあるとか、1クラスのメンバ変数が何十個もあるとか言うの。
これは論外である。プログラマとしての能力云々以前に、明らかな怠慢であり、社会人としての常識が疑われる。
定期的にメンテナンスされ続けているOSSのソースコードなどを見ると、関数(メソッド)の行数は平均して5〜10行。20行を超えるものは稀である。
長いものであっても、外部で定義した関数を順番に呼び出しているだけであったり、リクエストをハンドリングして各々の処理に振り分けているだけのようなものがほとんどである。
それを超えているコードは、合理的な理由があってそうなっていることよりは、単に悪い設計であることの方が多い。
これらは実はプログラミング云々というより、内容の理解力や国語力の問題なのである。
ある情報を得るために必要十分な情報は何かが分かってないから、余計な変数を作ったり、無駄に変数のスコープを広げたりする。
そして、自分が作るものを正確に理解していないから、適切な名前がつけられないし、適切なモジュール分割ができない。
それがすべての原因。
こういう人がまず身につけるべきは、プログラミングのテクニックではなく、日本語を正しく読む力。
低学歴が「プログラミングなら自分でもできるかも」なんて思っちゃいけないってこと。もちろん、下請けのSIerとかで使い捨てのコード書きとして働くことはできるが、上に書いたような最低限の力がないなら、それ以上を望んではいけない。
ちなみに、上に書いていることと反対のことを思っている人も世の中にはいる。
特に、昔からプログラミングをしてきた自称ベテランに多い。その人は、能力があるというよりも、単に現代の開発に際して必要な知識がないだけなので、真に受けないように。
また、大学でコンピュータサイエンスの基礎を学びたての学生なども、知識をひけらかしたくて上と反対のことを言う傾向がある。その程度のことは、良識のあるプログラマはみんな分かっているのだが。