[資格] 2022年(令和4年)情報処理技術者試験 ネットワークスペシャリスト試験(NW)対策 ~準備メモ~

本エントリーの概要

令和4年春 ネットワークスペシャリスト試験(DB)受験に際しての勉強メモ。

午前Ⅰ

令和3年秋のDBスペシャリストが受かっているはずなので免除されている。
受かっててくれ!!!!

午前Ⅱ

定番のネットワークスペシャリストドットコムの過去問道場。

www.nw-siken.com

午後Ⅰ、午後Ⅱ

様々なサイトでの調査結果。

基本的な勉強

資格対策ではなくまずはネットワークについて基礎を学ぶ。
■マスタリングTCP/IP―入門編―(第6版)

基礎力と午後対策の中間

知識固めとして。
ネットワークスペシャリスト試験に出るところだけを厳選! 左門至峰による ネスペ教科書 改訂第2版


■ネスペの基礎力 -プラス20点の午後対策 (情報処理技術者試験)


午後対策

以下のどちらかを1冊。
どちらもPDF付きなので書店で実物を眺めて、自分に合う方を購入する予定。 ■情報処理教科書 ネットワークスペシャリスト 2022年版

■徹底攻略 ネットワークスペシャリスト教科書 令和4年度



以下は時間とお金に余裕があれば。
■ネスペR3 - 本物のネットワークスペシャリストになるための最も詳しい過去問解説 (情報処理技術者試験)

などなど、1年度1冊のネスぺシリーズを何冊か。

youtube

この方のyoutubeを寝る前に見てるけど、わかりやすい!

www.youtube.com

子供を寝かしつける時とかにスマホで見れるyoutubeは便利。

日経NETWORK

日経NETWORKの内容がネスぺの問題によく出題されるので
会社が定期購読してるなら読みたかった(弊社は定期購読していなかった><)。
図書館においてあればいいのだが、、、今度、図書館巡りをしよう。

[C#] byte型データからbit配列を取得してループ処理で1ビット単位で処理をする

概要

byte型の1バイトの値をビット配列にして、1bit単位で処理をする。
例えば、2つのbyteデータのどの部分でbit差異が発生しているかを判断するなど。
BitArrayクラスのコンストラクタにbyte配列をセットするとビット単位をboolで判断できる。

BitArray コンストラクター (System.Collections) | Microsoft Docs

コード

using System.Collections;

public void Sample()
{
  byte bytedat = 123;   // 2進数:0111 1011
  // BitArray変換
  var bits = new BitArray(new byte[] { bytedat });
  // ループ処理
  for (int i = 7; i >= 0 ; i++){
    // bitsはi=0~7を取得すると、1101 1110 となる。どう取得するかはbitの格納仕様で判断。
    var val = (bits[i]) ? 1 : 0;   // bits[i]はboolが格納されている⇒true(1)/false(0)
  }
}



[C++] std::vectorの値に一致した要素数を取得する

バージョン

C++:14

概要

std::vectorに格納されている値が指定した値と合致した場合、最初に合致した要素数を返す処理。

コード

#include <vector>

void main()
{
  std::vector<int> v = {5, 12, 3, 99, 8};
  // 99に合致した最初のイテレータを取得
  auto it = std::find(v.begin(), v.end(), 99);
  if (it != v.end()) {
    // 合致した値が存在している
    int idx = std::distance(v.begin(), it);   // 3を取得<=v[3]:99
    int val = *it;  // この場合は99を取得
  }
}



[資格] 2021年(令和3年)情報処理技術者試験 データベーススペシャリスト試験(DB)対策 ~準備メモ~

本エントリーの概要

令和3年秋 データベーススペシャリスト試験(DB)受験に際しての勉強メモ。
DBスペシャリストは過去3度受験し、3度共に午後Ⅱ50点台で敗退。。
子供が生まれたため2年間ほど未受験で3年振りの受験に挑戦。
※注意事項※
コロナの影響で2020年(令和2年)以降は秋実施に変更となりました。

追記(2021/12/26)

合格したので以下に対策方法、勉強方法、必要な書籍について記載しました。

waterfalls.hatenablog.com

午前Ⅰ

以下のサイトで応用情報処理技術者試験の午前分の過去問を実施。

www.ap-siken.com

過去、高度試験の午前Ⅰを何度か受験したが、高度試験での過去問の反復では足元をすくわれる可能性あり。
無難に問題数は多いが応用情報技術者の午前問題で勉強した方が良い。

午前Ⅱ

以下のサイトでDBの午前Ⅱの過去問を実施。

www.db-siken.com

これまでこの方法で問題なく突破。

午後対策で毎度お世話になっている三好さんのブログで午前Ⅱの対策テキストが無料で配布されています!!!

ameblo.jp

午後Ⅰ、午後Ⅱ

まずは過去3度の勉強でもお世話になった三好さんの参考書の最新版。

自宅には過去数冊分があるが最新版を購入する理由は過去問をダウンロードするため。
しかし!!!序章を読んでみると直近での出題傾向が変わり始めており
SQLももはや必須になっている、とのこと。
やはり参考書は最新の物で情報をアップデートすべきと痛感。




今回は上記に加えて総仕上げ問題集も用意することに。

過去3度のあと数点をこれで超えられるか試してみる。

[資格] [Java] Oracle Java SE11 Silver 認定資格 対策・勉強法 ■結論:黒本だけでOK■

f:id:WaterFalls:20210404201459j:plain

下記のエントリーに書いてから3週間で取得できました。
(実際は2週間だったけど受験会場を確保できなくて+1週間かかりました。。)
[書籍] [Java] [資格] Java Silver SE 11 認定資格 に挑戦してみる - 1分技術ブログ


Oracle Java SE11 Silver に合格したので簡単なTips。

大事なこと

  • 勉強は黒本だけでOK!!基本ができていれば2週間!!
  • 受験会場は早めに確保すること!!2,3週間先になるので注意!!
  • 再受験無料キャンペーンをやってるかチェック!!

Tips

勉強方法

Javaに限らず型について、オブジェクト指向についての基本的なことがわかっていれば
黒本(徹底攻略Java SE 11 Silver問題集)だけで問題なし。
Javaやプログラミング初心者はやさしいJavaなどの書籍で基本から学んだ方がいいです。たとえ黒本をみっちり覚えてテクニカルな手段で資格を取れたとしてもJavaの能力は身に付きません。)
全体を2周、12章と13章の総仕上げ問題を3周(9割回答できるくらいまで仕上げる)すればOK!
実際のテストにほぼ同じ問題が何問もでます笑
1日1時間、週7時間の2週間で合計14時間もあれば合格できます。

Oracleのサイトにサンプル問題(SE8)もあるけど気分転換に眺めるだけでいいかな。

SE8 サンプル問題: Sample_1Z0_808_JavaSE8Silver

紫本やスピードマスターは必要ないです。

受験申込

黒本で仕上げてから週末に受験しようとしても受験会場を確保できない(空きがない)ので早めに確保を!!!
都内の会場では週末が3週間先まで埋まってました。。仕方なく大宮会場を。それでも1週間後でした泣

ちなみに受験申込はOracleアカウント作って、CertViewにログインして、とめちゃくちゃ面倒くさいです。
名前はローマ字じゃないとダメとか色々あるので他の方がまとめた受験方法をよく見ながら申し込んでください。

キャンペーン有無

私が申し込んだ時は2020/12/1 ~ 2021/5/31に申し込めば、たとえ落ちても再受験料が1回まで無料になるキャンペーンをしてました。

Oracle :: ピアソンVUE

これは精神的に本当に助かった!!!!
受験料が32,340円もするので失敗を恐れてこのキャンペーンがなかったらスピードマスターも購入していたと思う。
でも、もっと早くに知っていれば黒本周回する前に受験会場を確保して2週間目で受験できてましたね。

問題内容

黒本に目を通していればわかるけれど、基本的な文法などを理解している前提での重箱の隅をつついたような問題ばかりがでます。
プログラミング初心者はまずは基本的な部分を理解してから挑戦することをおすすめします。
逆に業務で経験があってもIDEが勝手にやってくれた部分やコーディング規約上そんなコードは書かねぇよ(アクセス修飾子を省略するなど)って問題が頻出するので黒本は必須です。
問題内容について:

  • ラムダ式は1問程度しか出題されないので苦手なら捨ててよい(Consumer,Supplier,Predicate,Function程度)
  • モジュールシステムも何問か出題されるが黒本の内容を超えることはないので黒本部分の理解のみで問題ない
  • APIも出題数は少ないし、無勉でも対応できる内容
  • 上記以外の黒本範囲はまんべんなく出題されるので黒本をしっかりと解くこと
  • 最悪、黒本の出題内容と答えを暗記するだけでもぎり合格点に届くかも笑

最後にもう一度。
黒本を買いましょう笑

[書籍] [Java] Javaによる関数プログラミング ~ Java 8ラムダ式とStream

対象書籍

書籍:Javaによる関数プログラミング Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

  • 作者:Venkat Subramaniam
  • 発売日: 2014/10/24
  • メディア: 単行本(ソフトカバー)

読んで、一部を写経。

目的

C#LINQは使ったことがあるがJavaでのラムダ式は経験がなかったので勉強のため。

感想

箇条書きで。

良い点

  • 命令型ではなく関数型プログラミングを使うメリットが理解できる
    • 単純に「コードが短い=可読性が高い」のような雑な説明ではなく、なぜコードを短くできるのか、なぜ可読性が高いのかを説明してくれている
    • mutable(可変)変数ではなくimmutable(不変)変数を使う利点
  • Stream、基本的な関数型インターフェイル(Consumer,Supplier,Predicate,Function)にそれなりのページを割いて説明をしている
  • デザインパターンに対してラムダで置き換えることができることを説明している
  • ラムダの取っ掛かりの学習用として優れいていると思う。

悪い点

  • 言葉での説明がほとんどでコード量は少ないので写経して理解するには不向き
  • 書籍に記載されているコードは一部抜粋なのでそのまま写経してもコンパイルできない
    • webより全コードをダウンロードできるので書籍で省略されている部分はそこから掬い取れるが。。
  • ラムダを現場で使えるレベルになるには本書だけでは不十分
    • コードの反復練習が必要

[Python] 定期的にマウスカーソルを動かしてスクリーンセイバーの起動やスリープを防ぐツール

機能

定期的にマウスを動かす&「Ctrl」入力をしてスクリーンセイバーの起動防止、スリープ回避やアプリのログイン状態を維持させます。
マウスだけだとスクリーンセイバーが起動したので「Ctrl」入力もさせています。
コードとexeファイルは以下に。
Python未インストール環境でも使えるようにexe化してます

github.com

動機

このtogetherがツール作りの動機に笑
在宅勤務中、「5分間マウスカーソルが動かないと休憩しているとみなし、勤務時間が減らされる」という会社があるらしい - Togetter

Skype for Businessのプレゼンス状態に対応できてるかなど
スクリーンセイバー以外にも対応できているのがあれば教えてもらえると嬉しいです!

コード

マウス操作するためにpyautoguiモジュールを使ってます。

#!python3
import pyautogui

# constants
MOVE_DISTSANCE = 60

# method
pyautogui.PAUSE = 2
pyautogui.FAILSAFE = True

def main():
    """main process
    """
    # 画面中央に移動
    screen_pos = pyautogui.size()
    center_x = screen_pos.width / 2
    center_y = screen_pos.height / 2
    pyautogui.moveTo(center_x,center_y)

    try:
        x,y = pyautogui.position()

        while True:
            pyautogui.moveTo(x, y + MOVE_DISTSANCE, duration=0.2)
            pyautogui.moveTo(x - MOVE_DISTSANCE, y + MOVE_DISTSANCE, duration=0.2)
            pyautogui.moveTo(x - MOVE_DISTSANCE, y, duration=0.2)
            pyautogui.moveTo(x, y, duration=0.2)
            pyautogui.press('ctrl')

    except KeyboardInterrupt:
        print('end')


if __name__ == "__main__":
    print('start')
    print('停止するにはマウスを画面の四隅に移動するか')
    print('コマンドプロンプト上でCtrl+Cを入力してください(2回入力したほうがいいかも)')
    main()