3回まわってウンと働く人のブログ

犬顔メガネエンジニアのブログ。そのうちウンと働きます。そのうち。

基本情報処理技術者試験の僕なりの合格法 2015春

どうもこんにちは。

社会人になってバタバタしているうちに、GWに突入しておりました。

今回は先月受けたみんな大好き基本情報処理技術者試験の勉強方法についてまとめたいと思います。一緒に受けた同期も苦戦していたようなので、これから始める人の参考になればいいな、と思います。

 

 

情報処理技術者試験とは

www.jitec.ipa.go.jp

 

情報処理技術者としての知能・技能が一定以上あるよ〜、と国が認定してくれる試験です。IT系技術者ならだいたいみんな持っている資格の1つなのであります。

というわけで、僕も会社に取りなさいと言われて、試験を受けてきたわけです。

 

 

 

合格法

さっそくですが、僕が実践した合格法をお伝えします。

下の3つを守れば、試験に合格できます。たぶん。

 

① 参考書を買う(初心者は必ず本を買いましょう)

② 過去問を解く(わかる人に質問しましょう)

③ 試験を受ける (受験票を忘れないようにしましょう)

 

順番に見ていきましょう。

 

 

① 参考書を解く

問題には傾向があるので、必ず参考書を買いましょう。

情報処理のことを全然知らない、まったくやったことがない方はそれなりの分厚い本を買いましょう。(選択式なので簡単と言われていますが、それは結局運次第になるので・・・。)

順番は午前から。午前は広く浅く、午後は狭く深くな感じなので、ひとまず午前を勉強して、全体的な知識を身につけてから、午後の問題に取り掛かりましょう。

 

 

僕はこれを買いました。試験に出やすい用語やポイントなどがまとめられていてとてもわかりやすいです。絵や図が多いのも理解しやすくてオススメです。

 

 僕はそんなに時間がなかったので2週間ぐらいでパパッと終わらせて、過去問に取り掛かりました。この本には章の最後に問題が載っているので、問題が解けなければその章をやり直して知識を身につけていきました。

 

 

午後はこっちの本。

2015 基本情報技術者午後試験対策 (午後問題対策シリーズ)

2015 基本情報技術者午後試験対策 (午後問題対策シリーズ)

 

 

午後は必須問題と選択問題があります。

必須問題はもちろん勉強するとして、選択問題は自分の得意な問題で勝負するのがいいでしょう。

擬似言語と言語選択問題は配点が高くなっているので、その分勉強した方がいいと思います。

専用の本を買ってもいいですが、言語は過去問を解いた方が良いと僕は思います。何度も解いて、問題の癖を掴みましょう。

どの言語がいいかですが、初心者は迷わず表計算にしましょう。

表計算は比較的短い時間でできるようになります(他の言語は1から勉強すると時間がかかりすぎます)

 

 

② 過去問を解く

公式ホームページに過去問が掲載されているので、できるだけやった方がいいでしょう。

IPA 独立行政法人情報処理推進機構:情報処理技術者試験

しかし、公式の過去問には解説がついていません。

あまり解けないうちは、詳しい解説が付いた本を買った方が理解しやすいと思います。

 

僕はこの本を買いました。

かんたん合格 基本情報技術者教科書 平成27年度 (Tettei Kouryaku JOHO SHORI)

かんたん合格 基本情報技術者教科書 平成27年度 (Tettei Kouryaku JOHO SHORI)

 

 

 

ネット上でも解説付きで解答を載せているサイトもあります。

とても便利なので、活用しましょう。ケータイでも見れます。 www.fe-siken.com

 

 

過去問を解くのはとても力がつくと思うので、できるだけここに時間をかけましょう。

また、解くのと同じぐらい、間違った問題の理解に努めましょう。

解説などを読んでもわからない時があるので、受けたことのある先輩や友達に聞きましょう。

やっぱり人に説明してもらうのが一番わかりやすいと思います。

説明してもらってもやっぱりわからない、のであれば、とりあえず置いておくという方法もあります。

他の問題を解いているうちに、不意にわかったりします。

 

 

僕は試験一週間前ぐらいで過去6年分ぐらい解きました。

時間を計りながらするのがいいですが、だいたいスキマ時間などでやっていたので、

午後なら大問1つは15分、擬似言語と言語問題は20分を目安にしていました。

問題によって時間がかかるものとサクッと終わるものの2種類あるので、最初は時間はあまり気にしなくていいです。でも、わからなくても必ず答えを出すようにしましょう。

解けるようになってきたら、一度時間を計って全部通して解いてみましょう。

時間が足りないなら時間配分を考えましょう。午前は時間が余りますが、午後は時間との勝負です。

 

 

③ 試験を受ける

さて当日です。寝坊しないことが第一関門です。

持ち物ですが、受験票に写真を貼るのを忘れないようにしましょう。

ケータイが鳴ると強制退場もありうるそうです。必ず電源を切りましょう。

また、ケータイや参考書をしまうカバンを持っていくようにしましょう。

机の中やポケットの中に入れておくとこちらも強制退場です。

 

試験は午前と午後に分かれていて、どちらも選択式の問題です。(センター試験のようにマーク方式です。)

「わからなければ ウ を選択しましょう」(例年ウが多いそうです)

(今年は少なかった気がしますが。)

 

午前は1時間ぐらい余るので、1度見直してから手をあげて退室しましょう。

午後の方が集中力を使うので、早めに出てリフレッシュするのがオススメです。

 

午後は全力で解きましょう。(僕はここでレッドブルで翼を授かりました)

オススメは擬似言語の第8問と選択言語を先に解くことです

この2つが一番集中力を使うことと、もしこの問題が難しければ早々に切り上げて他の問題に時間をかける選択をするためです。

午後は時間との勝負になるので、難しければ後回しにするか、解けるところまで解いてあとは適当に、という戦法にしましょう。時間が余ればする、ぐらいの気持ちで。

 

全部終わればお疲れさまでした。自由です。

午後も退室できるので、全部解いて見直しもしてやりきったと思ったなら退室しましょう。優越感に浸れます。

 

自己採点

余談ですが、夜には解答速報が出るので、自己採点ができます。

自己採点が一番ドキドキします。心臓に悪いです。

 

 

最後に

というわけで、僕なりの勉強法などを紹介しました。

勉強しなくても適当に塗るだけで合格できるなど言われますが、

それで合格しても、仕事が大変になるだけなので、しっかり勉強しましょう。

 

それでは。

 

-------------------------------------------------------

2015/05/18 追記

ちゃんと合格してました!次は応用取るぞ〜

-------------------------------------------------------

 

 

JGitの使い方2 addとcommit

 

shirobit.hatenablog.com

 前記事の続き。

今回はaddとcommitを。

 

 git add

コミットするためのファイルの追加を行います。

 

AddCommand add = git.add();

List<String> filePathList = (追加したいファイルのパスのList);

for(String filePath : filePathList  ){

  add.addFilepattern(filePath);

}

add.call();

 

addFilepatternはファイルを1つずつ追加します。追加したいファイルのパスのStringを入れてやりましょう。

追跡しているファイルの更新だけをaddしたい場合は、setUpdate(true)にしてcall()するだけでよいです。

git add --all したい場合は、後述するcommitだけでできます。(addCommandは不要)

 

 

git commit

addしたファイルの変更をコミットするコマンドです。

 

git.commit().setMessage("コミット内容").call();

 

コミットメッセージを入力するsetMessageメソッドの引数はStringです。

 

" git add --all || git commit " OR " git commit -a " したい場合は、

 

git.commit().setAll(true).setMessage("コミット内容").call();

 

でオーケーです。

 

 

続く?(次回はbranch, merge, checkoutなど?)

 

JGitの使い方1 Gitクラスとinit

 

shirobit.hatenablog.com

前回の続きです。

今回からJGitでGit操作のやり方を説明します。

 

 

Git操作

使い方はAPIなどを読んでもらうとすぐわかると思います。

でも、環境の違いで動かなかったりすることがあるので、

紹介するコード以外にも、いくつか方法を探ってみてください。

紹介するのは僕の環境で実際に動いたコードです。

 

 

JGitの基本的なこと

JGitのGitクラスを操作してコマンドを実行します。

Gitクラスは、Repositoryクラスを使って生成します。

Repositoryクラスは、RepositoryBuilderクラスにGitリポジトリのパスを入れてbuild()して生成します。(ややこしいです。RepositoryBuild → Repository → Git)

 

Repository repository = new RepositoryBuilder()

.setGitDir(new File(gitDirPath)).readEnviroment().findGitDir().build();

Git git = new Git(repository);

 

 

setGitDirの引数はFileクラスなので、Gitリポジトリのパスを入れてFileクラスを生成しています。

readEnviroment()はファイル環境の読み込み(WindowsMac)、findGitDirは.gitフォルダを探しているようです。

 

Gitコマンドは、---Command というクラスで実装されています。(InitCommandなど)

コマンドクラスを呼び出して、オプションなどをセットし、最後にcall関数を呼び出すことで、コマンドを実行します。

call(); するのを忘れないようにしましょう。

 

 

git init

上で紹介したGitクラスの生成は、すでにinitしてあるリポジトリへのものです。

新しくinitする場合、initコマンドが必要です。

 

Git git = Git.init().setDirectory(new File(gitDirPath)).setBare(false).call();

 

init()はstaticです。

setDirectoryの引数はFileクラスなので、同じようにリポジトリパスを指定しています。

setBareは、このリポジトリがベアリポジトリかどうかを指定します。

(ベアリポジトリがわからない人は

ベアリポジトリとノンベアリポジトリ:理論編〜GitでWordpressのテーマを管理 | トリコロールな猫 )

 

 

続きはこちら(addとcommit)

 

shirobit.hatenablog.com

 

JavaでGitの操作を。JGit

JavaからGitが操作できるJGitのまとめをば。

(日本語のドキュメントが少ないので、自分の見返し用も含めて。)

 

JGitとは


JGit

Eclipse Foundationが開発

EclipseのGitプラグインEGitで使用されています。

 

DL

ライブラリは公式サイトからjarとって来るのがいいかと。

org.eclipse.jgit.jarをDLして、Eclipseなら外部jarにちゃちゃっと設定しちゃいましょう。

 

情報源

日本語のドキュメントがあんまりないです。

バージョンも結構変わっているので、公式のものを読むのがよさそうです。

 

公式Wiki

公式API(3.5.1.201410131835-r)

GitHub

 

公式Wikiは情報量が少ない&更新してなさそうなので、あんまり当てにならないです。僕は公式APIを読んでやってます。Githubはソースを読む用に。

 

実際にJGitを使ってGit操作してみる

記事を書いたのでこちらを見てください。

 

shirobit.hatenablog.com

 

 

Java - thisの使い方2

 

Java - thisの使い方 - 3回まわってウンと働く人のブログ

 

前にこんな記事を書いたけど、説明が足りなさ過ぎたので、追記します。

 

Java - thisの使い方2

 

一番簡単な例

--------------------------------------------

public class MyClass {

  private String aaa;

 

  public String setAaa(String aaa) {

      this.aaa = aaa;
  }

}

--------------------------------------------

 

 

このクラスは[ MyClass ]という名前のクラスで、

このクラスの中で、[ String aaa ]という変数が定義されています。

 

さて、このクラスのメソッドである[ setAaa ]というメソッドを定義しました。

このメソッドでの引数は[ String aaa ] です。

つまり、クラスで定義した変数と名前がかぶっていることがわかると思います。

このような場合で、thisメソッドを使います。

 

this.aaa = aaa;

 

(引数であるaaaを、this.aaaという変数に代入しています)

つまり、aaaがどちらの変数を指しているかをわかるようにするために使用します。

this.aaa がメンバ変数(上で先に定義したクラスの変数)で、

aaaメソッド変数(引数として定義している変数)です。

メソッド内では、aaaと書くと、基本的にメソッド変数とみなされます。(メソッド変数が優先のため)

なので、メソッド内に同じ名前の変数がある場合、thisを使用してメソッド変数と見分けをするようにします。

 

 

今回は名前の重複を理由にして使用する、ということですが、重複してない場合でも明示的にする理由でthisを使用します。まぁ、あとから変数を足して同じ名前にしちゃった時のバグを減らす意味でも使用した方がベター。

 

ちなみにthisは「このクラスの」ぐらいで覚えておきましょう。

他のクラスのときは定義(宣言)したときの名前で、[変数名.メソッド] or [変数名.メンバ変数]で参照できますが、自分のクラスは名前を付けてない(宣言していない)ので、代わりにthisで、みたいな感じです。

 

(余談ですが、今わからなくても、そのうち理解できる日が来るのですぐに理解しようとしなくてもいいと思います。)

 

それでは。