中山テック 代表の中山です
昨今、プログラミングがすごい勢いで流行っているようで
Twitterを見ると関連のハッシュタグが数多く見受けられます
※プログラミング初心者と繋がりたい、や純粋にプログラミングのハッシュタグ
型ごと・特徴ごと・組み方ごとに理解して頂いてどのような言語
プログラミングの技術と、どう貢献できるかを、覚えてからの己の振る舞いについてお話したいと思います。
目次
型ごとにプログラミングを理解する
プログラミングというと何を思い浮かべますか。
Java、Python、Javascriptと言ったメジャーなプログラミングから
あまりプログラミングと認識されていないhtml、CSSもプログラミングに当たります。
ただそれぞれ型があり、それを覚えておけばどの言語で実装されてても応用が利くようになります。
デザインの型
html、CSSが当てはまります。
頭の中で思い描いた画面を実現させるための言語となります。
これらの言語は「思い描いた画面」と違うとすぐわかるので、比較的やりやすい言語になります。
HTML、CSSなど
スクリプトの型
スクリプトはコンパイル(OSが理解するためのバイナリファイルに変換する事)が必要のない言語です。
つまり「言語を書いて即実行」可能な言語です。
そしてクライアントで使われることが多いです。PHPはサーバで使われることが多いですが。
コンパイル必要な言語と比べて、実行結果を確認→修正のスピード感が早い言語でもあります。
また、即使えることから便利ツールに用いられることも多いです。
反面、どこがエラーなのか解りづらかったり、原因の特定に時間が掛かるなどの欠点もあります。
Javascript、Python、VBS、PHP、シェルスクリプト、JSPなど
コンパイルの型
OSが理解可能なバイナリファイルに変換して、処理を行う言語になります。
時間や手間が掛かりますが、コンパイルの段階でエラーがわかります。
OSに依存しないもの(中でもJavaは影響を全く受けません)もあるのでサーバ側の制御に使われます。
また、OS理解可能なプログラムでもあることからデバッグツールが充実しており
エラー箇所の見分けがつきやすいです。
スクリプトでの処理で時間掛かるところを高速な処理が行えるものもあります。
Java、C、C#など
特徴ごとにプログラミングを理解する
各プログラミングには特徴がありますが、書き方は似通っている言語でまとめることができます。
特徴:点でも理解可能なプログラミング
コンパイルも必要なく、それどころか画面見ただけで結果がわかるものです。
つまり線でなく点でのプログラミングになります。
画面表示でわかるもの、ブラウザで結果を見れるものなど。
HTML、CSS、XML、SQLなど
特徴:上から下へ流れていくようなプログラミング
スタート地点が決まっており、上から下へ流れていくプログラミングです。
手続き型言語と呼ばれている言語がこれに当たります。
わかりやすい反面、融通が利きません。ただ処理が早かったり追いやすかったり、メリットも多いです。
C、VBS、COBOLなど古い言語が多い
特徴:モノ、部品として機能するプログラミング
世間一般でオブジェクト指向と呼ばれている言語です。
Cはmainがないと動きませんし、VBSはスタート地点が決まっています。
例えば、Javaならmainがなくても別プログラミングとの合わせ技で動かすことも可能です。
JSPはHTML+Javaみたいなものですし
JavascriptはHTMLだけでは制御できないことを部品として持つことも可能です。
HTMLの要素を、動的に変化させることができるJavascriptは
長い歴史があり今でも多くのシステムに導入されています。
Java、Javascript、C#、Python、PHPなど
組み方
ではいざ実装する際、どう組むのでしょうか。
これから紹介するのは代表の所感込みですので、全てを鵜呑みにしないことをおすすめします。
組み方:点のみで完結
処理の流れを意識せずに完結する言語です。HTMLであれば画像を表示したい場合で表示することが可能です。
もう少しデザインにこだわりたければ、CSSを活用しますがこちらもデザインという点で表現可能です。
HTML、CSS、XMLなど
組み方:線を意識
クラス、各文法(繰り返しや関数・メソッド、変数)の意識が必要な言語です。
これはほぼ全ての言語に当てはまります。
そして現在の案件はこの言語であると思ってください。
より詳細に意識するのは下記です
・今あるクラスは提供サービスからどの箇所の機能を実現しているのか
・共通する文法(変数、関数、繰り返し処理)と
固有の文法(pytonのタプル、Javaのインターフェース)から何を実現したいのかがポイントとなります。
まとめ
プログラミングという大まかな手法から
掘り下げて型ごとに分類して特徴を見分けることが重要だと思っています。
線で理解するプログラミングは、実現するための手法はほぼ一緒なため
一つの言語を極めることでどの言語にも対応できるといった特徴があります。
極論ですが、「プログラミングを通じてどう社会貢献できるか」という事だと思います。
ちなみにこの考え方はIT業界のみならず、全ての業界の永遠の課題ではないでしょうか。
勉強している方でもプロとして従事されている方も是非プログラミングをどう活かすか
是非考えてみてください。