数年前に文科省が小学校の「プログラミング教育」を打ち出したこともあり、プログラミング教育が流行のようです。
IT企業でソフトウェア開発の仕事をするなら必須ですが、今までプログラミングを学んだ経験のない人が勉強してメリットはあるでしょうか。
結論から言えば、あります。
大きく4つだと思います。
- 業務の効率化
- システムに強くなる
- アプリの開発
- Webサイト制作
漫然と勉強しても実践では役に立ちませんし、モチベーションも上がらないと思うので、私が実際に活用している方法・便利だったと思う事、を紹介したいと思います。
ネットで「プログラミング 何ができる」などで検索すると、アプリ制作の話ばかりがでてきますね。それも間違いではないですが、それだけではありませんし、単純すぎる発想かな?と思います。
私は長年プログラムを書いてきた人間なので、ソフトウェアを作る以外でもプログラムが作れることを活かし、業務の効率化をしてます。
今回は「プログラミングを勉強すると、こういう良いことがあるよ」というお話です。
業務の効率化
私は、PCを使った面倒なルーチン作業をプログラムを作って早く終わらせる、ということをよくやります。
例えば、資料作成のために日付のフォルダを大量につくらないといけないとか、大量のZIPファイルを右クリック→解凍→フォルダに配置が面倒だから、Powershellのスクリプトで自動化する…とか。
私は単純なルーチン作業が嫌いなので、プログラムを作って自動化できるものは、そうしてしまいます。
Powershellはコマンドプロンプトの後継と位置づけられたものですが、結構色んな処理が柔軟にできるので便利です。
ファイルでループするだけなら、以下のように書くだけですしね。
$files = Get-ChildItem -Path D:\temp
foreach($f in $files){
処理・・・
}
あと、.NETができるので、xmlファイルのノードのIDを順番どおりに採番し直すとか、諸々の作業の自動化を行ってます。
正直、手作業でやるより早いし、考えるのも面白いです。
コンピュータを使うメリットは高速かつ正確に処理ができることです。
プログラムが作れると、単純なルーチン作業が自動化できて、面倒な作業にかける時間を減らすことができますね。
実際にプログラムを作った経験がないとそういう発想も出てこないと思うので、勉強していてメリットを感じた瞬間は実は結構あります。
システムに強くなる
これも大きなメリット。
あらゆるソフトウェアは当然プログラムで作られているので、システムの挙動が想像できたり、内部的な動作がどうなっているのか、ある程度想像ができたりします。
なので、システム絡みの問題解決がしやすくなります。
例えば、マスタメンテナンス画面には最新のデータだけが出るけど、実際に登録されたデータを見てると過去のマスタのデータも出てくるな…。ということは、どこかに過去データがあるようだ…。といった感じで探していくと、データ抽出作業の幅も広がったりします。
蓄積データの活用はどの企業でも関心あることなので、データを自由に取り出すことができたらメリットは大きいですね。
あと、プログラミングを学ぶ際にCPUやメモリなどPCの構造・仕組みも勉強すると思います。変数はメモリにデータを格納するものだし、具体的なPCの挙動を確認しながら勉強すると、理解が深まると思います。
アプリの開発
業務の効率化と被りますが、アプリケーションの開発ができるようになります。
業務の効率化って、要はアプリケーション(ソフトウェアと言っても良いです)を作ることですので。
ちなみに、アプリケーション(application)は「活用」・「応用」などの意味がある通り、「何か実用的なことをする」という意味がありますので、言葉通りですね。
アプリと言っても色々で、
- Windows、macOSのアプリ
- iOS, Androidアプリ
など色々あります。
便利なアプリが作れたらストアで販売したり…できて収益に繋がればHappyですが、よっぽど興味がある人じゃない限り、そこまではしないと思います。
でも、普段よくやる複雑な計算や集計処理をアプリケーションで作っておく、というのも実際便利です。
ちなみに、「プログラミング 何ができる」で検索するとアプリの開発が一番よくでてくると思います。
ですが、ちゃんとしたアプリを作るのってかなり大変ですし、時間もかかります。最初からココを目指すのは、よほど興味のある人じゃない限りおススメしません。
簡単なものならコーディングしなくてもAccessで作れますし、アプリ開発だけがプログラミングじゃないですしね。
ちなみに、IPA(情報処理推進機構)の調査でも、Javaが一番よく使われる言語として挙がっていますが、ほとんど業務システムの開発やWebのシステムで使われているものだと思います。ですので、他サイトで説明されてるように単純にJavaをやればいい!というものではないですし、Pythonのほうが実用性があって習得も容易です。おすすめ。
Webサイト制作
Webサイトもピンキリですが、最近はWordPressなどCMSの使用が多いでしょう。
HTML、CSS、PHP、JavaScriptなどを使います(HTMLはプログラム言語というよりマークアップ言語ですが)。
ただ、Webサイト制作・運営の話になるとプログラム言語だけを学べばよいというものではなく、CensOSなどLinuxサーバーの構築・運用や、MySQLのインストールなど、プログラミング言語以外の知識も必要です。
ただ、レンタルサーバーを使えばLinuxを一からインストールしなくても最初から使える状態で手に入りますし、実際に動くものが簡単にでき、費用も安価にできます。
とは言っても、Linuxの基礎的な使い方は一応覚える必要があるし、権限の設定など最初はやや面倒に感じるかもしれません。
ただ、WordPressはプログラムの知識がなくてもどうにかなり、Web上の設定画面で何とかできることが多いです(設定ファイルを書き換えたりするのが少し面倒な作業かもしれません)。
見た目の細かい箇所をカスタマイズする時、くらいでしょうか。
以上です。
ご参考になれば幸いです。