読者です 読者をやめる 読者になる 読者になる

組込み系プログラマの終末

プログラミング、デバイスドライバ、資格、試験、等などなど

プログラミングの面白さをひたすら語りたい

私はブログタイトルの通り組み込み系プログラマとして働いています。「組み込み系プログラマ」とは電化製品等の中に組み込まれる制御ソフトウェアを開発する人を指します。

 

なんだかよくわからないけど制御って言うとかっこいい感じかしませんか?でも実際にやってることはけっこう地味だったりします。

 

例えば電気ポットなら、

・温度センサの値を読み取って、100度になったらヒーターを切る

・水の残量が少なくなったら、空だき防止のためにヒータを切る

 

お掃除ロボットなら

・ロボットのタッチセンサが反応したので方向転換する

・ゴミが満杯になったので、通知ランプを点滅させる

 

「なんだそんなことか〜」と思われるかもしれません。でもこれがやってみると思いのほか面白いんです。プログラミングって面白いのです。

 

プログラミングとの出会い

初めてプログラミングに触れたのは大学1年の時でした。

 

C言語の基本的な文法やデータ構造に関する講義でしたが、残念ながら当時の自分にとっては とても退屈だったことを覚えています。

 

講義を受ける前は「プログラミングってなんか面白そう!」という漠然とした期待に満ちていました。

 

しかし実際に蓋を開けてみると『変数の型』『繰り返しの制御構文』などについて淡々と説明する講義。実際にコードを書いてもコンパイルエラーばかり。コンパイルできても黒い画面に数字が出るだけ。おまじないとかいう謎のincludeなど。だんだんつまらなくなり、そして講義の内容も頭に入らなくなっていました。

 

1年の終わるころには「プログラミング、期待していたのと違うなぁ。つまんね」というプログラム嫌い人間ができあがっていました。

 

その後いくつかの講義でプログラミングに触れる機会があったのですが『ソート』や『グラフ』も全く興味がわかず、「これがいったい何になるんだ・・・」と常々思っていました。

転機は大学3年時に訪れた

当時パソコンを持っていましたが、やることと言えば動画を見たりSNS、ネットサーフィンくらいでした。プログラミングの『ぷ』の字もない生活です。

 

そんな中、友人Aが

 

「一緒にゲームを作らない?」

 

と誘ってくれたのです。これまでの講義ではプログラミングの可能性を感じることもなく苦手意識を強く持っていたのですが、「ゲームを作る」という目的が大学入学時の「プログラミングってなんか面白そう!」という気持ちを呼び覚ましてくれたような感覚を覚えました。

 

当時はまだスマホ全盛期ではなかったため、ガラケー向けのアプリを作ろうと言う話になり簡単なパズルゲームを開発。eclipce+Java+携帯会社提供のエミュレータを用いました。

 

勉強からはじめ、半年たってようやくアプリマーケットにリリース

 

「あー終わったー」という達成感と満足感がありました。1週間後には3000DL以上され、「意外と面白い」「もっとステージを増やして欲しい」といったコメントがついていて、リアクションがあることへの驚きと、褒めてくれたことへの嬉しさがありました。

 

その後大学の講義で見かけたC言語を思い出し、無性に勉強し直したくなり 苦しんで覚えるC言語 や積み本になっていた 「やさしいC」「ふつうのLinuxプログラミング」などを使ってやり直しました。大学1年時はあんなに興味を持てなかった『変数の型』や『繰り返し構文』ですが、この時は「floatとintの比較は危険なのか!」とか「do while は条件が成立しなくても1度は実行するのか!どんな時に使うんだ?!」などと本当に興味を持って取り組めたのです。

私の考える「プログラミングの面白さ」とは

プログラミングの面白さはスポーツ(プレイする方)の面白さと似ています。

 

最初は思ったとおりに動けなかったり、基礎練習ばかりでイヤになるかもしれません。

 

そんな時、ライバル校との試合をしてギリギリの駆け引きや緊張感の中で体を操り、点を取った!

 

次第に「もっと上手くなりたい」と思うようになり、嫌だった基礎練習も楽しくなってくる。もっと試合したいと思うようになっていく。

 

最初は楽しさより苦しさが勝っていても試合や大会を通じて次第にのめり込んでいくというプロセスは、そっくりそのままプログラミングにも当てはまります。

 

「ならスポーツでいいじゃん。体も動かせて健康的だよ?」

 

健康面にかんしては間違えなくスポーツに軍配が上がります。ですがプログラミングの場合、スポーツよりもずっと自由度が高く、楽しみ方の幅が広いんです。プログラミングには【スポーツのような面白さ+自由】があるんです。

 

どんな自由があるかというと、例えばプレイ人数なら、

一人で好きなものを好きなように作る楽しさもあれば

チームで力を合わせて大きなプロジェクトを成し遂げる楽しさもある

 

使う道具だって

プログラム言語(C言語Javaなど)やフレームワークは常に進化しているし

パソコンのスペックに拘ってももいいし

マウスやキーボードに拘っても楽しい

お気に入りのエディターの設定をいじって自分仕様にするのも楽しい

 

試合だって

アプリ開発でも

製品開発でも

個人でサービス開発でも

競技プログラミングだってあるし

 ロボコンだってある

スーパーコンピュータを使ってシミュレーションする研究者を目指してもいい

 

技術を磨いて個人技を極めようとすると多種多様なジャンルがある。

例えば、ネットワーク、組込み、シミュレーション、ビッグデータ解析、分散処理、機械学習 etc...

 

プログラミングは確かに最初は苦しいんだけど、そこを超えた後の面白さは無限なんです。

 まとめ

ITの進化は目覚しく、だれもがスマホを使いこなし、会社では当たり前のように海外支社とテレビ会議、一昔前の超ハイスペックPCが家電量販店で安価に手に入る、そんな驚き溢れる時代です。

 

一方で近年プログラミング経験者は減少傾向にあるそうです。

 

ITの進化に合わせて、プログラマの活躍の場は多岐に渡っています。いつか人工知能プログラマの仕事をごっそり奪うかもしれませんが、その日までは可能性が無限に広がっているのです。

 

若い人がスポーツで汗を流すのと同じように、プログラミング界隈が活発になるといいな。

国語が苦手でも小論文試験(昇進・昇格試験)に合格できる勉強方法

私の勤務している会社では年に1度昇進試験があります。

 

試験としては業務に関する小論文、その他いくつかの筆記試験と面接があり、これら全てに合格すると年収で100万程度アップします。この試験を合格すると以後の昇進は非試験となりますが、逆に受からないといつまでも平社員のままで昇進しませんし、毎年試験を受けなければなりません。

 

合格率は15%程度で、1年目で受かる人もいれば20年目のベテランでも受かっていない人もいて、社内の評判としては【難しい試験】。皆が一様に声を揃えて「小論文が難しい」と言います。

 

私はこの試験を約3ヶ月の勉強で1年目で合格しました。

 

一般的に小論文試験を合格するためには国語スキルが必要と言われていますが、私の国語スキルは非常に低いです。あまり本を読まないため語彙力がなく、加えて人との関わりを避けがちだったため基本的なコミュニ ケーション(特に順序立てて説明すること)にも難があります。しかし幸いなことに小論文試験ではコミュニケーションが下手でも、多少日本語が不自由でも、押 さえるべきポイントを押さえることで合格できます。 

 

今回は実際に私の行った「国語が苦手でも合格できる勉強法」をお伝えしたいと思います。

 

【小論文試験(昇進試験)の分析】

試験まで十分時間が取れるならば国語力を底上げする方法が本質的で良い方法だと思います。しかし多くの方は仕事や育児が忙しく十分な時間が取れないのではないでしょうか。そのような場合【分析】は非常に有効です。自分の会社の小論文試験は受かるかもしれないけど、それ以外の小論は全くダメダメ状態、そんな状態を目指しましょう。

 

★合格レベルの小論文の分析

まず可能な限り合格者の論文を集めましょう。といってもなかなか集まるものではなく、私は2件しか集められませんでした。しかし2件でも集められれば有用なデータです。どのような内容が書かれているのか、どこが骨子か、題意にどのように答えているか、10回、20回読み込んで完全に理解しましょう。

 

私の入手した2件はそれぞれ

(1)自分の実施した施策が非常に効果的だったという【事実】を全面に出す論文

(2)自分の【考え】を全面に出し、その考えに基づき業務の中で〜という具体的な行動をした

という対象的なものでした。合格レベルの論文には優れた【事実】か、説得力があり可能性を感じる【考え】かが必要だと考えました。これを受け自分の方針を決めるのですが、自分の場合は勤続年数が短く具体的で強力な【事実】は持っていなかったため【考え】を全面に打ち出していく方針を選びました。逆に言えば【事実】を最小限に押さえるように気をつけたとも言えます。

 

練習で様々なお題について論文を書きましたが、文章全体の【事実】と【考え】のバランスは論文の完成度を高める上で非常に重要でした。基本的には人柄を見る試験なので【考え】に重点を置くべきだと思います。逆に【事実】を全面に出す方針は難易度が高いと思われます。「小論文なんだから考えを書くのは当然だろ?」と思われるかもしれませんが、実際に書いてみると前提条件の説明や、具体例、手順などを書きがちで、これらは【弱い事実の集合】なので結果的に完成度の低い小論文になってしまいます。

 

私の場合は合格論文(2)を目指し、自分の書いた論文との差異を分析し、差がなくなるように詰めていきました。

 

★小論文の問題(テーマ)の傾向を分析

私の勤務する会社の場合、問題の一例は以下のようでした。

 

(1)会社がこれからも価値を高めるためにはどうすればよいと思うか

(2)周囲の人を巻き込んで何をしたか

(3)会社にとって危機は何か。あなたはどう備えるか。

 

私はこれらの問題は全て【会社の成長ためにあなたはどう考え、どう行動したのか、行動していくのか】という1つのパターンに集約できると考えました。 おそらく良くあるテーマ設定なのではないでしょうか。

 

このようなテーマ設定では【会社の成長】と【自分の考え・行動】を繋げる必要があります。一般的にこの2つの接着剤は経営方針です。社長の言葉を調べることで、会社の長期的な目標が見えるはずです。例えば事業の多角化を推進するだとか、コストダウンによって競争力を底上げするだとか。社長の言葉は社員向けのものより、株主向けのものの方が具体的で分かりやすい場合が多いので、株主向けの方針説明資料を探しましょう。

 

経営方針をうまく小論に取り入れると、それだけで高い視点から全体を捉えている雰囲気を醸し出せます。

 

例えば

(1)会社がこれからも価値を高めるためにはどうすればよいと思うか

 価値を高めるためには〜といった理由からXXXが必要だ。そのためには一層のコストダウンが求められている。そこで私は〜を達成するために〜を検討し、結果〜くらいのコストダウンを実現した。

 

(2)周囲の人を巻き込んで何をしたか

 〜という理由で、会社が成長していくためにはコストダウンによって競争力を増すことが有効だ。しかし私の職場には〜という問題があり、それによって〜工程のコストが大きくなることがあった。そこで〜と連携し、この工程の〜改善を実施し、コストダウンを実現した。

 

(3)会社にとって危機は何か。あなたはどう備えるか。

 会社にとって危機は〜だ。近年〜は〜で〜だ。この危機に対処するためには〜。よって全社一体での総合的なコストダウンが必要だと考えた。そこで私は〜な理由で関連部門との一層の連携が必要だと考え、〜を実施した。それによって部門間で〜を共通化でき、〜工程のコストダウンを実現した。

 

【会社の成長ためにあなたはどう考え、どう行動したのか、行動していくのか】という問題のパターンに対する解のひとつは【経営方針に沿って問題に応え、自分の考え・行動に繋げる】ことだと言えるのではないでしょうか。よって経営方針をよく理解し、それぞれの方針について自分との関わりを整理しておくと良いと思います。

 

【実践】

さて、いよいよ実際に筆を進めましょう。小論試験では「なにも書くネタがない〜」ということをよく聞きます。ほとんどの場合そのように言う人は、過去に自分がやったことからネタを探しています。しかしそのやり方は危険です。上で述べた【問題の分析】と重複しますが、業務系小論文の場合は「会社の方針」「経営目標」ありきで考え、それに繋げられるネタを探すべきです。

 

会社の方針を理解し、自分の経験と照らし合わせいくつかストーリーはできましたか?まず下手くそでもいいのでそのストーリーを小論文として書き上げましょう。話はそれからです。

 

★自分の文章の癖を知り修正する

 自分の文章の癖は自分自身ではなかなか発見できません。この点に関しては上司・友人・家族に小論を見てもらい、「どんな印象を受けるか」「分かりにくい箇所はどこか」と言う観点でアドバイスをもらうことをおすすめします。内容についてがっつり意見をもらうというよりは、文章の雰囲気を見てもらうことを期待しているため、気楽に話せて、あまり忙し過ぎない人に見てもらうといいと思います。私の場合は妻に見てもらい、以下のようなアドバイスを得ました。

 

・なんとなくネガティブな印象を受ける

・文章の繋がりが悪く、内容が頭に入ってこない

・淡白な印象で、盛り上がりに欠ける。眠くなる。

 

これに対して原因を追求していく。

・なんとなくネガティブな印象を受ける

 余計な一言が多い。例えば「本来は〜すべきだったが、〜によってできなかった」といった できなかった情報を付けがち。

 

・文章の繋がりが悪く、内容が頭に入ってこない

 接続詞を使っていないため文章がぶつ切りになり読みにくいケースや、くどい説明によって大事な主張が隠れてしまうケースがありました。「しかし」「つまり」「よって」等をうまく使えていない箇所もありました。

 

・淡白な印象で、盛り上がりに欠ける。眠くなる。

 【事実】と【考え】のバランスで、【事実】が多い場合に淡白になるがちです。さらにその事実が説明などの【弱い事実の羅列】だとこれまたつまらないものになってしまいます。また考えの根拠が弱かったり、当たり前の主張だけだと盛り上がりの無い文章になってしまいます。

 

まずは自分の文章の癖を発見することが重要です。そのためには他者の目が有効です。

 

★「題意に沿った」論文を書けるようにする

3割〜4割の受験者は題意に沿っていない小論文を書いてしまい、確定不合格となってしまっているそうです。つまり題意に沿って書き上げられれば、それだけで合格可能性が上がります。具体的には全体で合格率15%の試験において、題意に沿っていないため不合格が40%だとすると、題意に沿っている小論文の合格率は15/60で25%まで上がるんです。

 

しかし題意に沿っていても肝心の内容がお粗末ではいけません。題意に沿ってなおかつある程度の内容が書ける受験者は半分程度だとすると、その受験者の合格率はなんと15/30で50%まで上がります。

 

つまり題意に沿って、なおかつある程度の内容がかければ2〜3年間での合格率は85%まで上がるのです。

 

よって小論文試験においては、題意に沿うことはスタートラインで、絶対に外してはいけないポイントなのです。

 

さて題意に沿った小論文を書くためには何が必要なのでしょうか。 

 

答えは【全体構成をしっかり考える】ことです。理想的には小論文を書き始めてから殆ど筆を止めずに書き上げられるような全体構成が望ましいです。

 

つまり全体構成は小論に登場する【要素】と、その要素間の【繋がり】を正確かつ十分に含んでいる必要があります。

 

このレベルの全体構成を書けると、小論文を書き始める前にそれを見ながら題意に沿っているかどうかといった確認が可能になります。このひと手間で題意に沿っていない→確定不合格をかなり回避できるはずです。

 

試験時間にもよりますが、私の場合は最初の30分を全体構成に充てると決めて試験に臨みました。

 

最初は全体構成を書いても、小論文を書き始めるとすぐに筆が止まると思います。私はそうでした。そのようなとき、なぜ今筆が止まったのか、逆にどのようなことを予め考えていれば止まらなかったのかということを意識し、少しずつ構成力を磨いていくことで構成力はアップしていきます。

 

 ★内容のブラッシュアップ

 さて自分の文章の癖を修正しマシな日本語になり、題意に沿って書けるようになっても結局内容がお粗末であれば合格は難しいです。ブラッシュアップは絶対に避けては通れないでしょう。

 

この段階では上司に添削を依頼することが最も効率的です。上司はつまらないこと(日本語が変だとか、題意に沿っていないだとか)に惑わされず、真っ直ぐに小論文の主張を理解し、有用なアドバイスをくれるでしょう。

 

逆に言えば、日本語が変だとか、題意に沿っていないだとかというレベルのものを添削してもらっても、内容のブラッシュアップまでは到達できないと言えます。

 

上司に見せずに自分でブラッシュアップすることもできなくはないですが、有効性は下がります。会社によってカラーも違いますし、上司の意見を聞くことは1度はすべきと思います。

 

 【総仕上げ】

意外と忘れがちなのが、時間内に書き上げなければ意味がない、ということです。時間を計って論文を書く練習は欠かせません。

 

私は手書き試験だったため本番までに15本程度時間を計って書きましたが、15本目では最初より30分程度早くかけるようになっていました。論文試験は時間との戦いでもあるので、このスキルアップは本当に有効です。

 

【まとめ】

約3ヶ月間、毎日2時間程度(直前の土日はフル)この昇給試験にかけ、なんとか合格はしましたが、はっきり言って余裕はありませんでした。基本的な国語力は低いままなので試験の傾向ががらっと変わったら全く対応できませんしね。

 

この試験において勝敗を分けたのは【他者の目】を積極的に活用したことだと思います。自分の書いた文章を人に見せ、ダメ出しをされるというのは私にとっては苦痛でしたが、早期から妻の協力を得たこと、何度も上司に添削を依頼したことが最も大きなポイントだったと感じています。

 

読んでくださった方の一助となれば幸いです。

C言語を学んだほうがいいと言われ続けている3つの理由

大部分のプログラマにとってC言語は殆ど縁の無い言語ではないでしょうか。しかし「C言語を知っておくといい」という謎の呪文を聞いたことがあるプログラマは多いんじゃないかな?「C言語を知っておくといい。ただし仕事で使うことはないだろう」・・・意味不明ですが時々聞きますよね。
実は私もそんな呪文を唱えたい気持ちをぐっと堪えて過ごしている身です。C言語を学んだほうがいいと言われる所以をC/C++プログラマ視点で書いてみます。

新しい言語やフレームワークを前向きに学べる

例えばHTTPサーバを実装しようと思ったとしましょう。
HTTPサーバとはGETとかPOSTといったリクエストを受けて、HTML形式の文字列を返すサーバプログラムです。万が一血迷ってこれをC言語で実装しようとしたら最低でも下記の知識が必要です。

ソケットプログラミング(socket,bind,listen等)
文字列処理
メモリ管理
並列処理(fork,pthread,mutex等)
ディレクトリ操作
シグナル

などなど・・・信じられないほど膨大な知識を要求されます。最小限の動作だとしても1000行以上のコードになるでしょう。C言語は低レベルな言語なので1から10まで実装してあげないといけないのです。


ではこれをスクリプト言語Rubyで書くと・・・

require "webrick"
Thread.start{ 
   WEBrick::HTTPServer.new(DocumentRoot:".",Port:8888,BindAddress:"127.0.0.1").start
} 

たったこれだけです。なんと4行です。もちろんこれは実用レベルではありませんが、このコードだけでカレントディレクトリを公開できます。さらにすごいことに、webrickRubyの標準ライブラリに組み込まれています。つまりRubyをインストールしたら最初っから入っているわけです。こんな高機能なライブラリがゴロゴロしているんです。何気なく普段使っているライブラリも、C言語で書いたら数千行になるって考えると高級言語に思わず感謝してしまいます。
感謝することの何がいいかって、ポジティブな気持ちで技術に取り組めることです。 「この糞仕様言語が!」と思いながらよりも「こんな機能があるんだ。すごい!」という気持ちで学んだほうが学習効率がいいですよね。

バグの経験値でレベルアップ

アプリケーションはさまざまなトラブルを引き起こします。アプリケーションが突然終了、フリーズ、明らかに様子が変等・・・
こういった場合の原因は色々ありますが、C/C++で一例を挙げると

メモリリーク
リソース開放忘れ
スレッド間のデータ不整合
NULL参照
割り込みの競合
スタック破壊

などなど実に様々です。スタック破壊などは極悪の極みで「二度とこんなデバッグやりたくねえ・・・」と思うこと間違いありません。
スレッドセーフの問題はどの言語でも問題になりますが、高級言語でこのくらい低レベル(ハードに近い)なバグはあるのでしょうか?私はあまり見かけません。おそらくスマートポインタ、ガベージコレクション、ライブラリ、フレームワーク等によって隠蔽されているおかげなのでしょう。

このような低レベルなバグのデバッグは大変ですが、プログラマとしては経験しておくべきかもしれません。

・実装時に慎重になりバグが減る
・裏でどんな処理が動いているか想像できるから、実行コストを意識したプログラムを書ける
・コンピューターの仕組みに詳しくなる

このような効果があるのではないでしょうか。

ちなみにやたらバグ修正していますが、私は他人の尻拭い(バグ対応)をすることが多いだけで自分の書いたプログラムがバグだらけなわけじゃないです!あしからず。

アプリケーションの高速化

C言語は高速です。スクリプト言語の数十倍〜数百倍で高速動作します。高速動作するということはとても大きな意味があります。サーバアプリケーションの場合同時に多数の人がアクセスするから、処理時間が遅いと全てのクライアントを待たせることになります。スクリプト言語で処理時間がボトルネックになってしまった場合、そのボトルネック部分だけC言語で書くことで効率改善できるかもしれません。
問題が起きた時の最終手段としてC言語置換ができる、このことに価値を見いだせるならC言語を学ぶ意味は大きいです。

まとめ

C言語を使用する機会は限られています。しかしC言語のような低レベルな言語を学ぶことで、他言語習得コストが下がったり、実装スキルがあがったり、アプリケーションの高速化ができたりと意味はあると思います。是非一度触ってみて欲しいです。

小論文 昇進・昇級試験のための小論文テーマ例10個

小論文ってなにを書けばいいのかわかりませんよね。なにはともあれ、業務内容や思考を整理するためにもまずは幾つかのテーマで書いてみることが重要なのではないでしょうか。WEB上で見つけた昇進試験のための小論文テーマをまとめたいと思います。

昇進試験の小論文テーマは抽象的なので、同じテーマに対して別のアプローチで書いて見ることも有効だと思います。 

 

国語が苦手な私でも合格できた昇進試験の勉強方法をまとめました。

public2015.hatenablog.com

 

【1】担当している業務において改善を要すると考える重要課題を一つ挙げ、その問題の原因を分析し、解決するに足る方策を提示する

 

【2】企業価値向上に向けて私が業務を通じて貢献できること

 

【3】職場における私の役割と課題

 

【4】職場の中で得た知識・経験と今後の課題・目標

 

【5】あなたの最近に職務成果を、あなたの現在の組織ポジションとその職責を踏まえて、その達成過程を含めて具体的に述べよ

 

【6】ここ数年のマネジメントの中で、一番苦労したこと、また組織マネージャーとしての自己の成長が得られたと考える職務実績を、その根拠を明確にして述べよ

 

【7】今の業務で最も重要な課題に対して、あなたはどう取り組むか?

 

【8】チームワークの向上とリーダーの役割について

 

【9】業務の効率化とは

 

【10】あなたがこれまでに成し遂げた仕事の中で、最も達成感があり、誇りに思える過去の業績について述べよ

電験三種の試験中に使うべき小技・テクニック

以前の記事で述べましたが、公式丸暗記や過去問を覚えるほどやりこむといった小手先のテクニックは嫌いです。100%理解して、納得した知識を使って問題を解くのが好きです。

 

public2015.hatenablog.com

 

ですが電験三種では知らないと損するテクニックというものも存在すると思います。そういったテクニックに着目して話したいなと思います。

 

試験当日のテクニック

試験当日にいきなり実施するのではなく、普段の演習時から実践することを激しくおすすめします。

【1】電卓のメモリー機能を使いこなす

電験の試験では使用出来る電卓が限られています。ちなみに関数電卓は使用できないので注意してください。

 

私は電験のために電卓を新調し初めてメモリ機能について知りました。これを知らないと計算時間が+10%はかかるのではないか?というほど優れた機能で、是非活用してもらいたいです。

 

メモリ機能とは、計算結果を電卓上のメモリに格納しておける機能です。このメモリは好きなときにアクセスできます。メモリ機能を使用しないでA✕B+C✕Dのような積和の混じった計算をするとき、まずA✕Bを計算して結果を紙に書く、次にC✕Dを計算し、その結果と紙に書いた前の計算結果を足しますよね。メモリ機能を使うと、紙に書いておくといった動作が不要になります。詳しい使い方は電卓の説明書を見てくださいね。

【2】マークは最後にまとめて行う

問題を解くたびにマークする方法は以下の理由からおすすめできません。

・問題用紙と解答用紙を行き来する時間が増え効率が悪い

・解答欄をずらして書いてしまうミスが起こりやすい

 

当たり前のテクニックですが、もし実践していないのでしたら騙されたと思ってやってみてください。

【3】法規の時間配分はA問題:B問題=1:4

この記事の先頭で触れた過去記事にも書いていますが、法規はB問題に時間をかけてください。A問題は知らないのはどれだけ考えてもわからないので、変に悩まないでB問題に取り組むべきです。A問題は半分正解、B問題は全問正解の76点を目指すのが最も効率の良い法規の戦略だと思っています。

 

【4】問題を見て、回答方法が思い浮かばなければ飛ばして後回し

この目的は、とりあえず全ての問題に目を通すことが目的です。簡単な問題は確実に取る。難しい問題は後回しにし、効率良く最大得点を狙いましょう。

 

私は、1周目で30点分くらいは自信を持って解答していました。2周目で少し自信ないけどだいたい解いて、3周目は解けたらラッキーくらいってもんでした。

試験当日までにやっておくこと

【5】何分で2周目まで終えるかを決めておく

4番との絡みですが、試験開始後何分で「だいたい解けた」状態(つまり1周目、2周目を終えた状態)になるかは事前に測っておくといいと思います。

時間感覚が無いと無意味に焦ってしまうので、それを避けるためには冷静に余裕があるのか、遅れているのかを知る必要があります。

 

たとえ想定していた時間より遅れてしまった場合でも、冷静であれば解けそうな問題を見極め合格点を取ることは十分可能です。

【6】電線の公式だけは丸暗記

公式の丸暗記は断固反対です。最終的に覚えるにしても、導出を理解し、繰り返し導出した上で自然に覚える方法が最善だと思っています。

 

しかし!電験三種の電線関連の公式だけは別です!これは導出難易度が高い上に電気的な法則も絡まないため覚えたほうがいいです!

電線の長さの公式

f:id:public2015:20150602233023p:plain

 

電線のたるみの公式

f:id:public2015:20150602233027p:plain

私は上2つの公式をホワイトボードに書き、それを冷蔵庫に貼って毎日チラ見して覚えました。語呂合わせなんてなんでもいいんです。ハト分のWS二乗とかでもいいんです。毎日見てればすぐ覚えられます。

 

逆にこの公式以外は丸暗記不要だとも思っています。

 

まとめ

基本的にはテクニックに頼らない地力アップ戦略を取るべきです。

テクニックとは最後の数点分の上積みに効いてくる程度のものです。

 

でもやっぱりテクニックってあるんですよねえ

意外と無視できない点数に繋がったりもしますし。

電験三種の参考書のレビュー おすすめ参考書

電験三種の参考書について評価・レビューしたいと思います。まずはさらっと電験という試験について述べます。さらっとね。

第三種電気主任技術者試験の概要

・理論・電力・機械・法規の4科目の試験

・100点満点中60点以上で科目合格(年度によって合格ラインが下がることもある)

・4科目全て合格する必要がある。

・科目合格制度があり、合格した科目は3年間有効

・合格率は10%以下

・試験は1年に一度のみ実施

・範囲が非常に広い

マークシート方式

私の受験勉強戦略

・機械の構造、電力設備の構造など、構造の理解を最重要視する

・理解した構造を絵に書いてみる。構成要素の役割を確認しながら、正しい構造をスラスラかけるまで繰り返す。

・交流、グランド、コンデンサ等の基本的なワードのイメージをしっかり掴む

詳細は過去記事にもまとめています。

 

public2015.hatenablog.com

さて、タイトル通りレビューを始めます。評価値の意味は下記みたいな感じです。

使用した参考書とレビュー

★☆☆・・・買わなくてもいい。

★★☆・・・お金に余裕があれば買ったほうがいい

★★★・・・超おすすめ! 絶対買うべき!

【1】これだけ機械

これだけ機械 改訂新版 (電験第3種ニューこれだけシリーズ 3)

おすすめ度 ★★★

本全体が平易な表現で書かれていてかなりわかり易かった。

分かりやすさを優先して内容を犠牲にする本が多いが、「これだけ機械」は分かりやすさと内容を非常に高いレベルで両立しています。図もわかりやすく、要点を押さえていて見やすいです。よく読み込むとしっかり腑に落ちる説明もGood。

全部で60項目から構成されています。項目の横に、勉強したらチェックをするという勉強をしていました。多い項目は3回以上やりこんでいます。

最初に購入したこれだけシリーズでした。この後残りの3冊を買いにいってしまった(笑)

 

【2】これだけ理論

これだけ理論 (電験第3種ニューこれだけシリーズ)

おすすめ度 ★☆☆

普通。電験の理論は高校物理+αで対応できると思っているのですが、その+αの部分は個人サイトや電験公式サイトの方がわかり易かったなぁ。高校物理には自信があったのであまり役に立ちませんでした。

 

【3】これだけ電力

これだけ電力 (電験第3種ニューこれだけシリーズ)

おすすめ度 ★★☆

良かったです。買う価値は十分あります。機械と同じように何度もやり込みました。

ただ電力という試験の難易度が機械に比べて低い(と感じていた)ので、機械ほどの感動はなかったので★2つです。

 

【4】これだけ法規

これだけ法規 (電験第3種ニューこれだけシリーズ)

おすすめ度 ★★★

超おすすめ。何が素晴らしいって、本が薄いこと!法規という勉強が苦痛で仕方ない科目がコンパクトにまとめられています。内容も、丸暗記せい!というものではなく、できるだけ理解して意味を覚えてもらおうという意図が感じられました。その点も評価高いです。毎日通勤バックに入れて読んでいました。結局3周くらい読んだかな?

 

【5】電験三種完全攻略

電験三種完全攻略 (LICENCE BOOKS)

おすすめ度 ★☆☆

これは非常に人を選ぶ本だと思う・・・4科目を1冊にまとめた本です。当然項目ごとの説明は非常に簡素で、ほぼ公式が書かれているだけです。

私はケチなので最初にこの本を買い、これ一冊で合格する気でいました。しかし機械分野で挫折・・・これだけシリーズへと移行しました。

勉強をひと通り終えたあとに読むと、各項目を表や公式で簡潔にまとめており手軽に復習ができよかったのですが、これ一本で勉強するのはものすごく(本当にすっごく)辛かったです。

 

【6】過去問10年分

おすすめ度 ★★★

本の名前を忘れてしまいましたが、問題→解説→問題→解説という構成の本です。問題を解いてすぐに確認できるのがとてもよかった。10年分は計画的に、2000年→2002年→2004年→・・・2001年→2003年→・・・前年度の問題、という順番で解きました。最初はいくら時間をかけてもいいので全問解ききるように実施し、残り6年分となった辺りから時間を測って取り組みました。最後の三年程度では全ての科目が安定して8〜9割超取れるようになっていたので、自信に繋がる一冊でした。1周目を終え、2周目は間違えた問題だけやり直し、やり直しした分野はこれだけシリーズで復習し、3周目は2週目に間違えた問題だけをやり直しました。

 

【7】予想問題集3セット(オーム社)

平成27年度 電験三種予想問題集

おすすめ度 ★☆☆

過去問10年分解いてしまって、演習問題がなくなったのでとりあえず買ってみました。これに取り組む段階でかなり仕上がっていて、過去問ならば安定して9割とれるレベルでしたが、予想問題は5〜8割程度しかとれないという非常に焦る結果となりました(笑)。個人的には実際の問題より難しい問題を解くという勉強方法は好きなのですが、資格試験に合格するためには不要かな〜という印象です。良かった点は、理論のB問題で予想問題と全く同じ問題が出たことです。1〜2問くらいの底上げにはなるかもしれませんが、学習コストに見合わないですね。

 

 まとめ

これだけシリーズは完成度の高い参考書なのでおすすめです。

これだけシリーズは学習量が膨大になってしまいます。6割程度読破したところで過去問に移行し、残りの4割は過去問で関連分野を解いた際に取り組みました。演習と座学のバランスが大事です。

応用情報 情報処理技術者試験の勉強法

基本情報を受けて午前60点、午後60点。ギリギリ合格したものの分からない問題は多数、勘で答えた問題も多数。受けた感触も最悪でした・・・。

そんな苦い経験があったので応用情報処理試験はしっかり準備しようと思い、計画的に勉強しました。約4ヶ月、1日2時間程度の勉強を続けて午前90点、午後80点。余裕を持って合格しました。基本情報での失敗をどう活かしたか、基本情報と比べてどうだったか等にスポットを当てて応用情報試験の勉強方法について述べたいと思います。

 

自分のした勉強

合格教本を2〜3ヶ月程度かけて読み込みを行いました。合格教本は試験範囲を知るにはいいのですが、試験範囲の内容を理解するには不十分だなあというのが印象です。もっとも全ての範囲を十分詳しく書いたらとてつもなく分厚い本になってしまうので仕方ないんでしょうけどね。

そんな合格教本を使っての勉強は、あるセクションを読む→分からない言葉や腑に落ちない点はWEBで検索〜というのをひたすら繰り返す愚直なものでした・・・。

試験前の1ヶ月程度は過去問を解いていました。午前問題は通勤時間に、午後問題は帰宅後に取り組み、合計5年分くらい解いたかなぁ。

合格するための勉強法

さて、愚直に全部の範囲を勉強したわけですがやはり無駄は多かったと思います。(合格を目標とするなら最短合格ではなかったという意味で)自分のやったことを振り返って、合格するために絶対したほうがいいと思うこと、おすすめできることをピックアップして述べてみます。

【1】ストラテジ・監査・プロジェクトマネジメントの用語をマスターする

情報処理試験を受ける人ってエンジニアが多いと思います。エンジニアって文系科目を軽んじる人が多いんじゃないかな〜と思ってます。というか私がそうなんです。この試験でいうと、ストラテジ・監査・プロジェクトマネジメントがそれに当たるんですが、基本情報のときはこの分野を完全無勉で受けてしまい、午前はほぼ全滅しました。

 応用情報で初めてこの分野を勉強したのですが、実はかなりコスパがいいとわかりました。午前問題でいうと、ある程度用語を覚えればストラテジ系は8〜9割安定して取れるようになります。午後問題の選択のプロジェクトマネジメント・サービスマネジメントのいずれかは解けるようになります。

具体的に何をするのかというと、用語を覚える。これにつきます。たとえば、KFSという用語があります。省略語でなく、もとの英語を覚えます。

KFS ⇒ Key Factor for Success・・・成功のためのキーとなる要因。

これをひたすらあらゆる用語で行う。これだけです。

ポイントは机に向かわず、何度も繰り返して定着させること。私は付箋の表に「KFS」、裏に「Key Factor for Success・・・成功のためのキーとなる要因」と書いて家の中に貼って覚えました。この分野を押さえると午前はまず60点切らなくなりますし、午後も1題はだいたい解けるのっで合格にぐっと近づきます!

【2】午後の必須選択・プログラミングとストラテジ→プログラミングを選ぼう!

基本と応用、両方受けて特に違うなと思う点は、プログラミング問題です。一言でいうと・・・

基本情報のプログラミング → 泥臭い

プログラム実行時の配列のインデックスを求めさせられたり、擬似言語の穴埋めだったりと、わりとしっかりプログラムを読まなければ解けない問題が多い傾向があります。

応用情報のプログラミング → 日本読解

それに対して応用情報のプログラミングは、答えはほとんど問題文の中に書かれていて、あまり泥臭い作業を強要されません。本当に問題に書いてあるんです。答えが・・・。

応用情報のプログラミング問題ははっきり言って簡単です。逆にストラテジは難易度の差が激しいし、0点はとらないけど満点も取れない、という印象を持っています。プログラミングなら、しっかり対策すれば満点を十分狙えます。練習ではどれだけ時間をかけてもいいから、問題文の中に答えがあるということをしっかり確認してください。

【3】午後は解かない問題を決めておく

自分はデータベースとネットワークは解かないと決めていました。それで情報処理技術者を名乗れるのかというツッコミはありますが、勉強をしないと言っているわけではないです。全ての午後選択問題の過去問を数年分解いてみて、平均して一番得点率が低くなおかつ時間もかかる分野だったので本番では切ることに決めたのです。午後問題は時間がシビアで、問題選択はできるだけ早く済ますに越したことはないですしね。

私はデータベースは業務で使わないので苦手意識があり、午前問題でも手こずっていたのですが、午後データベース問題を解くことで少しだけ慣れることができました。最初っから解く午後問題を決めていたらきっと午前のデータベース問題も解けなかったと思います。午後選択問題は、苦手な分野でもひと通り解いてみることをおすすめします。

まとめ

ストラテジ系は用語を確実に押さえる

プログラミング問題は演習を行い、問題文中に答えがあることを実感する

午後問題は全部解いてみる。それから平均得点率や解くのにかかる時間を調べて、本番で選択しない問題を決定する。