葛のメモ帳

自分で調べたことを忘れないためにメモっておきます

葛のメモ帳

自分で調べたことを忘れないためにメモっておきます


【合格体験記】基本情報技術者試験に合格しました。

表題の通り、基本情報に合格しました。今回はその記録を簡単にメモしておこうと思います。

バックボーン

  • 私は一般的にな情報系学部卒の現在は2年目SEです。
  • 仕事はだいたい平均して20~30時間ぐらいの残業があります。
  • 業務が忙しく、だいたい基本的に2ヶ月前から腰を入れて勉強を始めました。

勉強時間

  • 無理ない範囲で取り組むことを意識しました。(受験勉強で大変失敗しているので...)
  • 平日は体力に余裕がある日で週数回。
  • 出勤中も満員電車でなく心のゆとりのある時にスマホアプリの無料問題集をやりました。
  • 業務後のタリーズかスタバで10~11時まで勉強してました。
  • 土日は片方でどちらかで数時間やりました。

勉強方法

  • 2ヶ月前は大学生の頃に買って放置していた基本情報の参考書を引っ張り出して、基礎理論を解きました。
    • このとき写経をやってましたがあまり効果がないのでやめた方がよさそうです。
    • できるだけ多くの問題を解いた方が良いことに経験則で思い出して写経をやめました。
  • それからは基本的にwebアプリの基本情報過去問を分野別にひたすら解きました。
    • 全くわからない単元は参考書に戻り地道に時間をかけて暗記しました。
  • はやり問題を解きまくる方が良かったです。過去問と全く同じ問題が何度も出題されているのでこれは必須だと思います。

午前

  • 午前はwebアプリ、スマホアプリの問題を解きまくるのが良いと思います。
  • 解説が明らかに不足しているので参考書、ないしは2窓で検索できる状態にしておくと良いです。

午後

  • 午後もwebアプリがあるので時間かけて解きました。ネットワークとか情報セキュリティは僕は全くわからなかったので同じ問題をなんどか解いてみました。(これは僕にはきついのですが...)
  • 自分自身でこの問題を全て説明できるくらいにはしたほうがよいです。類代に対応できる基礎知識と応用ができるようになるので。

結果

  • 午前73%, 午後78%くらいだったと思います。

今後

  • 応用情報も取りたいので頑張ります!Let's 資格

習慣化するということについて

自分が目指した方がいいゴールのマイルストーンを目指すということ

世の中の流れとして、自分の位置確認したとき自分が目指した方がいいと思われるゴールのマイルストーンが見えてくることがある。受験勉強、資格試験、選考、コンクール、コンテスト...いろいろあると思う。

ゴールと表現しないのはそこがゴールではないから。ゴールは多くの人にとってわからないと思う。お金持ちがゴールなのか、家庭を持つことがゴールなのか、美味しい飯を食べることがゴールなのか。おそらくそこに意味はないと思う。生き死にが絡む事象を論じることに意味がないのは生きること死ぬことに意味がないと思うからでもあるのだが、これ以上の思案こそが無意味なのだ。

だからわれわれは「目指すべきゴール」として、存在しない宮殿を目指す他ないと考える。その宮殿への道には目指すべき中間地点がぼんやりとあるとする。それが受験であったり、資格だったりする。社会のシステムとしてそれが信用になっているのであるからそれを取得する他ない。これをマイルストーンと呼ぶ。我々の人生はこのマイルストーンを決めてそこを目指すということの連続であるのかもしれない。ありもしないゴールを目指しながらそれでも確かに進んでいることを実感するには移動しつづけなければならない。重ねた年齢の分だけ重荷になってのしかかる。

マイルストーンを決める

あなたのマイルストーンを決める。僕は資格試験を受けることが最も単純なマイルストーンだと思う。受験勉強は僕には難しかった。音楽も難しい。細分化できる自信がないのでここでは資格試験にしようと思う。(まだ僕は普通自動車免許しかないのだが...)

ではマイルストーンへ到達するにはどのようにしたらいいのか?

多くの人はWBSを想像するだろう。製品完成までの工程を細分化してそれをリスト化する。そこからスケジュールを引く。プロジェクトマネージメントの基本だ。日々生きる上でこれを一人の人間が自分の人生と向き合ってこれをするのはとても大変だと思う。ゴールもよくわからないのにマイルストーンを目指した方がいいから目指すという曖昧な動機付けで行動できるほど怠惰な人間は上手に生きることはできない。

そこで「習慣化する」ことが鍵になる。

習慣化するということ

習慣は記憶の集積といわれたりするらしい。習慣化された行動には思考はあまり働かない。省エネで卒なく作業をこなすことができれば日々進捗を生むことができる。 記憶の集積には「強い感情」か「繰り返しのinput」で脳の記憶の強化が必要らしい。毎日受ける授業などがそれに該当しそうだ。強い感情はゲームなどだろうか?酒?ギャンブル?抜毛症?

習慣のシステムは以下のようなものだとするらしい。

  • 入力: トリガー、タイミング、時間、機会
  • 機構: 機材、システム、機械、道具、
  • 出力: 実行結果、フィードバック

これらはすでに生活に組み込まれている。できる限り脳やモチベに依存しない形をとり、「機構化」することで「習慣化」を実現すれば良いことになる

マイルストーンを目指すための工程が最も単純な形で細分化でき、それをモチベーションだとか脳とかに負担をかけない形で習慣化できたとする。 ゴールまでの距離が可視化できる。現在地とのギャップと今日の進捗を確認できる。確かにマイルストーンに進んでいるという利益を快として感じれるだろう。この仕組みが必要なのだと思う。

多くの勉強できる人間にとっては日々刷り込まれる勉強した方がいいという(強迫)観念によって当たり前にこなせるのだけど、勉強できない多くの(私)にとっては非常に難しい。刷り込みによる習慣化は刷り込まれる環境と適正があるけどその外が人にとっては難しい。

そういうことを管理することが目標の機構が塾だったりジムだったりいろいろあるわけなのだけど、物事にとりかかる最初にいろいろ手助けがいる。また目標からの乖離を適宜メンテするする必要もある。弱い人間が集団についていくためには自分も社会システムを運用するほかないのだ。

自分にでもできるだろうか?

今日はTULLY'Sで2時間の勉強をした。勉強中はとてもきつかったが終わってみるともっとできた気もする。 ゲームは10時間以上平気でできる。でもストレスも溜まる。ストレスはこんなことしてていいのかという恐怖心や生活に追われながら余暇を過ごしてしまうことをやめて心から楽しんで生きていきたいと思う

  1. 利益の確認:毎日の始まりにマイルストーンを確認する
  2. 手段の確認:マイルストーンまでの作業を確認する
  3. 実行の確認:作業手順書通りに作業をする
  4. 結果の確認:成果を確認してマイルストーンまでの距離が縮まっていることを確認する

このルーティンをすることで解消できるのかな

いろんなことを始めたいと思うのに始められない事について

平日は9時間拘束と残業で必死に働き、休日は特になにするでもなく空虚な毎日を過ごしている。 代り映えもしない毎日の中でただそこはかなとなく将来に不安を抱き、どうしたものかと思案しているようで何も行動はせず、何かを食べて寝る毎日を過ごしている。

このままではダメだ!と意気込んで「さあ、今日から僕は変わるんだ」とペンをとり”やるべきこと”をリスト化していく。

  • お金を貯めるべきだ
    • 貯金よりも投資をするべきだ
      • 積み立てNISAを始めよう
    • 無駄遣いをやめるべきだ
      • 自分に投資しよう
  • 国家資格やスペシャリストとしての資格を取るべきだ
    • 基本情報の資格を取ろう
    • そのあとは応用情報の資格を取ろう
    • クラウド系の資格もいいだろう
  • プログラミングの勉強をするべきだ
    • 社内試験で給料も上がるし、勉強にもなる、プロダクトを作ろう

こうしたことを幾度となく書いている。全く同じ結論に至る。何一つできないまま夜は過ぎる。朝になる。また仕事が始まる。休日こそ取り掛かるべきだ。金曜日は遊ぼう。夜が過ぎる。朝が来る。 同じことを何度も繰り返しているので自分でも解っている。私は目標を何一つ達成できないまま努力もできず終わっていくと。

ならば「やりたいことをやろう」。本当に自分が心の底からやりたいと思えることをやろう。そうしてまたリスト化してみる。

  • 音楽を作りたい
    • ギターを弾いて、ベースを弾いて、ドラムとキーボードを打ち込み、ボカロに歌わせよう。
    • ハードルが高ければ弾いてみたでもいいだろう
  • 本を読みたい
  • 旅行に出かけたい
    • 遠くに行きたい。自然の中へ行きたい。都会の喧騒から離れたい。
    • 北海道、沖縄の離島、佐渡、小笠原、小豆島、種子島、いろいろあるじゃないか
  • キャンプに出掛けたい
    • 自然の中でゆっくり過ごしたい
    • テントを広げて、その中で虫の声や森の音、川の音、風の音、草木のにおい、焚火の煙、すべてが生きていることを実感できる。

やればいいじゃないか!こんな言葉を書かずに今すぐにこの連休を使って出かければいいじゃないか。なぜ外に出ない。もう三日目が終わり四日目だ。5連休も半分以上終わった。 なぜできないのか?

amazonプライムに入っているのでprime videoで見たいものにチェックを入れている。LEVEL Eみたいな。電脳コイルみたいな。ケムリクサ、ベルセルクシャーマンキング、キングダム、まだいないアニメはいっぱいある。

RPGをやればいいじゃないか。FF.、DQ、テイルズ、アトリエ、たくさんある。なぜ毎日イライラしながらスプラ3をやるのか?APEXをやりながらイライラしているのか?VALORANTをやりながらイライラしているのか?

僕は時間がかかってしまうことを極端に嫌う傾向があるくせに時間を浪費しているのだ。無駄な毎日をすこしずつ研鑽や趣味に割いて成果を出せばいいのに、とっかかりの早いことだけをやろうとして失敗しているのだ。 なぜ無駄だとわかっていても簡単にできる無駄なことをやりたくなるのか?

それは楽だからだ。エネルギーを使わない作業をすることは人間にとって非常に楽なのだ。最初の壁を登り切った先に見える景色があることを頭ではわかっていても心がそれを望んでいない。いますぐにできそうな簡単なことをやろうとしてしまう。僕は非常に弱い。

この最初の壁を登るためにはどうしたらいいのか?自分でもまだわからない。 僕は自分の人生で自分の壁を乗り越えたことがない。

自分なりの壁の攻略法は、自分で壁を登りつつけるしかない。と6浪で医学部に入った友人は言っていた。続けること。暗中模索の中、自分なりの方法で壁に挑み続ける方法を考えねばならない。

そもそも壁と考えることに問題があるのかもしれない。やりたいことすらできない人間になってしまった。

あるべき論から脱する方法がよく世の中にあふれている。でもこれは年齢を重ねた大人が言っていることにすぎないのだ。またこの年齢を重ねた大人はいろいろなことを諦めながら自分なりの地位を築いたから言えることなのだ。

自分がしたいこと。それを自分ですること。それを続けること。形にすること。そうすることで確かめるしかない。自分の中にある尺度で物を図りそれを自分の中で満足できるようになりたい。できればそれを共有して分かり合いたい。

まだそれは当分さきになるのだろうな。

Firebase+Vue3/TypeScript+Docker+でWebアプリ開発環境を作ってみた

3行まとめ

  • Dockerを業務であまり使わせてもらえないので触りたかった
  • 個人開発でWebAppを作りたかった
  • 以前から触りたかったFirebaseを本気でやりたかった

完成したもの(デプロイしただけ)

study-record-app.web.app

  • api キーとかいろいろあるのでgithubの公開はできませんがひとまず簡単にまとめます

アーキテクチャ

  • Node.js用のコンテナ
  • Firebase用で使うコンテナ
  • ローカルのファイルのマウント

手順まとめ

  1. docker-compose ファイルの用意
  2. docker file の用意
  3. docker-compose の起動とfirebaseのほうコンテナに入る
  4. vue3/typescriptのプロジェクトのひな形作成
  5. firebase のセットアップ
  6. vueプロジェクトのビルド
  7. firebaseのデプロイ

docker-compose ファイルの用意

  • node.js$ yarn serveに使うようのつもりのコンテナ
  • firebase で使うつもりのコンテナ
    • 9005 portを使うようなのでここを開けたコンテナを作った(デプロイには必要らしい)
    • しかしデバッグなどに使うようにするにはほかの方法が必要かもしれない
version: '3'
services:
  app:
    build:
      context: .
      dockerfile: dockerfile-app
    container_name: study-record
    ports:
      - '8080:8080'
    volumes:
      - ./:/src
    stdin_open: true
    tty: true
  firebase:
    build:
      context: .
      dockerfile: dockerfile-firebase
    container_name: firebase-container
    ports:
      - '9005:9005'
    volumes:
      - ./:/src
    stdin_open: true
    tty: true

docker file の用意

  • dockerfile-app
FROM node:lts-alpine
WORKDIR /src

RUN yarn global add @vue/cli

COPY . /src
RUN yarn
RUN yarn build
  • dockerfile-firebase
FROM node:lts-alpine
WORKDIR /src

RUN yarn global add firebase-tools

COPY . /src
RUN yarn
RUN yarn build

docker-compose の起動とfirebaseのほうコンテナに入る

## Docker setup
docker-compose up --build -d 

docker exec -it study-record /bin/sh
docker exec -it firebase-container /bin/sh

vue3/typescriptのプロジェクトのひな形作成

  • 内容はお好みで
  • 注意: ビルドしたファイルはdistディレクトリに展開されるのでデプロイ先のディレクトリを変更する
    • 通常はpublicになっているので注意
vue create study-record

yarn でビルドできるようにしておいた

firebase のセットアップ

  • ブラウザでfirebaseのプロジェクトを作成
  • WebAppを作っておく
    • ブラウザでログインする必要がある
firebase login
firebaes init

vueプロジェクトのビルド

  • eslintにすごい怒られるのでとりあえずfixを付けた あとで調べる
Replace `'study-record-app'` with `"study-record-app"
  • ソースコード上はダブルクォーテーションを使っていたがビルドするとシングルクォーテーションになってしまっているようだった
yarn build --fix

firebaseのデプロイ

firebase deploy

標準正規分布表から不良品の発生率を求める

3行まとめ

  • 離散数学、基礎理論の分野の問題です。(基本情報技術者試験平成16年秋期 午前問7)
  • 標準正規分布表を使った問題の解き方を覚えれることが必須
  • 異常に難しかったので捨て問だと思いますが調べてみたのでまとめます。

目次

  1. 問題文
  2. 確率論基礎
  3. 解き方
  4. まとめ

問題文

ある工場で製造している部品の長さの誤差は,平均0mm,標準偏差0.5mmの正規分布に従っている。誤差の許容範囲が±1mmのとき,不良品の発生率は何%になるか。標準正規分布表を用いて最も近い値を選べ。

標準正規分布

確率変数 分布関数値 確率密度関数
0.00 0.5000 0.3938
0.50 0.6915 0.3521
1.00 0.6915 0.2420
1.50 0.8413 0.1296
2.00 0.9332 0.0540

確率論基礎をざっくりまとめる

  • 確率変数
    • ある変数の値をとる確率が存在する変数のこと
    • さいころが出る目を確率変数Xと定義すると
    • P(X) = 1/6 (X = 1, 2, 3, 4, 5, 6)
  • (累積)分布関数
    • 確率変数Xがある値x以下( X ≦ x ) の値となる確率を表す関数
    • F(x) = P( X ≦ x )
  • 分布関数値
    • これらの関数がとる値のこと
  • 確率密度
    • 定義域内でのXの値の「相対的なでやすさ」を表す
  • 確率密度関数
    • 連続型確率変数Xがある値xをとる確率密度を関数f(x)
  • 正規分布
    • 平均値と最頻値と中央値が一致する。
    • 平均値を中心にして左右が対象である。(x = μに関して対象)
    • 母平均μ(mu)に対して標準偏差σ(sigma)とすると以下のような関係にある(一番重要)

問題の解き方

  • 誤差平均が0mmである → 上の図でμに当てはまる
  • 標準偏差0.5mmである -> 上の図でσに当てはまる
  • 正規分布において標準偏差までの(累積)分布関数値はおよそ68%であることから標準正規分布表の0.6915に該当(前提知識が必要)
    • 平均から標準偏差の間の確率変数の差ΔX1.00である
  • 不良品の基準は1.0mmであることから、確率変数の差はΔXの2倍
    • 不良品発生の1.0mmは確率変数でいうと2.00にあたる
  • 確率変数2.00の分布関数値は0.9773 → 97.73%の確率で1.0mm以下になる。
    • 2.27%の確率で1.0mm以上になる
    • (注意): +1.0mm -1.0mm の両方を考慮する必要がある
    • 2.27% * 2 = 4.54%の確率で±1.0mmになり不良品となる

まとめ

  • この問題の一番難しいところは用語正規分布の性質を知らないとできないところ
  • 知っていれば難しくないです。
  • でも選択と集中を考えるなら捨て問です。
  • 僕はこういうことを調べるのが好きなので調べます。(時間浪費)

参考

bellcurve.jp

bellcurve.jp

bellcurve.jp

正規分布の分かりやすいまとめ | AVILEN AI Trend

その日の学びをその日にまとめたい

仕事しているとき、家で勉強しているとき、散歩しているとき、いろいろ頭の中で考えることがあります。しかしぐるぐるとした思考はどんどんと流れていってしまいます。わからないことは検索して”答え”ないしは”最適解”、最適解を探します。その時見つけたものをなんとなくメモしているのですが、外向けに公開できるほどまとめきれず正確に把握しきれないままいろいろなこと追われてしまいます。

時間はないですができる限りその日に得た知見をその日のまま、まとめていけれたらいいなと思います。

基本情報技術者試験申し込みました

基本情報技術者試験の申し込みをしました 試験日まで2か月ないくらいです

業務も覚えることいっぱいで大変ですが頑張ろうと思います

それはそうと何をしたらいいのかわからないので IPAシラバスから単元をコピペして ガントチャートにしてみました

ん~~~~~ やることいっぱいですね。

テクノロジー系が重要なので、それ以外はあまり時間をかけずにさらっと終わらせて 工数管理をがんばりたいですね

ツイッターに挙げると強者に殴られそうなので止めました 

合格目指して頑張ります