プログラミングの学習-Python
12月に入ったので、プログラミングの勉強をすることにした。
プログラミングは、過去に挑戦しては、何回も挫折している。
私は、IT関係とは全く縁のない人生を送ってきた。
大学は化学系の学部を卒業し、入社した会社は電子部品の製造会社ではあったものの、もろに化学系の会社(〇〇化成という名前)だった。
そんなわけなので、最初に情報系の資格である基本情報処理技術者試験を受けようと思い立ち、勉強を始めたときは苦労したものだ。
なぜ、受けようと思ったのかというと、情報処理の勉強をすれば、AT関連の知識もついてプログラムもそこそこ書けるようになるんじゃないか?と、思ったからだ。
しかし、実際は全く違っていた。
基本情報処理技術者試験は、プログラムの知識を問う問題もあるが、ほとんどが用語の意味を問う問題だった。
情報処理と言えば、理系の試験みたいに思ったりしたものだが、実際は、2進数や16進数ほか数学的な問題もあるが、実際はほぼ文系の試験だった(理系、文系に分けるのはあまり好きではないのだけど)。
高校の授業で言えば、社会、特に政治経済とか倫理といったキーワードを覚えるタイプの問題が多い。
なので、試験に合格してもプログラムは全然わからないという状態だった。
そして、次に受けた応用情報処理技術者試験では、プログラミングはほぼ出てこない。
ということで、プログラミングは独自に勉強することにした。
ここで、どのプログラミング言語を学習すべきか?
プログラミング言語といっても、あまりにたくさんありすぎて、素人には何を選べばよいのか全く分からない。
そこで、ネットや本をいろいろ調べて、Javaを勉強することにした。
本をいくつか買い、勉強を開始したものの、いつも最初の方で挫折してしまった。
そうこうしているうちに月日は経ち、最近はどうもPythonというプログラミング言語が人気らしいというのを目にし、Javaはやめて、Pythonを勉強することにした。
プログラミングの本は、退屈で何やってるかわからないものが多くて、特に最初に「HOLLO WORLD」と書かせる簡単なプログラムが出てくるものが多い。
いつも思うのは、「だからなんなの?」
実際に、具体的なプログラミングっぽく動作して、実感できる解説書はないものか??
と思って、とりあえずたどり着いたのがこの本。
<script language="javascript" src="//ad.jp.ap.valuecommerce.com/servlet/jsbanner?sid=3753023&pid=892335045"></script><noscript><a href="//ck.jp.ap.valuecommerce.com/servlet/referral?sid=3753023&pid=892335045" rel="nofollow"><img src="//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=3753023&pid=892335045" border="0"></a></noscript>
↑試しにバリューコマースというアフィリエイトサイトで広告を貼り付けてみたのだが、うまく表示されない。
本日は気力がつきました。ここまで
<a href="//ck.jp.ap.valuecommerce.com/servlet/referral?sid=3753023&pid=892338467" rel="nofollow"><img src="//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=3753023&pid=892338467" border="0"></a>
<a href="//ck.jp.ap.valuecommerce.com/servlet/referral?sid=3753023&pid=892338480" rel="nofollow"><img src="//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=3753023&pid=892338480" border="0"></a>
応用情報処理技術者試験の勉強
電験2種の2次試験が終わってから、ネットワークスペシャリスト試験の勉強をスタートした。
ネットワークスペシャリスト試験は、情報処理系の国家資格のうち、基本情報処理試験、応用情報処理試験の上に位置する高度情報処理技術者試験に位置する。
そして、ネットワークスペシャリスト試験では、「午前1」「午前2」「午後1」「午後2」と4つの科目に合格しなければならない。
午前1と午前2がマークシート、午後1と午後2が記述試験だ。
午前1に合格しなければ午前2以降は採点してもらえず、午前2に合格しなければ午後1以降は採点してもらえず、午後1に合格しなければ午後2は採点してもらえないという仕組みになっている。
このうちの午前1の試験は、情報処理関係全般に関する問題で、その年の応用情報処理技術者試験の午前の問題(全80問)の中から、30問が出題される。これは、同時に開催される高度試験すべてに共通の問題となっている。
続く午前2の試験は、ネットワーク関連の知識を問う問題が25問出題される。毎年似たような問題が出題されるため、一番合格しやすいと感じる。
そして、午後1の試験は、ネットワーク関連に関して、主に1つのテーマに沿った具体的な事例について記述で答える問題だ。
最後の午後2の試験は、午後1の倍くらいのボリュームの問題で、具体的な事例だが複合的なテーマに関して記述で答える問題となっている。
そして、応用情報処理技術者試験に合格するか、他の高度試験の午前1に合格すれば、その後2年間は午前1の試験が免除されるという仕組みになっている。
私は、応用情報処理技術者試験に合格したので、午前1が免除されていたのだが、一昨年にネットワークスペシャリスト試験に不合格となったことで、この免除が切れてしまい、今年の4月に受けた時は、午前1からの受験となった。
しかし、その午前1の試験では問題を解くのに時間がかかりすぎてしまい、合格基準である6割には到底達しないことが確実と判断して、午前2以降の試験は受けずに家に帰ってしまったのだ。
敗因は、ネットワークスペシャリスト関係の勉強しかしておらず、応用情報処理技術者試験の範囲である午前1の勉強をほとんどやっていなかったため、すっかり中身を忘れてしまっていたことにある。
あと、戦略もまずかった。
6割取れれば合格なのに、最初の方の計算問題にやたら時間をかけてしまい、後半の問題は時間がなくて解けなかった(適当にマークしただけ)ことだ。
本来なら、すぐ答えが出る知識問題を先に解いて、時間があれば計算問題をやるべきだった。
そんなわけで、来年、ネットワークスペシャリスト試験を受けるならば、まず午前1で出題される応用情報処理技術者試験の勉強をやることにし、電験2種2次試験が終わってからは、応用情報処理技術者試験の午前問題の過去問をやっている。
電験の試験や司法書士試験の場合は、直近出た問題は出題されない傾向があるのだが、情報処理技術者試験では、日々新たな技術が追加されているので、過去問は、最新のものから遡ってやることにし、現在令和7年秋、令和7年春が終わり、令和6年秋に入ったところだ。
そして、今、令和6年秋の午前1の1問目に、定番のM/M/1待ち行列モデルが出てきた。
これは、定番なので必ず覚えておくべき事項なのだが、どうもわかりにくくて、個人的には理解度が低いと感じている。
その理由は、言葉が、平均サービス時間、平均到着時間、平均サービス率、平均サービス時間、平均利用率などと、仰々しい言葉を使っているので、その言葉の定義をいちいち覚えられないからだ。
わざと堅苦しい言葉を使ってわかりにくくしている感じがする。
いつもは、なんとなく理解して、なんとなく解いているので、たまに間違えたりする。
そこで、この機会に理解度を深めようと思った。
M/M/1待ち行列とは、結局のところ、データや人が次々に来る場合に、どのくらい待たされるのか?を計算するもの。
ここで、データや人の混み具合(ρ)を使うと、
平均待ち時間=ρ/(1-ρ) [データ数分、人分]
となり、1個のデータ、または1人の処理にかかる時間をかけてやれば、待ち時間が求められるというわけだ。
この混み具合ρを(平均)利用率といい、
ρ=(単位時間にどのくらいデータや人が来るのか)[個、人]/(単位時間にどのくらい処理されるのか)[個、人]
で表される。
この、
T=ρ/(1-ρ)
は、双曲線であり、軸をρ方向に1平行移動させたものにあたる。
グラフにすると、
のようになる。
このグラフは、
というサイトで作成した。
関数を入力すると、ネット上でグラフを描画してくれるサイトだ。
今回は、描かれたグラフをプリントスクリーンでコピーしてペイントで加工してみた。
というわけで、やはり、M/M/1待ち行列モデルの問題は、利用率(込み具合)以外は細かい言葉は覚えず、ρ/(1-ρ)だけ覚えてなんとかしようと思う。
少しは、M/M/1待ち行列について理解が深まっただろうか?(自問自答)
木星
最近は、しし座流星群などを見ようとしても、曇っていたり、晴れていてもなんとなく夜空にもやがかかったような感じで星がほとんど見えなかったのだが、今日は星が結構見えた。
やはり、本格的に冬にならないと、都市部では星はあまり見えないようだ。
冬の星座で真っ先に認識できるのは、やはりオリオン座だ。そしてオリオン座の一番明るい星、ベテルギウスと、その左斜め下あたりにある最も明るい星シリウス、その左上に見えるプロキオンが冬の大三角形を形作っている。
そして、今日は、その冬の大三角形の左上にシリウスよりも明るい星が見えている。
赤い星であれば火星なのだが、赤くはないのでおそらく木星か土星だろう。
そう思って、ネットで確認したら、やはり木星だった。
木星は太陽系の惑星の中で最も大きい。
その質量は、木星を除く他の惑星全部の質量よりも大きいが、それでも太陽の1000分の1程度らしい。
AIに聞いてみると、「太陽系全体の質量の約3分の2を占めています」となっているが、これでは太陽よりも大きいことになってしまうので、AIもまだまだだな。AIを鵜呑みにしてはいけない。
惑星は、太陽の周りを回っているが、太陽と木星の関係では、相互の引力の関係で太陽も木星に引き寄せられて、太陽の重心は太陽の半径をはみ出してしまうため、連星の関係にあるらしい。



