アフィリエイト広告を利用しています

広告

posted by fanblog

2021年01月02日

プログラミングとは何か?初心者にもわかりやすく説明します!

366A347B-4773-4A0D-AC47-615ABC9F0D98.jpeg



プログラミング、これはそもそも何なのでしょうか?

コンピュータにまったく興味のない方がこの言葉を聞くと、ハッカーっぽい風貌の人が英数字で書かれた暗号のようなものを打ち込む姿を想像するでしょう。

それはさておき、私たちはすでに無数のプログラムに囲まれています。そんなプログラムを作ることをプログラミングといいます。

本記事ではプログラムやプログラミングとは何かということから始めて、プログラミングの習得方法まで解説します。動機はどうであれ、プログラミングってなんだろう?始めてみようかな?とお考えの方々の一助になれば幸いです。










【プログラミングとは】

プログラムを作ることをプログラミングといいます。プログラムとはコンピューターへの指示です。

コンピューターは、何らかの「指示」がないと動きません。ご自宅のPCに電源を入れてみてください。ブラウザを立ち上げる、Excelや年賀状作成ソフトを立ち上げる、といった指示をしないと、コンピュータだけでは何もしないことはいうまでもありません。勝手に動いてもらっても困りますよね。

この指示をプログラムといいます。プログラムを作るのがプログラミングです。

もう1つ、大切な側面があります。

プログラミングとは問題解決であるともいえます。プログラマは手を動かす前に、コンピュータにやらせたいことをどう指示するか、つまりプログラムのモジュール構成(どう分割するか、など)やアルゴリズム(解法や手法、ロジック)を考えます。考えた結果を、手を動かしてプログラムを書きます。そこまで含めてプログラミングです。

人によってやり方が異なりますが、本質は上記のような何かの「仕様」「目的」があり、それを解決するのがプログラミングともいえますよね。











【プログラミングでできること】


プログラミングで何ができるかを考えましょう。

先ほど述べた「何をさせるか」の「何」とはなんでしょうか?

人によっては科学計算であったり、Excelマクロ(VBA)であったりWebシステム開発、最近はやりのAIやIoT関連のプログラミングかもしれません。それらを総じて「何をさせるか」の「何」にあたります。つまり、コンピュータでできることはプログラムでできる、ということです。

そこまでいっても何一つピンとこないでしょう。それは「プログラミング」と「日常的にパソコンやスマホを使うこと」がリンクしないからです。

今すでにみなさんの周りはプログラムであふれています、と聞いて信じられますか?日常的に行う以下の行為も、すざまじい数のプログラムのおかげです。



・このページを見る
・スマホでゲームをする
・YouTubeを見る
・電話をかける
・電車に乗る


なのにプログラミングを学ぼう!と意気込んで書籍を購入しても、ネットの初心者向け解説を見ても、出てくるのは「変数とは」「if文とは」などと教科書的なことばかり。

「1+1」というプログラムを作って動かして、黒い画面にポツーンと「2」と返ってきても何も感動はありませんよね。この結果を見て「なるほど!YouTubeを見るときはこのプログラムが使われているのか!」と思う人はいないはずです。

むしろこんなプログラムでは、プログラミングを学んだところで何の役に立つのか分からず、学ぶ気が失せてしまうでしょう。

でも、大丈夫!

みなさんが接しているのは膨大なプログラムたちのアウトプットであり、その背後では本当に膨大な数、膨大な種類のプログラムが動いています。例えばブラウザでホームページを見られるのは、フロントエンドエンジニアと呼ばれる人たちがHTMLでコーディングしてくれるから、見た目にも美しくわかりやすいページを見られるのです。その他スマホにも、無線LANルーターにも・・・

みなさんが真面目にコツコツと学ぶと、いつかはそういったプログラムを作れるようになります。
  











【プログラマーの仕事内容】

プログラマーの仕事は、プログラムを作ることです。ただ、それだけではありません。システム開発の流れに沿って解説します。会社の業種や規模によって異なりますが、以下が基本となります。

◯設計

作るべきシステムや機能の仕様を固めるシステムエンジニア(SE)が、仕様書または設計書を作ります。そこから実際にどうプログラムに落とし込んでいくのか、どういったモジュール分割を行うのかということを設計するプログラマがいます。

このフェーズを経て、すぐにプログラミングができる詳細仕様書が出来上がります。

◯コーディング

詳細仕様書にもとづき、プログラミングです。ここはもう、説明は不要でしょう。

◯テスト

「ちゃんとできていればこう動くはず!」という一覧、つまりテスト仕様書があります。テスト仕様書にもとづき、正しく動作するかテストします。不具合(バグ)があればデバッグを行い再テストです。

おおまかにいって、こんな感じになります。企業規模が小さいと、すべて一人でこなす場合もあります。

ちなみにポテパンが運営するポテパンキャンプではコーディングとテストをメインに学ぶことができます。未経験からプログラマーになる第一歩を踏み出せるプログラミングスクールになっています。









 
【プログラミングに必要な環境】


プログラミングには当然パソコンが必要です。その他、プログラミングに必要なものをあげてみましょう。

WindowsとMacどちらがいいの?

プログラミングをするのにWindowsかMacのどちらがよいか、これはとてもよく聞かれる質問です。

答えは、やりたいことができて、使いたいツールが使えるのなら、どちらでもかまいません。

ひと昔前までは、グラフィック系のいわゆるAdobe製品を使うような仕事はMac、社内業務やプログラミングにはWindowsという暗黙の了解がありました。

しかし最近の開発ツールは両方提供されていることが普通です。例えばEclipseは昔からあるツールですが、Windows用とMac用の両方が提供されています。ネット上でサンプルプログラムや技術解説のページにある画面コピーを見ても、Macを使っていることがとても多くなりました。

よってOffice製品をガンガン使うのでWindows、なんとなくMac、といった個人的な好みで選べばよいでしょう。

◯プログラミングに必要な環境

まずはプログラムを書かなくては話になりませんよね。では何を使って書くか、それはいろいろです。

◯エディタ

プログラムを書くツールであるエディタが必要です。

ちょっと試してみたいというだけならWindowsはメモ帳、Macはテキストエディットといった、OSに最初から備え付けのエディタを使えば良いでしょう。

しかしコードを書くというのは、なかなか手間のかかる作業です。そうなると、OS備え付けのツールだけでは物足りません。高機能なテキストエディタが欲しいところです。以下のような高機能なテキストエディタを選びましょう。



・Sublime Text
・ATOM
・秀丸
・TeraPad
・Vim


これらの多くは外部のライブラリを取り込んで機能拡張することが簡単にできます。さまざまなライブラリで機能を順次拡張し、効率的なプログラミングができます。

◯コンパイラ

コンピュータは、基本的には0と1で書かれた情報しか理解できません。しかし私たちがプログラミングするときは、人間がある程度読めるものを書きます。つまり、人間が書いたものはコンピュータに理解できないので、コンピュータが分かるように変換しなくてはなりません。

それを、コンパイラといいます。

しかし最近のプログラミング言語にはこの変換が不要なスクリプト型言語もあり、コンパイラが必須かというとそうではありません。スクリプト型言語の代表選手は、Rubyです。

のちに触れる統合開発環境に含まれていて、特に意識しなくても良いこともあります。

◯動作環境

Webシステムでは、ユーザーからの要求と作ったプログラムに基づきHTMLに生成してくれるWebサーバーが必要です。ApacheやIIS、nginX、pumaなどが有名です。

いわゆる制御系や組み込みと呼ばれるプログラムでは、その言語と製品に応じた独自の実行環境が必要です。

◯統合開発環境

上記のすべてを含み、コーディングから実行までできるようにしたのが統合開発環境(IDE)です。Eclipse、Visual Studio、IntelliJ、RubyMine、PHPStormといった、それ1本で多くのプログラミング言語に対応できるもの、言語特有のもの、有償のものがあります。

用途や目的によって採用しましょう。


【初心者におすすめの言語とは】

初心者にオススメ、または習得できればいろいろおいしい言語をご紹介します。

Ruby

日本人のまつもとゆきひろ氏が開発したプログラミング言語です。スタートアップ企業に多く使われています。スクリプト型とはいえ環境構築が若干困難なのと、最初はとっつきにくいのが難点です。

しかし多言語と比較して効率的にプログラミングができるので、習得すれば多数のメリットがあります。

PHP

Webシステム開発に特化した開発言語です。デスクトップアプリの開発はできません。

言語体系がとてもシンプルなので修得が容易ですし、環境構築もとても楽にできます。フレームワークも多数存在しています。普及率も高く、一度習得すれば広範囲に仕事が取得可能です。

Java

開発言語の王道ともいえるJavaです。普及率はとても高く、Webシステム開発はもちろんのこと、組み込み系やAndroidアプリ開発にも利用されています。

環境まわりが多言語と比べてどうしても複雑になってしまうのと、同じことをするのにも記述量が長くなるのが難点です。









この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/10444104
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
ファン
検索
<< 2021年03月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
じゃむがむさんの画像
じゃむがむ
プロフィール
×

この広告は30日以上新しい記事の更新がないブログに表示されております。