📝

マーケターが基本情報技術者を取得したら良かった話

2024/04/23に公開

こんにちは、Hagiです。

本業ではSaaS事業会社でマーケティング部門に所属しており、主にSEOやサイト改善を担当しています。最近、私は基本情報技術者試験を受験し、その経験を振り返ってみたいと思います。

基本情報技術者試験を受験した動機

マーケティングとエンジニアリングの融合を目指して

僕自身はマーケティング(特にSEO)を主戦場に戦っていますが、一時期はWebエンジニアになろうと思ってRails書いたり、エンジニアの友達を作ったりしていました。その時にプログラミングを勉強したおかげで、GASを書いたりSQL叩いたりはできるようになり、最近はフロントエンドも触るようになりました。
ただ、本業はあくまでマーケティングですし、まだ24歳という年齢なので、今は具体的な技術に特化するのではなく、広く浅く基礎力をじっくり磨いてきたいという思いがありました。インフラも。

事業ドメインの理解を深めるため

本業でセキュリティ管理SaaS事業のマーケティングを見ることとなり、事業ドメイン理解のために基本情報くらいの知識があった方がいいなと思ったのが、受験のきっかけです。
中小企業の情シス担当が主なターゲットで、情シスの方が普段どんな仕事をしているのかが分からないと、ペルソナに刺さるマーケティングができないなと感じていました。
また、自社が提供している機能もあまり理解できず、、

・内部監査
・クロック周波数
・メモリ
・物理アドレス(MAC)
・IT資産管理
・オンプレミス

基本情報取得してこいと会社から言われたわけではないので、自費で受けました。

僕のお気に入りの勉強法

私の学習方法は、まず本屋で購入した参考書を中心に勉強しました。

ただし、試験対策にばかり焦点を当てるのではなく、実務に即した学習を心掛けました。

具体的な学習方法は以下の通りです。

Xで検索する

基礎情報を学習している際に、「これって実務でも使われる用語なのかな?」や「実務での具体的な利用シーンって何だろう?」といった疑問が生じることがあります。

Xで検索すると、普段の会話や文章中でその用語や概念がどのように使用されているかが見つかります。すると、「ああ、こんな風に使われるんだな」と理解が深まります。

さらに、Xで検索しても情報が得られない場合、「この用語は実務上あまり重要ではないのかもしれない」と考えることもできます。ただし、これは場合によるものです。

また、基礎情報を学んでいる人が、興味深い言葉遊びや語呂合わせを共有している場合もあります。これらを見ることで、学習の助けとなることもあります。

このように、Xの検索は様々な方法で学習をサポートしてくれます。

ココナラでエンジニアの人に質問する

Xで検索するだけでなく、実際のエンジニアにも相談するのも良かったです。

僕の場合、ココナラでエンジニアの人にDMを送って、60分間質疑応答してもらいました。もちろんお金は払っています。

お金を払って質問するとなるので、質問リストは真剣に作らねばという気持ちになります。質問リストを作る過程で、自分は何がわかっていて何がわかっていないのかが整理されるので、良かったです。

chatGPTに質問する

「たとえ話を用いて教えて」は僕がよく使うchatGPTプロンプトです。これは、新しい分野の学習や、慣れ親しんでいない概念の理解に便です。

難解なテーマも日常生活で親しんでいる事象に関連付けることができるから、記憶に残りやすく、理解も深まりやすかったです。

各分野の振り返り

基本情報の各単元で、どのへんが勉強になったとかを書いていきます。

基礎理論

ビットやバイト、進数については正直、試験の対策という意識が強く、これらが将来役立つ場面があるのかどうかは疑問でした。特に、組み込みエンジニアの方々にとっては、この知識は極めて重要なのだろうと感じました。

アルゴリズムとプログラミング

スタック、キュー、リストなどは今となっては基本中の基本ですが、基本情報の学習を通じて初めて知ることができました。プログラミング未経験者にとっては、関数や引数、戻り値などを学ぶ良い機会だと思います。

アルゴリズムについては、今後も学びたいと思っています。プログラミングにおいてスキルを伸ばす上で、異常処理や処理分解などのロジカルシンキングが不足していることが多いと感じています。プログラマとしては、ロジカルシンキングを直接学ぶよりも、アルゴリズムやフローチャートを通じて訓練する方が効果的ではないかと考えています。

正直なところ、一般的なコーディングについてはCopilotなどの支援ツールが登場しており、学習教材も豊富に提供されています。そのため、自分の頭でソートアルゴリズムを作成できるなど、基礎力のあるエンジニアが今後ますます重要になるのではないかと思います。

コンピュータの構成要素

この分野の勉強は試験対策のために行っていましたが、初めは理解が難しいと感じました。

しかし、この分野を学んで良かったと感じます。なぜなら、試験に合格した後、AWSの学習を始めた際に、ここで学んだ知識、特にメモリやキャッシュに関する知識が役立ったからです。

関連するAWSサービスとしては、Amazon ElastiCache、Amazon RDS、Amazon Neptune、Amazon Redshift、Amazon DynamoDBなどでしょうか。

この分野を学んだことで、例えば以下のような記事が「なるほど、難解ではあるけど、理解できるようになりました!」という感覚をもたらしました。

https://zenn.dev/fdnsy/articles/6dd98ba5318bb6

https://cloudnavi.nhn-techorus.com/archives/4270

システムの構成要素

この分野も、試験対策として勉強していたときはあまりピンと来なかったのですが、AWSでアーキテクチャ設計を意識するようになってから、「ありがとう、、、基本情報の知識が生きているよ」となりました。

  • Webアプリケーション三層構造(クライアント、アプリケーションサーバー、データベースサーバー)
  • フォールトトレラント
  • ストライピング(RAID1)
  • ミラーリング(RAID2)
  • スループット
  • スケールアウトとスケールアップ
  • 可用性、MTBFとMTTR

ソフトウェア

今まさにLinuxの勉強中なんですが、ここの知識が生きてます。僕もまだ勉強中なのでなんとも言えないですが、以下の記事とか、まさにこの単元で学んだ単語がぽんぽん出てきています。

https://qiita.com/tumu1632/items/7df3568fd63aec2b7731
https://qiita.com/i13ame/items/bf4b6a0e3485ddc838ce
https://qiita.com/youareyouya/items/1f76fd8de74346130395

ハードウェア

半導体の価格が急上昇しているというニュースについて興味を持てるようになりました。以上。

ヒューマンインターフェースとマルチメディア

UI/UX改善は私の専門領域として、この単元は得意でした。アプリ開発の際には、GUIコンポーネントの設計などが楽しそうな印象です。

データベース

Railsを使っていた際には、データベースのER図作成やテーブル設計について軽く学んでいたため、この単元は比較的簡単でした。
ただし、正規化の方法についてはある程度の理解はありましたが、体系的に復習する機会がありました。

現在、AWSの基礎を勉強中ですが、DynamoDBのトランザクション処理や、AWS Backupでのリストアなどは、まさにこの単元で学んだことが基盤となっています

https://qiita.com/silverbox/items/18036bb08f16618c21f5

ネットワーク

文系泣かせの単元、。笑
ただ、この分野、特にOSI基本参照モデルやTCP/IPの概念を勉強して本当に良かったです。

マーケターとしては、HTTPやCookie、セッション周りを単に点としてではなく、OSI参照モデル辺りから実際の動作までの流れとして理解できるようになったので、何か問題があっても見つけやすくなりました。

昔は低レイヤーを知らないとプログラミングができなかったため、基礎から学ぶことは当然でしたが、今では良くも悪くも、基礎を知らなくてもフレームワークが吸収してくれるので、ネットワークの勉強が後回しになりがちだと聞きます。ただ、HTTPを理解せずにAjaxに飛び込んで分からなくなるように、TCP/IPを理解せずにAWSやAzureなどのインフラ構築を頑張っても、よく分からなくなるのではないかと個人的には思います。

情報セキュリティ

東海道新幹線に乗るたびに、Skyのランサムウェア攻撃の広告を見かけるのですが、ランサムウェアって何なんだろうという感じでしたので、これを機に勉強してよかったです。

マキアヴェリの「天国へ行く最も有効な方法は、地獄へ行く道を熟知することである」という言葉がありますが、サイバー攻撃の分野は、自分だったらどの手法を取るか?という気持ちで勉強していました。ソーシャルエンジニアリング、フィッシング、リバースブルートフォース攻撃などは、割と再現性が高そうで、怖いなと思います。

勉強したけれども、今でもよく理解できないのが、公開鍵暗号方式や共通鍵暗号方式についてです。これは、実務でどこで使われるのかな?

システム開発

PM、PdMとか狙うなら、ここはよく勉強しておきたい。UMLは特に大事。

https://zenn.dev/sutamac/articles/13d13809973c48

ソフトウェア開発手法

SIerとWeb系の違いを理解する上で役立ちますね。DDDやリファクタリングなどについても知れて良かったです。

プロジェクトマネジメント

SIerな内容ですね。

個人的には、見積もり納品型の案件にあまり好意を持っていません。見積もりバッファを積んでおいて、「これは見積もり範囲外です」「追加工数○人日です」という塩対応をしなければならなくなるので、そのやり取りだけでお互いに無駄な工数がかかってしまいます。追加工数なしで完了する場合にのみ納品型を採用してほしいですね。

サービスマネジメントとシステム監査

インシデント管理やサービスデスクなど、SRE関連の内容を学びました。自社のプロダクト部門にもSREチームがあるのですが、彼らがどのような業務を行っているのか、少し理解できた気がします。

システム戦略

IaaS、PaaS、SaaSの違いや、オンプレミスとクラウドの違いなど、基礎的な内容を学びました。AWSの勉強を始めたときには、まさにこの領域から学び始めたので、この学習内容は非常に役立っています。

システム企画

機能要件と非機能要件の違いについて学びました。

経営戦略マネジメント

規模の経済という言葉が好きです。

ビジネスインダストリ

生産方式についての学習は非常に有益ですね。かんばん方式やセル生産方式など、多くの知識が得られます。

企業活動

CTOやCIOの違いなど、さまざまなポジションについて知れた。

法務

営業秘密や法律の細かい点まで覚える必要はないと思いますが、自分が関連しそうな法律について大まかに理解しておくことは重要かなと思いました。

特に労働関連法規は全員が把握すべきですね。受託ビジネスでは特に法的な問題が発生しやすいので、注意が必要かなと。

科目B

科目Bの学習を通じて、基本的なトレースやデバッグの方法を学ぶきっかけになり、エラーも怖くなくなりました。

エラーについては、最近読んだ「コードが動かないので帰れません! 新人プログラマーのためのエラーが怖くなくなる本」の本が役立ちました。

最近はReactを触ることもありますが、ブリントデバッグなどを積極的に行うようになりました。また、GASのデバッグではブレイクポイントを使うことも覚えました。

https://qiita.com/islandryu/items/46acd69a66a27d54f003
https://qiita.com/kashira2339/items/874f95aaaa59f4a17d3d

Discussion