プログラミング初心者がプログラミングに興味があっても分からないことだらけで、始めるまでに時間がかかってしまいますよね。
この記事では、初心者向けにプログラミングの始め方を解説します。
20年超のITエンジニアとしての経験を踏まえ、その先に目指すべきものも紹介します。
筆者は数年単位でいろいろ学んでいます。(OSと言語の歴史ですね)
・アセンブラ、C言語、COBOL、C++、Java、Python
・COBOLで基幹システム、RDB、NoSQL-DB、クラウド(AWS,Azure)
・MS-DOS、Windows、Unix(Solaris,AIX)、Linux(CentOS,Ubuntu)
以下にもう少し経験値を記載しています。
プログラミングで実現可能なこと
世の中のあらゆるものがプログラムで動作しています。
プログラムなしでは、今の世の中は機能しないですね。
・ゲーム
・スマホアプリ
・PC
・電子機器(家電も)
・Webサイト
・いろいろなシステム(流通、金融、社会インフラ、、)
プログラミングを始めるための準備
プログラミング初心者がプログラミングに興味があっても分からないことだらけで、始めるまでに時間がかかってしまいますよね。
この記事では、初心者向けにプログラミングの始め方を解説します。
準備するもの
・パソコン
・インターネット回線
・開発ツール (統合開発環境(IDE)と呼ばれるもの)
パソコン
・プログラミングの学習には、パソコンが必要です。iPadでは厳しいです。
インターネット回線
・プログラミングには情報検索が必要なので、インターネット回線は必須です。
開発ツール (統合開発環境(IDE)と呼ばれるもの)
・Visual Studio , Eclipse ,PyCharm など言語に応じた便利なツールが無料であります。
以前は、開発ツールも有料で購入する必要があったので、いい時代になりましたね。
言語ごとに開発ツールに使い方は別途紹介します。
Windowsで、C#、Visual Basic、C++、C言語の開発で必要な Visual Studioについては以下の記事を参照ください。
Windowsでプログラミングは可能?
これからプログラミングを始める方は、「WindowsとMacのどっちがいいの?」といった疑問を持つ方も多いと思います。
初期投資の金額も変わっていくので理解していきましょう。
WindowsとMacの両方でプログラミングは学習可能
以前は「Windowsでしかできない」、「Macでしかできない」ということも多かったのですが、開発ツールや実行環境が両方のOSで提供されています。
例えば、Windowsの提供元のマイクロソフトの主力の開発ツールVisual StudioのMac版が提供されています。
また、iPhoneやMacの開発に必要なSwift言語もWindowsで開発可能なツールが提供されています。
特定の言語で、OS(Windows/Mac)依存あり
プログラミング言語とOSの依存関係は少なくなってきていますが、
一部の言語では、プログラムを作成、簡単な動作確認は可能ですが、細かい動作に違いに悩まされることがあります。
以下の開発言語をメインで学ぶなら、OSとの相性があるので、適したPC(Mac,Windows)を選ぶ必要があります。
【C#、Visual Basic.NET】 → Windows
マイクロソフトMicrosoft社が開発したプログラミング言語。
同じ会社(マイクロソフト)のOSでもあるWindowsを推奨。
【Swift、Objective-C】→Mac
iPhone,iPadなどのiOSアプリを開発できるプログラミング言語。
同じ会社(Apple)のMacを推奨。
iPhone/Macのアプリを開発したい場合は、Macを選ぶ。
それ以外は、Windowsで問題ありません。
日本の一般的な企業は、Windowsを使用しています。
ベンチャー系は、Macが多いですね。
ちなみにPCのOSシェアは、Windows 8割、Mac 1割、その他1割ぐらいです。
「安価なPCでプログラミングに挑戦したい」という人は、Windowsから始めるとよいでしょう。Windows-PCのほうが安いです。
PCの選び方
Windows PCの選び方
CPU:
Intel Core i5 か Ryzen 5以上を目安にしましょう。
PCの頭脳の役割をもつCPUは、Intel製Core iシリーズならCore i5、AMD製RyzenシリーズならRyzen 5以上のモデルがおすすめです。
プログラミングでは複数のソフトを同時に起動するシーンがよくあるため、ある程度のCPU性能を備えたPCが望ましいです。
メモリ:
最低 8GB。ゲーム開発などの用途なら16GB以上を選択肢に。
ストレージ:
読み書き速度重視のSSDを推奨。容量は256〜512GB程度を目安。
プログラミング用途では読み書き速度重視のSSDがおすすめです。
HDDは大容量である一方、処理速度が遅いのが欠点。
画面サイズ:
13インチ以上を目安に。
プログラミングは、画面が大きいほうが作業効率が上がります。
あと外部モニターがあったほうがいいですが、必要性を感じてからでOKです。
DELLなら14インチモデルで、8万円前後。
室外に持ち出さないのであれば15インチ、16インチでもOKです。
プログラミングは画面が広いほうが、いろいろ表示できるので作業効率が上がります。
【Inspiron 14 ノートパソコン (5425) の公式サイトはこちら】Mac PCの選び方
同程度のスペック(8GBメモリ、256GB SSD)のMacBook Airで、134,800円(税込)です。
M1/M2チップ搭載のMacは、ファンがなく、音が静かなのでは魅力的ですが、
Windowsパソコンに比べ、5万円以上高いです。
メモリなど追加するときの価格もWindowsのように後で購入して追加しずらいです。
大手の日本企業に勤めたいのであれば、Windowsを選んでいたほうが無難なような気がします。
ベンチャー系とデザイン系はMacが多いですね。
何を学ぶ(何を目的にする)
目的を明確にしてからプログラミング学習を始めることで、効率的にプログラミングを習得することができます。
私も流行りのプログラミング言語を学ぼうとして本を購入しましたが、続かなかった経験があります。
まず、プログラミングでやりたいことを決める
プログラミングをしてみたいと思っても何から始めればよいのか悩む人は多いでしょう。
ブログやホームページの制作に興味があるのなら、Web制作を目的とするのも良いでしょう。
AIに興味があるので、Pythonを学んでみたいという目的もありですね。
このように、初めに何を作りたいのかを決めることがプログラミングを始める上では大切です。
プログラミングで使うプログラミング言語は、作るものによって変わってくるからです。
他の言語を学んだからと言って無駄になるわけではありません。
プログラミング言語は、ある程度ベースとなる概念は同じものが多いです。
記述の方法が、言語固有になっているようなイメージです。
作成するものによって適した言語はおおよそ決まっているので、目的を達成するためにも最初に目的を明確にすることがプログラミング言語を効率的に習得する早道です。
目的に合ったプログラミング言語を選ぶ
プログラミング言語の選び方です。
パソコン選びと同様、アプリのタイプによって限定されるケースがあるので注意が必要。
簡単ですが以下におススメしたい言語をいくつか紹介します。
初心者ということで、Windowsアプリを作成するために必要な C#, VisualBasic、
習得が難しい C++,C言語は外しています。
Java
不動の人気を誇るプログラミング言語。言語の難易度はやや高めですが、しっかりしたプログラミングスキルを身につけたいならおススメです。
システム開発、Web開発、アプリケーション開発と、使える場面が多岐にわたり、さまざまな開発に利用されています。特に、大企業での大規模システム開発やAndroidアプリの開発を得意としています。
Windows、Mac、Linuxなどどんな環境でもJavaは動作するのも強みです。
また、Javaをある程度理解できれば、C++,C#,Pythonなど他の言語もすぐに習得できます。
PHP
Webアプリ向け言語で初心者でも理解しやすい言語。手軽にWebアプリを作れるというのも魅力のひとつ。
ブログ作成で利用するコンテンツマネジメントシステム(CMS)のWordPressはPHPで作成されているので、ウェブ業界での需要が大きい。
Python
AIと組み合わせで人気のプログラミング言語で、ソースコードの書きやすさで定評のある言語。
Swift
iPhoneやiPad向けのアプリ開発に必要な言語。
目的が明確でない場合は、Pythonを学ぶ
そうは言っても、目的がはっきりししない場合もありますよね。
単なるプログラミングに関する興味の場合は、Pythonを学ぶことをお勧めします。
Pythonの最大の特徴は「コードの記述が短くて済む」という点です。
「コードが短い」と以下のように、学習しやすいです。
• 勉強しやすい
• コードを書く時間が短くなる
• エラー箇所が分かりやすい
プログラミングを習得する方法
プログラミングの「学習手段」として、独学とスクールがあります。
プログラミングを独学で学ぶ最大のデメリットは、わからないことが解決できないことです。
Google検索しても解決方法を見つけられない、そもそも適切な検索キーワードが浮かばないこともあります。
この壁を自力で乗り越えることができれば、独学でも問題ないと思います。
「独学」でマイペースに学習する
Progate【初心者におすすめ無料サイト】
画像中心のスライドを使い、文字が少なめで初心者に配慮された構成になっています。
スライドで学習し、その後に手を動かす学習の流れは、プログラミング習得で効率がいい方法です。
プログラミングは全てブラウザ上で書くことができ、初心者がハマりやすい開発ツールなどの環境構築でのトラブルがないため、プログラミング学習に集中できます。
言語
Progateで学べるプログラミング言語
• HTML/CSS
• JavaScript
• jQuery
• Ruby
• PHP
• Java
• Python
• Swift など
ドットインストール【3分動画で学べる無料サイト】
ドットインストールは、3分以内の動画で学習する解説型のプログラミング学習サイトです。
種類が豊富で、目的に合わせた学習がしやすいところが便利です。
PCだけでなくスマホなどからも動画を閲覧でき、空いた時間で学習できます。
【公式】ドットインストール – 3分動画でマスターする初心者向けプログラミング学習サイト
ドットインストールで学べるプログラミング言語
• HTML/CSS
• JavaScript
• jQuery
• Ruby
• PHP
• Java
• Python
• Swift
• C言語
書籍で学ぶ
いろいろプログラミングの本があるので、初心者向けのものを購入し、学習する。
・出版日が新しいか(言語の構文も機能も変わっている)
・サンプルコードが多いか
・図解が多く分かりやすいか
必ず、書店に足を運んで、実物を見て購入しましょう。
プログラミング学習の書籍は少し高価なものが多いため、買って「やっぱり合わなかった」ではもったいないです。
独学で学ぶ場合の流れ
私が初心者の状態で学ぶとすると以下の順番で学びますね。
(1)ドットインストールで基本的なこと見て学ぶ
(2)Progateで実際動かしてみてプログラミングの概念を学ぶ
(3)自分のPCの開発環境をインストールして、書籍などでじっくり学ぶ
(4)効率が悪い、疑問点が解決しないなどで進みが悪ければ、「プログラミングスクール」を検討する
プログラミングスクールも無料で体験できるところも多いので、申し込んでみてはいかがでしょうか。
「プログラミングスクール」で一気に効率的に学習する
私も新しい技術を書籍などで学ぶことがありますが、業務で必要な知識や技術を学ぶために有料の5日コースなどを受講することが多々あります。
最初の立ち上がりのスピードが全然違います。
(その場でいろいろ質問できるので疑問点もその場で解決し、理解も深まります。)
TechAcademy(テックアカデミー)
・評判や口コミに酷いものがない。高評価のものが多い。
・現場で役立つ実践スキルが身に付くようなカリキュラムである。
・料金が他のスクールより少し安い。
テックアカデミーの他との違い
・プログラミングだけではなく、開発、テスト、データベース設計など現場で必要な実践的なスキルが身に付く。
・実践的にJavaを学べる。
GEEK JOB(ギークジョブ)
異業種からITエンジニアとして就職を目指す転職者のための就職支援サービスがあります。
他のスクールと異なり、プログラミングでけではなく、インフラ技術も学べる。
インフラ技術を学んでいないと、メモリを大食いのプログラム、DBにバカみたいに要求を投げるプログラムなどを平気で作ってしまいます。
GEEK JOB:社会人転職コース(インフラエンジニア)その先を目指して
Webだけでやっていけるほど甘くない
厳しいことを言いますが、
Web制作に必要な最低限の知識だけでは、副業でも転職でも単価が高い仕事に就けないです。(単発で稼げるかもしれませんが、継続的に単価が高い仕事は得るのは難しいです)
2,3カ月学んだぐらいのプログラマーに発注しないですよね。
私の会社では、Web画面の制作などは安い国内外注に発注するか、量が多い場合、更に安い海外に発注します。
プログラミングの基本の取っ掛かりとして、Web画面の制作などのフロントエンドを学ぶのはいいのですが、
ここをゴールとしてはいけないです。単価が上がらないのです。
データベースの知識、OSの知識、HWの知識、クラウドなどドンドン広がっていかないと
Webの画面しかできない。=> 仕事も増えない。単価も上がらない。
ということになります。
あとがき
プログラミングは、ある程度できるようになるまでが大変ですが、できるようになると楽しいですよ。
もう一度若いときに戻って、いろいろなプログラミング言語を学びたいですね。
昔は、インターネットもなく、情報もなく、プログラミングを学ぶハードルは高かった。。。