つなワタリ@捨て身の「プロ無謀家」(@27watari)です。題して「1000TimesOfProgrammingチャレンジ」というプログラミング学習をやる(https://27watari.com/1000times-of-programming-0001)と言っておきながら絶賛放置プレイ中でした。相変わらず完全無知のままです。
2か月ぶり2回目となる今回は、「そもそもプログラミングってなんなの?」という素朴な疑問を調べ、自分なりに消化してみました。なんたって超初心者なので間違いもあるかもしれませんが、その辺はご愛敬。間違いがあったら、コメント欄で指摘してください。
【目次】本記事の内容
初心者だから、まずはプログラミングの定義から再確認してみよう
まずプログラミングを調べる前に……自分が勝手に考えている「プログラミングの定義」とは、こんな感じです。
コンピュータを動かす指示言語がプログラムで、
その言語を構築するスキルがプログラミング。
こんなイメージです。
調べてみました。
さほど大きくは違っていなかったようです。
プログラミングは、コンピュータが理解できる言葉で指示を書く(プログラムする)ことのようです。
シンプルに考えると、コンピュータに命令して動かすことですね。
そのために言葉があるわけです。
なんとなくわかってきました。
・ ・ ・
思いっ切り脱線しますが、『新約聖書』の冒頭には、「はじめに言葉ありき。言葉は神と共にあった。そして言葉は神であった(In the beginning was the Word, and the Word was with God, and the Word was God.”)」なんてフレーズが出てきます。
結局、「人間も地球も、この世は神の作った複雑なプログラミングの上で動かされているだけなのかもな?」なんてことを考えてしまいました。
ここから妄想を広げると、いくら時間があっても足りません。
ここは強引に思考を再起動させることにしました。
本来、プログラミングは単純なのに複雑に感じる理由
言葉(コンピュータ言語)を使って、命令する(コンピュータに命令して動かす)のがプログラミングであることは理解しました。
とっても単純な気がします。
プログラミングなんて、
言葉と言葉の使い方を覚えれば簡単です。
しかし、実際はここから先がまったく見えなくなります。
単純なはずなのに、
思いっ切り複雑だと感じてしまう自分がいます。
何がブラインドやバリアになっているのでしょう。
考えてみました。
理由は大きく2つありました。
(1)コンピュータそのものに対する認識不足
(2)言葉(コンピュータ言語)の無理解
これを把握するだけで絡んだ糸がほぐれてきました。
説明します。
コンピュータは“道具”にすぎない。命令しなければ「ただの箱」
私的にはコンピュータって、どうしても“魔法の道具”のようなイメージが強いです。
その認識が間違いでした。
超スピードで処理はできますが、
所詮は“道具”にすぎないんですよね。
結局、道具を使うのが人間で、命令が実行されなければ「ただの箱」とか「ただの板」みたいなものなんです。
さらに融通性がないのが特徴です。正しい指示がされていないと、まったく動いてくれません。
賢いようで、そうでもなさそうです。
「○○とはさみは使いよう」という言葉がありますが、「○○とコンピュータは使いよう」って感じです。
言葉(コンピュータ言語)って? 種類はいくつあるの?
コンピュータは「0」と「1」の情報で動くことは以前から知っていました。
電気が流れないオフ「0」、流れるオン「1」の「2進法」で計算し、理解し、命令された動きをするわけです。
これが基本です。
しかし、私たちが「0」と「1」だけで指示をすることは不可能です。
そこでコンピュータに命令を出す言葉(コンピュータ言語)が作られることになりました。
言葉(コンピュータ言語)は、私たちの意志とコンピュータへの命令を橋渡しするものなわけです。
本格的に言葉(コンピュータ言語)の開発がはじまったのは、50年ほど前のこと。そして、現在は200種類以上もあるといわれています。
2018年8月発表!Python人気上昇中!「言葉(コンピュータ言語)ベスト20」
TIOBE Softwareというソフトウェア会社では、検索エンジンの結果により『話題になっている「言葉(コンピュータ言語)』を発表しています。
以下は2018年8月に発表されたランキングです。
TIOBE Index for August 2018
https://www.tiobe.com/tiobe-index/
これを見ると「Python」の人気がアップしてきているようです。不動のベストスリーを脅かす存在になってきています。
つか、「Python」の読み方すらわかりませんけど……。
<まとめ>「0002Times」でわかったコンピュータとプログラミングの基本概念
今回は基礎中の基礎なんでしょうが、コンピュータとプログラミングの基本概念を自分なりに把握したことで、だいぶ心的バリアが解消されたような気がします。
今回のまとめは以下のとおりです。
(1)プログラミングとは?
コンピュータに命令して動かすこと。
(2)コンピュータは、ただの道具
人間が言葉で命令しないと、ただの箱。さらに融通性がないので、正しい指示が必須。
(3)コンピュータ言語
「0」と「1」の指示で動くコンピュータに命令するための橋渡し的言葉。現在は200種類以上もあるが、メジャーどころは20種程度。
全体像が見えてきました。
前回、私は「1000回達成時には、iphoneアプリ的なものを開発する」的なことを書いていますが、つぎに必要なことは、どの言語を学習していくかがポイントになりそうです。
では、2回目のプログラミング学習はここまで!!
ぜひ一緒に「1000TimesOfProgrammingチャレンジ」やって、ツイートしましょう!
<Three Main Rules 1000TimesOfProgramming>
(1)1000回、プログラミングに関する知識を吸収する
(2)進捗状況を「#1000TimesOfProgramming」を付けてツイートする。
※「#1000TOP」でも可。
(3)スタートに1000回達成時の目標を設定する。
※ただ1000回やるだけでは意味なし。途中で変更もアリ。
超初心者・未経験者でも結果が出せるプログラミング学習サービス「侍エンジニア塾」
早く結果を出したい人にオススメなのが「侍エンジニア塾」です。
「完全マンツーマンレッスン」「フルオーダーメイドカリキュラム作成」「独立・起業・フリーランス支援」の3本柱を明確に打ち出していますので、非常に心強いです。
無料体験レッスンン(来訪、Skype面談)もやっていますので、一度体験してみるといいでしょう。
侍ってアナログチックなネーミングも含めて、私も気になっています。1000回やり通して結果を出せなかったら、現段階では「侍エンジニア塾」に相談しようかと思っています。
wordpressやるなら
エックスサーバーがオススメ!
このサイトはスタート時より「wordpress × エックスサーバー」によって運営しております。他のサーバーとも契約をして別サイトを構築しておりますが、エックスサーバーの使い勝手がイチバンです。セキュリティ、サポートに満足しております。しかも低コストです。利用者が多いので情報がネットに多いことも助かります。
詳細は下記ボタンより