プログラミングって何?何ができるの?大手企業の業務SE職に聞いてみた

プログラミング 何ができる

文系・理系を問わずプログラミングの重要性が声高に叫ばれるようになってきいますよね。

じゃあ、プログラミング学ぼう!と思っても、プログラミングしたところで何ができるのか?これすらわからないとプログラミングを学んでも、なんのためにやっているんだろうともやもやしますよね。

 

そこで、今回は、私の友人で大手企業の業務SE職をやっている人に、全く無知だった頃の私がプログラミングについて聞いたときの会話をそのまま書き起こしてみました。

(後で聞きましたが、業務SEとは、下請け会社や部下の各SEにプログラムを組むよう指示を与えたり、そこで発生したプログラムの問題を解決したりする、統括的な仕事のようです。プログラミングの応用的なことまで当然できる人ですね。)

結構飲んだ時の会話なのでどうなるか・・・

果たして有用な答えは得られたのでしょうか。

おそらく私を含め、このページを見た方が知りたいことは会話中盤以降、太字になっているところだと思います。

前半が退屈な方はそこまで飛ばしてみてください!




 

ミナト
まず、プログラミングって何?プログラミングとは?
SE
え?機械に命令文を書くことだよ

 

ミナト
それで、何ができるの?
SE
機械に命令ができる

 

ミナト
そのメリットは?
SE
人間よりできることが多い。機械の得意分野は、大きな計算、決まりきったことなんだよね。それを命令すれば一瞬で実行できる。
ミナト
ええと??じゃあ、IT企業あるじゃん、あれはなにを命令してるの?
SE
ITにも広義と狭義があって、、広義ならwebサイトやるのはITだし、SIerもIT企業。

つまり通信情報技術を使っていればIT企業になるね。だから一概には言えないんだけど・・・

何が知りたいの?

SIerとは、システムインテグレーション(SI)を行う業者のことである。SIに「~する人」という接尾辞「-er」を付けてできた造語である。

システムインテグレーションとは、システムを構築する際に、ユーザーの業務を把握・分析し、ユーザーの課題を解決するようなシステムの企画、構築、運用サポートなどの業務をすべて請け負うことである。これらを行う業者がSIerである。

SEとも似ているが、SIerは、コンサルティングを中心とした業務がメインであるのに対し、SEは、技術を中心とした業務がメインである。ただし、中小規模の企業になると、SIerと同じような業務をすべてSEが行っている場合もあるため、明確な定義はしにくい。

Weblio辞書

ミナト
プログラミングで何ができるかを身近に感じられる説明してよ
SE
そろばんを電卓にすることかな?
ミナト
もう少し現代チックに!
SE
ゲームとかアプリとか?
ミナト
なるほど(IT企業のイメージと合ってきた)。じゃあ、プログラミングを専門的に活かせることは?
SE
ほかには、会社の従業員管理、基幹システムを紙にしなくても勝手にやってくれたりするよ。

あとは・・・CPU挟んでいればITかなって。(後日聞いたら暴論らしいので削除とのこと)

ミナト
うーん。広いんだな。IT社長とかのITとIT職関係者のITの定義は違うの?
SE
ITにも色々ある。PCの中身を作るのもITだし、それをマネジメントしてる(プログラミングとか全然してない)人も、どっちもIT職になるんだよね。

でも、全く違うじゃん?そこを括って話すからこんがらがるイメージがある。

広すぎるんだよね、「IT」って言っちゃうと。

ミナト
理系職視点で「IT」の定義を分けるとしたら?
SE
大きくはハード(外身)かソフト(内部)か

私はあんまハード系を作っていないからわかんないけど、ソフトフェアじゃないのが全部ハードね。実体があれば全部そう!

ミナト
(ハードはちょっと聞きたい話と離れるかも)

ソフトの話をお願いします。

SE
製品(パッケージ)orスクラッチ開発の2パターンある。

これは製品が先or客が先ってことね。

中小企業だと自分の会社で開発できないから既にある製品(パッケージ)を使うとかが多いのでは?

実際にパッケージ開発してる部門だと、汎用的に役に立つ製品を作って、あとはアップデートしていく…例えば新しいOSが出たらそれに対応するとか、バグがあったら直すとか。

ミナト
デバッグ?
SE
バグは悪いところ。デバッグは悪いところ(バグ)を探す作業だから違う。
ミナト
じゃあ、大手企業の君は客が先?
SE
客が先で作ってく。

ミナト
(プログラミングからずれてきた?)

待って、じゃあ言語はどこででてくんの?

SE
システムを組むときに出てくるの、そこで何の言語を使うかを決めるの。
ミナト
その裁量は誰にあるの?
SE
会社やプロジェクトの前提で大体決まる。OSやweb・サーバに合わせて依頼されたり、技術者の多さによったりする。

データベースに合うやつなど、外回りから既に決まっていることが多い。

ド新規はなく、既存のものに合わせることも多いから、言語の裁量の余地はそんなにない。

最大手だと4,50年は同じもの。

ミナト
はえ~。

最近プログラミングを勉強しようって風潮が強いけど、それはどう思う???

SE
やりたい人は、プログラミングそれ自体より、構造を学んでほしい。プログラミングの言語とかはどうでもいい、1個学ぶと、他のは方言みたいなもんで、文法的に概観すればいいと思うから。
ミナト
今からプログラミングを学んでも理系最先端には及ばない?
SE
プログラミングと最先端技術は別の話。技術は考え方の話だから、、日本語が喋れても話術がなければうまい話はできないのと一緒。

基本的にそこまでは必要ないし、その域に達している人は理系でも少ないよ。そういう人になろうっていう人以外はいらないよ。

極めたいのなら、研究者になりたい人だけどうぞって感じ。

言語に例えればわかりやすいかな?要は日常会話ができればいいんでしょ?通訳翻訳を目指すのでなければ概観学べばいいよ。



ミナト
日常会話レベルは何でもいいから一言語?どのレベル?
SE
多分、object指向はやった方がいいよと思う。そんな気がする。

これがプログラミング指向で大事だとされている。

C言語はobject指向じゃない。C++はobject指向。どうせやるならプラプラまでやってobject指向までやった方が良い。

C言語とC++は一緒なんだけど、C++の方が洗練されてるってか・・・

ちょっとイイ感じのプログラムを書くのにobject指向は必要なんだよね。

自分でプログラミング組むようなレベルになってきたときに・・・・(長考)・・・なんていうか・・・C言語ってダサいんだよね(笑)

とにかく、プログラミング学ぶなら、object指向学ばないと意味ない気がする。なぜかと言われると言いづらいな。

具体例を出した方がわかりやすいのかな・・・object指向を使わないとダダ書きなんだよ。

これは説明が難しいから、やって実感してみて。

ミナト
そしたらobject指向言語学びなさいってなるな・・・
SE
Cができれば最低限はできてるよ。どの程度になりたいかによる。
ミナト
じゃあ、object指向でおすすめの言語は?
SE
私がメインでやったのがCとC++とJAVAしかないから、C++とJAVAはobject指向でお墨付きだけど・・・
ミナト
CとC++の関係は?
SE
++をやっていれば勝手に身についているのがCだよ。包含関係。

ミナト
ん?じゃあ++だけ学べばいい?
SE
そうだね。

私はC言語によるプログラミング 基礎編が学部の指定教科書だったから使ってたな。

 

 

ミナト
なんとなくわかったような。

じゃあ、各言語について一言、なんでもいいからもらっていい?

SE
C:個人的に好き

C++:object指向のC

C♯:JavaみたいなC

Java:安定感。めんどくなかったらjavaからやれば。私は嫌いだけど一般的にはjavaのが良いよ

Javascript:web(ブラウザを介して使うもの)やるなら

Swift:林檎(笑)

Python:研究者が使ってる最近はやりのやつ

Ruby:日本人が作ったから日本で最近はやってるやつ

SQL:SQL?!(笑)←鼻で笑った

 

 

ミナト
これに学ぶときの順位をつけるなら?
SE
建前でいいなら

Java>C++>>C♯であとはどっこいどっこいだよ。

 

ミナト
プログラミングを学ぶ人たちってどんな目的でやってると思う?
SE
アプリ開発なんじゃないの?あとはプログラム言語で1番身近だとマクロかな?
ミナト
マクロ?
SE
VBA。ビジュアルベーシック。
ミナト
マクロって何・・・VBAは何ができる?
SE
プログラミングの命令を一個にまとめたもの。Excelでできる自動計算をもっとすごくしたやつ。マクロしらないの!?
ミナト
すみません(半泣)
SE
うん、とりあえずやってみて、実感するのが早いかも。

 

こんな感じでした。質問能力と知識の無さェ・・・

 

ただ、得られた情報を要約すれば、プログラミングは、PCを介して、ほとんど何でも実現することのできる作業のことと言っていいでしょうか。

 

ということは、SEになりたい、プログラミングの専門家になりたい、という人以外、

今からプログラミングを学ぼうとするなら、何か目的意識を持って学ぶことが必要ですね。

 

彼女のおすすめではオブジェクト指向言語(C++、Java)を学べ、ということでした。

 

が、私はこの会話のあと、Java、C++を学ぼうとして挫折しました。笑

 

 

馴染みが無いとなんとも難しいんです。

そして、ブログ書いているからって理由でHTML・CSSを学び、Rubyをちょっとだけつまんで、その後アプリを作ってみたいという動機からSwiftを少々学んでいます。

今は本で学んでいますが、最初は無料で学べるサイト、progateでやっていました。(このサイトにはアフィがない泣)

HTML/CSSはわかりやすかったのでブログをやっている人はとっかかりとしてやってみても良いと思います。

 

プログラミングしているうちに、なんとなく彼女が言っていたようなこともわかりかけたところが多々あります。

どんなもんかな?と思っている方は、やってみたらいかがでしょうか。