中山テック 代表の中山です

昨今、プログラミングがすごい勢いで流行っているようで、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業界のみならず、全ての業界の永遠の課題ではないでしょうか。

勉強している方でもプロとして従事されている方も是非プログラミングをどう活かすか、是非考えてみてください。

最後に 中山テックについて

中山テックでは下記のお仕事を承っています。

ホームページ制作系

ご料金はサービス内容・料金を参照ください。

■ホームページ制作
※ロゴ、バナーは外注となります
■SEO対策
Googleガイドライン診断、マネジメント、ブログ執筆など

システム開発系(SES請負契約向け)

■役職
プロジェクトマネジメント、PMO、リーダー、開発(要件定義~納品まで)

■スキル
工数見積(FP法)、折衝・提案、計画、調査、設計、実装(C、Java、クライアント系、SQL等)、データベース全般、テスト計画・項目作成、運用・保守

その他

Excel、プログラミングなどソフト系のお困りごと

対象地域

千葉県:東葛エリア(松戸市、柏市、我孫子市、市川市、流山市、船橋市、鎌ヶ谷市、白井市、浦安市)、市原市 他要相
茨城県:取手市、土浦市、他要相談
埼玉県:三郷市、草加市、春日部市、他要相談
東京都:23区、他要相談

ご質問ございましたら、お問い合わせページよりご連絡ください。