
- 現役Webマーケター
(元Webディレクター) - 東証一部上場の不動産系企業で勤務
- 最高収益:月間30万円
プログラミングに興味がある、学習してみたいけど、実際何から始めたら良いか分からないという方が多いのではないでしょうか。
という方向けに、今回はプログラミングの基礎知識からおすすめの学習方法をご紹介します。
最近ではオンラインのプログラミングスクールが人気で注目を集めています。別記事でおすすめのオンラインプログラミングスクールをまとめているので是非見てください。
プログラミング言語とは、コンピューターに命令を出すためにコンピューターが理解できる言葉になります。
もう少し具体的に話すと、プログラミング言語はコンピューターに「どのタイミング」「どういう処理」「どういう順番」で実行するかを伝える作業指示書のような存在になります。
人が話す言葉も日本語、中国語、英語と色々な種類があるように、コンピューターに合わせてプログラミング言語にもいくつもの種類があります。
プログラミング言語は250言語あります。
先ほど少し説明したように、様々なコンピューターを動かす・作るために使用するプログラミング言語はそれぞれ異なります。
もっと分かりやすくいうと、Webシステム開発が得意な言語、スマホアプリに向いている言語、人工知能・機械学習に強い言語などプログラミング言語には得意ジャンルに分けることができます。
簡単にプログラミング言語をジャンルで分けると、
など色々あります。
プログラミング言語については別の記事でまとめているので、是非そちらも読んでみてください。
実際にプログラミング言語を使って作れる代表的なものを紹介します。
Google・Yahooなどで検索してヒットしたWebサイトはプログラミングによって作られています。今閲覧しているnukoblogもphpというプログラミング言語で作られたWebサイトです。
プログラミング言語を使えばWebサイトだけでなく、インターネット上で異なるアプリケーションやサービス同士が通信して動くものを総称して、Webアプリケーション・Webサービスをプログラミング言語で作ることができます。
具体的にいうと、Youtube、Tik Tok、Twitter、Amazon、楽天、Yahooニュース、食べログなどもWebアプリケーション・Webサービスになります。
HTMLは厳密にはプログラミング言語ではなくブラウザで表示させるためのマークアップ言語と呼びます。
生活をより便利にしてくれるスマホアプリは、インターネットに接続できないオフライン環境でも利用することができます。
LINE・Twitterなどのソーシャルネットワークサービス、カメラ・地図・電卓など生活を快適にしてくれる便利なアプリがあります。
そんなスマホアプリですが、iPhoneとAndroid端末でプログラミング言語が異なります。そのためスマホアプリを作りたい人は別々のプログラミング言語の知識が必要になります。
自分が思った通りの動きをするブラウザゲーム、PCゲーム、コンシューマーゲームを作ることができます。
有名なところでいうと、コンシューマーゲームのSONYの「PlayStation4」や任天堂の「NitendoDS」などの専用ハードを持つゲームですね。
ブラウザゲームのオセロゲーム、トランプゲーム、五目並べなどのゲームであれば、プログラミング初心者でも比較的簡単に作ることができます。
近年注目を浴びている人工知能・機械学習の分野にもプログラミング言語は携わっています。
人工知能・機械学習といえば、プログラミング言語のPythonが有名です。Pythonはシンプルで分かりやすいコードで書けるようになっており、誰が書いても同じようなコードになるように設計されているため、別の人が書いたコードでもあっても難なく読むことができます。
プログラムが動くためには、コンピューター(パソコン)の存在が欠かせません。
将来的にIT関係の仕事をする、IT系企業に勤めるのであればパソコンは切っても切り離せません。そのためパソコンについては勉強をしておく方が良いです。
ただパソコンの作り方とか部品の変更方法などハードウェアに関して詳しくなる必要はありません。どうやってパソコン上のプログラムが動いているか、どのように通信しているのかなどパソコン上で行っている処理については詳しくなっておいて損は無いです。
パソコンに詳しく無い、パソコン操作が苦手という方であれば、プログラミングの前にまずはパソコン操作に慣れたり、苦手意識を払拭しておいた方が良いです。
苦手意識を無くすだけなら、毎日パソコンを触ってみるのはいかがでしょう。知らなかったパソコンの使い方やソフトウェアを発見できたりしてパソコンの楽しさに目覚めるかもしれません。
本格的にコンピューターについて学びたい人であれば「ITパスポート」の資格を取得するのもおすすめです。
「ITパスポート」はより高度な情報処理技術者試験の入門的な資格になります。ITに関して幅広い知識が学べる資格になります。実際の開発現場でも覚えておくべき基礎知識が取得できます。
プログラムはコンピューターが理解できる言葉で命令を伝えるものです。コンピューターは人間ではないので、英語はもちろん日本語では命令を伝えることができないので、専用の言葉を使う必要があります。それがプログラムになります。
コンピューターも色々な種類があるので、コンピューターに合わせて、命令を伝える言葉の種類を変える必要があります。それがプログラミング言語になります。
例えば、スマホアプリであれば「Swift」「Kotlin」「Java」、Webアプリケーションなら「PHP」「Ruby」、人工知能・機械学習なら「Python」などプログラミング言語によって向き不向きがあります。
実際にプログラミングを始めるためには以下の環境、ソフトウェアが必要になってきます。
テキストエディターはWindows・Macともにメモ帳などのソフトが入っているかもしれませんが、プログラミングする際にソースコードを見やすくしてくれる「Sublime Text」「秀丸エディター」などを使う方がおすすめです。
統合開発環境はIDE(Integrated Development Environment)と呼ばれておりプログラミングを行う際に、ソースコードを編集するテキストエディター機能、ソースコードをバイナリーコードにコンパイルしたり、自動でテストを実行したり、デバッグ時に不具合の箇所を分かりやすくする機能などあらゆる機能を統合したツールを指します。
簡単にいうと、プログラムの記述、テストの実行から不具合の発見までできる便利なプログラミングサポートツールと思ってもらえたら良いです。
色々なIDEがあり、iOSアプリの開発に使われるAppleの「Xcode」、Javaを開発したOracleの「Net Beans」や、C言語・C++ ・COBOL ・PHP・Ruby・PythonなどをWebアプリケーション開発でよく使われる「Ecripse」などが有名です。
あなたのプログラミングを学ぶ目的や目標はなんでしょうか?とりあえずやってみるという考え方も間違いでは無いと思いますが、少し先のことを考えて、何が目的・目標なのかしっかり考えることも重要です。
具体的には下記のような目的・目標を持っている方が多いのではないでしょうか。
それとももっと具体的にプログラミングできるようになって作りたいものがあるある方もいるかと思います。
未経験からプログラミングを身に付けるためには、数ヶ月は勉強をする必要があります。モチベーションを維持することがとても大事なので、「何故プログラミングを勉強しているのか」という軸を持っておくと、挫折しそうな時に心の支えになってくれるかもしれません。
未経験でプログラミングを勉強する時に、確実に悩むのがプログラミング言語の選択です。
具体的にどういうものが作りたいと決まっている方であれば、作りたいものに合わせてプログラミング言語を選ぶだけで良いですが、漠然とした状態であれば、いくつもあるプログラミング言語から最適な言語を決めることは難しいです。
そのため、せっかく勉強するのであれば、自分が作りたいと思うものに合わせてプログラミング言語を決めていきましょう。
プログラミング言語は分かれてはいますが、表現は違いますが考え方は同じというのが多いので、1つの言語を習得すると別のプログラミング言語の習得は早くなります。
プログラミングを学習する方法はいくつかありますが、プログラミングを学ぶための学習方法は大きく4つあります。
プログラミングは独学でも習得は可能です。独学の場合、本や学習サイトなどを自分で選んで学習を進めていく形になります。個人的に動画や学習サイトよりも本で体系的に学びたい人なので本をおすすめしてます。プログラミングスクールであれば、専任のメンターやコミュニティで分からないことなどを相談することができるのですが、独学の場合、基本的には自分で調べて解決する必要があります。
独学は孤独との戦いであり、モチベーションの維持が課題になります。ちなみに独学でプログラミングを学習して挫折してしまう1番の理由がモチベーションの低下になります。そのため出来る限り最短の学習時間で、目的・目標を達成するためにどう学習を進めるかが勝負のポイントになります。実際は独学で学びながら、プログラミングスクールに通ったりと複数の学習方法を掛け合わせている人が多いと思います。
最近流行っている独学でプログラミングを学ぶ学習方法です。
独学なので学習スケジュールから学習内容まで全て自分で考える必要がありますが、自分のペースで学習を進めることができて、プログラミングスキルを身に付けて就職・転職を目指すことができます。
独学でプログラミングを学ぶことは十分可能ですが、1番の問題はモチベーションの維持にあります。特に最初のうちはプログラミング言語の概念や基本的な文法や決まりなどを覚えている間は、特に何も生み出せません。
独学でプログラミングを習得するのは難しいという印象を持っている方もいると思いますが、実はプログラミング業界で働いている人で、実際に独学でプログラミングを習得したという人は案外多くいます。
独学を続ければ、3ヶ月もあればプログラミングの基礎を学ぶことができます。そこから実際にプログラミングで自分のポートフォリオを作成して、自身のアピールにつなげていくことになります。
プログラミングを学べる学校に通うという選択肢もあります。
プログラミングスクールは費用がかかりますが、整った環境で一定の期間で一気にプログラミングを学ぶことができるというメリットがあります。
最近はオンラインのプログラミングスクールが中心で、転職保証が付いていたり、現役のエンジニアが講師だったり、自身のポートフォリオのアドバイスをしてくれるなど、それぞれのプログラミングスクールによって独自の特徴があります。
プログラミングスクールはパーソナルメンターに分からないことを直接質問することができて、一緒に学べる仲間ができるので、独学よりもモチベーションを維持しやすいメリットもあります。
プログラミングスクールによっては、無料体験しているところが多いので、とりあえず試してみて、自分の目的や学習レベルに合うか確認してみるのもおすすめです。
勉強といえば本ですよね。今はプログラミングを学習するスマホアプリやWebサイトも沢山あります。
特に本はプログラミング初心者向けに、プログラミング言語の構造・考え方から具体的な学習手順、開発環境の構築方法や開発者のサンプルコードなどがまとまっているので一冊読むだけでも基礎は身につきます。
また各プログラミング言語ごとに、専門書も出ているので、深い知見を付けることも可能です。
各プログラミング言語の公式サイト、ソースコード共有サイトのGithubなどには無料で公開されているサンプルソースコードがありますのでダウンロードして、ちょっとした修正を加えたりして試してみるのがおすすめです。
プログラミング言語が決まったら、学習スケジュールに合わせて学習を始めます。プログラミング初心者の方は、学んだことを元に、実際に手を動かしてプログラミングしながら学習を進めることをおすすめします。無料の学習サイトなどを活用することで、効率的に学習できます。
プログラミング未経験者の方が挫折してしまうポイントをいくつか紹介します。
プログラミング学習で暗記は通用しません。というのも色々なプログラムを案件・状況に合わせて作っていくので、学習したプログラムと全く同じということは極めて少ないからです。
あくまで基本を習う形になると思うので、仕組みを理解して、案件・状況に合わせてアレンジしていきましょう。そのためにも実際に手を動かしてプログラムを作ってみる方が早く覚えることができます。目標のハードルが高いというのは、現在の自分のスキルよりも高過ぎるプログラムを作ろうとすることです。到底できないことはもちろん、できないことによるモチベーションの低下が考えられるので、サンプルソースコードの変更→アレンジ→さらに応用といった順で、最初のハードルはできる限り低くステップアップしていくようなイメージで学習を進めましょう。
どのプログラミング言語を選択するのか習得難易度だけでなく、その後のキャリアにも影響を与えます。
求職数が多いプログラミング言語であれば、実際に転職しやすかったり、年収アップに繋がる可能性があります。
まずプログラミング言語を学ぶ上で、何を目標にするのか、また何が作りたいものかは大切なポイントといえます。