まったくの新規開発の割合はどんどん減っている。一番多いのが、既に開発されているプログラムになんらかの手を加える仕事である。コンピュータがどんどん変化していくので、その変化にプログラムの方を適合させる仕事は特に多い。 こういう時には、過去に自分または他の誰かが作ったプログラムを修正したり、付け加える部分を既存部分と適合するように作る訳だ。既存プログラムが現状にそぐわなくなっていれば、そのプログラムも修正する。 こういう仕事は、元のプログラムの品質で作業効率が目茶苦茶違う。元が良い場合には、非常に楽である。しかし、元が酷いと、とんでもない苦労をさせられる。元のプログラムを捨ててしまって、新規に作り直した方が、遥かに楽なことが良くある。 でも、捨てることは、まずない。捨てられない事情がある。今までに費やした工数、費用がもったいないのである。なんとか今までの成果を利用しようと悪あがきをする。そうし
「コードがもうメチャメチャでも、動いて金が回れば正解なんですよ」という発言を含むインタビューが話題です。 エンジニアよ、ゼネラリストなんて目指すな!- VASILY 金山裕樹のキャリア論[2] 一部界隈で大きな話題になっているのは、主に以下の部分です。 極端な話、コードがもうメチャメチャでも、動いて金が回れば正解なんですよ。「アイツの書くコードは汚いけど、アイツが入ったプロジェクトは絶対勝つよね」ってエンジニアは、絶対に呼ばれます。もう間違いない。少なくとも、僕は欲しいですし。 私のまわりでは、「汚いコードをその後運用させられるエンジニアもいるんだからね」という意見が非常に多い印象です。 個人的には、こういうことを表明している会社でエンジニアとして働きたいとは思わなかったです。 「汚くてもいいよ」はエンジニアとしては楽な面もあるよね 今は文章を書くことが私の主な仕事ですが、前職はプログラマ
2012年11月03日、NAISTで行われたSECCON CTF奈良大会での発表で使用したスライドです。 公開にあたり加筆・修正を行なっているので、本文での日付に食い違いがありますがご容赦ください。 以下、スライドで紹介したメガデモのリンクです。 Elevated by RGBA and TBC (4K Intro) https://www.youtube.com/watch?v=_YWMGuh15nE http://pouet.net/prod.php?which=52938 Puls by Rrrola (256B Intro) https://www.youtube.com/watch?v=gaCkQj9DCsA http://pouet.net/prod.php?which=53816 Candy "TokyoDemoFest2013 Invitation" by nonoil &
Ruby を試してみたいけどインストールするのは面倒…。そんな人のためにブラウザ上で Ruby を試せる IRBWEB というサービスを作ってみました。 irb のように、Ruby の構文を実験できてとてもお手軽です。 完全にブラウザ上で動作するため、動作もさくさく。ちょっとしたコードを書いて動作確認も楽しめますね。 なお、変数を定義するには $a のようにグローバル変数として定義しないと、次の入力で参照できません。 動作環境 Silverlight 2.0 のランタイムが必要です。 Silverlight 2.0 は Windows の IE だけでなく、Firefox や Mac の Safari、さらには主要な Linux ディストリビューションでも動作するので、この機会にインストールしてみるとよいですね。 (追記 2009/4/6) Firefox 3.0 では動かないようです。
プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。 Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。 Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。 プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。 プログラマとしての実力をあげるための勉強が自
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
昔々、あるところにジェイソンという、大変真面目な開発者がおりました。 彼がとある会社の情報システム部にやってきたとき、彼は社内システムのクオリティのひどさに衝撃を受けました。 情報システム部といっても、その会社では外注はせず、社内の開発メンバーがシステムを作っていました。 ジェイソンがそこで最初に担当したシステムは、見事なまでのスパゲッティコードでバグだらけ、データ設計も素人レベルでパフォーマンスも最悪、エラー処理もずさん、おまけにまともなドキュメントもなく、ちょっとした障害を調査したり、小さな改造を実施したりするのにも、大変な苦痛を伴うという、それはそれは大変なシロモノでした。 このシステムは元々エセーグルという、ちょっと変わった名前の開発者によって作られていました。 しかし彼はすでに別の開発チームに異動していて、こちらの質問には答えてくれますが、もはや本人が直接手を動かすことはありませ
なんかFizzBuzzが書けないPGがどーとか定期的に話題になってるけど、私に言わせれば説明の仕方が悪い。 こうすれば誰でも書ける。 これだから最近の若いもんは……。 GoogleDocsのスプレッドシート、方眼紙作るのに向いてませんね……。
“できるエンジニア”は、こう行動する~今日から始めたい10のルール~:いまどきエンジニアの育て方(8)(1/3 ページ) →「いまどきエンジニアの育て方」連載一覧 開発部門においてコミュニケーションが不足し、エンジニアが孤立化する“タコツボ化現象”が進んだり、若手の育成を目的としたOJT(On the Job Training)が機能しなくなったり……。原因としては、主に、企業を取り巻く環境要因の変化が考えられます。しかし、このような状態であっても、“できるエンジニア”を輩出し続ける企業や開発現場があるのも事実です。 では、“できるエンジニア”とは何なのか? 現在、トップエンジニアかつ優秀なマネジャーになっているベテラン世代のエンジニアたちの行動には、会社の所属や開発製品の分野にかかわらず、いくつか共通点があることが分かってきました。しかも彼らは、若いころからそのような行動をとっているよう
著者の定義によると、アルゴリズムとは「問題を解決するために必要な手順を正確に規定したレシピ」である。コンピュータ・サイエンスを専門とする大学教授の手による本書は、現在当たり前のように使われている偉大なコンピュータ・アルゴリズムがなぜ必要とされたのか、どのように考え出されたか、そして、それが実際にどのような仕組みで動いているのかを教えてくれる。 このように紹介すると、コンピュータやプログラミングが苦手な人は手が遠のいてしまうかもしれないが、どうかご安心を。本書を楽しむのに、コンピュータプログラミングやコンピュータ科学の知識は必要ない。必要なのはじっくりと考えることだけだ。 一口にサイエンス本といっても面白いポイントはそれぞれに異なるが、本書の面白みは間違いなく、過去の偉人たちの難問への挑戦を疑似体験できるところにある。その面白みを満喫するためにも、頭から煙を出しながらじっくりと考えながら読む
ここでは、Windows2000/XP のコマンドプロンプト、Windows95/98/98SE/Me のDOSプロンプト上のバッチでOSを判定する方法について紹介します。 私が過去考えた方法 巷で紹介されている方法 おすすめのOS判定方法 私が過去考えた方法 当ページのリンクでも紹介している、@nifty FPCU本館が運営のDOSプロンプト活用相談室で過去私が回答したOS判定方法がこれである→発言スレッド過去ログへリンク (ご注意:この過去ログは、表示するごとに@nifty 有料会員ログインチェックが行われます。ログインをキャンセルしても閲覧できますが、会員のかたはIDとパスワードを入力してログインしていただけば、以後ブラウザを終了するまで再ログインなしで閲覧できます。) if "%userprofile%"=="" goto LWin9X for /f "tokens=1-3" %%
Amberとは 注: この文書の内容は最新のコードに対応しておりません Amberは自己拡張による高級なプログラミングを易しく・高い自由度で可能にする事を目指して開発が行われているオープンソースのスクリプト言語です. 自己拡張とはプログラミング言語の構文や意味論をその言語自身の機能によって拡張・再定義するテクニックの事で マクロ ドメイン固有言語(DSL) 拡張可能文法 メタプログラミング 動的/静的リフレクション などの手法を含みます. 生産性・移植性・性能のいずれの観点においても,出来るだけ抽象度の高いプログラムを記述する事は重要です.プログラミングの場面に応じて,その記述に最適な言語は異なりますから言語の自己拡張機能が重要となります. Amberは最初から自己拡張機能を最重要視して設計されており,手軽に様々な方法で言語の拡張を行う事ができます. Amber開発の動機 (英語) Amb
筑波大学 システム情報工学研究科 コンピュータサイエンス専攻 非数値アルゴリズム研究室(NPAL) 五十嵐 悠紀 2004年度下期、2005年度下期とIPA未踏ソフトに採択された、『天才プログラマー/スーパークリエータ』。筑波大学 システム情報工学研究科 コンピュータサイエンス専攻 非数値アルゴリズム研究室(NPAL)に在籍し、CG/UIの研究・開発に従事する。プライベートでは二児の母でもある プログラミングの本は多々出版されていますが、デバッグの本はあまりありません。また、プログラミングは大学の授業や企業セミナーなどでも習得できますが、デバッグを教えてくれる教室などはあるのでしょうか? デバッグさえなければプログラミングは楽しいのに、と感じているエンジニアは多いと思います。しかしデバッグは避けて通れないのも事実。そして、おそらくみんな、自己流で身に付けていくものだと思います。 私も
By plushoff under CC BY-NC 山口さんから、「Java開発者のための関数プログラミング」の電子献本をいただきました。ありがとうございます。電子書籍便利ですね。アメリカにいても日本語の本が手に入る!しかも、すごいこなれた日本語になっているし、注釈もばっちりついて読みやすいです。仕事のできる男の風格を感じます。 本人のブログ: http://ymotongpoo.hatenablog.com/entry/20120621/1340233739 オライリーの書籍ページ: http://www.oreilly.co.jp/books/9784873115405/ この本を楽しく読んでいたところ、山口さんから別の面白いリンクを教えてもらいました。 Why OO Sucks (なぜオブジェクト指向はクソなのか) Erlangの開発者のJoe Armstrongの記事です。本当は
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く