<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – Programming</title>
    <link>https://www.devkuma.com/jp/tags/programming/</link>
    <image>
      <url>https://www.devkuma.com/jp/tags/programming/logo/180x180.jpg</url>
      <title>Programming</title>
      <link>https://www.devkuma.com/jp/tags/programming/</link>
    </image>
    <description>Recent content in Programming on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>jp</language>
    <managingEditor>kc@example.com (kc kim)</managingEditor>
    <webMaster>kc@example.com (kc kim)</webMaster>
    <copyright>The devkuma</copyright>
    
	  <atom:link href="https://www.devkuma.com/jp/tags/programming/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>プログラミング(Programming)とは?</title>
      <link>https://www.devkuma.com/jp/docs/programming/overview/</link>
      <pubDate>Sat, 03 Dec 2022 08:16:00 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/programming/overview/</guid>
      <description>
        
        
        &lt;h2 id=&#34;プログラミングとは&#34;&gt;プログラミングとは?&lt;/h2&gt;
&lt;p&gt;簡単に言えば、プログラミングは「コンピューターに指示を書くこと」を意味する。&lt;br&gt;
PCを使い、コンピューターに指示するための「プログラム」という指示書を作成する。そして、そのプログラムをコンピューターが読み取り、指示どおりにPC上で実行する仕組みになっている。&lt;br&gt;
プログラミングの本質は、人間がコンピューターに、コンピューターが理解できる言葉で命令することであり、人間だけでは実現しにくいことを可能にしてくれる点にある。&lt;br&gt;
プログラミングはすでに私たちの身近なところに多く存在しており、PCやスマートフォン、電子レンジ、料金計算機(POS)、自動車など、さまざまなものにプログラムが書き込まれている。&lt;/p&gt;
&lt;h3 id=&#34;プログラミング言語が生まれるまでの歴史&#34;&gt;プログラミング言語が生まれるまでの歴史&lt;/h3&gt;
&lt;p&gt;プログラミング言語が誕生する前から、人類は作業を自動化する技術を作ってきた。&lt;br&gt;
まず、自動化技術の原点として1801年にジャカード織機(Jacquard)が開発された。これはパンチカードという穴を開けて順序を表した厚紙を読み取り、布を織る織機であり、パンチカードの穴の位置を変えることで模様を変えることもできた。&lt;br&gt;
その後もパンチカードを使用した解析機関やタビュレーティングマシンが開発され、処理も高度化していき、コンピューターの開発にも影響を与えた。&lt;br&gt;
そして1945年、世界初のコンピューター「ENIAC」が開発されたことにより、プログラミングの歴史が始まった。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/computer/Eniac.jpg&#34; alt=&#34;ENIAC&#34;&gt;&lt;br&gt;
&lt;em&gt;ENIAC - 画像出典: &lt;a href=&#34;https://ko.wikipedia.org/wiki/%EC%97%90%EB%8B%88%EC%95%85&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Wiki&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;プログラミング言語の種類&#34;&gt;プログラミング言語の種類&lt;/h3&gt;
&lt;h4 id=&#34;機械語&#34;&gt;機械語&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;コンピューターが理解できる言語。&lt;/li&gt;
&lt;li&gt;人が書いたソースコードをコンピューターが分かりやすく翻訳すると、「0」と「1」で表される機械語に変換される。&lt;/li&gt;
&lt;li&gt;「0」と「1」は2進数で表現されたコードで、これをバイナリコードと言い、機械語もその1つである。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;アセンブリ言語&#34;&gt;アセンブリ言語&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;機械語を人にも理解しやすくするために開発された言語で、数字だけでなく文字列や記号も使われるが、機械語に近い。&lt;/li&gt;
&lt;li&gt;翻訳する機械をアセンブラと言う。&lt;/li&gt;
&lt;li&gt;アセンブリ言語は、後に登場する高水準言語と比較して低水準言語とも呼ばれる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;高水準言語&#34;&gt;高水準言語&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;アセンブリ言語より人間が理解しやすくなった言語で、C言語やJavaなどが代表的である。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;プログラミング言語の歴史&#34;&gt;プログラミング言語の歴史&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1949年に機械語とアセンブリ言語が登場した。しかし、これらの言語はプログラミングに高度な技術を必要とした。その後すぐに「FORTRAN」という世界初の高水準言語が登場し、長く使われた。&lt;/li&gt;
&lt;li&gt;1960年代になると「COBOL」が事務処理用に開発された。より人間が理解しやすいよう英語に近づいていたため、プログラミング自体の難易度が下がった。現在も金融系システムなどで使われている。&lt;/li&gt;
&lt;li&gt;1970年代には多くのプログラミング言語の元になったC言語、1980年代にはC言語を改良したC++やObjective-Cが登場した。&lt;/li&gt;
&lt;li&gt;1990年代にはPython、PHP、Rubyなどのスクリプト言語が登場し、複雑な処理を簡単に書けるようになり、Webアプリ開発など幅広い分野で活用されている。&lt;/li&gt;
&lt;li&gt;2000年以降はGoogle、Apple、Facebookなど大手IT企業が新しい言語を開発するなど、用途に合わせて多くのプログラミング言語が誕生した。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;プログラミング言語が多い理由&#34;&gt;プログラミング言語が多い理由&lt;/h3&gt;
&lt;p&gt;プログラミング言語は現在200種類以上ある。なぜこれほど多いのかというと、プログラミング言語も人間と同じように進化するからである。&lt;br&gt;
必ずしも新しい言語が古い言語より優れているわけではないが、新しい言語のほうが設計がスマートになっているものが多く、コーディングはだんだんしやすくなっている。&lt;/p&gt;
&lt;h2 id=&#34;プログラミングでできること&#34;&gt;プログラミングでできること&lt;/h2&gt;
&lt;p&gt;プログラミングを学ぶと何を作れるのだろうか。具体的には次のようなものがある。&lt;/p&gt;
&lt;h3 id=&#34;webアプリ開発&#34;&gt;Webアプリ開発&lt;/h3&gt;
&lt;p&gt;WebアプリとはWeb上で動くアプリケーションを指し、代表的なものとしてAmazon、YouTube、Twitter、クックパッドなどがある。アプリをダウンロードしなくても、検索エンジンからサービスのWebページを開けば使えることが大きな特徴である。&lt;/p&gt;
&lt;h3 id=&#34;webサイト制作&#34;&gt;Webサイト制作&lt;/h3&gt;
&lt;p&gt;ホームページやブログなども作れる。Webアプリと混同されやすく明確な定義もないが、HTMLやCSSだけで簡単なWebページを作れるものが「Webサイト」である。&lt;br&gt;
データのやり取りが活発に行われる複雑な構造になっており、ユーザーが能動的に操作するものは「Webアプリ」と考えると分かりやすいだろう。&lt;/p&gt;
&lt;p&gt;Webサービス開発では、Webアプリ開発にRuby、インターネット上の多くのWebサイトで使われるサーバーサイド言語であるPHPなどがある。また、Webサイトを動作させるJavaScriptも必須言語と言える。&lt;/p&gt;
&lt;h3 id=&#34;スマートフォンアプリ開発&#34;&gt;スマートフォンアプリ開発&lt;/h3&gt;
&lt;p&gt;スマートフォン端末にダウンロードして使用するアプリである。カカオトーク、LINE、Twitter、Instagramなどもその1つである。&lt;br&gt;
Appleが開発しApple製品の開発に使われるSwiftや、Androidアプリの公式開発言語として採用されているKotlinが代表的である。また、Javaも汎用性が高く、多くの開発で利用されている。&lt;/p&gt;
&lt;h3 id=&#34;ai人工知能開発&#34;&gt;AI(人工知能)開発&lt;/h3&gt;
&lt;p&gt;AIとは、自ら考えて動くことで、人間に近い判断や分析を行うコンピューターであり、SiriやFace IDもその1つである。&lt;br&gt;
データ分析を得意とするPythonは、AI(人工知能)分野でも人気がある。&lt;/p&gt;
&lt;h3 id=&#34;ゲーム開発&#34;&gt;ゲーム開発&lt;/h3&gt;
&lt;p&gt;ゲーム開発といっても、スマートフォンゲーム、PCゲーム、家庭用ゲームなどさまざまな端末があり、それによって使用する言語や必要なスキルも異なるため、事前に調査する必要がある。&lt;br&gt;
例えば、WindowsでプレイするゲームにはMicrosoftが開発したC#が多く使われている。&lt;/p&gt;
&lt;h3 id=&#34;システム開発&#34;&gt;システム開発&lt;/h3&gt;
&lt;p&gt;システム開発は、家電製品や通信機器などの電子機器を制御するシステムや、銀行におけるお金の管理、不動産における物件管理などの業務システムの仕組みを指す。&lt;/p&gt;
&lt;p&gt;上記のものを作るには、プログラミング言語を使ってプログラムを書く必要があるが、プログラミング言語といっても200種類以上存在し、それぞれ開発できるものに違いがある。&lt;/p&gt;
&lt;h2 id=&#34;プログラミングを学ぶメリット&#34;&gt;プログラミングを学ぶメリット&lt;/h2&gt;
&lt;h3 id=&#34;高収入を目指せる&#34;&gt;高収入を目指せる&lt;/h3&gt;
&lt;p&gt;近年、開発者の待遇や処遇は以前に比べてかなり良くなった。一般職種より高いという点でも大きなメリットになっている。経験やスキルによって報酬も大きく変わるため、開発者としてのスキルを磨いていけば、より多くの収入を得られるだろう。&lt;br&gt;
また、開発者の求人は開発業務の増加とともに増え続けている一方、IT業界の人材不足が深刻化しており、今後もエンジニアの需要はさらに高まると予想される。仕事がなくなる事態はまず起こりにくいだろう。&lt;/p&gt;
&lt;h3 id=&#34;自由に働ける&#34;&gt;自由に働ける&lt;/h3&gt;
&lt;p&gt;開発者は他の職種より自由度が高い傾向がある。リモートワークをしたり、フリーランスになったり、働く場所や働き方を自分で選べる点は魅力的である。&lt;/p&gt;
&lt;h3 id=&#34;ロジカルシンキングを身につけられる&#34;&gt;ロジカルシンキングを身につけられる&lt;/h3&gt;
&lt;p&gt;ロジカルシンキング(logical thinking)は、物事を体系的に整理することで根拠を立て、結論を導く思考法を指す。&lt;br&gt;
ロジカルシンキングを身につけると、ビジネスにおいても物事を冷静に把握し、最適解や問題解決を素早く行えるなど、業務効率を高められる。このロジカルシンキングはビジネス以外でも、人に説明するときや相手が抱えている問題を理解して解決するときなど、あらゆる場面で役立つ。&lt;br&gt;
なぜプログラミングを学ぶことでロジカルシンキングを身につけられるのかというと、PCは人間と違って何でも理解してくれるわけではないからである。開発をするときはプログラミング言語を使って論理的に指示しなければ伝わらず、その過程でロジカルシンキングを身につけられる。&lt;/p&gt;
&lt;h2 id=&#34;コンパイラcompilerとインタプリタinterpreter&#34;&gt;コンパイラ(Compiler)とインタプリタ(Interpreter)&lt;/h2&gt;
&lt;h3 id=&#34;コンパイラ&#34;&gt;コンパイラ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;高級言語で書かれたプログラムがコンピューターで実行されるためには、コンピューターが直接理解できる言語に変換する必要がある。&lt;/li&gt;
&lt;li&gt;この処理を行うプログラムをコンパイラと言う。&lt;/li&gt;
&lt;li&gt;翻訳と実行の過程を経る必要があるため、翻訳過程が煩雑で翻訳時間が長くかかる。&lt;/li&gt;
&lt;li&gt;一度翻訳した後は再翻訳しないため、プログラムの起動速度が速い。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;インタプリタ&#34;&gt;インタプリタ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ソースプログラムを一度に機械語へ変換するコンパイラとは異なり、プログラムを1行ずつ機械語として解釈して実行する言語処理プログラムである。&lt;/li&gt;
&lt;li&gt;行単位で翻訳して実行するため、時分割システムに有用であり、ソースプログラムの変化への反応が速い。&lt;/li&gt;
&lt;li&gt;1段階ずつテストと修正をしながら進める対話型言語に適している。&lt;/li&gt;
&lt;li&gt;実行時間が長く、速度が遅いという短所がある。&lt;/li&gt;
&lt;li&gt;プログラムが直接実行されるため、目的プログラム(Object Program)は生成されない。&lt;/li&gt;
&lt;/ul&gt;

      </description>
      
      <category>Programming</category>
      
    </item>
    
  </channel>
</rss>
