妄想

C言語が難しいのか、それともCプログラミングが難しいのか?

問い:C言語は難しいか? 答え:C言語の言語仕様自体は難しくないが、C言語でのプログラミングは難しい(私見)。C言語が簡単なのか難しいのか問われた場合、C言語の「なに」の難易度について問われているのか考えなくてはならない。 C言語そのものは難しく…

プログラマはコミュ障じゃないよ

時にコミュ障とプログラマがセットで語られることがあるのだが、そもそもプログラマに占めるコミュ障の割合は他の職業と比較して有意に大きいのだろうか、という疑問がある。世間一般でいう「コミュニケーション能力」が具体的にどのような内容であるのか、…

なぜGitは難しいのか(あるいは「難しいツール」だと感じるのか)?

ユーザとして2~3のバージョン管理システムを扱った後、4つ目に出会い今も使い続けているGitだが、使い始めてから7年以上経った今でも「難しいツールだな」という感想を抱く瞬間がある。私は元々、集中型のバージョン管理システムを長らく使用してきた。Git…

「IT業界の『奥が深い症候群』」について:バッドノウハウと「奥が深い症候群」再考

IT業界には「奥が深い症候群」って言葉があってな使いにくいシステムを使いこなすことに喜びを感じて、使いこなせない人間を見ると罵倒するそういう人が幅を利かせていつまでも改善がされないそんな症状だ https://anond.hatelabo.jp/20200603093957 ソフト…

正しいフローチャートの書き方

1月以上経っているから、もう書いてもよいかな。若手プログラマー保存版!フローチャート徹底解説と作成カンニングペーパーこれは、日本ではあまり知られていないことなのだが、普段私たちがプログラミング教育で目にするフローチャートや、または「フローチ…

プログラミング比較文化論試論 進化の方向性にみるC++とObjective-Cの違い

プログラミングの世界では、サピア=ウォーフの仮説がささやかれるほど、プログラミング言語の違いがプログラミングのスタイルや設計に影響を及ぼす現象が見られる。本稿ではC++とObjective-Cを取り上げ、言語の進化の方向性がプログラムの実装に及ぼした影…

パスワードは定期的に変更すべき

利用する機器/サービスごとに異なるアカウント・パスワードを使用することや、十分な長さと複雑さを持ったパスワードを採用することは当然であるのだが、しかし、ここまで頑張っても、最終的にはパスワードを定期的に変更せざるをえない。問題は「『定期的…

エイプリルフールとは何か?

今日の日付は? ――4月1日である。4月1日とは何か? ――エイプリルフールである。エイプリルフールとは何か? ――嘘をつかねばならない日である。エイプリルフールは、我々に嘘をつかせることによって、自分が聖人君子の器ではなく野蛮で狡猾なケダモノであるこ…

間違いだらけのNoSQL入門

NoSQLは、乱暴に言えば「何でもかんでもRDBMS使うのは止めようぜ」運動のことである。「Yes SQL!」キャンペーンに反発して地下に潜った反体制組織のことではない。データベースのモデルとして階層型データモデルやネットワーク型データモデルを押しのけて一…

自動車の自動運転が実用化されたら、年1回実技講習が義務付けられる説

ロボットやドローンとならんでホットな話題である自動運転の実用化。個人的に、うまくいけば交通事故の発生確率を現在よりも低くできると期待する半面、プログラマ的には「100%完全なものは作れないから、どこかで落としどころを見つけて、そこに収束するん…

ヒマラヤ単独無酸素登山的オープンソース・コミュニティ活動

このエントリのタイトルは、本の虫の2013年10月〜11月のエントリからうかがいしれる諸々や、https://twitter.com/AntiBayesian/status/395501091443339264のやりとり(この一部分しか見ていないので、大いに誤解している可能性がある)を読んで感じたものを…

Real World FizzBuzz

FizzBuzzプログラムは、プログラマを採用する時に全くコードを書けない人を足切りするために考案されたものだ。非常にシンプルで、汎用の高水準なプログラミング言語でコードを書ける人が慣れた言語を使えば、typoなどの細かいミスを除けば2〜3分程度で書け…

トヨタ カムリのETCSにはなぜグローバル変数が1万1000個あったのか、についての推測

http://eetimes.jp/ee/articles/1311/11/news072.html推測というよりも半ば妄想混じりであるという点を先に述べておく。そもそも私は車載関連の開発自体との縁が全くない。ただ、車載ではないがミッションクリティカルな組み込み開発(下手すると死人がでて…

あなたが好きなことを仕事にするべきではない理由

もしあなたが好きなことを仕事にしたのなら、成功しようとも失敗しようとも、その道は茨の道であることを覚悟しておくべきだ。まず、好きなことが仕事として成立しない可能性がある。その場合、本当にその「好きなこと」で食べたいのなら、仕事として成立さ…

あなたが好きなことを仕事にするべき理由

まあお仕事なんて基本的に大変なことでこざいますから、好きでもないことのために大変な目にあうだなんて、しかもそれが40年近く続くだなんて、少なくとも私は耐えられません。というか耐えられなかった。人間が大変なことを何とかこなそうとする時に原動力…

PHPの三項演算子が左結合という仕様は本当にバグなのか?

PHP言語仕様のバグ - れぷそる・ふぁいやぁ・ぶれぇど 一夜明けて… - れぷそる・ふぁいやぁ・ぶれぇど 本当に「言語仕様のバグ」なのだろうか?三項演算子が左結合であると、例えば次のような擬似コードにて意図しない挙動を示すだろう。 variable = expr1 ?…

抽象化について、もしくはニッポン構造化プログラミング未伝来説

http://d.hatena.ne.jp/shim0mura/20130117/1358436466なんというか、こういうのを見ていると「ニッポンのプログラマには構造化プログラミングや構造化設計すら未だに伝来していないのじゃぁ」とか思ってしまうわけです。 何か1つ関数を読む場合、その関数の…

MISRA-Cにおける「関数の末尾以外の return 禁止」の真意

MISRA C という失敗 (#2295472) | コーディング標準は役に立つのか | スラド 早期returnとMISRA-Cルール14.7は背反か否か. - TogetterMISRA-Cはそもそも、 どのルールを守り、どのルールから逸脱するのか検討し、決定する。 上記の決定内容とその理由(順守…

WebSocketが切り開くネイティブアプリとWebアプリの融合、ネイティブアプリのGUIツールキットとしてのHTML

……というネタを思いついたので、既に同じ事を考えている人は沢山いるだろうけど書いておく。WebSocketについては「Ajaxをより便利にするもの」という見解が多い。確かに通信のオーバーヘッドの削減やクロスドメイン通信が簡単なこと、サーバからのプッシュが…

結局、C言語のポインタはどこが難しいのか?

何やら最近C言語のポインタが熱いらしいので、自称Cプログラマとして書き残しておこうと思う。私はポインタについて余り苦労することなく使ってきた人で、というかむしろポインタが無いと困る。構造体を引数にとる関数の仮引数はポインタで、リストやツリー…

サピア=ウォーフの仮説とプログラマのメンタルモデルの関係(試論)

あるいはプログラマ(プログラミング言語の話者)にサピア=ウォーフの仮説的な症状がみられる原因の考察。 プログラマにとって高水準言語はコンピュータを覆う抽象化層であり、ユーザインタフェースである。 高水準言語によって抽象化されたコンピュータの…

あの頃君は若かった:『標準MS-DOSハンドブック』と「OJTで新人を育てる」方式の罠

図書館で『標準MS-DOSハンドブック』を発見したので勢いで借りてみた。標準MS-DOSハンドブック (ASCII ハンドブックス)作者: アスキー出版局出版社/メーカー: アスキー発売日: 1984/07メディア: 単行本購入: 1人 クリック: 4回この商品を含むブログを見る198…

注解・正しい基本情報技術者試験の勉強法、あるいは基本情報が「役に立たない」といわれる理由の考察

id:eel3:20111127:1322361996 は7割ぐらいネタだったので、それを引っ剥がして残り3割の本音の部分を明らかにしてみようと思う。なので今回はネタ無し。 「基本情報技術者の資格は実務にも役に立つ」という主張は本音 最初に書いた以下の部分はネタではなく…

正しい基本情報技術者試験の勉強法

プログラマ(というか開発者)にとって基本情報技術者や応用情報技術者(ソフトウェア開発技術者)の試験は割合とネタになりやすい話題だと思う――主に役に立つ/役に立たないという観点で。コの業界では「この手の資格は役に立たない」と主張する人も多いよ…

定義ファイルの公開は難しい:エディタとシンタックスハイライトに関する考察

プログラマの端くれなので、使用するテキストエディタには大抵シンタックスハイライトの機能が付いている。世の中には沢山のプログラミング言語が存在するわけで、大抵のエディタはシンタックスハイライト等の定義を追加できるようになっている。追加した定…

フローチャートの起源、フローチャートに関する言質の歴史

フローチャートといっても幾つか種類があるらしいが、プログラミングにおけるフローチャートの話だ。あの、アルゴリズムの教科書か何かに出てくるような、JISで記号が定められているアレ。フローチャートの起源はどこだろうか? 英語版Wikipediaのフローチャ…

コレクションの大きさはプロパティLengthで取得するべきか、それともMeasure-Objectか?

PowerShellといえばオブジェクト・パイプで、オブジェクト・パイプといえばオブジェクトのコレクションだ。コマンドレットにはコレクションを返すものも多いし、それをパイプ経由でForEach-ObjectやWhere-Objectで処理することも多々ある。ところで、時々あ…

スクリプト言語にエントリポイント的なものは必要か?

エントリポイントというかメインルーチン――C言語いうところのmain関数、Javaだと「public static void main(String args[])」なメソッドに該当するものだが、スクリプト言語*1にも必要だろうか?言語仕様としては不要だろう。ごくごく短いスクリプトを書く分…

C/C++のソースでよく見られる1文字変数の一覧表(私案)

世の中には1文字変数という文化がある。個人的には基本的に余り歓迎したくない類のもので、私個人の見解としてはせめて、 適用範囲が比較的小さい場合に限り、 特定の用途でのみ使用する。 という制限を付けたいと考えているものだ*1。1文字変数は、ソースコ…

プログラミングの適性は、別の何かで穴埋めできるか?

1年ほど前に話題となったプログラミング適性についてのエントリの元ネタとなった論文及びその他資料の解読を細々と始めた。英語が苦手な私にとっては文字通り解読だ。夏休み中も進める予定だったのだが、他に色々と用事があって何も進められなかった。論文2…