It's okay to be weird

レールの無い道を行くプログラマーのブログ

Java

『Clean Code』を読んだ

達人に学ぶDB設計 徹底指南書に続き、言語やフレームワークに依存しない本として何か読みたいと思い、評判の良さを以前から聞いていたClean Codeを読みました。なかなか読み応えのある良い本でした。 日本ではリーダブルコードがよく新人にお勧めする本とし…

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編を読了

これもHead First Design Patternsを読んだ動機と同じく、CourseraのAndroidのコースでJava並行処理プログラミング ―その「基盤」と「最新API」を究める―が推薦図書に入っていたことから、その前に読む本として勧められているこの本を読んでみました。 僕は…

Head First Design Patterns読了

Head First Design Patternsを読み終わりました。この本も去年の11月頃に手をつけたのにしばらく放置しており、読み終わるのに長くかかってしまいました。もう少し本を読んでいくペースを上げていきたいところです。 概要 GoFの23のパターンのうち、核となる…

Oracle Certified Java Programmer, Silver SE 7に合格しました

初めてのベンダー資格試験、Java Programmer Iを受けてきました。帰りのバスで結果を確認したところ (結果出るの早い!) 無事合格していました。前日にやったスピードマスター問題集の模試の正解率がよくなかったので不安でしたが、正解率93%とある程度余裕…

2014/01 勉強振り返り: Courseraにハマりつつある

今までこのブログは「である」調で書いてきましたが、このエントリーから「です・ます」調に変えていこうと思います。読み手に与える印象もそうですが、書きやすさの面でも、文章を書き慣れていないためか、「である」調は少し書きにくさを感じていたためで…

2013/12 勉強振り返り

年末年始に体調を崩していて、ブログを書く余裕がなかったのだけど、ようやく落ち着いたのでかなり遅れてのエントリー。 スマートにプログラミング Android入門編 第3版 読了。BNR本と違って、サンプルコードは機能を理解するための最小限のコードなので、出…

2013/11 勉強振り返り

Android Programming: The Big Nerd Ranch Guide 今月はこれ中心…だったのだけど途中で挫折してしまった。 自分で課題を解いてコードを書くChallengeがところどころで入るのだけど、最初の方はそこまで難しくなかったのに、途中からは難易度が上がってほとん…

2013/09 勉強振り返り

気がついたら1ヶ月間何も記事を書かないままだった。 プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 内容的には基本情報技術者レベルのものなので、ほとんどは復習。アセンブリ言語についても触れていて、基本情報技術者では表計算を…

2013/08 勉強振り返り

Udacity - Introduction to Computer Science (CS101) 盆休み中で問題をろくに考えもせずにすぐ答えを見ながら残りを一気に終わらせるという愚行をやってしまって後悔してる。後半はいつかもう1回受け直してもいいかもしれない。Pythonは書きやすくていい感…

本家O'Reillyが電子書籍の全品半額セールを9月10日まで開催中

本家O'ReillyでBack to (Tech) School Saleが開催中。B2S3というコードを入力すると全品 (紙の本は除く) が50%オフ、$100を越えて買うと60%オフになる。 Back to Schoolってなんだろうと思ったら夏休みの終わりにやるセールのことのようだ。 参考: Back to …

【Java】インスタンス変数の初期化でコンストラクタを使った場合と使わなかった場合の違いってあるんだろうか

インスタンス変数の初期化について疑問に思ったのでメモ。 class Test { private int n = 5; } こうやった場合と、 class Test2 { private int n; public Test2() { n = 5; } } こうやった場合ってなんか違いがあるんだろうか。 コンストラクタを使った方が…

【Java】toString()を使ってArrayListの全要素を文字列として取得する

またまたUdacity Introduction to Programmingで詰まった箇所があったので覚え書き。 friendを追加したりfriends (PersonのArrayList) のリストを取得したりできるPersonというクラスなのだけど、この中のgetFriends()メソッドがよく理解できず詰まっていた…

【Java】やっとScannerのhasNextInt()を使った判定方法が理解できた

UdacityのIntroduction to Programmingで、入力された値が整数かどうか判定するのにhasNextInt()を使っているプログラムがある。いまいちhasNextInt()がどういう働きをしているのかよく解ってなかったのだけど、ようやく (おそらくは) 理解できたので書いて…

2013/07 勉強振り返り

Udacity - Introduction to Programming (CS046) Lesson 6.2から急に字幕がつかなくなってしまったので中止することにした。自分のリスニング力じゃ音声だけってのは厳しいものがあるので。いつか字幕が追加されないかとたまに覗いているのだけど、追加され…

2013/06 勉強振り返り

先月の勉強振り返り。 Head First Java, 2nd Edition 先月に引き続きHead First Javaをメインに勉強。今月中には終わりそう。終わり次第Androidアプリの勉強にとりかかりたい。しかしこれ終わったら次は何に手をつければいいのやら分からなくて、くじけてし…

【Java】String型の参照の不思議

String型の参照の仕方について、Udacityの講義で気づいて不思議に思ったのでメモ。 例えば下のコードの場合、b = "DEF"のあと、aも"DEF"になりそうな感じがするけど"ABC"のまま。cとdみたいにnewを使ったときも同様。値渡しみたいな感じがするけど、あくまで…

無料で大学の講義が受けられるUdacityでJava入門コースを試してみた

先月に京都大学がedXへの参入を表明したりと、日本でもMOOC (Massive Open Online Courses: 大規模公開オンライン講座) が注目され始めている。僕がよくチェックしている/r/learnprogrammingでも、月ごとに受講可能なMOOCのリストをまとめている人がいて、毎…

【Java】参照の型が変更された時に呼び出されるメソッド

ArrayList<Animal>にDogクラスをつっこむと、参照の型がAnimalに変更されるというのは解ったけど、メソッドを呼び出したときにAnimalとDog、どっちの型のメソッドが呼び出されるんだろうということが気になったので、テストコードを作ってみた。 import java.util.Ar</animal>…

【Java】オブジェクト型配列の宣言と生成

すぐ忘れそうなのでメモ。 // Dogオブジェクトへの参照を7つもつ、Dog配列の宣言と生成 Dog[] pets = new Dog[7]; // 新たにDogオブジェクトを作り、配列に割り当て pets[0] = new Dog(); pets[1] = new Dog();

2013/05 勉強振り返り

先月の勉強振り返り Head First Java, 2nd Edition 今はこの本がメイン。家だけじゃなく、学校の授業中に時間が余ったときにも読み進めている。本当に面白くて、学校をさぼってこれを一日中やっていたいほど。文法だけを教えるのではなくて、例えば Dog myDo…

Head First Javaの訳が少し残念

Head First Javaを原著と訳書を読み比べながら読んでいっているのだけど、ところどころ原著の持つ面白さが損なわれてるんじゃないかという訳がある。例えば "Chapter 1. Dive in A Quick Dip: Breaking the Surface"の16ページ、"let's write a program"にあ…

2013/04 勉強振り返り

先月の勉強振り返り。 新版 明解C言語 入門編、解きながら学ぶC言語 途中でやめた。後半は自力で問題を解けずにただの写経になっちゃって、力がついてる実感が無かったのと、Androidアプリ開発のためにCはいったん終わりにして、Javaを勉強しようと決めたの…

英語版Head First Javaを買ってみた

Android開発を始めるにあたって、まずはJavaを学ばなきゃということで、何を教本に選ぼうかと少し調べてみた結果、reddit/r/learnprogrammingやStack Overflowなどで評判の良い、Head First Javaを選んだ、それも英語版の。 図がふんだんに使われているとは…