Twitter:https://twitter.com/Nunerm Roppongi Product Manager Meetup #6 のLTで発表した資料 https://pm-roppongi.connpass.com/event/99971/
Table of Contents Game Programming Patterns Acknowledgements Introduction Architecture, Performance, and Games Design Patterns Revisited Command Flyweight Observer Prototype Singleton State Sequencing Patterns Double Buffer Game Loop Update Method Behavioral Patterns Bytecode Subclass Sandbox Type Object Decoupling Patterns Component Event Queue Service Locator Optimization Patterns Data Locality
今年、クックパッドでは夏のインターンと題して20名弱のインターンを受け入れました。 このインターンは前半と後半に大きく分かれており、 後半が社員に混じって業務をするいわゆる普通のインターンで、 前半は7日間にわたってプログラミング関連の講義を受けるという仕組みです。 わたし(青木)はその前半の過程において、「プログラミングパラダイム」という 1 日の講義を担当し、 JavaScriptの処理系を書くという、ツッコミどころの多い課題を実施しました。 本稿では、その講義を開発する際に考慮したこと、特に難易度調整についてお話しします。 また講義のために開発したJavaScript処理系「JetSpider」についても軽くふれます。 ▼講義資料 Cookpad Summer Intern 2015 - Programming Paradigm from Minero Aoki JetSpiderコ
ここ最近、初心者でも簡単にプログラミングが学べるプログラミング学習サイトが増えてきています。手軽に活用できることがプログラミング学習サイトの良さではありますが、その分どれが本当に自分に合ったサイトなのかを判断することは難しいですよね。「どのプログラミング学習サイトがわからない…」とお考えのあなたに、独学で勉強できる学習サイト18つをまとめて紹介します。このまとめでは、基礎の基礎から教えてくれるものから、ひとつの学習サイトを極めるだけでWebサービス開発の基礎力がつくサイトまで様々な種類の学習サイトを紹介しています。各スクールの特徴やオススメポイントを参考にして、ぜひ自分に合ったお気に入りのサイトを見つけてみてください。
Photo by Anders Sandberg こんにちは、谷口です。 皆さんは、アルゴリズムの勉強はどのようにしていますか? 情報系の学部出身の方は授業で勉強したことがあるかもしれませんが、文系の方や、プログラミングの業務経験のない方は、「そういえばちゃんと勉強したことない」という方も多いかと思います。(私もかつてそうでした……) アルゴリズムとは、「問題を解くための手順を定式化した形で表現したもの」のことです。例えば、複数のデータを並べ替えるソートの方法として、バブルソートやヒープソートといったアルゴリズムがあるということは、アルゴリズムをきちんと勉強したことがなくても、知っている方は多いかと思います。 仕様書の通りにコーディングをしていくだけの業務であれば、アルゴリズムを勉強する必要はないかもしれません。さらに前述のようなソート等に関しては、多くの場合既に関数が用意されており、アル
動画アーカイブ: https://www.youtube.com/watch?v=naaDgfKKzFU 講演内容: 本セッションでは、FINAL FANTASY VII REMAKE という大規模タイトルにおいて処理負荷にまつわる様々な問題に対し、どのようなワークフローで取り組んだのか、どのような対応を行ったのかという事例について説明します。まずはワークフローやプロファイリングツールを紹介し、その後にローレベル、アニメーション、カットシーンやレベル制御等で行った具体的な対応について説明します。 講演者: 波能 智人 (株式会社スクウェア・エニックス リードテクニカルプログラマー) 原 龍 (株式会社スクウェア・エニックス リードアニメーションプログラマー) 田原 篤史 (株式会社スクウェア・エニックス ゲームプログラマー) UNREAL FEST EXTREME 2021 SUMMER公
こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基本のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに
「コードレビューをキメると品質も上がるし自分のレベルも上がるので最高」みたいな論が巷を賑わせていて、以前はそういうイケてる制度を指をくわえてみるのみだったのだけれど、最近職場と、それと個人的に関わったプロジェクトでコードレビュー制を無理矢理交渉して導入してみた結果、世間のイケてる書籍やエントリから得られる情報とはまた少し違う知見が得られたので書いてみる。 割と泥臭かったり、あまり希望に溢れてたりはしない感じのエントリなのでそういうのは期待しないほうがいいです。 準備 些末なコードレビューを極力避けるために、コードの規約やスタイルについてはlintとフォーマッターを用意した。 他は無策。 結論 結論から言うと、理想的な運用は出来なかったものの、コードレビューについて世間で言われるような成果(作業を共有する意識、レベルの向上)は得られた。良かった。 ぶっちゃけ僕なんかが浅はかな考えで導入しても
If you’re familiar with nearly any mainstream programming language, and I asked you to draw a diagram of an array, the array indices, and the array elements, odds are good you’d produce a diagram something like this: In this post, I want to persuade you to replace that image, or, at least, to augment it with an alternate view on the world. I want to argue that, rather than numbering elements of an
以前の投稿で紹介した個人で開発している“Sketというサービスを一般公開しました。 キリがいいのと整理のために、ここまでの経緯をまとめてみました。 作ったサービス Sket │スケット Facebookアカウントでの登録をベースとした実名制のクラウドソーシング。 また、一般のクラウドソーシングのような依頼と受注の「クライアントと制作者」という関係性だけでなく、フリーランスの方が自分に足りないリソースを補うために協力者を探す「制作者と制作者」の関係で利用できるのも特徴のひとつです。 私について フリーランスのWebデザイナーとしてWebのデザインからコーディングまでをメインに受託をしています。プログラムは過去に一度学んだことはありますが実務で使った経験はなし。 使ってる技術 PHP MySQL CakePHP Sass Grunt jQuery Bootstrap VPS Nginx Git
2015年8月10日 Webサイト制作, 便利ツール 以前、すでにWeb制作者として就職している方から「まわりの同僚のように早く作業ができない」「作業の効率のいい進め方がわからない」という悩みを受けたことがあります。作業の効率化について紹介しているWebサイトや書籍も多く見つけられるかと思いますが、実際に手を動かしているところを見るのもひとつの方法です。他の人がどう作業を進めているか、見てみましょう! ↑私が10年以上利用している会計ソフト! 人がコーディングしているところを盗み見 「盗み見」なんてあまりいい響きではありませんが、賛否はどうあれ「技術は見て盗め!」という昔からの教育方針も存在します。会社の先輩、学校やコワーキングスペースの凄そうなオーラを醸し出している人の作業を見てみるといいかも。もちろん、絶対に作業の邪魔はしないようにしましょう! 「技術を見て盗む」メリット 作業の新しい
近況 打ち捨てられた過去について 要旨 この記事を興味深く読む一方で、やはり違和感を覚える人も多くいるようで、自分もその一人だった。恐らく、この違和感は、「抽象化」が「具体性を奪取していくもの」といったような対立項として述べられているからだ、というように思われる。しかし、果たして具体性無しに「抽象化」することが有益なことなのだろうか。それが一つの違和感のように思われる。 本文 プログラミングの世界には、YAGNI原則(You ain't gonna need it)というものがある。また、YAGNIという言葉を使わなくても、「過度な汎用化が足を引っ張る失敗例」というのは、プログラマとしての心構えを書いた本の中で、ちらほらと自嘲気味に述べられることがある。 僕も、一度そのような失敗例を見たことがあるけれど、なぜこういう失敗が起こるのか。確かにデザインパターンで組み立てられたアーキテクチャは「
浮動小数点数はどこにでもあります。これを使わないソフトウェアは、簡単には見つかりません。ソフトウェアの記述に不可欠な何かのために、浮動小数点数を扱う際に私たちが非常に注意を払っているのだと思われるかも知れませんが、普通はそうではありません。多くのコードでは、浮動小数点数は実数として扱われ、多くのコードが無効な結果を生みます。この記事では、浮動小数点数の反直感的な性質をいくつか紹介します。 これらの性質は、計算を正確に行うために知っておかなければならないことです。 x + y == x この第1の規則は、大きさの規則です。加算および減算をする際、お互いの数が他方の数に対して、有意味な結果を生めるだけの大きさが必要です。ここで大きさは、指数部の差を尺度とします。 例えば、値 1e-10 の大きさは、 1e10 に比べてとても小さいです。通常の64ビット浮動小数点数では、この小さな数を好きなだけ
Sindre Sorhus is the author of over 600 modules on npm. He recently wrote a long GitHub comment about why we should use small modules, and I asked for permission to reproduce the text on DailyJS. Read on to learn about why small modules make programming easier, and why it's not really about lines of code. People get way too easily caught up in the LOC (Lines Of Code) argument. LOC is pretty much
男子校に通う中学生の僕らにとって「家庭科」の授業は休憩時間のようなものだった。 僕の中学校には家庭科室というものがない。だから、いつもの教室で野菜の種類やそれに含まれる栄養素なんかを教わるというだけの、正直退屈な授業だった。話される内容はどれもただ暗記すればいいものなので、授業を聴かなくても定期試験前に教科書を読み通すだけで九〇点は取れる教科だった。 学校としても文科省の教育課程に沿うがためだけに時間割にねじ込んでいるに過ぎなかったと思う。特別教室がないことでも真面目にこの教科を取り扱う気がないことがわかるし、生徒の方でもその学校の態度を敏感に感じとっていた。 そんなやる気のない男子学生の前に立って話すのは教師にとって楽しいものではなかっただろう。僕らの先生は、落ち着いた雰囲気でどこかしたたかさのある、髪の長い女の先生だった。 その日も彼女はいつも通り、キノコに含まれる何々という栄養素が、
プログラマの面接をするときには実際にコーディングをしてもらうべきという話は良く聞くが、もうちょっと細かくどういうお題を出したら良いかとか、どういう風に評価したら良いかとかの話はあんまり聞かない気がする。せっかくなので、ユビレジでの面接で私がコーディングについて確認するときのパターンを、いくつか紹介してみようと思う。 実際にコードを書いてもらうパターン 候補者がどのくらいプログラミングできそうかの予備情報がない場合に、簡単なアルゴリズムを書いてもらうことが多い。例としては、 Linked Listを書いてください Stackを書いてください など。ここで、おもむろに int main(int argc, char* argv[]) { などと書き始める人は、あまり良い印象をもたれない。 class Stack などと書き始める人は上よりは期待できる。 このとき、わざと出題で詳細をあまり明らか
Introduction You can find the GitHub repository for this project here. All the source code will be updated as we go on with the project, so feel free to go back through the commit history to grab the revision you wish. This project is aimed at people with not too much experience in creating programming languages. I will try to cover as much ground as possible, but if you find anything you would li
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く