2022/09/11 に小学校のPTA活動で話したプログラミング教育についての話です。
I originally wrote the following for my Chainline Newsletter, but I continue to get tweets about this idea, so I'm re-publishing the article here on my blog. This version has been lightly edited. I've been thinking about the consequences of the "wrong abstraction." My RailsConf 2014 "all the little things" talk included a section where I asserted: duplication is far cheaper than the wrong abstract
今回のコードの汚さには正直ちょっと自信あるよ。 下手すりゃIOCCCで優勝も狙えるかもしれないよ。 ということで、私がこれまで見てきた中で最も汚いソースコードを紹介します。 それは、とあるWebサイトのTwitterハッシュタグ埋め込みのコード。 よくあるやつですね。 普通であればタイムライン埋め込み使って一瞬で終わるやつです。 ただ、そこはけっこうお堅めのクライアントで、普通に埋め込むだけではできない要件が追加でありました。 すなわち、ハッシュタグを乗っ取る荒らし投稿などを絶対に表示させたくない、というものです。 具体的にはクライアントからNGワードのリストをもらって、それらの単語が含まれる投稿は表示しないようにします。 だいぶ昔の話なので実際はvarとか使ってたと思うんだけど、ざっくり書くとこんなかんじ。 const ngWords = [/* 省略 */]; let tweetLis
アラン・チューリングという計算機科学者の考えた、 「チューリング・マシン」という仮想の計算機があります。 これは [0を書く]、[1を書く]、[右に進む]、[左に進む] と言った 非常に簡単な命令のみを実行できる想像上の計算機ですが、 我々の使っているパソコンでできるような計算は全て、 チューリングマシン用のプログラムとして書ける、ということが知られています。 …という前置きを付けてなんだか重々しい言語に見えてきたところで(^^;、 たぶんご存じの方も多いと思われる、わずか8文字の組み合わせで ありとあらゆるプログラムを表現する Brainfuck を弄ってみるとしましょう。 * Hello, World 導入 サンプル:表示1 サンプル:表示2 サンプル:echo * サンプル:足し算 サンプル:掛け算 C++によるインタプリタ実装 * サンプル:条件分岐1 サンプル:条件分岐2 まとめ
この文章の翻訳です 参照1、参照2 原題「Brilliant Jerks in Engineering」 我々のうちの多くが、彼ら(やること成すこと素晴らしいが他人をゴミの様に扱うタチの悪いエンジニア)と働いている。いくつかの企業は彼らを雇わないポリシーを掲げている。例えばNetflixの「タチの悪い凄腕をゼロにしよう(No Brilliant Jerks)」など。それは僕がNetflixにジョインした数多くの理由の内の一つだ。あるいは「馬鹿げたルールを作るな(No Asshole Rule)」という話題となった本もある。wikiから2つの判断材料を引用してみよう。 1.その人と会った後に、圧力や侮辱を感じたりもっと悪い状態になっていないか? 2.その人は、その人自身より力のない人たちをターゲットにしているか?あなたやあなたの会社への問いかけたい。あなたは、どうしようもなくクソな凄腕エンジ
The V Programming Language 0.4 beta Simple, fast, safe, compiled. For developing maintainable software.
こんにちは。ハルキです。 4月から中学二年生になりました。 僕はこの春休み、パパが働いているマネーフォワードに職業体験インターンという形でお世話になりました。 プログラミングを始めたきっかけは、Scratchという子供向けのプログラミング学習サービスです。 小学校3年生の時にどハマりし、そこから6年生まで夢中になってやり込みました。 ただ、やはり子供向けなので最低限のことしかできず卒業。 その頃、マネーフォワードの方が開催してくれたバーベキューで酒井さんと出会い、そこでPythonを教わりました。 (酒井さんはビジネスマンなのにプログラミングもできちゃうすごい人なのです!) そこから、Chatworkで酒井さんとコミュニケーションを取るようになり、プログラミングで悩んだことがあったら酒井さんに報告して、バグがあれば直し方を教わるようになりました。 酒井さんは面白い記事を紹介してくれたり、そ
2017/3/1追記 : Pythonの説明がやや不正確だったため追加の記事を書きました → 参照についてもう少し詳しく ~PythonとJavaを例に~ ありきたりな話題ではあるけど、値渡しとか参照渡しとか、変数を関数に渡した時の挙動について自分もまとめてみることにした。 #はじめに、プリミティブ型について ほとんどの言語では、プリミティブ型とそれ以外で挙動が違う。 言語によって若干異なるものの、プリミティブ型は概ねこんな感じ。 整数 浮動小数点数 文字 ブーリアン 参照 or ポインタ それ以外の配列、クラス、構造体などをここではオブジェクトと呼んでいる。 #値渡し 関数に渡した際にその値をコピーした新しい変数が作られ、それが仮引数になる。 関数内で仮引数を変更しても呼び出し元の変数は変化しない。 C++、Java、Pythonの例。
お題「エンジニア立ち居振舞い」 技術的な暴力を振るわない 何事も初めて、ということがあるだろう。 プログラミングが好きで、かつ業務経験もあり、 いろいろなサービスに手を出している人ですら、初めてやったこと、というのがあるはずだ。 ECサイトをつくるため、CGIの処理、ブラウザからの快適な買い物を実現するために独学した小売店経営の個人事業主。 iOS上でのアプリ開発が解禁されて、初めてiOSアプリを開発するようになったWindows向けアプリケーション開発者。 Go言語が発表され、初めてGo言語でサーバサイド側のアプリを書いたフロントエンドエンジニア。 AWSのLambdaアーキテクチャ == Serverlessという問題の解決、分散の仕組みに心を惹かれHTTPS経由のファイルアップロードの処理をLambdaに寄せたIoTサービスを始めようとしている組込系エンジニア。 Nintendo S
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 弊社に5年間在籍していたロシアの天才ハッカーが先日退職しました。 ハッキング世界大会優勝の経歴を持ち、テレビ出演の経験もある彼ですが、正直こんなに長く活躍してくれるとは思っていませんでした。彼のようなタレントが入社した場合、得てして日本の大企業にありがちな官僚主義に辟易してすぐに退職するか、もしくはマスコットキャラとして落ち着くかのどちらかのケースがほとんどなのですが、彼は最後まで現場の第一線で活躍してくれました。 そんな彼が最後に残していった退職メールがなかなか印象的だったので、その拙訳をここに掲載します(転載について本人同意済み。弊
子どもへのプログラミング教育は早ければ早いほどいいというものではない。 最近子どもへのプログラミング教育が話題になることが多いけど、恐らく小学3年生までの子どもへの効果はほとんどなく、小学4年生でもほとんどの子どもには難しいと思う。 人間の知能の発達には段階があって、必要な段階に達していないうちにそれが必要な教育を行っても効果は望めない。 まず、なんでこのエントリを書いたかというと、プログラミングには適した発達段階があるということを知らないと、その発達段階に達する前にプログラミング教育を行って、もちろんプログラミングは出来なくて、その子には適性がないという判断をしてしまうとうことが起きてしまうんじゃないかと思ったからだ。 まだ適した段階まで来てないだけなのにプログラミング教育をして失敗して「この子にはプログラミングができなかった/興味をもたなかった」という実績を作ってしまうことによって、将
Last fall, work on my coding side projects came to a head: I wasn’t making adequate progress and I couldn’t find a way to get more done without sacrificing my ability to do effective work at Khan Academy. There were a few major problems with how I was working on my side projects. I was primarily working on them during the weekends and sometimes in the evenings during the week. This is a strategy t
あらすじ あなたはとある業務用 Web アプリケーションの開発・保守を任されています。 このアプリケーションは ASP.NET を用いて作成されており、 クライアントサイドは一部 jQuery を利用してナウなヤングにバカウケの UI を実装しています。 さて、今回は 商品情報の変更履歴を一覧表示する。一覧から2つのバージョンを選んで差分を表示できるようにする。 という機能を実装することになりました。 これ自体はちゃちゃっと実装し、以下のようなHTMLが生成されるようにしました: ... <table> <tr> <th>A</th> <th>B</th> <th>変更日時</th> <th>変更者</th> </tr> <tr> <td><input type="radio" name="new_version" value="9"/></td> <td></td> <td>2012-0
バーンれっどさーん @ledsun たかしへ あなたの勤怠確認しました.こんなに残業が多い割に大して売上が上がってないのはどうしてですか?顧客との信頼関係の構築も甘いとと思います.来月からは頑張って下さい.ちなみに母さんは今月、10人月で作ったシステムを3000万で売ってきました。 2012-02-24 13:21:23 バーンれっどさーん @ledsun たかしへ あなたの立てたスケジュール読みました。作成工数だけでバッファがありません。予想外の事態が起きた時はどうするのですか?残業でカバーですか?お客様が参加するイベントが入っていません。都度調整ですか?事前に提示していないと都合がつかなくても納期延長できませんが大丈夫ですか? 2012-02-24 13:46:29 バーンれっどさーん @ledsun たかしへ あなたの作った機能仕様書読みました。技術的面ではチャレンジグで素晴らしかっ
Twitterのタイムラインが面白すぎて、ついうっかり言語を擬人化して脳内で言語女子会なるものを開いてしまいました。なお、登場人物と実在の人物は1対1に対応しません。 undefinedとnullの両方必要なの? とあるプログラミング言語が集う女子会にて: Perl: そういえばさ、なんでJavaScriptちゃんってundefinedとnullの両方もってるの? JavaScript: えっ、未定義の変数にアクセスした時undefined返したいじゃない? Python: 例外投げて死ねばいいじゃん Ruby: 例外投げて死ねばいいよね Python & Ruby: ねー♡ Java: いやそこは参照型ならnull、数値型なら0で初期化すべきでしょ C: これだから最近の若い子は…初期化にだってコストが掛かるんだからね!デフォルトで初期化するなんて無駄遣いよ!必要な人だけが責任をもって初
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く