DBSに11月3日(木)に合格しました。
DBSが10月21日(金)に終了したので、その流れで受けることにしました。
なので約2週間で合格したことになります。
やったこと
隙間時間で以下を実施して、合格できました。
- techStockを70問といた (正解率は47%)
- black belt(DAS関連)を読んだ *skill builder (5時間のやつ)を2週した
DBSに11月3日(木)に合格しました。
DBSが10月21日(金)に終了したので、その流れで受けることにしました。
なので約2週間で合格したことになります。
隙間時間で以下を実施して、合格できました。
DBSに合格しました。
10月11日に受験を決意しました。 なので10日間で合格したことになります。
隙間時間で以下を実施して、合格できました。
「このブログはアフィリエイト広告を利用しています」
学生時代と社会人、両方で使ったことがありました。
学生自体は、ReactとDjangoを使ったサービスに関わっていました。 また、趣味のアプリ開発等でもNoSQLやRDBには触れていました。 その学生時代のDBに関する経験は、以下の通りです。
社会人のDBに関する経験は、以下の通りです。
正直、学生の時の方がDB使ってました。
こんなゆるーい理由で7,500円の受験料を払いました。
登録セキスペ受験時と同じように、過去問ゲーだと思いました。 なので、過去問を積極的にやることにしました。
登録セキスペの時は時間を使いすぎたので、DBスペシャリストは必要最低限にしました。
→10月に入ってから、午前の問題を解くことにしました。結局やったのは5年分でした。
午前Ⅱに関しては、96点(1問ミス)だったのでこの方法で良かったと思っています。
問題は、午後の対策です。
正直、午後の対策は過去問の解説がないと、話になりません。 大人しくこれを買って勉強しましょう。 (正直これで勉強しても受かるわけではないが)
午前と同じく5年分解きました。ただし、午前と違い、解説を読み理解するまでに多くの時間を要しました。
試験本番では、全然わからないことはなかったのですが、時間が足りないことや演習不足&理解不足を感じました。
もっと問題演習と復習が必要だったと思います。
過去問を5年分やりました。
DBに関する知識を身につけること、DBに関する基礎的なことを学びたかったので、選択問題は全てやりました。
土日の午後に本番形式で時間を測って問題を解き、 平日や土日の午前に答え合わせをしていました。
反省点は、過去問を解いて満足していたことです。
すぐに答え合わせ&間違えた理由を分析していれば、もっと良い点数が取れたと思います。
午前勉強は、履歴によると10月1日スタートみたいです。
データベーススペシャリストの過去問道場の最終的な段位は、以下の通りです。
午後の勉強で知らなかったことをメモしたノートを見て、やったことを復習していました。
試験後の感想を書いておきます。
あ、なんか見たことあるな?って問題が数問。
見たことねえナニコレみたい問題もありました。
終わった瞬間は、まあ6割は超えたかな(確信はない)っという感じでした。
答え合わせしたら、一問だけミスってました。
DLPはなんでしょう? って問題は、正直嫌いです。data loss prevention じゃなくて data leak prevention にしてくれ...
傾向が少し変わった?と思いつつ、長文を読みました。
文章読んでも入れるべき属性がわからんぞ?って焦ったのを覚えてます。
計算問題は簡単だと感じました(RTOってなんだっけ?とはなったが)
RTO (Recovery Time Objective): アプリに障害が発生してから、復旧するまでの時間。
問題の傾向がだいぶ変わった気がします。
"文章を読み、簡単な属性を答えたり、リレーションを書く問題"が大幅に減りました。
その代わりに、構築するシステムの理解が必要になったと感じます。
例えば、「もしこういう状況になったら現時点では対応できない、どう変更すれば良いか?」みたいな感じです。
正直辛かったですし、模範解答とは結構ズレた回答をしてました。
結果待ちですが、落ちても納得できるデキだと思います。
勉強進めていく過程で、DBの仕組みを体型的に学ぶことができた (特にインデックスやリレーション)
試験に関しては、例年と比べて問題傾向が違ったために、難しいと感じた。
ガッキ−と結婚できる資格はやはり大変だった。
英語のスピーキングテストには、主に以下の種類があります。
これらの問題の種類毎に、以下をまとめました。
DMM英会話のスピーキングテストの結果は、レベル6でした。
そんな人が書いている記事です。
早速、まとめていきます。
なお、以下のページを参考にしています。
3,4文の英文が表示されます このような文章を時間内に正確に分かりやすく読むテストです。
Thank you for contacting the Anderson Health Clinic. We regret that our office is closed for the day, so no one can take your call. To make an appointment, please leave your name and number, and someone will call you back the following day. Our regular hours are from nine A.M. to six P.M. from Monday to Friday.
特になし。読め。
特にイントネーションは大事です。重要な情報を言う前は、トーンをあげる必要があります。 詳しくは、このサイトなどで勉強すると良いです。
基本的には、以下の文章で上がり調子に発音します。
写真を見て、英語で説明するテストです。
以下をスラスラ言えれば満点だと思います。
だいたい、3問質問される。
例えば、
- How often do you take public transportation, and what kind of public transportation do you usually take?
- What are some advantages of taking public transportation?
- Think about the public transportation in your city. How can it be improved? Why do you think so?
* I take the train two times a week. * I prefer to do, insted of 〇〇 * There are some advantages to taking public transportation.
ここもだいたい質問は3個。
大体のパターンは以下です。
基本的には、最後の問題は2つ以上の情報を組み合わせる必要があります。
* There are 2 events after 〇〇 * No that's incorrect. (No that's not correct) * If you want to participate in 〇〇's events, you have to come here before 〇〇. the first event is 〇〇, the second is XX
基本は、↑の表現を覚えておけば問題ない。
ただし、難しい質問、聞き取りにくい質問もあるので、集中して聞くべき。
3分程度の英文が読まれ、それに対して以下を1分で答えます。
例えば、以下のようなパターンがあります。
まずは、話をわかったアピールします。
Hi. 〇〇, It's me "自分の名前". I've got your message, I understand that you're "何をしようとしているのか". You are concerned about it.
次に、ちょっと自信ないけど、アドバイスすると言います。
I'm not so sure if I can be any help to you. let me explain how I prepared myself for my 〇〇
テキトーに話ます。例えば、就活なら
In my opinion, The most important factor to choose the company is the salary. because I would like to have various experiences at a young age. For doing that, a high salary is needed. for example, I would like to travel 〇〇 once a month.〇〇~~~
最後にまとめます。
Don't worry so much. you can do it.
何よりもまず聞き取りです。聞き取れないと何も話せません。
読まれたキーワードを覚えておいて、「こんな話でしたよね?」って話すだけでも、点数はもらえると思います。
そのあとは、PREPを用いて話せば大丈夫です。
あなたは、この文章に賛成ですか?反対ですか?その理由と例を教えて。って問題です。
例えば、以下の問題があります。(今思いついた)
英語だとこんな感じ。
Do you prefer to work on group projects or do assignments by yourself? Give reasons and examples to support your opinion.
「転職をする上で最も大切なfactorは何?」に答えるとしたら、
最初にPointを話す。
In order to change careers, the salary is the most important factor.
次にReasonを話す
Because I live alone and pay for all living costs by myself. So I have to get a high salary.
次にExmapleを話す
(in general) in japan, the average monthly income is about 240,000Yen. If I live in Tokyo, about 100,000yen is needed to live. In addition, I have to pay the food expenses, utility expenses, and so on. Every month, I have a little money left over. So I can't go out with some friends frequently(so often).
水道・光熱費 (電気・ガス)などの生活に必要なエネルギーにかかる費用= utility costs / utility expenses
テキトーな理由でも大丈夫なので、とりあえず話す。
これらの問題の種類毎に、以下をまとめました。
本記事を読みつつ、対策して高得点を目指しましょう
ネタバレ含みます
「このブログはアフィリエイト広告を利用しています」
純日本人で田舎育ちの社会人2年目の僕が、「僕はイエローでホワイトでちょっとブルー」を読んだので感想書きました。
市の小学校ランキング1位の公立カトリック校を通っていた僕の話。
この小学校を卒業した人は、ほぼ100%カトリック中学校 (これも市で1位)に進学する。
しかしこの主人公の僕は、そこには進学せずに元底辺中学校に進むことを考える。
この元底辺中学校は、白人労働者階級の子供が通う中学として知られていた。
生徒はタバコを吸ったり、中華料理屋にレンガを投げ込んだりする問題も学校であった。
進学理由は、仲の良いクラスメイトが元底辺中学校に進学するから。
これに父親は反対。
父親「白人だらけだから、ハブられる。カトリックでラッキーで入学できたトップ小学校を辞めるのはもったいない」
子供「決意は変わらない」
こうして、元底辺中学校に進学するところから物語は始まる。
この本のタイトルにもなっている。母親が、息子の僕のノートで見つけた落書きである。
これを見つけた母親は、「胸の奥で何かがことりと音を立てて倒れたような気がした」と語っている。
イエローは、黄色人種。この主人公の外見である。
ホワイトは、主人公の中身を表す。
ブルーは、感情を表す。主人公は、ブルーの意味を「怒り」と思っていたが、授業で間違えて本当の意味を知った。
私は、本当の意味で書いた落書きなんだろうなと思っている。
多様性があるとややこしくなる(喧嘩や衝突が発生する)。けどそれが良い。多様性がないと無知になるから。
母親「多様性はうんざりするほど大変だけど、無知を減らすからいいことなんだと思う」と言っている
EU離脱、テロリズム問題、世界中で起きている色々な混乱を乗り越えるためには、自分とは違う立場の人々や、自分と違う意見を持つ人々の気持ちを想像してみることが大事。
これが他人の靴を履くこと=emapthyである。
sympathyは、感情や行為や理解。自分と似たような意見を持っている人々に対して抱く感情
emapathyは、共感できる能力。自分と違う意見を持つ人を想像する力
黒人の転校生が僕のクラスに転校してきた話。その母親が、主人公の母親と会話するシーンがある。
僕の母親「あなた、何年生の子供を持っているの?、担任の先生は誰?」
これを先に言わないと、黒人で判断していることがバレてしまう。ポリティカルコレクトネス的に配慮に欠ける。
あけすけ: あけっぴろげで、露骨なこと。包み隠しのないこと
ランキング上位校の学校の先生は、学生をデモに行かせる割合が高い。なぜなら、先生も党支持者で理念に染めたい理由があル。
しかし、元底辺中学校は違った。デモには行かせない。学校の授業をやらずにデモに行かせたら、勝手に街で遊んでしまい、学校の評判を下げかねない。(元底辺中学校の校長は、今後の学校の評判を大切にしている。)
また、認められない学校の欠席は、罰せられる。そのため子供はデモには行かなかった。
本書では、シニカルって表現がある。
カトリック中学には、格差が拡大して放置されている。なんというか勢いがない。硬直している。 11歳の子供があんなシニカルなところに通う必要はない気がした。
このシニカルを調べると、「皮肉っぽい態度をとるさま。冷笑的」と出てくる。
皮肉と聞くと、sarcasticやironicが思い浮かぶのでちゃんと調べた。参照
例文: 政治家として何年も働いた後、彼は慈悲団体に募金できなくなるぐらいに超Cynicalになった。
状況: ジルの部下(Jill’s subordinate)は、仮病を使いまくったので、病気と言っても彼女は彼を信じなかった。
例文:汚くて荒れたホテルに着いた(at the dirty, run down hotel)時に、友達「Wow!めっちゃ良いホテル選んだね」と言った
状況:この数年で超太ったRamonaは、同窓会(school reunion)に参加した。クラスメイト「お前全然変わってないね!」
reunion: re(再び)+union(統合)する=同窓会
例文: 悪天候を避けるために、結婚式を延期した。皮肉なことに、延期した日は台風が来た。 状況: 彼は8時間もかけてこの駅に来た。玉ちゃんを見るために。だけどね、たまちゃんは2015年には死んでいた。
本を読んで思うことは、人それぞれ。
私の記憶に残った部分とはまた違うことが記憶に残ると思います。
ベストセラーの本なので、読んでみると新たな発見があるかもしれません。
関わっている案件において、Heroku上で動いているDjangoサーバにSentryを導入して、Slackにエラー通知をしていました
今まで何事もなく動いていたSentryのSlack通知が、このようになりました。
Uh oh. Sentry is going to stop Slacking you soon. Your plan doesn't support the Slack integration, all Slack alerts will stop after 6月29日 09:59.
意訳「君のプランじゃSlack統合サポートしないよ。 6月29日 09:59以降はSlack通知しないからね。」
そして6月29日 09:59以降...
Your Slack integration has been disabled. Your Sentry organization 〇〇 is on the Developer Plan. Upgrade to our Team or Business Plan to re-enable this integration.
意訳「Developer PlanだからSlack統合使えないよ。TeamかBusinessプランにしてくれよ」
私「仕方ねえな。お値段見てみるか」
私「...高いな」
私「無料プランで通知させる方法調べるかー」
クラスメソッド「Sentry無料プランでSlackにエラー通知する方法!!!」
私「どれどれ...」
クラスメソッド「AWS APIGateway+LambdaでSentryからの通知を受け、そこからSlackに通知する方法を紹介します。」
私「んーAWSとか使わずにDjangoだけで済ませたいけど、googleで見つけられない....」
私「しゃーない。私がやるか」
この記事は、Sentry無料プランでDjangoのエラーをSlackに通知するための記事です。
以下3つの設定が必要です。
順番に書いていきます。
通知したいチャンネルを選択します。
APP>"アプリを追加する"を選択し、Incoming Webhookを追加します。
画像のようにIncoming Webhookの設定をします。
このWebhook URL
は後のDjangoの設定に必要になります。
以下の作業を実施します。2を詳しく書きます。
1はSentryの公式を見てください。
2は、以下の画像部分です。
urls.pyに以下の新しいAPIエンドポイント作成コードを記述します。
url(r"^error", views.ErrorView.as_view()),
ErrorViewは以下のようにしました。
class ErrorView(APIView): """ sentryからエラー情報をpostしてもらい、slackにpostする """ def post(self, request): sentry_body = request.data message = sentry_body["message"] url = sentry_body["url"] slack_post({"text": f"{message} \n\n {url} "}) requests.post(WEBHOOK_URL, headers={"content-type": "application/json"}, data=json.dumps(data)) return Response(sentry_body, status=status.HTTP_200_OK) )
WEBHOOK_URLには、Slackの設定のWebhook URL
を指定します(環境変数等で)
参考までに、sentryからのAPIリクエストの中身を残します。
{ "id": "***", "project": "***", "project_name": "***", "project_slug": "***", "logger": "None", "level": "error", "culprit": "django.db.models.query in __getitem__", "message": "", "url": "https: ***", "triggering_rules": [ "Webhooks経由でのエラー通知", ], "event": { "event_id": "***", "level": "error", "version": "7", "type": "error", "fingerprint": [ "{{ default }}" ], "culprit": "django.db.models.query in __getitem__", "logger": "", "modules": { "aiohttp": "3.8.1", "aiosignal": "1.2.0", ... }
Sentry無料プランでSlackにエラー通知する方法の”Sentryの設定手順”を参照してください。
特にCallbackのURLの指定と、アラートの設定が重要です。
このCallback URLsには、DjangoのAPIエンドポイント({DjagnoサーバのBASE_URL}/error)を記述します。
Alert設定は、Send a notification via Webhooksを設定してください。これを忘れると、SentryからDjangoにPOSTされません。
ちなみに、サーバにAPIがない場合は以下のエラーになります。
上記の対応をすることで、Sentry無料プランでDjangoのエラーをSlackに通知できるようになりました。
ただし上記の実装だと、Sentryからの検証はできていません。
それを検証するコードの実装は、またの機会にさせてください。