タグ

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

  • プログラマの心の健康

    目次 はじめに 情報不安について 人の話を聞くこと 寝てから考えよう わ・ざ・と、ゆ・っ・く・り・、や・っ・て・み・よ・う ロビンソン式悩み解決法 驚き、最小の法則 むしょうに腹が立つあいつのこと あなたは、そのままでいいんです はじめからやり直したい症候群 人から信頼されるためにはどうしたらよいか トラブルがチャンス あなたはひとりではありません あなたのための聖書の言葉 ぜひ、感想をお送りください リンク集 更新履歴 はじめに 私はプログラマです。 プログラムを書いて生活の糧を得ています。 プログラマというのは精神的にも肉体的にも過酷な仕事だと思われています。 夜遅くまでディスプレイに向かい、 キーボードを叩き、ジャンクフードをべながらバグをとる…そんな職業だと思われています。 確かにそういうところもありますが、プログラマも人間です。 不健康な生活を長いこと続けることはできません。

  • 新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ

    こんにちは、技術部 高井です。 春といえば、フレッシュマンの季節ですね。このブログを読む方の中には、明日からエンジニアとして新社会人になるという方もいらっしゃるのではないでしょうか。クックパッドでも新しい仲間を迎えるための準備をしていたところで、その準備の一環として「新卒ソフトウェアエンジニアのための技術書100冊」というものを作成しました。 この100冊は、職業ソフトウェアエンジニアとしてキャリアを積むにあたって、読むべき技術書に悩んだら、まずはこのリストから選ぶとよいのではないでしょうかという提案です。 リストに多少の趣味や主張がはいっているのは、まあご愛嬌ということでお許しいただければとおもいますが、職業プログラマとして知っておくべき知識を網羅できるように心がけました。古典と呼ばれる名著についてはできるだけ取りいれ、独習が難しい難解なコンピュータサイエンスの教科書は避けています。これ

    新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ
  • プログラマーとして長く経験をつんでいても、コーディングの質が高くないプログラマーがいるのはなぜですか?どんなところが難しいのでしょうか?

    回答 (25件中の1件目) ごく単純に言えば、同じことを同じようにやっていたら何をいくらやっていてもうまくならない、ということかと思います。 練習に関する一般論で言えば、例えば楽器であれば漫然と弾いている人と常に一歩次のハードルを見据えて練習している人ではスキルレベルのあがり方が違います。Deliberate Practice という言葉で調べてみてください。 プログラミングにおいても、同じ・類似領域でコピペで済むものを繰り返している人と、別の技術・領域を行き来している人では同じ年数での経験値の蓄積は違います。 ゲームの例えが通じるかわかりませんがひとつ。「ドラクエでスライム(最初...

    プログラマーとして長く経験をつんでいても、コーディングの質が高くないプログラマーがいるのはなぜですか?どんなところが難しいのでしょうか?
    nabeatsu1
    nabeatsu1 2018/07/16
    今の環境だとそういうプログラマになってしまうのではないかと不安。意識しておきたい
  • 分散キューという名の苦しみ - Software Transactional Memo

    TL;DR 分散システムにおいてキューを導入する場合、当にキューが必要なのか再考すべき。そこが地獄の入り口だから。 システムの抽象 コンピュータの世界は、来は0と1の信号の羅列が飛び交う無機質なものである。でも人類は信号だけですべてを語らず、様々な喩えを定義してきた。それはデスクトップ・ウィンドウ・マウスカーソルといったグラフィカルな表現に留まらず、パケットやカプセル化といった用語にロック・キュー・リスト・木などのアルゴリズムやデータ構造の世界にも自然に溶け込んでいる。これらはすべて人間の理解を助けるための喩え話に過ぎず、この喩えこそが人間のより直感的な理解をもたらす一方で、発想の制約を生み出してきた。 人間が大きなシステムを作るときも何らかの喩えを用いてシステム全体を整理する。アーキテクチャの「ポンチ絵」を描いて情報共有をするのは企業に勤めていれば経験した人も多いだろう。パワーポイン

    分散キューという名の苦しみ - Software Transactional Memo
  • 【5分で覚えるIT基礎の基礎】だれでも一度はアセンブラを学んでおこう! 第1回

    矢沢久雄 グレープシティ アドバイザリースタッフ プログラマであってもなくても,コンピュータに関わる人なら,だれでも一度はアセンブラを学んでいただきたいと思います。アセンブラは,コンピュータのハードウエア的な動作を生々しく記述するプログラミング言語です。アセンブラを学ぶことで,CPU(プロセサとも呼ぶ)の機能やOSの役割などが手に取るように見えてきます。すなわち,コンピュータに何ができるのかが分かるのです。 アセンブラとマシン語のことを「低水準言語」と呼びます。一方,COBOL,BASIC,Pascal,C言語,C++Java,C#などのプログラミング言語を「高水準言語」と呼びます。低水準とは,コンピュータの生の動作に近いという意味で,高水準とは,人間の感覚に近い(コンピュータの生の動作からは遠い)という意味です。高水準言語を使えば,コンピュータのハードウエアの知識がなくてもプログラムが

    【5分で覚えるIT基礎の基礎】だれでも一度はアセンブラを学んでおこう! 第1回
  • 言語機能としての型、概念としての型 - プログラマーの脳みそ

    某エントリが型について再考するきっかけになったのは事実だが、個々人の思想の成否を問う気がないのでとくにリンクはしない。ここでは型とは何かという点について僕なりの思想を記しておきたい。 データ型を区別しない世界 ごくシンプルなチューリングマシンを考えよう。 チューリングの仮想機械は、 無限に長いテープ その中に格納された情報を読み書きするヘッド 機械の内部状態を記憶するメモリ で構成され、内部状態とヘッドから読み出した情報の組み合わせに応じて、次の動作を実行する。 ヘッド位置のテープに情報を書き込む 機械の内部状態を変える ヘッドを右か左に一つ移動する 上の動作を、機械は内部状態が停止状態になるまで反復して実行し続ける。 チューリングマシン この原始的な世界において「型」はない。メモリは抽象的で全てのメモリは同等に扱われ区別する必要はない。 また、チューリングマシンに程近い原始的なプログラム

    言語機能としての型、概念としての型 - プログラマーの脳みそ
  • 入社からの半年間でコードレビューで指摘されたことのまとめ - 30歳からのプログラミング

    実務未経験でプログラマとして入社して半年以上が経った。 コードレビューで指摘されたことを備忘録としてまとめておく。 自分なりにまとめたものなので、レビュアーが言いたかったこととニュアンスや解釈がずれている可能性はある。 初歩的な内容ばかりで我ながらうんざりする。 せっかく優秀な同僚ばかりなのだからもっと高度なことを学びたいが、こういう初歩的なことが出来ないのが俺の現状なのだから、仕方ない。 そもそもPullRequestを送ったこともなかったわけだし。入社初日は、一人でPullRequestの出し方を練習していた。 それを考えればまあ、こんなものだろうか。 当たり前のことをちゃんと当たり前に出来るようになって、早く、次のステージに進みたい。 PullRequest(PR) PRのタイトルは分かりやすいものに。必要に応じてチケットの番号なども入れる。 コミットやPRは出来るだけ粒度を細かくす

    入社からの半年間でコードレビューで指摘されたことのまとめ - 30歳からのプログラミング
  • アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選 6 問 ~ - Qiita

    今の場合は A さんが 31 歳の場合のストーリーでしたが、A さんが 20 歳~ 35 歳のうちのどの年齢であったとしても、似たようなストーリーで必ず 4 回の質問で当てることができます!(他の例も是非考えてみてください。) ちなみに、このような「真ん中で切ってどちらかに絞って行く」タイプのアルゴリズムには二分探索法という名前がついています。応用情報技術者試験でも頻出のテーマですので馴染みのある方も多いと思います。 1-2. つまり、アルゴリズムとは 上の年齢当てゲームという問題では、相手の年齢を当てる「方法・手順」を二分探索法に基づいて導きました。このようにアルゴリズムとは、 問題を解くための方法・手順 のことです。さて、アルゴリズムと聞くと「コンピュータ上で実装されたプログラム」のことを思い浮かべる方も多いと思いますが、必ずしもコンピュータと関係がある必要はなく、日常生活でも多々登場

    アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選 6 問 ~ - Qiita
  • コンピュータサイエンスはこう学べ (1) - 人の心を動かすインタビュー

    コンピュータサイエンスの勉強法について、情熱を持って取り組まれている方々にお話を伺ってきました。 ひげぽん (http://d.hatena.ne.jp/higepon/) omo (http://steps.dodgson.org/) 天才プログラマA氏 ---- 最近はどんなを読んでいますか? ひげぽん: Aさんに薦められた "Domain-Driven Design" (DDD) (ASIN:0321125215) というと、"Programming Pearls" (ASIN:0201657880)」ですね。 ---- DDDを薦めた理由は? A: コーディングに関する新しいってあんまり無かったので、最近あまりコーディングに関するをひげぽん氏が読んでない気がして。あとは、割と良いなので、みんな読んでおいた方がいい「必読系のかな」と思っているところがあって。 ---- 読

    コンピュータサイエンスはこう学べ (1) - 人の心を動かすインタビュー
  • 富豪的プログラミング - 増井俊之

    ユーザインタフェースのプログラムといえばすっかりグラフィカルユーザインタフェース(GUI)があたりまえになりました。ところが最近の計算機はメモリもディスクも大量に装備しているしCPUパワーも従来とは比べものにならないのに、意外と貧乏臭いインタフェースが生き残っているようです。よく見られる以下のようなインタフェースはちょっと貧しいと思われます。 マウスでウィンドウを動かそうとするとき、ウィンドウの枠だけマウスに追随し、中身はドラッグ終了後に再描画されるというシステムがあります。画面描画が遅かった時代はこういう工夫も仕方がなかったかもしれませんが、今でもこういうインタフェースを使っているのは貧しいでしょう。排他的論理和で枠を書いたりもとに戻したりしていれば貧しさ度アップです。でも調べてみたら同僚のほとんどが枠だけドラッグのシステムを使っていました。

    富豪的プログラミング - 増井俊之
  • プログラミングを教えるときの10のポイント (という論文の紹介)

    1. ギークの遺伝子なんてないことを心に留めようよく、「プログラミングには得意不得意がある(some kids get it, and some kids don’t)」とか、さらには「プログラミングには向いていない子がいる」とか聞きますね。 大学のコンピュータサイエンスの授業の成績分布が、とても良く理解できる生徒と何もわかっていない生徒にくっきりわかれる、という話も聞きます。当でしょうか?Patitsasらの最新の研究によると、実際にはそんなことはなく、くっきりと成績の分布が分れてしまったコンピュータサイエンス入門のクラスは、5.8%に過ぎなかったそうです。 この論文では、「プログラミングには得意不得意がある」という迷信は、プログラミングを学びだしたときに躓きがちな生徒でなく(意識的か無意識的かにかかわらず)、スムーズに学ぶ生徒の方へ教える時間や熱意を費やすことにつながり、ひいてはコン

    プログラミングを教えるときの10のポイント (という論文の紹介)
    nabeatsu1
    nabeatsu1 2018/04/09
    教育の迷信。経験則を一般化しがちな分野だと思うので気をつけたい。
  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • ネットワークに自信のない人は東大講義の情報工学概論Aを見よう - 2012-01-28 - きしだのはてな

    東大にUTオープンコースウェアというのがあって、いろいろな講義資料が公開されています。 http://ocw.u-tokyo.ac.jp/ その中には動画授業があるものもあって、そのほぼすべてがおもしろいです。ただ興味がもてるかどうかという違いだけ。 その中で、情報工学概論Aというのがあって、授業内容としてはネットワークの概論になってます。まだ全部見てないけど、ネットワーク全般の話からTCP/IPの話、セキュリティまでの講義が公開されてるみたい。 こういう一貫した話がちゃんと語られてる講義というのはなかなか公開されてない、公開されてたとしてもネットワーク設定程度だったりするので、これは貴重だと思います。 http://ocw.u-tokyo.ac.jp/lecture?id=11314&r=609526321 ネットワークの勉強をしたことがない人は、テレビのかわりにこの講義を流しておくとい

    ネットワークに自信のない人は東大講義の情報工学概論Aを見よう - 2012-01-28 - きしだのはてな
  • 働きながら勉強している開発者としてRui UeyamaさんがゲストのRebuild 153が刺さりまくった - It's okay to be weird

    Tatsuhiko MiyagawaさんがホストをされているポッドキャストRebuildに、Rui Ueyamaさんがゲストとして初登場された、2016/08/09配信のRebuild: 153: Connecting The Dots (rui314)が非常に刺激的で、「働きながら勉強している全ての開発者に聴いて欲しい」と思うほど感銘を受けたので紹介します。 Rui Ueyamaさんについて ゲストのRui Ueyamaさんについては、最近書かれた記事がよくホットエントリーになっていたこともあり、お名前は聞いたことがあったのですが、どんなお仕事をされているかなど詳しいことは知りませんでした。 今回のRebuildの紹介によると、Googleに所属しながらLLVMのリンカーであるlldにオーナーとしてフルタイムで貢献する仕事をされているとのこと。それだけでも低レイヤー扱っててなんか凄そうと

    働きながら勉強している開発者としてRui UeyamaさんがゲストのRebuild 153が刺さりまくった - It's okay to be weird
  • 「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ - 日々常々

    あるエンジニアがプログラムを紡いでいく様を見てみるでしたライブコーディングで言ったことや言わなかったことを書いてみます。 意識してるのは「コードをどまんなかに」です。 speakerdeck.com ……あ、このスライドのブログ書き忘れてた。 スライド中の「えらぶ」はだいたいIDEの機能を指します。なのでライブコーディング中に使用したIDEの機能も挙げようと思います。基的にデフォルトのつもりだけど、vimとの兼ね合いで変更してるのもあるので、そこはごめんなさい。あとMacです。今回はメソッド抽出とかクラス間移動とかダイナミックなのがなくて地味だけど、便利な子たちなので使ってあげてください。 リプレイ 今日の公開コーディングはスゴい新鮮だった🎵 コミット後のソースには、どこに悩んだのか、どこにこだわったのかは残らないのですね。 実際のコーディングを見させて頂く事で、気づかされる事が多かっ

    「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ - 日々常々
  • YAGNIとは コンピュータの人気・最新記事を集めました - はてな

    概要 生産性について 綺麗に書くことのメリット ハッキーな書き方をする 綺麗なコードとは ボーイスカウトルール YAGNI KISS 単一責任の原則 早計な最適化を控える 命名 曖昧な単語 コメント ドキュメンテーション 非形式的なコメント 状態 直交と非直交 直和型 列挙型 関数 コマンドクエリ分離の原則 定義指向プログラミング ネスト メソッドチェイン マジックナンバー 早期リターン 依存 結合 単純なクラスから複雑なクラスへの依存 コードレビュー まとめ 概要 今回こちらのを読みました。 読みやすいコードのガイドライン 内容的には、コードの保守性や、可読性を高めることによって、開発スピ…

    YAGNIとは コンピュータの人気・最新記事を集めました - はてな
  • 大学を合格してから始めるwindowsでプログラミング 1日目 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 自己紹介と記事の紹介 どうもこんにちは、この度某コンピュータ系の大学に進学することになった しゃーまん (twitter -> oinori_man ) です。 なんでこんな記事を書こうと思ったの? 今回から、私が大学に進学するまでにプログラミングを始めるということで、父からの勧めでこのような記事を書くことにいたしました。父は私が生まれたころに某IBMで働いており、現在も現役バリバリでコードを書いているような人間です。 父の背中を負うというわけではありませんが、父の羽田頼している姿に少しあこがれを持っていて、実際にこの大学に入ろうと志し

    大学を合格してから始めるwindowsでプログラミング 1日目 - Qiita
  • 日本語Tech系Podcastいろいろ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? #[2019/06/15 更新] RSS フィードのあるものは https://podcastfreaks.com/ にコントリビュートすることにしたので、そちらを参照ください。 RSS フィードのないもののみ更新するかもしれません。 自分が登録しているフィードから集めてみました。一度閲覧したことのある方は、更新履歴が便利可と思います。ストックしておくと更新通知が届きます。他にもありましたら、編集リクエストをお送りください。雑にまとめたため、気まぐれで整理します。 更新履歴 2014/12/18 ありえるえりあPodcastを追加 20

    日本語Tech系Podcastいろいろ - Qiita
  • 1