タグ

programmingに関するhdkINO33のブックマーク (10)

  • Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD

    (編注:2016/7/27、頂いたフィードバックを元に記事を修正いたしました。) 学生たちから、次に学ぶ言語はどれがいいのかとよく聞かれます。IT業界で働きたい人にお薦めするのは、現在盛んに使われている言語です。C++Java、C#はもちろん、PythonRubyPHPPerlなども挙げられるでしょう。 一方、向学のためという人や、学術研究や起業に関心がある人にとって、次の言語を選ぶ基準となるのは、就職に有利かではなく言語の表現力でしょう。学術研究や起業活動を行うには、プログラマとしての能力を何倍にも高める必要があります。そして、(おそらく)確立されたコードベースを扱った経験はないでしょうから、手元にあるタスクにとって最適な言語を自由に選ぶことができます。 この記事では、勉強に適したHaskell、Scala、ML、Schemeという4つの言語を、私の好きな特徴や参考資料のリストと

    Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD
  • 他人の書いたコードに挑もう – Part 1 | POSTD

    この記事では、他人が書いたコードを扱うための練習法を一から説明します。目標は、 Spyder Python IDE という今まで触ったこともないプロジェクトのコードに任意の変更を加え、途中で行き詰ることなく、目的達成に必要な情報 のみ 習得することです。ここでは、勘や実験的な手段、そしてプロの現場で養った洞察力を武器に問題に対処する方法を学びます。形式ばったレッスンのように、苦痛を感じることはないでしょう。満足感や挫折、葛藤を味わいながらプロジェクトを進め、最終的には(なんとか動く程度の)パッチを完成させ、大規模で不慣れなコードベースに機能を追加します。 プログラミングを学んでいる人は皆、あらゆる種類のプログラムで大量のコードを書いています。それは、問題集に載っているアルゴリズムを実装するにせよ、ウェブサイトの構築やビデオゲームの作成をするにせよ同じです。ところがプロのソフトウェアエンジニ

    他人の書いたコードに挑もう – Part 1 | POSTD
  • ソフトウェアのための統計学 – 前編 | POSTD

    ソフトウェア開発の原点は可能性の追求であり、不可能を可能にすることです。ひとたび ソフトウェア が開発されると、エンジニアは次に 程度 という課題に向き合うことになります。企業向けのソフトウェアであれば、「速度はどれくらいか」と頻繁に問われ、「信頼性はどの程度か」という点が重視されます。 ソフトウェアのパフォーマンスに関する質問に答え、さらには正しい内容を語る上で欠かせないのが統計学です。 とはいえ、統計学について多くを語れる開発者はそうはいません。まさに数学と同じで、一般的なプロジェクトで統計学が話題に上ることなどないのです。では、新規にコーディングをしたり、古いコードのメンテナンスをしたりする合間に、手が空くのは誰でしょうか? エンジニアの方は、ぜひ時間を作ってください。近頃は、15分でも貴重な時間と言えるでしょうから、 こちらの記事をブックマークに追加 しておいてもいいでしょう。とに

    ソフトウェアのための統計学 – 前編 | POSTD
  • アプリケーションと三種の異常 | DevelopersIO

    はじめに アプリケーションに異常はつきものです。 今回は、いわゆる「異常系」をコーディングするときに使える一つの考え方を紹介します。 アプリケーションに起こる「異常」を3種類に大別し、それぞれの特性から対応を考えていきます。 Note これは、ただ単に私が普段使っている考え方で、原典となる書物等は存在しません。ご承知おきください。 記事は「ポエム特集」カテゴリの記事です。 記事のコードサンプルにはScalaJavaを用いていますが、とても短い単純なサンプルしか含まれませんので、これらの言語に慣れていない方でも問題なく読めると思います。 目次 失敗って何だろう 異常について 1. 要求する異常 2. 予期する異常 3. 予期しない異常 まとめ 失敗って何だろう 「失敗」と聞いて、まず何を思い浮かべますか? 料理中に塩と砂糖を間違えたこととか、過去に失言してしまったこととか、人それぞれ色

    アプリケーションと三種の異常 | DevelopersIO
  • PDOのサンプルで数値をバインドする際にintにキャストしている理由

    先日PHPカンファレンス北海道2016にて「『例えば、PHPを避ける』以降PHPはどれだけ安全になったか」と題して基調講演を担当致しました。その際のスライドはこちら。 そうしたところ、以下のご指摘をいただきました。 @ockeghem スライド拝見しました。39番目のスライドですが、バインドのタイミングでintにキャストするのはちょっと例として良くない気がします。意図的にオーバーフローを起こすことで想定外のレコードの取得を許してしまいそうです。キャストしない方がまだ安全だと思うのですが。 SQLデータベースは、int型よりも大きな桁数を扱える場合があるので、intへのキャストを避けた方がよいという指摘は一般論としてはもっともなものだと考えます。PHPの場合、9223372036854775807を越える数字文字列をint型にキャストすると、9223372036854775807が返ります(

  • もし、プログラミング言語が「武器」だったら

    もし、プログラミング言語が「武器」だったら:俺は○○使いだ! の人も、これから習得したい人も(1/3 ページ) 今、ITエンジニアの皆さんはどの言語を習得したいですか? どれを選べばよさそうか、ソフトウェアエンジニアのティプリンさんがプログラミング言語の特徴を「武器」に例えて説明してくれています。 JavaPHPRubyPythonC++、C#、Objective-C、Visual Basic .NETCOBOL、PL/SQL……。プログラミング言語は数あれど、「俺は○○使いだ」とこだわりつつも、開発の規模や目的に応じて「華麗に使い分ける」スキルを身に付けるならば、それが「将来も安泰か(収入面も)」も気になります。 今、ITエンジニアの皆さんはどの言語を習得したいと思っているのでしょう。リクルートテクノロジーズが、ITエンジニア529人を対象に行った「2016年に習得したいプログ

    もし、プログラミング言語が「武器」だったら
    hdkINO33
    hdkINO33 2016/04/12
    「Perlのようなもの」があると思ったのに
  • シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた

    シェルスクリプトは長くなると処理の境界が不鮮明になりがち。 コメントで処理の境界を表現する工夫はよく見かけるが、もっと良い方法はないか考えてみた。 :コマンド、&&演算子、複合コマンド()や{}を組み合わせて書くと、処理の境界線がはっきりする。

    シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた
  • シェルスクリプト高速化のツボ - 新・日々録 by TRASH BOX@Eel

    これは備忘録。 色々あって、まだ具体的なモノを何も作ってもないのにシェルスクリプトのパフォーマンス絡みでネタを収集してしまったので、ひとまずまとめてみた。 shellshock(bashのアレ)があったばかりなので、ちっとばかり微妙かも。 計測してボトルネックを探す まずは何よりも計測すること。time(1)を活用すべし。 データ量が多いと問題が表面化するのが定番のパターンなので、ワンライナー等でさくっとテストデータを作成して実験すると吉。 ループ構文よりもテキストフィルタを使う 一般的には、ループ構文を使うよりも、パイプでテキストフィルタに連結して処理した方が高速だ。 # NG seq 1 1000000 | while read i; do echo "$i"; done # NG # while readほどではないが遅い # (bashでは動いたが、dashやbusyboxのshで

    シェルスクリプト高速化のツボ - 新・日々録 by TRASH BOX@Eel
  • 実践いやな法則: にわかな奴、一蹴される - bkブログ

    実践いやな法則: にわかな奴、一蹴される 先日、 にわかな奴ほど語りたがるという記事を書きました。にわかな奴ほど語りたがるけど、それにはポジティブな面もあるよ、という内容です。 今日はその「にわかな奴ほど語りたがる」を実践してあっけなく一蹴されるという出来事があったので紹介したいと思います。 C++ から D言語に移行したという人と話す機会があり、C++ は難しいという話題になりました。ここぞとばかりに、最近のにわかな知識を持ち出して「テンプレートクラスの中のテンプレートメンバ関数をクラス定義の外で定義するときの文法って難しいですよね」と少々自信を持って話を切り出したところ、「そんなの普通じゃないですか! よくありますよ!」と一喝。ちなみに、その文法とは以下のようなものです。 template<typename T> template<typename TT> TT Foo<T>::fun

  • コーディングを学ぶこと、それはあなたが考えるよりも大変です | POSTD

    要約:全ての根拠が示しているのは、「プログラミングには高い適性を要求されますが、適性を持った人間はわずかしかいない」ということです。最近の流行の短期でコーディングを学べるコースは、デマカセを売り付け、プロのプログラマのスキル不足解消に何ら力になってないのです。 これはイギリスからの観点での記事です。私はこの事象について、とりわけソフトウェア開発者の社会的地位に関しては、他の地域決してこの通りではないと思っています。 メディアが共通して取り上げるテーマは、スキルのあるプログラマの不足です(”プログラマ”も”コーダ”も”ソフトウェア開発者”も、ここでは全て同じものを意図し、区別せずに使用しています)。このコーディング技術のギャップには解決の糸口が見えない心配が多くあります。要は”明日の高品質な仕事”を担う候補者を生み出すことに失敗しているということです。例えば、 The Telegraph の

    コーディングを学ぶこと、それはあなたが考えるよりも大変です | POSTD
    hdkINO33
    hdkINO33 2016/01/25
    "how to become a software developer" "Good luck! You're on your own ;)" / programming aptitudeがthe giftなのかは疑問があるが
  • 1