令和4年秋エンベデッドスペシャリスト(ES)試験 受験記録
はじめに
2022年10月9日に実施されたエンベデッドスペシャリスト(ES試験)を受験し、午後Ⅰで撃沈して100%近く来年度も受験することが確定したので、来年の自分に向けてメッセージを残す。
メッセージとしては、全4科目をクリアするためにそれぞれに取った戦略とその勉強方法、そして、実際の受験結果(体感)を残し次回に活かしていきたい。
目次
- はじめに
- 目次
- 午前Ⅰ
- 概要
- 戦略
- 勉強方法
- 結果
- 午前Ⅱ
- 概要
- 戦略
- 勉強方法
- 結果
- 午後Ⅰ
- 概要
- 戦略
- 勉強方法
- 結果
- 次回に向けて
- 午後Ⅱ
- 概要
- 戦略
- 勉強方法
- 結果
- おわりに
- 付録:午後問題の印刷設定
午前Ⅰ
概要
- 出題構成はテクノロジ系17問、マネジメント系5問、ストラテジ系8問の計30問
- 応用技術者情報技術者試験の午前問題80問から30問が出題される
- 過去問から6割程度出題
戦略
暗記一択。 過去問から6割ほど出題されるので、それは必ず点を取れるようにしておく。
勉強方法
応用情報技術者ドットコムの過去問道場(https://www.ap-siken.com/apkakomon.php)を6年分、エビングハウスの忘却曲線に沿って、繰り返し復習を行う
一問一答形式なので出勤時などのスキマ時間に重点的に行う。
結果
過去問から6割程度は出題されていたし、そこはきっちりおさえれた。
新規の問題がわからず少し焦る気持ちもあったが、業務での知識や少し計算すれば導きだせるものもあり、6割は固そうなので勉強方法については問題なさそう。
午前Ⅱ
概要
- 各4点で全25題が出題
- 午前Ⅰと同様6割程度は過去問から出題
戦略
午前Ⅰと全く同じ。ひたすら過去問の暗記
勉強方法
自分の経験上、なんの知識もないまま参考書を読んでも結局頭に入らず流し読みをしてしまうため、次のスマホアプリでわからないながらも全問を一通り解いた。
エンベデッドシステムスペシャリスト試験勉強アプリ - Google Play のアプリ
これで頼りないながらも知識のとっかかりができたので、次の参考書の1~10章までを熟読する。
情報処理教科書 エンベデッドシステムスペシャリスト 2021~2022年版
以降は、最初のスマホアプリを分野別に繰り返し何度も行う。
このときに注意したいのがこのスマホアプリは図がうまく表示されないバグがあったり、解説がないものもあるでわからない問題についてはネットで情報を探す
結果
ほぼほぼ午前Ⅰと同じような感触だったので、6割を超えるだけならこの勉強方法で特に問題なさそう。
午後Ⅰ
概要
- 3問中2問を選択して回答
- 大問1と2がソフトウェア設計中心の問題
- 大問3がハードウェア設計中心の問題
戦略
データベーススペシャリストのときはハードウェア捨てて、ソフトウェア一本の勉強でやっていたので、それと同じようにハードウェアを捨てて、午後はすべてソフトウェア設計の大問1と2を選択する
勉強方法
参考書に載っている過去問3年分 + 他2年分の計5年分(10問)の問題を解いた。
参考書以外の問題は解説がなくネットにも情報が転がっていないことも多々あり、もやもやするがあきらめて次にいったものもあり。
参考書にない年度の問題については本番と同じ形式にするために実際に印刷して解いた。
解説があるものは理解できるまで読み込んだが、全く同じ問題はでないため復習はそこまで意味がないと考え、多くの問題に触れることを優先した。
結果
戦略通り大問1と大問2を選択したが、時間管理の甘さとハードウェアっぽい?問題に手も足もでず撃沈した。
大問1はおおそ30分、大問2を約60分で解くのが定石かと思うが、大問1の仕様理解に時間をかけすぎた結果、45分ほどかけてしまった。
その結果、大問2も駆け足状態で読み始めてしまいほぼほぼ仕様を理解できずにタイムアップとなってしまった。
次回に向けて
時間管理を徹底する。
参考書には問題ごとにおおよその解答目安時間がかかれているのでそれをきっちり測って解答する。(ただ平成31年度の問1と問2は両方60分と書かれている無理ゲーもある。。。)
時間に余裕がないときは、計算問題に時間をかけがちなのですぐに解けなさそうであればさっさと飛ばして次に行く。
また、今回ハードウェアっぽい問題にぼこぼこにされたので時間があるようならハードウェアの問題も少しは解いておいて耐性をつけておく。
午後Ⅱ
概要
- 2問中1問を選択して回答
- 大問1がハードウェア設計中心の問題
- 大問2がソフトウェア設計中心の問題
戦略
午後Ⅰと同じくソフトウェア一本に絞って大問2を選択する
勉強方法
午後Ⅰと同じく過去5年分の大問2を時間を図りながら解いた
午後Ⅰと同じく参考書にない過去問は実際に印刷して解いた
結果
早めに退出できるくらいの時間的余裕もありながらすべての問題を自信をもって解答することができた。
午後Ⅰで全く歯がたたなかったので勉強方法が悪く実力不足かとも思ったが、完全にそういうわけではなく問題との相性もありそう。
おわりに
今回は残念な結果にはなったが、最低限の目標であった午後Ⅰ免除は獲得できたと思うので来年再チャレンジしようと思う。
初めて高度情報を免除なしで受験したが想像以上に午前の疲労感と俗に0次試験といわれる起床試験が辛かったので、免除のありがたみを知った。
また、ES試験を初めて受験して感じたのは、「文章読解力」の重要性と「問題との相性」が大きく影響すると感じた。
後者に関して言えば日常的に触れているシステムが出題されると、それだけでシステム構成や仕様が想像できるため、問題の理解度が段違いだった。
まあどちらも過去問を解けば鍛えられる部分だと思うので午後問題の対策としてはより多くの過去問を解くのがよさそう。
付録:午後問題の印刷設定
いつもどの設定で印刷すればいいのか忘れるので設定を残しておく
- B5
- 両面(長編とじ)
- モノクロ
PythonでSSH接続してコマンド実行する
はじめに
前回はRloginを使ってSSH接続しましたが、PythonのParamikoライブラリを使えばコードからも同じことが出来ることを知ったのでやってみる。
目次
- はじめに
- 目次
- 本記事のゴール
- 環境
- 利用ライブラリ
- 事前準備
- Paramikoのインストール
- コード
- おわりに
- 参考
本記事のゴール
PythonライブラリのParamikoを使って、WSL2で作ったUbuntuにSSH接続してLinuxコマンドを実行する。
環境
利用ライブラリ
- Paramiko
事前準備
Paramikoのインストール
pip install paramiko
コード
SSH接続paramikoを使用したSSH接続 #paramiko
おわりに
pwdコマンドを実行して、その結果をホスト側で取得することができました。 今回はpwdコマンドでしたが、コマンドを組み合わせればもっといろいろなことが出来そうです。
次回はParamikoを使って、SFTPでファイルのやり取りをやってみようと思います。
参考
続きを読むWSLで作成したUbuntu環境にSSH接続する
はじめに
前回、WSLを使ってLinux環境を作ってたので、ホストOSからSSH接続してみる。
目次
- はじめに
- 目次
- 本記事のゴール
- 前提条件
- 環境
- 事前準備
- RLoginのインストール
- 1.パスワード認証方式でSSH接続する
- SSH設定ファイルの変更
- Rloginの設定
- 2.公開鍵認証方式でSSH接続する
- おわりに
- 参考
本記事のゴール
ホストOS(Windows)からゲストOS(Ubuntu20.04)に
- パスワード認証方式
- 公開鍵認証方式
の2つの方法でSSH接続する。
前提条件
- WSLのインストール済み
- Ubuntuの初期セットアップ済み
環境
事前準備
RLoginのインストール
SSH接続用のターミナルソフトとして利用する。Teratermなどでも可。
1.パスワード認証方式でSSH接続する
SSH設定ファイルの変更
今回作成したUbuntu環境では、デフォルトでパスワード認証によるSSH接続が禁止されていたので、まず設定の変更を行う。(個人用なのでセキュリティは気にしない)
設定ファイルは/etc/ssh/sshd_config
にあるので、まずUbuntu側のコンソールで設定の確認を行う。
$ grep 'PasswordAuthentication ' /etc/ssh/sshd_config PasswordAuthentication no
ここでPasswordAuthenticationが no
だと、パスワード認証ができないので設定の変更を行う。
それとこの後、公開鍵認証方式も行うので、このタイミングでPubkeyAuthenticationも併せて有効化しておく。
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
↓
PasswordAuthentication yes
#PubkeyAuthentication yes
↓
PubkeyAuthentication yes
SSH接続するには、SSHホストキーがないと怒られるのでホスト鍵を先に生成する。
# ホスト鍵生成 $ sudo ssh-keygen -A ssh-keygen: generating new host keys: RSA DSA pECDSA ED25519
ホスト鍵を生成したらサービス起動する。
# SSHサービス起動 $ sudo service ssh start * Starting OpenBSD Secure Shell server sshd # ホスト鍵がない場合は以下が表示される # sshd: no hostkeys available -- exiting.
そうするとパスフレーズが聞かれるので、必要があればパスワードを入力します。 パスフレーズを設定しない場合は、Enter連打でOK!
Rloginの設定
- RLogin.exeを実行する。
- 【新規(N)】をクリックして、以下の内容を入力する。
- 【OK】をクリックして、設定した接続情報を選択して、再度【OK】をクリックする。
- 無事にログインできたらパスワード認証によるログインは完了!!
2.公開鍵認証方式でSSH接続する
秘密鍵・公開鍵の作成
今回はホストOS側(Windows)で鍵を作成し、ゲストOS側(Ubuntu)に鍵を転送します。
次のコマンドを実行して、鍵を作成する。
# -t : 署名アルゴリズム # -f : 作成するキー名 # -C : コメント $ ssh-keygen -t ed25519 -f wsl_ubuntu -C ""
そうするとパスフレーズが聞かれるので、必要があればパスワードを入力します。 パスフレーズを設定しない場合は、Enter連打でOK!
処理が完了すると、-fで指定したファイル名の秘密鍵と拡張子.pubが付与された公開鍵が作成されます。
ゲストOSに公開鍵を渡す
まずWinSCPやRLoginの機能を用いて、ホストOSからゲストOSのユーザディレクトリに公開鍵ファイルを転送します。
次にサーバ側で以下のコマンドを順に実行し、公開鍵の設定を行います。
# 作業ディレクトリ確認 $ pwd /home/ashitaka1963 # ディレクトリ.sshを作成 $ mkdir .ssh # ディレクトリ.sshのパーミッションを700変更(オーナーのみ読み込み、書き込み、実行が可能) $ chmod 700 .ssh # 公開鍵を.sshディレクトリのauthorized_keysというファイル名でコピーする。 $ cat wsl_ubuntu.pub >> .ssh/authorized_keys # ファイルauthorized_keysのパーミッションを600変更(オーナーのみ読み込み、書き込みのみ可能) $ chmod 600 .ssh/authorized_keys # 転送した鍵ファイルを削除する。 $ rm -f wsl_ubuntu.pub
RLoginでのSSH認証鍵による接続
RLoginを起動して、新規(N)をクリックする。
入力内容は基本的にパスワード認証方式と同じでパスワードのところだけ空白にする。
そして、画面右下の【SSH認証鍵】をクリックして、先ほど作成した秘密鍵を選択し、【OK】をクリックする。
接続すると鍵を作成した際にパスフレーズを設定していると入力を求められるので入力して、無事にログインできれば完了!!
おわりに
本記事のゴールとしていた、Ubuntu環境にホストからSSH接続することができました。
次回以降はこの環境を使って、いろいろやっていこうと思います。
参考
続きを読むWSL2を使ってWindowsにLinux環境を構築する
はじめに
過去にVirtualboxを使って、好きに使って壊せるLinux環境を作ってましたが、起動の遅さなど個人で使う分にはWSL(正式にはWSL2)のが良さそうなので、WSLを使ってLinux環境を作ってみる。
目次
- はじめに
- 目次
- 記事のゴール
- 前提条件
- 環境
- 事前準備
- インストール手順
- WSLのインストール
- Ubuntuの初期セットアップ
- おわりに
- 参考
記事のゴール
WSL2に必要なソフトウェアのインストールおよび設定を行い、Ubuntuを起動する。
※今回はLinux環境がとりあえず欲しいだけなので、WSLの理解は一旦割愛する
前提条件
環境
- Windows 10 Enterprise
事前準備
- BIOSで仮想化支援技術が有効化されていること
インストール手順
WSLのインストール
以下のページを参考にWSLを実行するために必要なすべてのものを設定・インストールしてくれるみたいなのでこの楽な方法でやってみる。
https://docs.microsoft.com/ja-jp/windows/wsl/install
- 管理者でPowerShelll立ち上げる。
wsl --install
を実行する- 注意に書かれているヘルプテキストが表示されたので、
wsl --list --online
を実行して使用可能なディストリビューションの一覧を表示する。 - Ubuntu20.04がよいので
wsl —install -d Ubuntu20.04
を実行するとダウンロードとインストールが始まり、それが完了するとUbuntuの画面が立ち上がる。
Ubuntuの初期セットアップ
- 「Enter new UNIX username:」が表示されるので、任意のユーザ名を入力して、Enter
- 「New Password:」が表示されるので、任意のパスワードを入力して、Enter
- 「Retype new password:」が表示されるので、2.で入力したパスワードを入力して、Enter
以上、インストール完了!
おわりに
本記事のゴールとしていた、WSL2のインストールおよびUbuntu接続ができました。
こだわらなければwsl --install
だけですべてインストールしてくれたので躓くことなくインストールまですることができました。
次回は作成した環境にSSH接続してみたいと思います!
参考
続きを読むVSCodeのMarkdown環境を整える ~その4 ショートカット機能などなど~
はじめに
第4弾のVSCodeのMarkdown環境を整えていきたいと思います。 ショートカット機能などなどとタイトルが少しあいまいですが、よりMarkdownを間単に記述できるものについて説明していきたいと思います。
目次
環境
改善したい項目一覧
改善したい点は以下になります。
- アウトライン機能 ← 済?
- 画像ファイルの貼り付け ← 済
- リアルタイムプレビュー ← 済
- ショートカット機能 ← 今回はここが対象
- Lint機能(Typoraにはない機能)
- CSS拡張
やりたいこと
今回、カスタマイズしたいのは主に2つです。
- キーボードショートカット機能
- リスト編集(簡略化)
これを実現できるのが、Markdown All in Oneになります。
拡張機能:Markdown All in One
インストール
拡張機能マーケットプレイスからMarkdown All in One
と検索してインストールを行います。
使い方
Markdown All in One
インストール後、個人的によく使うものだけ記載します。
詳細は、こちらから確認してください。
ショートカット機能
- 太字
- Ctrl + b
- ヘッダ(uplevel)
- Ctrl + Shift + ]
- ヘッダ(downlevel)
- Ctrl + Shift + [
リスト編集
デフォルトでは、*
といったものでリスト表示しようとすると、改行するごとに*
を自分で入力する必要がありますが、本拡張機能を導入することで自動で挿入してくれます。
また、番号付きリストについては、1.2の間に要素を加える必要が発生した場合、後続の数字をすべて修正する必要がありますがそのあたりもうまくやってくれます。
おわりに
今回の拡張機能はあまりカスタマイズすることもなくとりあえずいれとけばOKなやつなので、割と説明が雑になってしまいましたがまた一歩Markdown環境を整えることができました。
続きを読むVSCodeのMarkdown環境を整える ~その3 リアルタイムプレビュー~
はじめに
前回、前々回に引き続き、第三弾のVSCodeのMarkdown環境を整えていきたいと思います。 今回はリアルタイムプレビューについて説明していきたいと思います。
目次
- はじめに
- 目次
- 環境
- 改善したい項目一覧
- やりたいこと
- 方法
- おわりに
環境
- VSCode
- 1.48.2
- Auto-Open Markdown Preview
- 0.0.4
- Markdown Preview Enhanced
- 0.5.13
- Auto-Open Markdown Preview Enhanced
- 0.0.5
改善したい項目一覧
改善したい点は以下になります。
- アウトライン機能 ← 済?
- 画像ファイルの貼り付け ← 済
- リアルタイムプレビュー ← 今回はここが対象
- ショートカット機能
- Lint機能(Typoraにはない機能)
- CSS拡張
やりたいこと
Typoraでは、常時シームレスにプレビューが可能で、ドキュメント作成時に完成イメージをみながら文章を作成できるのがとても便利でした。 なので、VSCodeでも全く同じことが出来ればなーと探してみたけど、完全に一緒のようなものは残念ながらなかったです。。。
仕方ないので妥協しながら似たような環境を作りたいと思います。 具体的には、mdファイルを開いた際に自動でプレビューを横に表示するといったものになります。
方法
VSCode標準のプレビュー機能とMarkdown Preview Enhanced
と呼ばれる拡張機能のプレビュー機能を自動表示する2種類の方法について説明します。
1. VSCode標準のプレビュー機能
インストール
拡張機能マーケットプレイスからAuto-Open Markdown Preview
と検索してインストールを行います。
動作確認
インストールして念のためVSCodeを再起動すれば準備完了です!
適当なmdファイルを開くだけで、右側にプレビュー機能が表示されるようになります。もちろん左側で編集した内容は右側でリアルタイムで反映されます。
2. Markdown Preview Enhancedのプレビュー機能
インストール
こちらはMarkdown Preview Enhancedのプレビュー機能を表示するといったものなので前提としてMarkdown Preview Enhanced
をインストールします。
Markdown Preview Enhanced
についての機能を説明すると本題から逸れてしまうのでまた別の機会に詳細は説明したいと思います。
プレビュー機能だけに限定して簡単に説明すると、アウトライン機能を標準でもっているのでMarkdown Navigation
がいまいちであればこちらで代用できそうです。(保存しなくても反映される!!)
ただし、Markdown Preview Enhanced
にはmdファイルを開いたときに自動でプレビュー表示するといった機能はありません。なのでそれを実現ができるAuto-Open Markdown Preview Enhanced
をインストールします。
動作確認
2つインストール完了した後に、念のためVSCodeを再起動すれば準備完了です! 同様にmdファイルを開けば右側にMarkdown Preview Enhancedのプレビューが表示されます。(テーマはデフォルト設定から変更しています。)
おわりに
拡張機能を用いることでリアルタイムプレビュー?のエディター環境を作成できました。
今回は2つの方法を説明しましたが、個人的にはpdf化したりできるMarkdown Preview Enhanced
を使用している後者をメインで使っていこうと思います。
VSCodeのMarkdown環境を整える ~その2 画像貼り付け機能~
はじめに
前回に引き続き、第二弾のVSCodeのMarkdown環境を整えていきたいと思います。 今回は使用頻度も高い画像貼り付けについて説明していきたいと思います。
目次
- はじめに
- 目次
- 環境
- 改善したい項目一覧
- やりたいこと
- 拡張機能:Paste Image
- インストール
- 使い方
- 設定
- pasteImage.defaultName
- pasteImage.path
- おわりに
環境
- VSCode
- 1.48.2
- Paste Image
- v1.0.4
改善したい項目一覧
改善したい点は以下になります。
- アウトライン機能 ← 済?
- 画像ファイルの貼り付け ← 今回はここが対象
- リアルタイムプレビュー
- ショートカット機能
- Lint機能(Typoraにはない機能)
- CSS拡張
やりたいこと
Typoraと同様にクリップボードにコピーした画像をマークダウンに貼り付けたい。そして、画像自体も任意の場所に保存したい。
それを実現できる拡張機能がPaste Imageです。
拡張機能:Paste Image
インストール
まず拡張機能マーケットプレイスからPaste Imageと検索してインストールを行います。
使い方
- 画像をクリップボードにコピーする。
- Paste Imageのデフォルトショートカット
Ctrl+Alt+V
をキーボードから入力する。 - クリップボードにコピーした画像が保存される。
- 保存した画像ファイルが相対パス参照でmdファイルに貼り付けられる。
設定
使いそうなものだけ記載するので、詳細を知りたい場合はこちらから。
pasteImage.defaultName
保存される画像のファイル名。
デフォルトではY-MM-DD-HH-mm-ss
が設定されている。
なので、実際には2020-08-29-16-36-13.png
といった形式で保存される。
pasteImage.path
画像ファイルの保存先。
使える変数には以下のようなものがあります。
- ${currentFileDir}:現在の編集ファイルを含むディレクトリのパス。
- ${projectRoot}:vscodeで開かれたプロジェクトのパス。
- ${currentFileName}:拡張子付きの現在のファイル名。
- ${currentFileNameWithoutExt}:拡張子なしの現在のファイル名。
デフォルトでは、${currentFileDir}
が設定されているので貼り付け先の編集ファイルと同等の階層に画像が保存されます。
これだと、mdファイルと画像が同一階層に配置されてしまい画像ファイルとmdファイルがごっちゃになってしまうので、settings.json
から変更します。
"pasteImage.path": "${currentFileDir}/images/${currentFileNameWithoutExt}"
例を用いて設定内容を説明します。
下のようなフォルダ構成でtest.md
に画像を張り付けた場合には、imagesフォルダ配下に「現在編集しているファイル名(拡張子なし」のtest
フォルダが作成され、その配下に画像が配置されていきます。
なお、imagesフォルダも勝手に作られるのでわざわざ作る必要はないです。
. ├── test.md └── images └── test ← ここ画像が追加される ├── 2020-08-29-17-18-07.png └── 2020-08-29-17-18-07.png
おわりに
拡張機能のPaste Image
を使用することでMarkdownへの画像貼り付けを行うことができました!
これに関しては、その1のアウトライン機能を追加したときのとのもやもやとは違いTyporaの代替機能として活用できそうです。
続きを読むVSCodeのMarkdown環境を整える ~その1 アウトライン機能~
はじめに
今までTyporaでマークダウン形式のメモを取っていたのですが、ファイルを管理しづらい&複数タブが開けないので並行作業がしづらいといった不満?が出てきたので、エディターをVSCodeに切替ようと思います。
ただし、TyporaにはTyporaの良さがあります。リアルタイムプレビューやショートカットなどなどMarkdownを書く上で便利な機能が多々あり起動もはやいため簡単なメモを取るという点ではVSCodeより使いやすいと思います。
目次
環境
VSCodeのMarkdown環境について
VSCode バージョン1.48を使用しているのですが、拡張機能なしではTyporaの足元にも及ばないといった感じなのでTyporaと同等かそれ以上の環境にしていきたいと思います。
改善したい点
改善したい点は以下になります。
- アウトライン機能 ← 今回はここが対象
- リアルタイムプレビュー
- ショートカット機能
- 画像ファイルの貼り付け
- Lint機能(Typoraにはない機能)
- CSS拡張
アウトライン機能
VSCodeにもデフォルトでアウトライン表示機能はあるのですが、見出し#
がそのまま表示されてしまい少し見づらくなってしまっています。
この見出し#
がついてみづらい問題を解決してくれる拡張機能がMarkdown Navigation - Visual Studio Marketplaceです。
拡張機能:Markdown Navigation
まず拡張機能マーケットプレイスからMarkdown Navigation
と検索してインストールを行います。
その後、左メニューからエクスプローラー
をクリックして、適当なmdファイルを開きます。
そうするとサイドバーの左下にMARKDOWN NAVIGATION
が追加されています。が、中身がありません。
ナビゲーションの更新タイミング
ナビゲーション(≒アウトライン)が更新されるのはファイルが保存されるタイミングみたいです。
- Just open markdown document.
- Navigation will auto update on document file saved.
なので開いたマークダウンファイルを保存(Ctrl + S)することで、#
がついていないアウトラインが表示されました!!
また、アウトラインをクリックするとmdファイルもクリックした目次に飛んでくれます。(割と重要!!)
おわりに
Markdown Navigation
を使用することでアウトラインをより見やすくすることが出来ました。
でも内心、見やすくできたのはいいけど、毎回保存する手間(違うmdファイル開いてもアウトライン更新されない)を考えれば少し見づらくても標準のアウトライン機能を使ったほうが楽なんじゃないかって気もしてるけど備忘録として残しておきます。
続きを読む