ビッグデータ・AIやITに必要な知識とは


「マイナビAI推進社会におけるキャリア観に関するアンケート(2019年6月4日)」より

AI・IT職種を「志望しない」学生が75.4%という結果に。
理系男子は67.1%、理系女子は81.0%
61.1%の学生がAI・IT関連職種を志望する際のハードルに感じているのが、
『どの程度プログラミングスキルを求められるのか基準がわからない』という点であり、
企業は募集にあたって具体的な業務内容や必要とされるスキル等、学生の仕事理解を促すために明確に示す必要があるだろう。

【調査概要】『マイナビ AI推進社会におけるキャリア観に関するアンケート』
調査期間:2019年4月24日(水)~4月30日(火)
調査方法:マイナビ2020の会員に対するWEBアンケート
調査対象:2020年3月卒業見込みの全国の大学4年生、大学院2年生
有効回答数:7,342名(文系男子1,439名、文系女子3,701名、理系男子1,098名、理系女子1,104名)

とあります。

そこで、課題を次のように設定します。
『どの程度プログラミングスキルを求められるのか基準がわからない』
このことを真に受けて対策を出すのではなくて、なぜこのようなことになるのか?

このことについて本当にそうだとすると、多くの学生さんが全くの勘違いをされていると思われます。

最も重要なことは顧客の業務を知ること、さらには業界固有の知識や理解を深めることが一番大切なことであり、最も難しい部分です。
習得するためには、与えられた業務の中で学び取る工夫とそれらを積み重ねる経験が必要になってきます。
業務知識を学び取る過程で常にデータを意識して考えることやなぜこうなるのか?を考えることが必要です。
このあたりは、分析、企画、業務設計に直結してきます。

なお、分析・AIの開発フローの概要は大きくは次の通りです。
・全体構想
  分析・企画、プロジェクトの立ち上げ、業務設計、開発環境構築
・実際の作業
  データ収集、構造化データ処理/非構造化データ処理、データ解析、可視化、結果の検証、業務への組込、業務評価と改善

他方、ソフトウェアエンジニアリング、アーキテクチャ、通信、インフラ、セキュリティ、機械学習などの基礎的な知識は研修や実践を通して学ぶことができますからさほどご心配は無用と思います。

それでは、プログラミングスキルの視点にスポットをあてて当社の考え方や取り組みを述べてみます。

2020年4月になると小学校4年生からプログラミング授業の全面実施が始まります。
そこでは、プログラム作法を教えるのではなく、なぜコンピュータは動くか?
を教えることになっています。
原理原則がわかれば、小学生をはじめ若い方はどんどん中に入っていけるのです。

当社では、大学でプログラミングを全くされてこなかった方も入社されてプログラマやデータサイエンティストやシステムエンジニアとしての道を歩んでいます。

昨今大学では「C」「Python」「R」言語などでプログラミングの講義がありますが、入社にあたり前提知識としてはあったほうがよいのですが、中途半端であればかえって災いになるでしょう。

プログラミングのスキルは当社の研修教育で十分マスタできると他所でも書いています。
学生時代にプログラミングの経験が全くない方も当社では問題にしていません。
2ヶ月から3ヶ月の演習を含めたoff-JT(Off The Job Training※)でマスターできます。
※Off The Job Trainingとは通常の仕事を一時的に離れて行う教育訓練のことです。

当社の研修は小学校の授業でおこなわれる「どうしてコンピュータが動くのか?」そこからスタートします。
次にみなさんは物事(問題)を処理するときは順番におこなっていると思います。
これをアルゴリズム※で表現すると、処理1→処理2 のように表現します。このように順次に処理をしていきます。
次に、バイナリー(2進数)データで表現されるコンピュータにおけるプログラミングのアルゴリズムの基本は、はなはだ乱暴ないい方をすれば、「条件」「分岐」「ループ」の3つです。実証性とか他にもいろいろ必要な要素がありますが3つが基本です。これはコンピュータが登場して以来昔からなんら変わっていません。
この順次処理と3つの基本が理解できればアルゴリズムは書くことができます。アルゴリズムが書ければそれに従ってプログラム言語を使いプログラミングできるのです。
※アルゴリズムは「問題を解くための方法や手順を定式化したもの」といえます。実は年齢当てゲームのような問題を解いたりするときからアルゴリズムを使ってきているのです。

プログラム言語の違いを言われる方があるかもしれませんが、言語は日本語の方言と同じだと思えばよいのです。
つまり、いずれかひとつの言語を習得すれば、アルゴリズムは共通ですから、他の言語も言語の持つ「くせ」をつかまえれば簡単にプログラミングできるのです。
そうです、プログラミングとは問題をアルゴリズムに落とし込めればよいのです。
問題をアルゴリズムに落とし込み、問題にとって生産性の高い言語を使って書いていけばよいのです。

今日では30年前と違い開発環境やライブラリ、テンプレートが相当充実してきてその分、生産性が格段に向上しています。
スタートがうまくいけば、あとは経験を積み重ねることです。
この経験を積み重ねることが重要なのはIT以外の他の仕事でも全く同じです。

いかがですか、『どの程度プログラミングスキルを求められるのか基準がわからない』についてお分かりいただけたでしょうか。

当社ではプログラミング力も必要ですが、分析(ビッグデータ)・AIでは理解力と論理的思考力を重要視しています。
こちらは一朝一夕には身につきません。
長い学校教育で培って身につけてきているものです。数ヶ月の研修ではどうにもなりません。
このことはビッグデータやAI、ITの職種がことさら特種なのではなく、他の職種の仕事でも同様で程度の問題なのです。
当社ではそのように考えています。