脳内でのプログラミング風景(仮)

プログラミングという作業をどうとらえているのかなあということを、それぞれで言語化してみたというお話です。まとめ自体好きにアップデートしてもらってかまわないです。
9
kmizu @kmizu

皆、普段、どのようにプログラミングという作業が見えているかに興味がある。自分の場合だと、抽象構文木に近いものを編集したり脳内パーズしてる感じ(編集したときの脳内再パーズを自分がどう行っているんだろうとは思うけど)。ただ、時々、グラフを意識してるようなときがあって(続)

2020-03-11 06:38:35
kmizu @kmizu

たとえば、 for(int i = 0; i < 10; i++) { println(i); } とあったときに `println(i)` -> `i++` というリンクが存在してるように見える(Control Flow Graphのごく一部分だけがその瞬間に認識されてる?)。

2020-03-11 06:38:35
bae @twbae

そんな感じ。あとはCのときは演算してるときも twitter.com/kmizu/status/1…

2020-03-11 06:42:19
堀江 伸一 @horiesiniti

@kmizu 会津大学オンラインジャッジの練習問題でセグメント木を知らずに自力だけで再発明した時は、盗賊が街路に張り紙をはったり貼りなおしたりするイメージで構築しました。 多分小中学校行ってない通信制高校卒の私だけの感覚なので、他の人には理解できません。 完全なFF外で御免。

2020-03-11 06:48:17
kmizu @kmizu

@horiesiniti 盗賊というのが面白いですね。

2020-03-11 06:55:52
Shiro Kawai @anohana

@kmizu 私もそれに近いです。ループについては再帰ととらえてコールグラフが見えます。これは相互再帰していたり、継続取り出したりする時も似てます。

2020-03-11 07:03:35
kmizu @kmizu

@anohana 再帰の方がプリミティブとしてイメージとして記憶されてる感じでしょうか?継続については、割と同感です(最近作った、ミニ自作言語に継続を雑に実装したときは、そんな感覚でした)

2020-03-11 07:09:45
堀江 伸一 @horiesiniti

@kmizu FF外だけど少しだけ補足。 セグメント木の根元が盗賊の根城で、葉が目的地。 盗賊は毎回根城から出発して、目的地まで到達したら戻りながら、セグメンㇳ木の枝わかれに張った数字の張り紙(合計値)を更新する。 自力解法でAOJ問題正答数30位以内に入ったのはいい思い出 それで良い事なかったけど

2020-03-11 07:13:59
なぎせ ゆうき @nagise

設計段階でさ構造化と契約プログラミング的な視座でやってる気がする……🤔 どういうパーツに分けて作業振るかみたいなこと考えるからかも。 そのパーツの中身のロジックはどうやってるかなあ? twitter.com/kmizu/status/1…

2020-03-11 07:17:05
ENDO Yasuyuki @eyasuyuki

どんな形にでもなる粘土をこねている感覚。 twitter.com/kmizu/status/1…

2020-03-11 07:17:57
ふも @fumokmm

@kmizu この例だと僕は、細い糸に沿って上から下へ、10回ほど回転しながら通過する光の点が見える。 ひらがなの「す」の縦棒の丸いところを10回回ってから下に降りていくイメージ。

2020-03-11 07:26:57
Haruhiko Nishi @haruhiko_nishi

EIPで実装する時は、メッセージとそれをハンドリングしてるスレッドを意識しないと書けない。コードで表されていない部分に旋律みたいなものがあって同調のタイミングとか、なんとなくだけど見えてくる。非同期処理のアーキテクチャを実装する場合は、言語処理的な流れでは見えてないかも。 twitter.com/kmizu/status/1…

2020-03-11 07:40:45
あんどうあんど🔞自称無職転生詐欺師 公式␍␊␀ @undo6502

begin i=0 i<10 → ・print end i++ こんな感じのチャートに脳内変換されるので、ソースコードとあまり変わらない。 twitter.com/kmizu/status/1…

2020-03-11 07:52:49
星山 等(TA-ZZW30) @H_Hoshiyama

これ、自分で知覚できたらドキュメントを書くのがさぞかし楽になるだろうなと常々思っている。 処理対象を、手で操作するようなイメージを脳内に構築してるような…? そのあとコード化する時は、たぶんこういう操作ならこう書くみたいな連想配列から引っ張ってきてる。 twitter.com/kmizu/status/1…

2020-03-11 08:23:57
beepcap @beepcap

僕のイメージは頭に浮かんできた構造をその言語に合わせて出力しているだけだな。 twitter.com/kmizu/status/1…

2020-03-11 08:24:47
すし1号🍣🍵と岸辺露伴 @straydrop420

結構やってる内容に拠るけれど、数学が関わるプログラミングをやっている時は、 数字と波形という視覚、温かい/冷たい、赤い/青いという色覚で、数学を考えている。 実際にコードを書き始める時は、もう何を書くか数学が考え終わった後なので、単純作業で、何も考えていない。 twitter.com/kmizu/status/1…

2020-03-11 08:33:55
ゆらゆう @yurau75

@kmizu OOPのときはざっくりとしたUMLのクラス図なんかがうねうね動いている感じ。 関数型やメソッドの実装してるときは、まんま処理のイメージ?入力値をどう変換していくかのイメージかなぁ。

2020-03-11 09:16:19
𝚝𝚊𝚔𝚊𝚖𝚒 𝚝𝚘𝚛𝚊𝚘 𝑓:(🧳,💉×4)→☕️³⁶⁵ @kuromoyo

@kmizu C のようなコードを書いている時はひたすら箱(インスタンス)と矢印(ポインタ)が頭の中にあって、OO だとそれに UML 要素が加わって、filter map reduce 描いている時は集合になります。メモリ上のデータ配置アタマなので OO 設計と相性がいいんですかね私は。笑

2020-03-11 10:48:55
kmizu @kmizu

@kuromoyo どうなんでしょう。OOが良い悪いとかも、そういうプログラミングに対する認識の仕方に依存するって可能性はありそうです。

2020-03-11 11:55:19