さて、ここまでプログラミングは簡単だという幻想について色々書いてみました。
こんなことを書いたのは、「5日で分かる!」とか「簡単!」とかついたプログラミング初心者向けの本とかブログとかがものすごいあふれているからです。
大学や企業で研究しているような人を除き、自分達一般人がするようなプログラミングは決して専門的な学問ではないです。
自分が知ってる昔はC言語ですが、このころは確かにメモリを意識しなきゃいけなかったり、もっと低級言語時代は専門的な知識がものすごい必要だったんだと思います。
※コンピュータは0か1かで処理をしていくものらしいですが、この0とか1とかを「00001110110101」とか書いてPCとため口は、本当に超々一部の人はできるかもしれないですが、一般人には出来ないので、ちょっと人間に理解しやすくしたものがプログラミング言語です。ちなみにこの「00010101001011」みたいなものを機械語とか言ったりするようです。
このプログラミング言語の中でも高級言語と低級言語というものがあって、より機械語に近いものを低級言語、より人間に分かりやすく書ける様にしたものを高級言語といいます。
出来ることが多いから高級とか、環境構築に高いスペックを要求するから高級とかそういうものではありません。
高級言語で書いたものをコンパイルっていってPCが分かる機械語に翻訳して、PCはプログラムを実行しているというわけです。
よく聞く(?)C言語とかJavaとかは高級言語です。
いまだと低級言語を使うことはあまり無いんじゃないでしょうか(とはいっても、自分が大学時代(10年くらい前(!?)やっていたレアジョブ(Skype英会話)のフィリピンの先生はC言語とアセンブリを勉強しているということだったので、分からないですね。少なくとも周りの人間で今低級言語ごりごり書いてます><見たいな人は居ません)
高級言語は人間に分かりやすく書ける様にしてあるので、変数は英語だったり、ログも英語だったりしますが、読めます。
整数をIntegerって表現するのですが、そのままですね。
public class Main { public static void main(String[] args) { System.out.println("Hello,World!!"); } }
コレはJavaのプログラムですが、Javaがまったく分からなくてもなんとなくニュアンスは分かるんじゃないでしょうか。
mainって書いてあるから重要そう・・・?
とか
printって文字列があるから何かを出力するのかな?後ろに””でくくった”Hello,World!!”って書いてあるからHello,World!!って出力しそう。
といった具合です。
個人的には眺めて見てもまったく分からないインドの言葉とか、大学でちょっと触ったフランス語よりも分かりやすいです。
といった具合に、専門的な知識が無くてもなんとなくプログラムの言語は読めます。
なので、「5日で分かる!」とか「簡単!」とかは一部においては正しいのかもしれません。
でもプログラムをするってそういうことじゃない部分がすごく多いです。
上のようなJavaのHello,World!!は開発環境さえ整えば20分もあれば実行までたどり着くでしょう。
public static void main(String[] args) { double height = Integer.valueOf(args[0]); System.out.println(makeMessage(height)); } private static String makeMessage(double height) { if (height < 140) { return "140cm未満のお客様はこのジェットコースターには乗車できません。"; } else { return "乗車可能です。お楽しみください。"; } }
こんな条件分岐をつかったプログラミングも5日もあれば出来るでしょう。
でも、アプリを作るとなると設計したりテストしたり、画像作ったり、、、ってとてもじゃないけど5日じゃ出来ません。
初期投資も値段かからないし、勉強するコンテンツは世の中にあふれていてすごい参入障壁は低いです。
でも参入障壁が低いからって期待値コントロールが「すごく簡単」って状態でやり始めるとすぐに頓挫するでしょう。
ここを誤って欲しくないです。
また、正直自分で書く必要があるの?っていう部分も結構あります。
サンプルプログラムとかみると掲示板って結構やりやすい題材なので、掲示板があったりしますが、
これ、自分で作らなくても自分で掲示板を開設するサービスは結構あります。
ブログ開設も0から書くのではなくてWordPressを使えばインストールして、かっこいいテンプレート探してくるだけでプログラミングしなくても結構いい感じのプログを作成できますし、もっというとはてなぶろぐとかアメブロの方がずっと楽です。
——
とか色々書きましたが、自分自身はプログラミングや開発が好きです。
やっぱり自分で「どうしようかなー」って考えて、それをコストが自分の時間とちょっとした電気代程度でつくれるのはいいですね。
もし作れなかったり飽きたとしても、お金的なコストはかからないし、一回こういったものを構築して保守して、、、って言うことを経験すると、なんとなーくのプログラミングとかシステムのノリがわかるので、
世の中のサービスを使っていてもちょっと見え方が変わります。
ネトゲの緊急メンテナンスとかの見方も変わります。裏側で人間が動いているんだなーって結構切実に感じます。
みずほ銀行のシステムのトランザクション移行とか、自分は絶対にしたくないです。
これからの世の中、今まで以上にプログラムと仲良くなっていると得する世の中な気がします。
割というまでも無いですね。
なので、一回プログラミングで何かを作るという経験をするのは本当にお勧めです。
動いた瞬間とか結構感動します。
ただ、やっぱり簡単といっても何かを作り上げるというのは地味だし、やることは多いし、
想定外の事態は起こるしって言うことを認識してからやることを強くお勧めします。
こんなところでした。
コメント