ひよっこSEの備忘録

20卒の未経験エンジニアの日々の備忘録です。

AWS認定クラウドプラクティショナー受験記録

昨年、AWS認定クラウドラクティショナーに合格しました。


かなり時間が経ってしまいましたが、勉強開始〜受験までを記録に残そうと思います。
筆者は未経験入社の3年目です。AWS実務経験も無し。

受験動機

・資格手当ほしい
・新卒研修時に触れてたこと(EC2構築、S3の使用くらい)
・実務で触れる機会が出来たとき用に最低限の知識がほしい
AWS分かってたらちょっとカッコいい

'22/7月ごろに受験を決め、業務や予定との兼ね合いで受験日を9/3に決めて申し込みました。

使用テキスト

AWS認定資格 クラウドプラクティショナーの教科書: 合格へ導く虎の巻 CloudTech制作委員会シリーズ Kindle版
Kindleなので、どこでも気軽に見ることができて重宝しました。
2ヶ月ほどで3周強したかと思います。

この問題だけで合格可能!AWS 認定クラウドプラクティショナー 模擬試験問題集
模擬試験/問題はほぼこれのみを使用していました。
応用レベルは全く行わず、基本レベルと本番レベルのみ取り組みました。
基本を5回、本番を3回ずつ解いて最終的には90%/70%強の正答率でした。
分からなかった問題・覚えてない単語をKindleや後述する単語帳で確認したり、自分でもテキストにメモ書きして覚えてました。

AWS Skill Builder
問題数が少ないですが、AWS公式の問題集があったのでやりました。(20問ほど)
Udemyの模擬試験のみでも十分だったかな?とは思います。

AWS単語帳 - Qiita
覚えてないサービス等、空き時間によく見ていました。

その後

残念ながらまだ実務で触れる機会はないのですが、
社内でのAWSに関する発表等が以前よりよく分かって聞くことが出来てちょっとは身についたな〜と実感しております。
まだ知識が残っているうちにSAA取得にも動いて、いつか実務で触れられる機会を狙っていきます。

MacにWindowsをインストールする

MacのBootCampを使ってWindowsも使えるようにした記録
個人のメモ書きレベルです。

Windows10のISOイメージをダウンロードする

時間がかかるので要注意
www.microsoft.com

※参考リンク先ではISOファイルを作成等あったけどダウンロードのみで終了

Macにダウンロードする

以下のパスにあるBootCampアシスタントを起動する
/System/Applications/Utilities/Boot Camp Assistant.app


BootCampアシスタントが開き、画面の指示の通りに進む
Windowsをインストールのページで先ほどダウンロードしたISOファイルを選択
インストールが完了すると自動でMacOSが終了しWindowsが起動

Windowsのセットアップ

Windowsのセットアップ・ユーザ設定をする
※ライセンスコードの入力はあとでもOK


MacWindowsに切り替えたいとき

以下を開く
システム環境設定>起動ディスク

BootCampを選択して起動

WindowsMacに切り替えたいとき

画面右下に隠れているBootCampを選択
Mac OSで起動を選択

Windowsを削除したいとき

MacOSでBootCampアシスタントを起動
画面に従い復元すると削除完了

SourceTreeにログインができなかった

SourceTreeとBitBucketを連携して社内研修で使用していました。
BitBucketでPassword変更後、あっているはずなのにSourceTreeにログインができず少しハマった話

※Qiitaに同記事あり

SourceTreeバージョン 4.0.1
Macバージョン 10.15.7

<やったけど意味がなさそうなこと>

・再起動(PC,SourceTree両方)

・Passwordがあっているかの確認

・キーチェーンからBitBucketのログイン情報の削除

・Users/Library/Application Support/SourceTree内のUser@bitbucketのファイルの削除

<おそらく解決した原因>

・SourceTree内の設定を開き、アカウントの項目で自分のアカウントを選び編集を押す
 アカウントを接続を押す


参考にしたページ
https://freesworder.net/sourcetree-no-push/
https://reasonable-code.com/sourcetree-invalid-error/

ITパスポート受験記

11月にITパスポートを受けたので、ざっくりと残します。

***

受けるきっかけ

弊社で資格取得者に報奨金等が支給されるようになったようです。
何か受験しようと思うも、基本情報技術者試験は申込期限が過ぎてたので毎月開催されてるITパスポートに申し込みました。
お金もらえるし

基礎的な部分をあまり学んでなかったのでちょうど良いかなとも。
9月くらいに申し込んだ気がします。勉強期間は約2ヶ月ほど。

勉強法

勉強本

【令和2年度】 いちばんやさしいITパスポート 絶対合格の教科書+出る順問題集
www.amazon.co.jp

本屋に見に行きました。
適当に数冊見て、合いそうなこちらを購入。

全部で3周くらいしました。
2回目までは熟読、3周目は苦手な単元に集中して取り組みました。
重くて出社時は持ち歩かなかったのですが、幸い在宅が多かったので手に取る時間は多かったです。
後述するアプリで解けなかった箇所の復習にも使いました。

アプリ

全問解説付 itパスポート 一問一答問題集

apps.apple.com

本を買う前にアプリで先に勉強を始めていました。

私は風呂でもスマホ持ち込んでるタイプなんですけど、SNS見る代わりにぽちぽちしてました。
他にも電車とかのちょっとの時間でできるので重宝してました。

本を開くほどのやる気はないけど、ちょっとやるか...ってなれます。
事前にある程度やってたためか、上の勉強本見たときに「あ、この問題アプリで見たやつー!」って
進研ゼミ状態になりました。

過去問

www3.jitec.ipa.go.jp

公式から過去問が公開されてるみたいですね。
私は試験一週間前に知りました。
解説はないので、答え合わせ時は勉強本見るとかぐぐるとかで間違った問題は潰していく感じです。

試験一週間前からはひたすら過去問取り組んでました。
結構似た問題が毎回ある印象ですね。

当日

今はコロナ禍のせいか、受付で結構並びました。
もう少しゆとりもって行けばよかったなあと思ったり。

試験は過去問・勉強本で全く見覚えのない物が大量にあって焦りましたが、無事基準点越えで合格でした。
試験後すぐに結果が出るの、一瞬すぎて不思議な感じ...。

感想

過去問を直前に知ったり、もうちょっと事前に調べといた方がよかったことは多々ありました。反省。
勉強が楽しいなーと思えたので、ここで終わらず他の資格も受けていきたい所存。
(基本情報も受けるつもりだったけど、コロナあるので勉強のみ続けて秋に受けるか迷い中...。)

他にはAWSも気になってるので、年内に一度受けられると良いな。

ディベロッパーツールに出てくるエラーいろいろ

研修中に遭遇した、console上に現れるエラー・警告についてまとめました(増えるたび適宜更新)

***

・Missing radix parameter
parseIntを使ったときに何進数でパースするかを引数で指定してない際に出る
引数で渡せば解決

ex)parseInt(’10’,10)
第二引数で10を渡しているので、10進数でパースする


・The key ‘hoge’ is not sorted alphabetically

アルファベット順に並んでないときにでる
対象のものをアルファベット順に変えてあげたら解決

・Declaration of public instance field not allowed after declaration of public instance method. Instead, this should come at the beginning of the class/interface.

変数の宣言はメソッドより手前にしなければいけない

・Shadowed name: ‘hoge
同じ名前の変数が複数宣言されているため、どちらかを変更したら解決

・Use an interface instead of a type literal.
typeリテラルよりinterfaceを使えば解決

・Identifier 'hoge’ is never reassigned; use 'const' instead of 'let'.
Letで宣言したhogeが再度代入されることがないため、constを使うように言われている
再代入することがないならconstにするべき

・An empty interface is equivalent to `{}`.
空オブジェクトのinterfaceを許可していないときに出る
許可するなりで解決

・[mobx] @action fields are not reassignable
@action.boundしているメソッドがあるクラスの子クラスでも@action.boundしている同じ名前のメソッドを作った場合に遭遇
子クラスのメソッド名を変えれば解消?

・validateDOMNesting(...): cannot appear as a child of

.
タグ直下でタグは使えない tr,tsタグを配置してその下で使用することで解消 ・'message' is declared but its value is never read. Message変数がまだ呼ばれていない、使用していない

Reactを使ってモーダルを作る

TypeScriptを使って、メイン画面でボタンを押しモーダルウィンドウを呼び出しました。
自分の備忘録として…。

※import文等簡略化している部分あり

致命的に足りない点等あればご指摘お願いします。

***

メイン画面を作る

既にある場合はそれを使ってください。
ない場合、webのメインの画面となるものを作成しましょう。

メイン画面にモーダルを表示させるためのボタンを設置します。

<Button content="モーダルを呼ぶボタン" onClick={HogeStore.open} />

HogeStoreは後述

Modalの雛形を作る

ReactのModalタグを使い、表示したいModalのページを作ります。
react.semantic-ui.com


Modalを開くには、でtrueになる必要があります。
ボタンを押して開く/閉じると切り替えたいので、true/falseを入れるのではなく、boolean型の変数を置いてstoreのメソッドで切り替えます。
(もしtrue/falseを入れていた場合、いくらボタン等を押してもopenの中の値を変えることはできないので、一生開きっぱなし/閉じっぱなしになると思います。(あやふや))

例:

@observer
export class FooModal extends Component<IFoo>{ // ①

public render(){
const { hoge } = this.props
if(!hoge){
return null
}

return(
<Modal open={hoge.key}> //hoge
<Modal.Header>モーダルのヘッダーだよ</Modal.Header>
<Modal.Content>ねこかわいい</Modal.Content>
<Modal.Actions></Button onclick={hoge.close} content=“閉じるボタン”></Modal.Actions> //onClickで{}内のメソッドが呼ばれ実行される
</Modal>
)
}

①IFooはinterface.ts的なもの
 HogeStoreをFooでも使えるように、propsを経由して中身を渡しています。

Storeで変数の切り替えをする

Modalの開く/閉じるを切り替えるstoreの作成をします

export default class HogeStore {

@observable
public key = false

@action.bound
public open(){ this.key = true }

@action.bound
public close(){ this.key = false }
}

openメソッドでModal表示、closeメソッドでModalを閉じます。

メインに置く

メインページのindexにを置きます。
デフォルトでfalseになっているので、ボタンを押して作動させないかぎり表示はされません。




ざっくりとですが、ここ数日で行っていたモーダルの作成についてでした。

TypeScriptの基本

仕事でTypeScriptを触り始めました。

***

TypeScriptとは

www.typescriptlang.org

マイクロソフト社によって開発された、フリーでオープンソースの言語です。
2012年に登場した、また出来て間もない言語です。
JavaScriptのスーパーセット(上位集合)にあたり、
大規模なアプリケーション開発で用いられることが多いようです。
(JavaScriptは一定以上の規模になると保守性が悪くなるため)

特徴

メリット
  • 型の定義ができる

 JavaScriptだと、文字列・数字が混在することができますが、それを制御できます。
 バグに気づきやすくできます。

  • JavaScriptで書いたもの全てTypeScriptでも有効

 JavaScriptを拡張したのがTypeScriptなので、
 TypeScriptで新たに制約をかけない場合、そのまま流用することができます。

 汎用的な関数・クラス定義に使われます。
 仮の型の名前を入れておいて、使う際に型を宣言します。(numberの数値型など)
 ジェネリックを使ったクラス内では、使用した型にする必要があります。
 (と宣言した場合はT型として使う)

  • エディタの入力補完がすごい

 TypeScriptの入力支援機能がある場合、候補を表示してくれます。
 私はVisual Studio Codeを使っています。見やすいです。

デメリット
  • 型定義に時間がかかる

 JavaScriptにはない型が存在します。
 そちらをよく使っていた方は慣れるまでは型定義に時間がかかるように思います。

  • 日本語のページが少ない

 エラーについて等調べてみても日本語のページが少なく、情報を集めるのに時間がかかります。

TypeScriptのDL

上記リンクからや、Node.jsのインストール後にnpmコマンドを使って用意することもできます。