基本情報技術者試験を受ける意義って?


緊張のqiita初投稿です。
よろしくお願いします。

テーマは基本情報技術者試験(以下FE)です。
まったくDMM WEBCAMPらしからぬテーマで申し訳ありません笑
Railsに関する投稿が続くなか、ちょっとしたおやつ程度に考えてください。

10月に受験してきたのですが、文系駆け出しプログラマの私にとっては受ける意義(why)があったと感じられたので、そのことについてアウトプットしておこうと思います。
どのように勉強したか(how)の部分については、参考になるサイトや記事が他にたくさんあるので、今回はwhyの部分に焦点を当ててみようと思います。

自己紹介

大学4年生で、商学部に所属しています。学問としてコンピュータに触れたことは(もちろん)一度もなく、プログラマとして働き始めたのもつい最近です。

この仕事を始めてから、「情報工学を大学で専攻しておきたかったな」という思いが少しだけ募ってきています笑

なぜFEを受けるか

※主観的な内容を非常に多く含みます。

今回、私にとってFEを受けた意義は、【コンピュータの仕組みを調べて学習するきっかけになった】ということでした。以下で詳しく書いていきます。

文系出身のプログラマである私にとって、web系の仕事を始める上での不安点は、「情報工学などを専攻した人に対してハンディキャップを背負っているのではないか?」ということでした。というか、今でもこの不安は残っています。
同じような気持ちを抱いている文系出身の方もいらっしゃるのではないでしょうか。

確かに、コンピュータを大学で学んでいないぶん、学んでいる人に対しては出遅れているのは事実です。加えて、新しい技術を開発するなどということになれば、高等教育機関や企業等で研究することがほぼ必須になるでしょう。

ただし、だからと言ってまったく勉強しないのは勿体ないことだと私は思います!
コードを書いて動かしている裏側を知らなければ、本当にそのプログラムを理解できているとは言い難いですし、プログラムが動く根幹を理解していれば、予期せぬエラーへの対応をしやすくなるとも言われています。

ということで、コンピュータの勉強をしようとなるわけですが、まったくの未学習者であれば、何を学べばよいのかがわからない状態だと思います。(少なくとも私はそうでした)
そこで、学習の取っ掛かりの知識をつけるのに適しているのがFEであるというわけです。(※個人差があります)

FEの範囲の中には「論理回路」「コンピュータアーキテクチャ」「ネットワーク」「アルゴリズム」などなど…があり、これらを理解することでコンピュータが理解できるようになってきます。これらの分野に関して、かなり基礎の部分についてはFEが概ねカバーしている印象を受けました。

ただ、かなり基礎的な内容であることには変わりなく、自ら知識を補強しないといけないのは確かです。その意味で、この節の冒頭にも書きましたが、【コンピュータの仕組みを調べて学習する“きっかけ”になる】というのがFEの意義なのだと思います。
資格に向けて勉強を進めていくと、コンピュータに関して何を理解すれば良いのかが明確になってきます。そこから先、自分にとって必要な知識を書籍やサイトを使って身につけてこそ、FEの意味があるのだと思います。

まとめ

あくまで資格の一つとしてFE取得を目指すのもよいですが、コンピュータを理解する第一歩として捉えてみるのも面白いのではないでしょうか。
コードを書けるだけではなく、その構造まで理解できる人材になりたいものです。