27
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

経験6年・ブランクありの私が基本情報で“なんとなく理解”から卒業した話

27
Last updated at Posted at 2025-12-21

:sunny:はじめに

こんにちは。初めてQiitaに投稿します。
普段は Asp.net を使ったWebアプリ開発をしています。
エンジニア歴は6年ほどですが、途中にブランクがあるので、実質「復帰勢」として日々キャッチアップしながら仕事をしています。

仕事をしていてよく感じるのが、
「あれ、自分って基礎知識に穴あるな〜」 ということです。

動くものは作れるけど、仕組みを聞かれると「うっ…」となったり、
後輩に説明するときに困ったり…そんな経験皆さんもありませんか?

:thought_balloon:なんで超今更基本情報を受けようと思ったの?

  • 上に書いたようなモヤモヤを解消したかったから
    「一回ちゃんと基礎からやり直そう!」 と思いました
  • これから上流工程もできるようになりたいから
    → AIでもコードが書ける時代、求められるのは“考えられる人”だと思ったからです

現場で聞く単語って、雰囲気で理解していてもなんとかなるけど、
“本質的に理解してる?” と聞かれると自信がない部分が正直あります。

そこで、資格勉強なら範囲が整理されているし、
体系的に学び直すにはちょうどいいと思って受験を決めました。

「基本情報、気になるけど今さら感ある…」
「エンジニア歴だけ長いのに基礎がふわっとしてるの、ちょっと恥ずかしい…」
そんなふうに感じている人、本当に大丈夫です。
自分がまさに今その状態なので! :joy_cat:
同じように感じている人の気持ちが少しでも軽くなればと思いこの記事を書きました。
超初歩的内容ですが、最後までお読みいただけると嬉しいです!

:bulb:勉強して特に役立った(理解が深まった)分野

① アルゴリズム

まずはプログラミングの基本中の基本、アルゴリズム。
新人研修で少し触れた程度で、ちゃんと勉強していませんでしたが、
理解するとコードの見え方がガラッと変わりました。

  • この処理が重い理由がわかる
  • ソートの種類と仕組みを体系的に理解できる
  • データ構造の意味が腑に落ちる

:ballot_box_with_check: 実際に理解が深まった例:バブルソート

// バブルソート(O(n^2))
var array = new int[] { 5, 3, 8, 1, 2 };

for (int i = 0; i < array.Length - 1; i++)
{
    for (int j = 0; j < array.Length - 1 - i; j++)
    {
        if (array[j] > array[j + 1])
        {
            (array[j], array[j + 1]) = (array[j + 1], array[j]);
        }
    }
}

二重ループで比較し続けるので、データ量が増えると一気に重くなる理由が腑に落ちました。
「計算量ってこういうことか…!」と実感した瞬間です。

② ネットワーク

次にネットワーク。
Webアプリを作っているなら避けて通れないのに…

単語がむずい。とにかくむずい。

TCP、UDP、DNS、ARP、NAT、CIDR…
「いや、覚えられるか!」とツッコミながら勉強しています。
今のところ、一番苦戦している分野です :crying_cat_face:

でも、HTTPの流れやサーバとクライアントの関係など、
普段触っている部分の裏側が整理されて理解できたのは大きかったです。

Asp.net の挙動を追うときにも
「あ、こういう仕組みで動いてるのね」とつながる瞬間が増えてきました。

③ ビット・論理演算

そして意外と役立ったのがビット演算。

フラグ管理や権限管理など、実務でまあまあ登場しますよね。

昔は「なんか記号が怖い…」という印象でしたが、
仕組みを理解すると 「あ〜そういうことか!」 と一気にスッキリしました。

メモリやデータ構造の理解にもつながるので、
コードを読むのが少し楽になった気がします。

:ballot_box_with_check: 実際に理解が深まった例:偶数・奇数判定

int n = 7;

// 最下位ビットが 1 なら奇数、0 なら偶数
bool isOdd = (n & 1) == 1;
bool isEven = (n & 1) == 0;

& 1 で「最下位ビットだけ取り出す」ことができて、
そのビットが 1 → 奇数、0 → 偶数 という仕組みになっています。

% 2 で判定するのは知っていたけど、CPUレベルでは実はもっとシンプルで、
最下位ビットが 1 なら奇数、0 なら偶数 というだけなんですよね。

:writing_hand:勉強方法(実際にやっている流れ)

人によってやりやすい方法はあると思いますが、私はこの流れで勉強しています。

  • 参考書を一通り読む
    → 読みながら余白にメモを書いたり、難しいところには付箋を貼って後から見返せるようにしています。

  • そのあと過去問道場でひたすら問題を解く
    → 「理解 → 実践」の流れが一番身につくと感じました。

● 使った参考書

短期集中型+完全初心者ではない(と信じたい)ので、要点がまとまっているものを選びました。

● 過去問道場(無料で最強)

:sparkles:勉強して感じた変化

  • 「なんとなく理解」から「ちゃんと理解して判断できる」に近づいた
  • 現場の会話がわかりやすくなった(これは地味に嬉しい)
  • 調べ物をするときの視点が変わった
  • ブランクがあっても、基礎を固め直すと自信が戻ってくる

:crescent_moon:さいごに

まずは1月の基本情報試験の合格を目指しつつ、
学んだことをどんどん実務に落とし込んでいきたいです。

今回の勉強は「資格のため」だけで終わらせず、
身についた基礎を実務に活かしていくつもりです。
特にアルゴリズムやネットワークの理解が深まると、
「なんとなく動いてる」から「こういう理由で動いてる」 に変わって、
コードの見え方が本当に変わると感じています。

勉強もここで終わりではなく、ゆるく続けていく予定です。
スキマ時間に過去問道場をポチポチ解いたり、
参考書を読み返して「あ〜そういう意味だったのか」と再発見したり。
無理せず、でも止まらず、自分のペースで続けていきます。

ゆくゆくは応用情報にも挑戦したいし、
Asp.net や VB.NET、C# の内部的な仕組みももっと深掘りしたいです。

ブランクがあっても、基礎を固め直すだけで視界がこんなに変わるんだと実感したので、
同じように悩んでいる人がいたら、一緒にゆるく頑張りましょう :fist:

27
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?