タグ

プログラミングに関するkitanowのブックマーク (144)

  • 写経で身につけるプログラミングの基本 | Social Change!

    とある学生さんがプログラミングの勉強をしたいということで、良い自習の方法はないか?という相談をしていました。初心者が「自習」でプログラミングを学ぶことは、どうすれば効率的なのかを、改めて考えて回答しました。 私のおすすめ学習法は「写経」という方法です。プログラマの間では今となっては割とポピュラーな学習法ですが、初心者にとってもすごく効果的だと思うので紹介しておきます。 プログラミングは知識と身体の両方が必要 まず、プログラミングをしたことのある人ならわかると思いますが、プログラミングは知識だけを身につければ出来るようになるものではありません。学校教育における歴史や地理のように猛勉強で覚えれば出来るようになる訳ではないです。 もちろん、学ぶプログラミング言語の文法や基的なAPIについては覚えているにこしたことはありませんが、それらを覚えることはそこまで重要ではありません。 プログラミングは

    写経で身につけるプログラミングの基本 | Social Change!
  • なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。ちょっと前にOCaml系のエントリを色々と眺めていたらYaron Minsky氏のエントリを見つけたので翻訳してみました。 OCaml for the Masses - ACM Queue Yaron Minsky氏はJane Streetで第一線で活躍されるエンジニアで、Jane Streetの技術ページをはじめ多くの場所でOCamlに関しての知見を語ってくださっています。 Jane Street Tech Blogs エントリはJohn Hughesの名エントリ「なぜ関数プログラミングは重要か」を受けてACM Queueに寄稿されたものの日語訳です。 なぜ関数プログラミングは重要か Why the next language you learn should be functional YARON MINSKY, JANE STREE

    なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog
  • Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編) - give IT a try

    2011.12.31 追記 後編を書きました。こちらもあわせてどうぞ。 Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(後編) - give IT a try はじめに 先日、FizzBuzz問題を使って社内プログラミングコンテストを開きました。 このブログでも書いた通り、なかなか興味深い結果になりましたが、一方で反省点もいくつか見つかりました。 特に問題が解けなかった人が出てしまったのは痛い誤算だったので、今回はできるだけ最後まで解けるような配慮をしてみました。 ただし、問題自体はFizzBuzz問題よりもずっと難しくしてあります。 今回もちょっと長いエントリになっていますが、よろしければ最後までお付き合いくださいませ。 前回の反省点 詳しくはこちらのエントリに書きましたが、簡単にまとめると 言語の得意・不得意が結果に大きく影響した 抜き打ちで実施したことがその

    Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編) - give IT a try
  • モダン並列・並行プログラミング ~ Concurrent Revisions による実装と現実 ~ - Preferred Networks Research & Development

    日社内向けのTechTalkにて、並列・並行プログラミングに関する話を行いました。 昨今、プログラムの並列化はなくてはならないものとなっています。しかし、そのプログラミング環境は依然としてロックを用いたものが主流です。今回の発表の主張を端的に申し上げますと、 “Locks must go!” ということになります。並列プログラミングに銀の弾丸はありません。しかし、ロックは別の何らかの安全性を確保したプログラミングモデルで置き換えられなければいけません。そうでなければ、再現しにくいバグに苦しめられ、終電を逃す日々と決別することはできないでしょう。また、ロックによるプログラミングの抱える質的問題にも言及しています。 この界隈の最新の動向として、去年OOPSLA’10にて発表されたConcurrent Revisionsについての解説も行なっております。また、弊社研究開発において、先日Con

    モダン並列・並行プログラミング ~ Concurrent Revisions による実装と現実 ~ - Preferred Networks Research & Development
  • 僕がプログラミングの勉強を始めた理由 | Designing Myself

    「文系」とカテゴライズされるけれども、プログラミングに興味がある人。 僕の周りにはけっこういる。 起業するためには経営学部に入ってビジネスを学べばいいのだろう。 このような考えを持っていたというわけ。 僕自身は、特に語れるようなビジョンもなく経済学部に入った。 しかし、今、プログラミングの勉強を始めている。 ここで、「なぜ僕がプログラミングの勉強を始めようと思ったのか」ということについて、整理しておこうと思う。これは、気持ちの整理であるとともに、ある意味決意表明でもある。これから書いていく僕の経験した「きっかけ」がみなさんのためにもなってくれたらうれしい。 投資してくれる人が見つかるも起業挫折 昨年11月頃、僕が大学1年生だった時のことだ。友人二人と毎日のように集まり、ビジネスプランを練ってはメンターの教員にアドバイスをもらっていた。初めはA4一枚のビジネスアイデアだったが、細部まで煮詰め

    僕がプログラミングの勉強を始めた理由 | Designing Myself
  • FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try

    はじめに 先日、社内で初めてプログラミングコンテストを開催しました。 お題はかの有名なFizzBuzz問題です。 全員楽勝で解答するだろうと思いきや・・・結果はいかに!? ちょっと長いエントリですが、このコンテストの顛末をお楽しみください。 開催の動機と経緯 メンバーの向上心を刺激するために、なにか面白くて技術的に意味のあるイベントを開きたかった。 以前からFizzBuzz問題を全員で解いてみたかった。 FizzBuzz問題はプログラマなら解けて当たり前、というようなWeb記事をよく見かけていた。 これぐらいなら誰でも解けるだろうと自分も思っていたが、実際にやってみないとわからない。 そこで社内プログラミングコンテストを開き、みんなでFizzBuzz問題を解いてみたいと思った。 マネージャーに話を持ちかけたところ、すぐに賛同してくれた。 FizzBuzz問題以外の追加問題も作成したが、第1

    FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try
  • プログラミングは「名前」が9割。 - このブログは証明できない。

    プログラミングというのは、名前をつける行為なんだと思う。 プログラミングで一番大切なこと。 もしも、プログラマーじゃない人に、「プログラミングで一番大切なことは?」と聞かれたら、迷わず「名前」だと答える。もちろん、人それぞれだし、自分はスキルの高いプログラマーじゃないよ、と前置きして。 名前が9割と言ったときの、9割という部分は人によってだいぶ差があるんだと思う。もっと小さいかもしれない。けれど、名前が重要だという点に関しては、反対するプログラマーはいないんじゃないだろうか。 時代や環境で変わる名前。 いま僕がイメージしてる名前というのは、変数名だったり関数名だったりクラス名だったり、とにかくいろいろ。さらに、JavaScriptとか高階関数をバリバリ使うような場合など、名前をつけないという選択肢もある。 なんとなくJavaScriptと書いたんだけど、名前はプログラミング言語や開発環境や

    プログラミングは「名前」が9割。 - このブログは証明できない。
  • #378th PTT (in Japanese)

     ------------------------------------------------------------------ 第 378 回 PTT のお知らせ --- Programming Tools and Techniques --- ------------------------------------------------------------------ ■日時:2011年10月13日 (木) 18時30分から ■場所:東京大学情報理工学系研究科 秋葉原拠点 http://www.i.u-tokyo.ac.jp/map/index.shtml#aki ■題目:ICFP Programming Contest 2011 舞台裏&表 ■話者:稲葉一浩、浜地慎一郎(Google) ■概要: 関数型プログラミングに関する国際会議 ICFP は、毎年、夏にプログラミン

    kitanow
    kitanow 2011/09/23
    ちょっと気になるが平日か...。
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
  • まとめよう、あつまろう - Togetter

    コミュニケーションが生まれるツイートまとめツール

    まとめよう、あつまろう - Togetter
  • Private Presentation

    Private content!This content has been marked as private by the uploader.

    Private Presentation
  • プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena

    イデアルITスクールというところで、1時間ほど話をしてきました。 プログラマとしてやっていくために大事なことというテーマ。 資料を作らずに、というか構想すら練らずにやってしまったので、ここで整理とまとめと補足を。実際にこれをしゃべったというのではなくて、だいたいこんなことをしゃべろうとしてたという内容をかなり盛って書いてます。 当然ですが、プログラマの仕事はプログラムを書くことです*1。 プログラマとしてやっていくためには、どこで動くプログラムを書くか、なにをするプログラムを書くかということを意識することが大事です。 ということで、まずはプログラムが動くところがどう変わったかという話。 1970年代ころは、デバイスを動かすためのプログラムが多かったのではないかと。 あと、ここには書いてないけど、業務アプリはほぼメインフレームで動いてたと思います。 それが、1980年代くらいからパソコンが出

    プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena
    kitanow
    kitanow 2011/09/16
    アルゴリズムイントロダクション2巻以外は絶版て知らんかった
  • 『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼう

    株式会社ロングゲート - プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2 Vol.1から約1年経ってしまいましたが、日、 『プログラミングの魔導書 〜Programmers' Grimoire〜』 Vol.2 The Evolution of Languages の予約を開始いたしました。 Vol.2のテーマは「言語の進化」です。 いろいろな言語における日の第一人者と言って差し支えない日人プログラマの方々に、歴史や現在の状況、今後の展開について執筆していただきました。 書では、Boost C++ Librariesの設計者であるDave Abrahamsへのインタビューに成功しました。ライブラリが言語の進化にどう貢献していくのか、プログラマにライブラリをどう教育していくのか、などを伺いました。 書のコンテンツおよび執筆者は以下のとおりです。 D

    『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼう
    kitanow
    kitanow 2011/09/15
    忘れたころにvol.2
  • ぼくはこうしてプログラミングを覚えた

    オリジナルはココです。フェイスブックのエンジニアでで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する人からの答えです。 手短かに言えば 何年もの歳月の賜物というか。ぼくはただひたすらプログラミングが大好きで、(フェイスブックで働いていた)過去4年間、ほとんど他のことをしていない。その前も2.5年ほどプログラマーとして働いていたし、そのさらに前も6年くらい趣味でプログラミングをしていた。ぼくは高校も大学も中退しているので、それで空いた時間もプログラミングに費やした。つい最近フェイスブックを辞めたけど、未だに起きている時間のほとんどはプログラミングだ。 もっと詳しく言えば 月並みだが、ぼくはちっちゃい頃からコンピューターが好きで、我が家にあったヤツで(最初はMac Plusで途中からIIsiになった)で散々遊んだ。8歳か9歳

  • 第6回 詳細画面を付けて、簡易RSSリーダーの完成

    第4回、第5回では、簡単なRSSリーダー「SimpleRSSReader」を題材に、Androidアプリの基的な開発手法を解説してきた。AndroidにおけるRSSパーサの挙動を学び、アプリに実装するところまできた。 今回は、RSSリーダーとしての体裁を整えるために、記事の要約文を表示する詳細画面をつけてみる。現在、アプリが持つアクティビティは記事を一覧表示する「RSSListActivity」一つしかないが、今回はもう一つ、詳細画面(図1)を表示するためのアクティビティ「ItemDetailActivity」を追加する。 前回実装したパースの機能を担う「parseXml」メソッドでは、title要素とdescription要素しか取得していないため、詳細画面で表示されるデータも記事のタイトルと文だけである。 今回新たにアクティビティを追加することで、複数のアクティビティ間での画面遷移

    第6回 詳細画面を付けて、簡易RSSリーダーの完成
  • 第5回 RSSリーダーの要、パース機能を知る

    前回から簡単なRSSリーダーアプリを題材に、Androidアプリ開発の実際をお伝えしている。今回は主に、アプリの肝と言えるRSSのパース機能について、実際のプログラムに沿って解説していこう。 RSSと言っても、中身はシンプルなXMLで記述されている。ここで解説する内容は、今後RSSリーダーだけでなく、さまざまなWebサービスAPIを利用したアプリを作る際に応用できるだろう。 XMLパーサーは用途に合わせて選ぶ Javaプラットフォーム上でXMLを扱う際のAPIとしては、現在のところ大きく分けて次の三つが利用されている。 (1)DOM (Document Object Model) --- ツリー・ベースのAPI (2)SAX (Simple API for XML) --- イベント・ベースのAPI(Push型) (3)StAX (Streaming API for XML) --- イ

    第5回 RSSリーダーの要、パース機能を知る
  • 第4回 簡単なRSSリーダーを作ってみる - Androidで広がる,携帯アプリ開発の世界:ITpro

    前回までの3回で、Androidアプリケーションの開発に必要なSDKの導入方法や、Android Marketへの申請方法を一通り説明してきた。この回からは、シンプルなRSSリーダー・アプリケーションの開発を通じて、アプリ開発の実際の手法や必要な知識を紹介していく。 実践的な内容も多少含んでいることから、Java言語の基礎に加えて、Androidアプリ開発の基礎をある程度習得している読者が対象になるが、Androidアプリの自作を考える読者にとっては、参考になるだろう。 基的な開発作業の流れを中心に、アクティビティの実装部分についてもほんの触りだけだが、解説していく。 開発するRSSリーダーの概要 今回、題材として開発を進めていくRSSリーダーは、ITproがすでにAndroid Marketで公開しているニュース・リーダーの機能縮小版という位置付けのアプリである。Android端末をお

    第4回 簡単なRSSリーダーを作ってみる - Androidで広がる,携帯アプリ開発の世界:ITpro
  • プログラミングのスキルを鍛える10の方法 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー ステキな英文の記事を見つけました。10 ways to improve your programming skills。どれも自分が実践していることでもあって,「なるほどな−」と思うものばかり。 たっぷりプログラミングしたあとは,節電も忘れずに:-)。 1. 新しいプログラミング言語を学ぶ 新しいプログラミング言語を学ぶことで,新しいプログラミングに対する考え方に触れることができる。そのプログラミング言語が今まで知らなかったパラダイムに根ざしている場合ならなおさら。新しい手法の多くは,すでに知っている知識になぞらえることができるので,習得はそれほど難しくないはず。 2. やる気をそそら

  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
  • Android 開発初心者がよくやる失敗 コーディング その1 | TechBooster

    開発初心者がよくやる失敗シリーズ、今回はコーディング編です。 初心者がAndroidアプリを開発していて、コーディング中によくやるミスとして以下の2点について解説します。 R.javaが消えた ActivityをManifestに登録していなくてアプリがクラッシュする R.javaが消えた R.javaは、XMLで宣言したリソースのIDを管理しているJavaファイルです。 自動で生成されるため、開発者は触れない方がいいです。 アプリを開発していて、よく起こる現象のひとつ、R.javaの喪失。 これは、xmlファイルにエラーがあることが原因で、R.javaの自動更新ができずに起こってしまう現象です。 消えてしまったR.javaを復元させるためには、方法が2つあります。 xmlファイルのエラーを取り除いた上で、上書き保存をする。 xmlファイルのエラーを取り除いた上で、プロジェクトのクリーンを