現在、機械化やITイノベーションは世界各地で日々起こっており、プログラミングが私たちの日常と深く関係するようになりました。
その中で、プログラマやエンジニアの需要や将来性の高さから、これらの職業に就くためにプログラミングの学習を始めようと思った方も多いのではないでしょうか。
しかし、一人でプログラミングを始めようと思っても、何から始めればいいか分からずに困ってしまいますよね。
そこで、この記事ではプログラミングを始めたい方向けに、プログラミングをするために必要な準備やプログラミングの勉強法などを詳しく紹介します。
この記事を読んで、プログラミング学習の第一歩を踏み出しましょう。
【前提編】プログラミングを始める前に
プログラミングの始め方の説明に入る前に、一つ質問があります。皆さんはプログラミングに対してどのようなイメージを持っているでしょうか。
例えば、「とにかく文字を打ち込んでる」「ゲームを作る時に必要な作業」「文系の人には難しい」というようなイメージがあると思います。
しかしこれらのイメージは、現実と異なっていることが多いです。
そして、実際にプログラミングを始めても、想像していたのと違ったという理由で辞めてしまう人もいます。
このため今一度、プログラミングがどういうものなのかを確認しておきましょう。
プログラミングとは
プログラミングとは、プログラミング言語でコンピュータに指示を出す作業のことです。コンピュータは意思を持たないので、人間からの指示がなければ動きません。
しかし、コンピュータは指示を受けると人間の何倍もの力を発揮します。
例えば計算の分野では、理研や富士通などが開発したスーパーコンピュータは1秒間に約41.6京回もの計算ができ、世界最速になったと話題になりました。
また、一般的なコンピュータでも1秒間で約1000万回もの計算が行えるので、人間は計算速度でコンピュータに到底かないません。
このようにプログラミングを使えば、人間では膨大な時間が掛かるような作業をコンピュータで瞬時に終わらせることができます。
プログラミングでできること
日々、コンピュータを使った製品やサービスは数多く生み出されているのですが、これらにプログラミングが使われていると感じることはほとんどないと思います。
なぜなら、プログラミングはコンピュータの裏側の作業で、我々は普段目にしないからです。
そこで、プログラミングがどのような製品やサービスに使われているかを確認していきましょう。
Webアプリ
我々がよく使うWebアプリはプログラミングで作られています。
WebアプリとはWeb上で使えるアプリのことで、App StoreやGoogle Playなどでダウンロードするアプリとは違います。
代表的なWebアプリには次のようなものがあります。
- YouTube
- 食べログ
Webアプリはダウンロードする必要がなく、多くの人が気軽に利用できるのが特徴です。
AI(人工知能)
今大注目の人工知能の分野でもプログラミングが使われています。
人工知能とは、コンピュータが人間のように自分で学習し、相手や状況ごとに対応を変えるシステムのことをいいます。
普通のコンピュータは、プログラミングされた指示通りの動きしかできないので、日常生活のような臨機応変な対応が必要な場面には活用できませんでした。
しかし、人工知能は過去の経験やデータの学習を繰り返し、センサーなどによる認識の正確さが年々増していくので、自動運転や介護ロボットなどに利用されています。
Webサイト制作
ホームページやブログなどに代表されるWebサイトもプログラミングで作られています。
最近は多くの人がスマホやパソコンを持っているので、皆さんもよくWebサイトを見ているのではないでしょうか。
その中で、画像が一定時間で切り替わっていったり、画面をスクロールするとその動きに合わせて表示が変わったりするサイトを見たことがあると思います。
動きのあるホームページやサイトを作るためにはプログラミングが欠かせません。
プログラミングを誤解している人が多い
プログラミングは、国語や数学のように全員が学習するわけではありません。
このため、プログラミングをやったことがない人の中には、プログラミングの間違った情報を信じてしまっている人がいます。
また、この誤解が原因でプログラミングは自分には難しいと感じ、学習をあきらめてしまう方もいるようです。
そこで、プログラミングに対するよくある誤解を紹介しますので、今のうちにプログラミングを正しく理解しておきましょう。
数学の知識は必ず必要というわけではない
「大学でプログラミングの授業があるのは理系の学部が多い」や「コンピュータといえば理系のイメージ」という理由で、プログラミングに数学の知識が必要だと思われています。
しかし、実は分野を選べば数学の知識は必要ないです。
数学の知識が必要な分野には、人工知能やデータサイエンスが挙げられます。
これらの分野のようにデータ分析をプログラミングで行うときに、微分や積分などの知識や統計学の知識が必要となります。
逆にこれらの分野以外だと、数学の知識がなくても困ることはないでしょう。
使うとしても簡単な四則演算で済むことが多いので、数学の知識がないから不安という方も安心して学習を始めてください。
プログラミングと数学の関係についてこちらの記事で詳しくまとめています。ぜひ参考にしてみてください。
習得には時間がかかることも
「1か月でプログラマになれました」や「3か月でプログラミングを身に付け、高年収エンジニアになった」といった成功例を見かけることも増え、プログラミングはすぐにできるようになると思われがちです。
確かにプログラミングに詳しい講師の方がいたり、1日にできる限りプログラミングの勉強をしたりすれば、短期間で仕事を受けられる程度のプログラミングの知識やスキルを身に付けられるでしょう。
しかし独学の方やコンピュータ初心者の方は、エラーの処理や分からないところをネット・本などで調べるのに時間がかかってしまうものです。
このため、自分の思ってたよりも学習が進まなくても、自分には向いてないと諦めないでください。
また、もしインプットばかりで飽きてきたという方がいたら、その時点での知識で自作のプログラムを完成させてみるとプログラミングの楽しさが分かると思います。
【準備編①】目標を決める
プログラミングを挫折しないで続けていくためには、絶対に達成したい目標を決めることが大切です。
ここでは、プログラミングを使った働き方や職業を紹介します。まだ、目標が明確になっていないという方は、目標を決める際の参考にしてみてください。
プログラミングを使った働き方
会社員エンジニア
会社員エンジニアは、どこかの企業に属し、社員として働くエンジニアのことを指します。
そのため、企業の研修や周りのエンジニアからプログラミングを学びながら、エンジニアとしてスキルを上げていくことができます。また、安定した収入が保証され、その他福利厚生なども享受することができます。
一方で、人間関係や業務時間などにあまり自由はありません。また、収入も安定はするものの、急激に上がるということはありません。そのため、高い収入を実現したい方や人間関係・働く場所に自由を求める人には合っていないでしょう。
副業エンジニア
副業エンジニアは、本業と別に個人で案件を受託したりして報酬を得ているエンジニアのことを指します。
近年では、副業エンジニアは本業でエンジニアをしている人だけでなく、別の業界で働いている方が新たにプログラミングを習得し、副業を始めるということも多いです。プログラミング関連の案件は、リモートOKの場合が多く、比較的に本業と両立しやすいのです。
ただ、一つの案件をこなすために必要な時間も多いので、本業が忙しいという方には副業エンジニアとの両立は大変でしょう。
もっと副業について詳しく知りたいという方は、こちらの記事を参考にしてみてください。
フリーランスエンジニア
フリーランスエンジニアは、個人事業主として案件を受託し、報酬を得ることを生業としてる方のことを指します。
フリーランスは、自由な働き方や人間関係、高収入を実現しやすいことができることが大きな特徴とされています。特に、プログラミング分野では、リモートOKで、単価の高い案件が多い傾向にあります。これは、プログラムは同じ場所に集まらなくても作ることができる点とプログラミングという技術を身に付けた人が希少である点が大きな要因です。
ただ、初心者がいきなりフリーランスエンジニアになれるかというと、そこまで甘いものでもありません。少なくても、エンジニアとしての十分な経験やフリーランスとしての案件開発実績を身に付けることが必要です。
プログラミングを使う主な職業
Web系エンジニア
【初心者おすすめ】Web系エンジニア
初心者にお薦めの職業としてWeb系のエンジニアが挙げられます。
Web系のエンジニアとは、主にWebサイトやWebアプリ開発に携わるエンジニアのことを指します。数多くの企業が自社の独自のWebサイトやWebアプリを保有し、運用しています。そのため、新規作成や保守運用の需要が大きく、将来性も高いといえるでしょう。
また、これらの技術は初心者でも比較的簡単に身に付けることができます。そのため、初心者の方でも挫折せず、習得できる可能性が高いです。
特に、副業やフリーランスとして働きたいと考えている方には、案件数が豊富にあり、Webアプリ開発は単価も非常に高いのでお薦めです。
ゲームエンジニア
ゲームエンジニアとはその名の通り、家庭用ゲーム機やスマホなどのゲームを制作するエンジニアのことを指します。
また、ゲームは作成して終わりというわけではなく、新しいイベントなどの更新や細かいバグなどの修正を行っていく必要があり、ゲームエンジニアはこれらも担当しています。
加えて、近年はVRや3D等の新しい技術もゲームに導入されています。そのため、ゲームエンジニアはこれらの新たな技術も習得する必要があります。
AIエンジニア
近年、AIエンジニアは非常に注目度が高まっています。具体的には、膨大なビッグデータを機械学習やデータ解析などを行うAIを開発するエンジニアのことを指します。
AIは、マーケティングや医療などの多くの業界で導入されています。また、今後もどんどん導入のスピードは速まっていくでしょう。そのため、将来性は非常に高いと言えます。
AIエンジニアは顧客の問題解決のためにAIを開発します。そのため、AIに疎い顧客であっても適切な提案ができる提案力やコミュニケーション力も重要です。
こちらの記事で詳しくプログラミングを使う職業を紹介しています。ぜひ参考にしてみてください。
【準備編②】プログラミングに必要な準備
ここでは、プログラミングをするために最低限必要なものを紹介します。
これを参考にして、プログラミングの準備を進めていきましょう。
パソコン
なんといってもプログラミング学習に必要となるのはパソコンです。
基本的にどのパソコンでも、プログラミングをすることはできるので、すでに自分のパソコンがある方は新たに買う必要はないと思います。
それでもプログラミング用のパソコンが欲しい人やパソコンを持ってない人は、パソコンを買わなければいけません。
その時に問題になるのが、WindowsとMacのどちらのパソコンを選べばいいかということでしょう。
特にこだわりがない人は、Macを選ぶといいと思います。
Windowsに比べて、操作が分かりやすかったり、Apple製品向けのアプリを作れたりします。
そして、Macは一度Windowsをインストールすればすぐに使えるようになるので、プログラミングをするのにはMacがおすすめです。
しかし、ゲーム開発やVRの開発においてはWindowsの方が開発環境が整っているので、これらの開発をしたい方はWindowsのパソコンにするべきです。
こちらの記事で、これからプログラミングを始める方向けにお薦めのパソコンとその選び方を紹介しています。ぜひ参考にしてみてください。
通信環境
プログラミングをするなら、通信環境は整えたほうがいいです。
通信環境を整えておくと、分からないことがあってもネット検索ですぐに解決できますし、プログラミングに必要なソフトウェアのダウンロードやアップデートも可能です。
また、最近ではプログラミング学習ができるwebサイトも充実しているので、通信環境があれば好きな時に色々な言語を勉強できます。
このため、回線速度の速い環境を作ることをおすすめします。
テキストエディタ
プログラミングをするのに必要なのがテキストエディタです。
テキストエディタという言葉は日常生活であまり聞くことがないので、テキストエディタが何か分からない方も多いと思います。
テキストエディタとは、文章を書いたり、プログラミングをしたりするためのソフトウェアのことです。
みなさんに馴染み深いテキストエディタには、メモ帳やwordがあり、実はこれらでもプログラミングができます。
しかし、普通のテキストエディタはプログラミングに適した機能が少ないので、プログラミングには使われません。
プログラミングにはプログラミング用のテキストエディタがあるのです。
プログラミング用のテキストエディタには次のようなものがあります。
- Atom
- Visual studio Code
- Xcode(Mac専用)
これらは無料で使えて、初心者の方にもおすすめなので試してみてください。
また、プログラミング用のテキストエディタはこの他にもたくさんあるので、興味のある方はこちらの記事も参考にしてください。
【準備編③】プログラミング言語を選ぶ
プログラミング学習を始めるには、自分の学習したいプログラミング言語を選ばなければいけません。
長い時間をかけて勉強するので、自分の目標に合わせて慎重にプログラミング言語を選びましょう。
そこで、ここでは分野ごとに主に使われているプログラミング言語を紹介します。
ぜひ言語選びの参考にしてください。
Webサイト制作・Webアプリ開発
HTML&CSS
HTMLとCSSは厳密にいうとプログラミング言語ではなく、HTMLはマークアップ言語で、CSSはスタイルシート言語と呼ばれる言語です。
しかし、どちらもプログラミング言語として扱われることも多く、Webサイト制作には欠かせないので紹介します。
HTMLは見出しや段落などのWebサイトの骨組みを作り、CSSは文字の色や大きさなどのWebサイトの装飾を作ります。
Webサイトの土台を作る言語なので、Webエンジニアだけでなく、Webデザイナーを目指す方にも必要となります。
また、この2つの言語はシンプルでわかりやすく、参考書などもたくさん売っているので未経験者でも始めやすいです。
JavaScript
動きのあるWebサイトを作るために使われるのがJavaScriptです。
今ではどの企業も動きのあるサイトを作るので、JavaScriptを使うWebサイト制作の案件は非常に多いです。
JavaScriptはHTMLやCSSだけでは実現しにくい動的な動きを再現でき、初心者でも学びやすいのでおすすめです。
PHP
PHPは、Webサイト制作の中でもSNSサイトやECサイトの作成に使われています。
PHPはショッピングサイトで商品を購入する時のシステムなども開発できるので、Webサービスの開発には欠かせない言語といえるでしょう。
このため、PHPを使う案件も多く、人気のプログラミング言語となっています。
人工知能
Python
AIが私たちの日常にも密接に関わり始めたことで、注目を浴び始めた言語がPythonです。
Pythonは、シンプルな構文になるように設計されており、大学などの授業でプログラミングの入門講義などで使われるくらい学習しやすいです。
今後、AIを使った製品は増えていくはずなので、これに伴ってPythonの需要も大きくなっていくでしょう。
システム開発
Java
Javaは大規模なシステム開発に適しており、たくさんの企業で使われています。
このため、プログラミング言語別の求人数では第一位となるほど人気のプログラミング言語です。(参考:MONOist)
しかし、専門性が高い言語なので、未経験から身に付けるのは少し難しいかもしれません。
そのためJavaを身につけたい方は、プログラミングスクールなどを積極的に利用するといいでしょう。
アプリ開発
Swift
Swiftは、Appleが開発したプログラミング言語で、Apple製品用のアプリを作るために使われます。
SwiftはAppleが開発したこともあり、Windowsだと新たに環境を整えなければいけませんので、Macのパソコンを使っている人向けです。
Swiftはコードの読み書きが容易なので、初心者の方にもおすすめです。
また、Swiftは処理速度も高く、不具合も起こりにくいので、完成度の高いアプリを作れます。
Macのパソコンを使ってる方はぜひSwiftを勉強してみてください。
Kotlin
Apple製品用の言語がSwiftなのに対して、KotlinはAndroid製品用のアプリ開発に使われています。
Kotlinは2011年に開発された比較的新しい言語ですが、Javaをベースに作られたので、Javaとの相性が良く、Javaと相互利用することが認められています。
これにより、今までJavaで作っていたものをKotlinで作りなすことができるのです。
Kotlinで作られたものには、LINEやAbemaなどの有名なものも多いです。
新しい言語で日本ではまだあまり浸透していませんが、将来性のある言語なのでおすすめです。
C言語
C言語は、1972年に開発された歴史の長いプログラミング言語です。
プログラミング言語は新しいものに取って代わられていくことが多いのですが、C言語は汎用性が高く、長い間使われ続けている言語となっています。
C言語は処理のスピードが非常に速いので、処理の速さが求められるアプリやロボット分野で使われています。
アプリやロボットを開発したい方にはおすすめですが、初心者の方には難易度が高い言語なので、プログラミングの経験を積んでからチャレンジしてみることをおすすめします。
こちらの記事で、プログラミング言語を難易度別に解説しています。ぜひ参考にしてみてください。
【実践編】プログラミングの学習方法
ここからは、プログラミングの学習方法をいくつか紹介していきます。
プログラミング言語は目標に合わせて一つに決めたほうがいいと言いましたが、学習方法は一つに絞らなくてもいいと思います。
色々な方法を試して、自分に合うものを見つけていきましょう。
参考書
何かを勉強しようとするときに、まず思いつくのが参考書だと思います。
もちろんプログラミングも参考書で学べますし、その種類は豊富です。
そして参考書は持ち運びに便利ですし、プログラミング中にエラーや分からないことがある時に、すぐに使えるのがいい点です。
他の学習方法で勉強していても、辞書のような感じで参考書を持っていてもいいと思います。
しかし参考書で勉強する方の中には、インプットだけの学習になってしまったり、分からないところを放置してしまったりする人がいます。確実に自分の力とするためにアウトプットを欠かさないように注意しましょう。
プログラミングを参考書で独学したい方向けにこちらの記事で、おすすめの参考書をまとめたので、ぜひ参考にしてみてください。
【無料】webサービス
プログラミングはwebサービスでも学習できます。
webサービスの学習は、パソコンと通信環境があればすぐに始められるので、早くプログラミングを始めたい方やプログラミングがどんなものかを知りたい方におすすめです。
また、無料でプログラミングが体験できるので、初心者の方のプログラミング学習としての第一歩として、特におすすめの学習方法です。
ここでは、初心者の方におすすめのwebサービスを紹介します。
Progate
プログラミングを始めるのに最適といわれているのがProgateです。
Progateは、スライドでプログラミングの知識をインプットし、その後にオンライン上で実際にコードを書いてアウトプットをして、学習を進めていきます。
初心者の方の中にはインプットだけで終わってしまう方が多いので、このProgateの学習法で進めるのは、アウトプットをする習慣をつける練習にもなるのでおすすめです。
また、スライドは初心者にも分かりやすいように作られていて、コードを書くときにはすぐ見直せるようになっているので、知識の定着が早いです。
講座の種類も豊富で、基礎講座は無料で受けることができるので、興味のある方はProgate ホームページを確認してみてください。
Udemy
Udemyは各分野の専門家が講師となっている授業動画が配信されているサービスです。
授業動画のいいところは、講師の方がコードを書くところから実行するところまでを見れるところと何度も繰り返し視聴できるところだと思います。
またUdemyには、プログラミングを学習できるwebサービスには珍しい、講師の方に質問すれば答えてくれる機能もあります。
Udemyは初心者でもプログラミングを続けやすいサービスです。
期間限定のセールを頻繁に行っており、数万円するような講座が千円台で見れることもあるので、興味のある方はUdemy ホームページをチェックしてみてください。
ドットインストール
ドットインストールは、動画でプログラミングを学ぶことができるwebサービスです。
一つの動画は3分程度となっており、通勤時間や休憩中などの短い時間に見ることができます。また、動画を見ながら自分も実際に手を動かしながら学べるので、アウトプットも同時に行うことができます。
無料で見れる動画もいくつかあるので、気になる方はぜひドットインストール ホームページを見てみてください。
スクール
プログラミングを教えてくれるスクールも多数存在します。
スクールではエンジニアやプログラマが講師として、親身になってプログラミング学習をサポートしてくれるので、初心者の方でも学習を継続しやすいです。
また、スクールの中には個人に合わせてカリキュラムを組んでくれたり、スケジュールを管理してくれたりするところもあるので、忙しい方でも無理なく続けられます。
スクールの中にはオンラインの講座を用意しているところもあり、自宅で簡単にプロからプログラミングを学ぶこともできるようになっています。
スクールについてもっと知りたいという方は、ぜひこちらの記事も参考にしてみてください。
こちらの記事で、初心者の方におすすめのプログラミングスクールを紹介しています。ぜひ参考にしてみてください。
勉強会
勉強会は、現役のエンジニアやプログラマの方が主催していることが多いです。
このため、自分の作ったプログラムや分からないことについて、実際に開発を行っている人の視点でアドバイスしてもらえます。
また、勉強会には同じようにプログラミングを勉強している人たちが集まるので、いい刺激がもらえたり、プログラミング仲間を作ったりできるでしょう。
TECH PLAYというサイトに勉強会情報がたくさん載っているので、興味がありましたらぜひ参加してみてください。
まとめ
今回は、プログラミングの始め方を紹介しました。
プログラミングが我々の生活に深く関係するようになり、プログラミングに興味を持つ人は増えています。
しかし、実際にプログラミングを始める人はまだまだ少ないです。
そこで、この記事を参考にぜひプログラミングを始めてもらいたいと思います。
この記事を読んで、実際にプログラミング学習の第一歩を踏み出してもらえれば幸いです。