非エンジニアが学ぶべき5つの基礎的プログラミング知識+α

by Takeshi Hirano Takeshi Hirano on 2013.10.1

先月掲載した「非エンジニアの起業家はプログラミングを学ぶべきか?」という記事に反響があった。私自身も非エンジニアの起業家でもあるため、特に工程や予算管理、人材(外注含め)の選定についてはある程度の基礎知識がなければ判断がつかないことを実感している。

さらに言えば、私はテクノロジーを取材するブロガーだ。相手がどういう技術で世の中を変えようとしているのか、知らなければ話にならない。(難しいけどね)

一方でこの記事には具体的にどういうことを、どのレベルまで学ぶべきかについては言及してなかった。実は結構これが大切で、中には技術習得にハマって中途半端にプログラミングを覚えてしまい、なかなか手を離せなくなってしまった起業家も知っている。

基本的な心構えとして「餅は餅屋」の精神を忘れず、相手を理解するための言葉を習得するのが器用貧乏にならない一歩かもしれない。

ta-capture-lesson

そこで、丁度教育系サービスを取材中ということもあって少し変わったプログラミング講座を運営しているTechAcademyに、非エンジニアが学ぶべき項目を具体的に整理してもらった。

TechAcademyは従来の長期間かけて資格取得することを目的としたプログラミングスクールとは違い、社内の非エンジニアがエンジニアと潤滑にコミュニケーションするための基礎的なプログラミング知識を、6時間という短時間で習得できるようにしたIT専門のスキルアップスクールだ。

2012年11月から開校し、1200人ほどの受講生が「短時間で卒業」していった。回答してくれたのはこのスクールを運営するキラメックス代表取締役の村田雅行氏だ。

エンジニアと一緒に仕事をする全ての人が習得すべき「基礎技術」

まず、この「IT当たり前の時代」において、ウェブ、IT系エンジニアという存在はすでに特別なものでなくなりつつあることを理解すべきでしょう。例えば営業の方が全く技術的な基礎知識もなくウェブサービスを正しく販売できるでしょうか?そういう時代だという認識がまず必要です。

また、非エンジニアに一番必要なことは「エンジニアを理解」することです。さらにいえば、そこに体験がなければいけません。

小さなプログラミングひとつでもどれだけの手間がかかるのか、どうやったら効率化できるのか、そもそも効率化できる方法があるのか、ないのか。そういうことを実際に体験せず頭だけで理解し、客先で「なんとか納期を間に合わせてみます」と回答したところで、チームプレーには繋がりません。

制作に関わる方は当然として、営業や場合によっては総務、経理といった方々も、どういう仲間が仕事をしているのか、営業のように分かりにくい世界だからこそ仕事への理解を深めることは重要だと考えています。また、スクール運営でもそういうニーズの高まりを感じています。

必修と考える5つの基礎技術

それを踏まえ、起業家、非エンジニアの方はすべからく次の項目を基礎技術として「体験」することをお勧めします。本で習得することも可能ですが、これがなかなか難しい。

最初の一歩としては、わからない部分を人に聞ける環境で学ぶのが適しています。我々の経験から、項目としては次の5つが基礎中の基礎になるでしょう。

1:インターネットーーどうやって私たちは情報にアクセスしているのか
2:ブラウザーーアクセスした情報をどうやって見ているのか
3:HTML/CSSーーブラウザにどうやって表示されているのか
4:プログラミングーー表示する内容をどう変えているのか
5:データベースーー表示する内容をどこに入れているのか

プログラミングやデータベースは種類が色々とありますが、非エンジニア向けとすると、ネット上に無料のドキュメントがたくさん落ちているPHPやRuby、MySQLあたりが入りやすくてオススメです。

TechAcademyで提供している講座だと6時間なのでここに挙げたデータベースの部分はカバーしていませんが、それ以外は手を動かしてHTML,CSSを書いたりJSでミニアプリ(変数、条件分岐を使って確率をランダムに変化させカードを出力するカードアプリなど)を作るところまで体験して頂いています。

プログラミング以外にも非エンジニアが覚えると便利な基礎知識

さて、村田氏の指摘はいかがだっただろうか。分かってる人にしてみれば「当然」と思えるかもしれないが、私も自身を振り返ってみて最初何から手を付けていいか分からなかったことを思い出していた。

村田氏の指摘通り、非エンジニアが理解すべき重要なことは、チームにいる「エンジニアがやってることを理解する」ことにある。決してプログラミングをかじって、プログラマの仕事に横やりをいれることではない。

ただ、私の経験から付け加えると、プログラミングだけではなく、あともう少し広い範囲で理解すると便利な知識がある。次の通りだ。

6:工程管理ーー与件から要件定義し、仕様をつくり、設計にまでつなげる工程フロー
7:デザインーーウェブだけでなく印刷などもどういう工程があるか
8:ユーザー体験ーーUXといわれる分野

工程管理ではウォーターフォールやアジャイル、こういった言葉の意味だけでも理解しておき、実際にワークショップなどでその工程の作り方を体験しておくと、エンジニアの人たちと会話する時に理解か進みやすい。

デザイナーも最近ではプログラマに近い領域を担当することが多いので、デザインやユーザー体験といった分野の知識は逆に必須ともいえるかもしれない。

ニュースレターの購読について

毎日掲載される記事の更新情報やイベントに関する情報をお届けします!

----------[AD]----------