woodykhのブログ

断捨離してシンプルライフ! 質素でも楽しい生活の追求ブログです。

普通の人にプログラミングは必要なの?

最近は小学校でもプログラミングを教えるそうな... 一体どんな事を教えるんでしょうか?  私が社会人になった頃、パソコンアレルギーの叔父さん達は、キーボードの操作に四苦八苦してましたが, 今となっては大抵の人は普通にパソコン操作するので、時代は変わったなーと思います。 

皆さんはプログラミングって何か難解な物と思ってませんか?  実際にウェブ系の会社などでは、"未経験者歓迎"などあり、大体半年くらい勉強させて、すぐ即戦力として使っていきますので、大学で4年もかけて勉強するほどのものではないです。 

大抵の人は職場にパソコンがあると思いますし、市販のビジネスソフトかエクセルで管理してるか、ソフト会社で作ってもらったものを使うか, 少し大きな会社なら情報部門が業務ソフトを作ってたりするでしょう。 だから別にプログラミングの知識は必要ない....と思ってませんか?

 

どんな職場でも売掛、仕入、在庫管理、売上分析、不良在庫分析、顧客管理などありますよね。 小規模な会社のよくあるパターンとして, 以下のようなケースをよく見ます。

 

1. エクセルで管理する。 表に手入力して、何とか帳票出力まではこなす。

2. もっと自動化したいので、エクセルのマクロやVisual Basicという付属のプログラミングを使ってみるが、悪戦苦闘する。

3. データベースソフト(Access / FileMakerPro)や会計ソフトなどを利用してみるが、うまく作り込めない。

4. 思うような処理/分析ができないので、ソフトハウスクラウドサービスに相談してみるが,  ビックリするような値段で躊躇する。

 

IT部門があり業務ソフトを作れるような規模の企業でも、自分の職場ではメインシステムからダウンロードしたデータをエクセルで開いてあれこれ加工して、四苦八苦する方々もいますよね。

 

さて一番最初に書きましたが、新人プログラマーさんは半年もあれば何とか仕事をこなせます。 一般のビジネスマンの方々は、データをうまく扱えなくて、結構莫大な時間を浪費してませんか?    もう少し詳しく見て行きましょう。

 

1.  プログラミングの3つの基本 (MVC+)

Model (データベース)

データベース(DB)という言葉は皆さんご存知ですよね。 データの入れ物がDBで、DBからこんなデータが欲しいとか、こんなデータを登録するよというのがSQLというDBを扱うプログラミング言語です。  DBというのは、複数のエクセルのシートが存在するイメージです。 顧客名簿、顧客の購入履歴、商品マスター、在庫情報などを連結させて使います。新人プログラマは最初にこのSQL言語を勉強します。

 

View ( Webの表示画面, HTML)

AmazonなどのWebページなどには住所入力項目や、買い物履歴などの表示できますよね。DBからSQL言語を使ってデータは取り出せますが、それはデータの羅列で見にくいので、Webブラウザーなどを使います。 Web系プログラマはHTMLも勉強します。

 

Control (プログラミング)

Webページの個人情報入力ページに入力後、登録ボタンを押すと、次のページに以下の内容で登録しましたと出ますよね。 入力画面を表示させ、ボタンが押されたら、入力された項目をデータベースに登録して、確認画面を表示するという一連の動作をコントロールするのがプログラミングの仕事です。 Java入門、Ruby入門などの本はこのプログラミング言語のことです。 普通の人がプログラミング勉強してみようと、これらの本を買っても、ピンとこないのは実際に使えるアプリケーションとはDBとViewとのセットになってるからです。

 

+ (クライアント -サーバー)

自分のPCでAmazonなどのページを閲覧できるからといって、データベース、HTMLページ、 プログラムを作ったとしても動作はしません。それらはサーバー上で動いていて、あなたのPCのWebブラウザはクライアント機能しかないからです。 そこらへんの設定や理屈はそれほど難しくはないですが、 PHP入門などの書籍が一番わかり易いです。実際にプログラミングを学ばない人でも, Webシステムがどうやって動くのか理解できるので、一読する事をお勧めします。(図書館にもありますよ。)

 

2. あなたが悪戦苦闘する理由

2-1. エクセルの功罪

エクセルは単一のシートで複数のシート(テーブルといいます。)を連結してませんよね。もちろん顧客シート、商品シートの連結はエクセルでもできますが...。 また表の中から必要な条件を抽出するにはエクセルのフィルタがありますが、限定的です。 プロのプログラマが作るアプリケーションの中でデータベースの表(テーブル)の設計は、まさに心臓部です。 あなたの会社が業者にソフトの作成依頼するときに、テーブル設計を理解しているだけで、ソフトウェアの開発コストは大幅に削減できるし、円滑に打ち合わせが進みます。 またSQL言語を扱えるようになれば、本当に欲しいデータをドンピシャでDBから取り出せるようになります。

 

2-2. アクセス / FileMakerProの功罪

マイクロソフトAccessは、プログラミングが前提ですので、何も知らない人が作り込むのは無理です。または勉強するのに時間がかかります。 一方 FileMaker Pro (アップルの子会社) はプログラミングの知識は不要で結構作り込めるので、初心者にはお勧めです。 ですが、両者ともある程度までの規模ならいいのですが、システムというのは試行錯誤しながら、常に手をつけ大きくなっていくものです。アクセス/FileMakerはデータベースソフトで、ソフト内の画面でしか管理できないので、メンテナンスが大変になってきて、結構な時間を浪費してくることになりますので、将来的には通常のプログラミングで作るシステムに移行することになります。

 

3. システムの成長過程

素人のお客様(社長さん)がソフトハウスに依頼する場合、あれもこれも全て組み込もうとして、打ち合わせが長くなり、出てきた見積書はとんでもない金額になりがちです。 一方会社のiT担当者がソフトハウスに発注する場合は、担当者側が大体のDBのテーブル設計図は容易し、今回はコレとコレを実装してください。開発、テスト期間、リーリースは何ヶ月で、プログラマ工数はこれくらいですか? と聞いてきます。大切なのはステップバイステップで様子を見ながらすることです。そうすれば、作ったはいいけど使わない無駄な機能はなくなり、コストも安くなります。

 

どんな会社でも、業務の改革は永遠に続きますし、システム改善はつきものです。その費用が高額になれば、業務改革のスピードは遅くなり、売上低下や、残業、などにも響きます。普通のビジネスマンがプログラミングの知識を少しづつでもつけていくことは、無駄なことではないと思います。 でも小学生から勉強する必要はないと思いますけど...。