IT関連未経験ド素人プログラミング独学者が「基本情報技術者試験」を受験して「意味があるのです！」と感じたことN選

ハローワールド！！:sunny:
世界の皆様こんにちは。　
みんなのお友達たまちゃんだお:relaxed:　

:::note info
「**基本情報技術者試験**」って受ける意味あるの！？
:::


と思っている方。

<font color="Red">「きwww  　基本情報ってwwwww
実務には関係ないからww　持ってても無駄無駄無駄無駄オラオラオラオラァ！！」</font>

とか

<font color="Red">「基本情報？　意味あるのは高度からだからwww　　乙乙パーリナィww　　ネカマは脳死でTikTokでも見て寝ろwww」</font>

とかいう方もいるでしょうし、インターネット（主にTwitter）では**基本情報いるいらない問題**が勃発してます。


結論から先に言いますと、


:::note info
「**意味。　　あります！！！！」**（ドンッ！！）
:::

その理由ですが。

これは、そもそもその人の**状況**にもよると思います。

老若男女、すべての人類に必要なわけではございません。


もちろん実務ジャンジャンバリバリの方にも必要ございません。

というか、そういうバリバリジャンジャンの人はわざわざ基本情報なんぞ勉強しなくていいでしょう。

そういう方は基本情報の勉強などせずに、その時間を**Switchのリングフィットアドベンチャーでもして運動する時間に回した方がいいです。健康になりましょう。**

なので先に、そもそも<font color="Red">アタイがどんな人物で、何をしている人だから意味があると思ったか、そこが重要なので簡単に自己紹介します。</font>

私は、自称２１歳のキュン:hearts:かわツンデレ女子大生:woman_tone2:（以前はJKを頑なに名乗ってましたが、少し成長しました。）なのですが、もう１面としては、**アラサー以上の男の子、仕事はIT関係とはまったく一ミリもかすりも関係もない仕事をしているサラリーマン**です。

認めてませんが:frowning2:

仕事ではワードとエクセル、メールくらいしか使いません。
PCは再起動するか、叩けば治る。**熱くなったアダプターは冷蔵庫で冷やす**。くらいのリテラシーでした。

プログラミング？　何それ？　横文字やめて！！　横文字使えば賢い、って思われると思ってんやろ！！:frowning2:それ特殊詐欺やからな！！　って感じです。

アタイは基本情報技術者資試験合格（受けたのは6月29日でしたが、マイページで点数わかるので合格わかります）しましたが、もちろん会社から手当などまったくございません！！

完全なる趣味枠になっております。

この状況だけであれば、

え？？　

**基本情報技術者なんぞ勉強してあなた様に何の意味があったの**？ですが。

ですがですが。


アタイは独学（本とネットで覚えました）で**スマホアプリを作っておりまして、iOSとAndroidでアプリをリリースしております**。

今リリースしているのは合計で12個。

App StoreにもGooglePlayにもアタイ産アプリがございます。


学習開始は2021年7月。これを書いている今は2023年7月なので、ちょうど学習開始から2年経ちました。

アプリの収益は今の所、月数万円程度。

ちょっとしたお小遣いになっております。（貯まるとその都度家族に搾取されてます）


:::note info
全くのIT関係未経験、学習経験も2021年7月からのアプリ開発の学習のみ、メンターなんていませんし誰も周りに指導してくれる人なんていない。

:::



周りにIT関係誰もいない孤独ボッチ。

お友達はインターネットにたくさんいるから寂しくないもん！！:frowning2:

そんなアタイですが、


**基本情報技術者試験はとってもいい**！　と思いました。


この資格の勉強。

**勉強内容（試験範囲）がよくできてるなぁ。と。**

<font color="Red">特にプログラミング（科目B）！！！</font>

ちょっと試験について触れますが、基本情報技術者試験は**科目A試験**と**科目B試験**に分かれております。

科目A試験は知識問題。

ざっくりいうと、

* テクノロジ系
* マネジメント系
* ストラテジ系

から出題される知識問題（計算問題もあり。）です。　

科目A試験は、まぁ役にたつ知識もある。IT関連の知識ですし、なるほどなーって感じです。　

CPUってそういうこと！

メモリってそうだったんだ！　

パソコンは叩いても意味がなさそう！！
むしろハードディスクには天敵じゃん！！

グローバルな常識である「叩けば治る」はパソコンには通用しません。

その他もろもろ「ふーん」となるものが多い。


本題はここから。


<font color="Red">科目B試験はプログラミング問題！！！！　</font>

A試験の出題範囲の内容も役に立つことは立つのですが、本当に役に立つのは科目B試験です。

基本情報技術者試験を過去に学習していた有識者の方の中には



「いやいやいやいや、科目B試験って選ぶ言語によるでしょ？　にわか乙wwww 」

っていう人もいるかも知れませんが、

そうじゃないんです！


この基本情報技術者試験は<font color="Blue">　2023年4月から、CBT試験という方式にミラクル進化しました。

これまでは言語を選んで（以下から）

・表計算　
・C言語　
・Java 
・Python  
・CASLⅡ 　　　から１つを選び

受験をする必要があったのですが、現在は　<font color="Red">擬似言語</font>　というものに変わりました。</font>



私はアプリ開発でプログラミング言語は　swift と　C#　しか使っていませんし、その他は使えません。

必要になったら必要な言語使えればヨキやね、精神です。

なので、**これまでの試験だと選択する言語がなかった**んですよね。

試験に合格するだけなら、比較的点数が取りやすいっていう「表計算」を選ぶ、なんてセオリーがあったみたいですが、それ・・・・・


私、使わんがな:blush:

使わないもの勉強する暇あるなら少しでもアプリ開発進めるか、**アマプラでクソアニメでも見てたほうがいい**ですからね。


うーん、この選択科目じゃ勉強する意味ないな、趣味で取るにしてもいらぬ。

だったのですが！！！！

今の試験制度になってできた、<font color="Red">「疑似言語」</font>ならすべて解決！！🤗

私が多少使えるつもりのSwiftもC#も、「オブジェクト指向」というプログラミング言語なのですが、勉強していると

SwiftとC#・・・

**書き方が違うだけですごい似てね**？？　ってなるわけですよ。

基礎的な部分は似てます。てかもう、誤差の範囲やろ、ってアタイは思ってます。

コンピューターに同じ処理を繰り返し処理させる（ループ文　while文）とか、変数とか配列のルール、プログラムは上から順番になど、最低限のルールは同じです。

それを<font color="Red">各言語の特徴的な書き方ではなく、疑似言語として共通化させて学ばせる。</font>

これが**現在の基本情報技術者試験の科目Bです。**

擬似言語・・・・

いいじゃん・・・・:relaxed:

Swiftもc＃も似てるよね、って例を簡単に一つ。　変数の書き方。

変数っていうのは箱です。　箱だからもちろん、物を入れます。　

物を入れるための箱です。　

そしてこの箱には文字を入れたり数字を入れたり、色んな物を出し入れすることができます。　


Swiftで書く場合

var hako = 21 　

var って書くことで次の文字を変数の箱とするよ！と宣言。
その隣の hako　がまさに箱。　
＝　の右の文字がこの　hako　 に入ります。　
つまり今は　21　 という数字が入ってます。私の年齢ですね。

C#で書く場合　

var hako = 21;

var って書くことで次の文字を変数の箱とするよ！と宣言。
その隣の hako　がまさに箱。　
＝　の右の文字がこの　hako　 に入ります。　
つまり今は　21　 という数字が入ってます。私の年齢ですね。

<font color="Red">あれ！？これコピペ！？</font>

ってなりますよね。　

違いは

C# で書いているコードは　お尻に　<font color="Red">；</font>　がついている！

var hako = 21<font color="Red">；</font>


違いはこれだけ！！　

（もちろん普段はちゃんと型指定してますが、そこはとりあえず置いておいてください。）

めっちゃ似てるジャン！？　

Pythonは直で変数ぶっこむわ！　とか、とりあえずそういうのはいいです。　

大体似ています。（トイプードルなのか芝いぬなのか、そのくらいの差です。一緒一緒。考え方、読み方など）


私のような独学者で素人ペーペーで情報処理に触れてこなかったかわいい:two_hearts:くらいしか取り柄のない人間には、プログラミングの基礎がありません。

業界ではひらがなのように当たり前なことがわからないのです。

入門本で読んで学ぶ。もちろん本なので書いてあるだけ。

本がしゃべって<font color="Red">　「ちょっとちょっと！！　そこは超重要なんだからねっ！！　勘違いしないでよね！？」　</font>とか、ツンデレ指導してくれる訳ではないので、太字の上色文字で書かれていてもスルーしてしまう。

アタイみたいなど素人がちょっと太文字にしたり文字色変えたくらいで注意すると思うなよ？ってことです。

私のアプリ開発の実装は、ネットで調べる、調べる、調べるをwhileしてます。見つかるまで調べる！（StackOverflow 　Qiita 　teratail　実装のことを書かれている個人ブログ様:hearts:）この辺から調べて実装。コードを参考にしまくってます。ありがとうございます世界の皆様。

色んなサイトを見てコードを見る、この段階で。


<font color="Red">なーんか、みんな変数のループに　 i  とか　j　使ってんなー。偶然かなー。

<font color="Red">ℹ︎ と　j 、文字が似てるからやめろよなぁ！！:frowning2:とか思ってました。</font></font>

他にもなん関数はみんな似たような名前つけるなー、個性死んでるなぁ、とか。

同じループ（繰り返し処理）させる時に、For文で書いてる時とwhile文で書いてる時ある。

何なん？　気まぐれ？？　気まぐれシェフなの？？って思ってましたが、

For文で書くときは「回数が決まっている」

while文で書くときは「条件の間中、もしくは回数がまだ決まっていない」

時に使うループの書き方。

これって・・・・・


<font color="Red">IT業界の常識中の常識！！</font>

教えるまでもない常識！！　

けどこんなん習ってませんからアタイ！！！

誰からも教えてもらってないんだからね！！

義務教育で教えておけや！！

ってなる。

本には書いてありますけど、ループさせる時とか　i  使うのが常識だから当たり前に　i  使えよ！！　とは書いてない。（書いてあるかもだけど印象にない）

擬似言語で基礎を学ぶことで、こういう**IT界隈では空気のような常識を勉強することができます！w**


そして、アタイはFor文が大好きなんですよFor文。

だってわかりやすいから！！！！（自分だけ）


個人開発で作っているアタイのプログラミング、For文の多様具合が半端ない。　

Forの中にFor、その中にForでFor、みたいな。

これ・・・・・


トレース（実際にコードを追って変数や中身を確認していくこと）しずらいやろがい！！！

って。

科目Bの勉強してたら気づきますw


そして、繰り返し処理ならFor文でもWhile文でも一緒やろ。ならForだけでいいやろ、って感じだったのですが、色々全然違うんですよね・・・・

繰り返し処理をするのは同じでも、処理はWhileの方が早い。

そして改めて書きますが、繰り返し処理の回数が決まっているものはFor！！！

決まっていないものはWhile！！！


これ！！！


世界の常識！！


この常識を知ってコード読めば、読む前に

<font color="Red">「あ！！これは回数決まってるループじゃん！！　進研⚫︎ミでやったやつじゃん！！！」</font>

ってわけ( ◠‿◠ )

読みやすさが段違いなんですの・・・

実装の参考に、海外エンジニアの書いたコードとかも見るわけですが、こういう常識がわかったら、

「あー、なるなる。　これは回数決まってるループね。だからここはここで抜けていいのか」（完全に理解した（完全に理解したとは言ってない））


って、完全に理解した気になるのが早くなりますwwww


独学で周りにエンジニアさんなんていない孤独なネカマには大変助かる勉強内容。


基本情報処理の勉強内容は、IT業界の最低限のルール、日本語で言うならひらがな、IT業界の常識の底を覚えることができる。ってところでしょうか。

とりま、これくらい覚えておくと便利よ！！って。

アタイ・・・勉強になりました！！

私はあんまり認定資格好きじゃないんですが、これは良い試験だと思います。

ただ、既に実務について実務経験ある人には不要。

基本情報じゃなくて一気に高度のやつとったらいいんかな？

知りませんが。

アタイのような、独学者、IT知らんけど興味ある、業界未経験、学生、初学者、ネカマ、にはいいんじゃないでしょうか。　

一応国家資格ですし。無いよりは！



そして、今は少し下火になりましたが・・・・


駆け出しエンジニア！！

プログラミング初学者！！

この界隈の方！（アタイもですよもちろん）


プログラミングは<font color="Red">勉強を始めた9割が挫折して辞める、</font>ってよく聞きますが、それは目標がないから、動機が薄い、と言うのが要因の一つだと考えます。

時間なんぞやる気があれば作り出せる物です。　

というか、熱中していれば自然とできているもの。



プログラミングで一千万！！

在宅ワークで月額８０万オーバー！！

これを夢見て


稼げる言語ランキング！！

で稼げそうなものを勉強する。


**ちょっと冷静になりましょう。**

もちろんめっちゃ稼いでる人もいますし、目標として持つのはいいと思います。

が。

これは弱い。動機が弱い。

ゴールが漠然としていて何を学んだらこうなるのか、何をしたらいいのかが曖昧ふわふわトロピカルです。


そんなトロピカーナな精神じゃ続きません。　



<font color="Red">まずはWeb系！

じゃあHTMLから！！

うーん、なるほどなるほど。</font>簡単じゃん🎵


〜　三日後　〜


もうすっかりモチベーションも消し飛んでSwitchでマイクラしてますよ。

具体的な目標が目の前にないと、人は動けません。　

「締切」とか超絶重要。


<font color="Red">アタイはこれを作りたい！！（願望）</font>

そのためにはなんの言語が必要？？（必要な言語を学ぶ）

なるほど、作りたいものに必要なのがswiftか。じゃあswiftやるか。

<font color="Red">とりあえず一月後にはリリースしたい！！</font>

どっから勉強したらいいの？

まずは手始めに初学者向け。（これは巷にたくさんある。中級者向けはあんまない）

そのあとは「全ての答えはネットにある！！！」精神ですぐにとりあえず作ってみる。

あれ！？気づいたらめっちゃ勉強してる！！！:relaxed:

となります。

目標をガチガチに定めないと、なかなか勉強を継続するって難しいですよね。

わかるー　ちょーわかるー

アタイも4年前くらいに一度、なんかの無料サイト（プロゲート、だったかな？）でHTMLから勉強しようと思いましたが、二日持ちませんでしたwww　

だってホームページ作りたいわけじゃなかったので。


ここでまた**基本情報技術者試験の登場です。**


誤解を恐れずにいうならば、


プログラミング言語の基礎なんてみんな一緒！！！！だいたい一緒！！！


なので、擬似言語で一番底の部分勉強しておけばその後どの言語勉強しようがその知識が無駄になることはない！！

何を勉強したらいのかわからない、自分にプログラミングって向いているかわからない、という方、一旦基本情報技術者試験の合格を目指して勉強するのはありかと思います。


<font color="Red">えー、けど受験日っていつ？モチベーション持つんかなぁ( •́ㅿ•̀ )　</font>ってそこのあなた！！


今はこの試験、いつでも受験できるんですよ！！

年に1回だけ！！　とか　年に2回だけ！！　とか、そんなケチくさい試験じゃありません。

来月受験するぞ！！　で受験できます。

ちょー受験しやすい。　社会人にも大助かり。

目標を持って勉強した方が続きますよきっと！！

私は社会人で週5きっちり働いて、育児をして家事をして奥様の肩を毎日揉みながら空いている時間に個人開発・基本情報の勉強しましたがなんとかなります。

これを書いている今も奥様の肩揉み終わってから書いてますからね。


一番大切なのはモチベーションです！！

初学者・駆け出し・IT系に興味がある、人にはきっと役に立つと思います。

私のような個人開発者でも役に立ったなぁ、と思いますからね。

おすすめ、なんだからねっ！！


けどまぁ、アプリ開発に絶対いるか、って言われたら必要なし！　

基本情報の勉強するくらいならさっさとなんか一つリリースした方がひゃくおくまん倍成長できます。　

<font color="Red">結局はちゃんとリリースできたら勝ちですからね。　</font>

今すでにアプリとか作ったりしている人はそのまま作っちゃいましょう。　

私は家族に「勉強しているアタイ、かっこいいやろ？」がしたくてわざわざリビングで勉強してました。　


アタイを、みろ！！！！！！　と。　　

合格証がそのうち届くので、合格証をテレビの上に飾って猛アピールしますね( ◠‿◠ )

最後に、　アタイのブログ 
https://aiaitama.livedoor.blog/archives/cat_240393.html

アタイのTwitter 　https://twitter.com/aiaitamachan/status/1543491657915834368?s=61&t=yPwRV4JlYDHCbTHt_nSMHg

かわいい天然系JDです:heart_exclamation:仲良くしてください！！