編集部
2023.12.12|最終更新日:2023.12.13|

『プログラミング』の初心者におすすめの言語や勉強の手順、習得中の苦労や上達の秘訣を紹介します

『プログラミング』の初心者におすすめの言語や勉強の手順、習得中の苦労や上達の秘訣を紹介します

【麗澤大学監修】情報化社会が発展し、多くのデジタルサービスが使用されています。スマホやPCのアプリケーション、ウェブサイトを活用したサービスがあり、高度な情報技術を使ったデジタルサービスは日常生活に欠かせないものです。 それらを実装化するために必要不可欠なものが「プログラム」です。そこで、プログラミング初心者に向けて基礎知識をはじめ、勉強する手順や習得中の苦労、上達の秘訣について、麗澤大学工学部の陳寅(チェンイン)先生に解説してもらいました。

目次

    プログラミングって何?

    そもそも、プログラミングはなぜ必要なのでしょうか。それはウェブサイトやスマートフォンのアプリケーション、また多様なデジタル機器に至るまで、コンピュータが組み込まれたサービスは「指示書がない」と実装して働くことができないからです。
    つまり、プログラミングは「コンピュータにどう働いてもらうかを考え、思い通りに稼働してもらうための指示書を作ること」です。

    プログラミング001.jpeg

    例えば、計算機には計算機能がついていますが、「どのようなデータがあり、どのような計算結果が必要で、どのような計算がそれを効率的に達成できるか」をあらかじめプログラミングする人が考え、それをプログラムとして形作っています。

    計算機は事前に与えられた指示書通りにしか稼働できないため、人間が実践してほしい計算をプログラミング言語を使って1つの指示書にまとめ、計算機の中に組み込みます。すると、計算機はプログラミング言語で書かれた指示書を見て「何をやればいいのか」を理解し、その通りに仕事をやってくれるわけです。

    目的によって学ぶ言語を選ぶ

    プログラミングに使われている言語は、いろいろあります。プログラミングは使用目的によって適した言語を選ぶことが重要です。例えば、スマートフォンのアプリを開発する場合、iOSならSwift、AndroidならJavaを使います。

    また、ウェブサイトの開発の場合はJavaScriptとPHP、さらにHTMLなど複数の言語を同時に使う場合もあります。データベースやその他の専門分野のシステムには、それぞれ最適な言語があります。つまり、何を実装したいかによって学ぶ言語がおおむね定まっていきます。

    国がプログラミング教育に力を入れ始めたのも、デジタル技術の革新により境界線がなくなっていく国際社会においてデジタルサービスの共通言語であるプログラムの必要性を実感しているからです。

    参考「教育の情報化の推進」(文部科学省)
    https://www.mext.go.jp/a_menu/shotou/zyouhou/index.htm

    初心者はプログラミング言語から選ぼう

    プログラミング言語といっても、いろいろな種類があります。プログラミングを始める場合は「何をやるか」によってどの言語を用いて指示書を作成するのかがだいたい定まっています。そこで、プログラミング言語の種類、初心者におすすめの言語を紹介します。

    プログラミング言語の種類

    一般的に使われているプログラミング言語でも数十種類あります。ウェブサイトで使用するJavaScriptをはじめ、ECサイトで使うPHP、アプリケーション開発に用いるJavaなど、目的によって使い分けられています。

    プログラミング再.png

    初心者が取り組みやすいプログラミング言語

    初心者には「Python」がおすすめです。理由は2つあります。まず、プログラムを開発する場合は環境設定が必要です。特に初心者には環境設定が難しく、プログラミングを知らない人が環境設定をせずに実行しようとすると、何がなんだかわからなくて諦めるケースが多く見られます。

    そこで、Pythonを使うと、Googleが運営する「Colaboratory」というウェブサイトが利用でき、さまざまなことを独学できるような環境設定になっています。「Colaboratory」はサイトを開くと、すぐにプログラミングを実行したり学んだりすることができるような環境設定になっています。そこがおすすめ理由の1つです。

    Googleが運営する「Colaboratory」
    https://colab.research.google.com/

    もう1つの理由は学びながらプログラミングを実践できる点です。通常、プログラミング言語には「解釈型(インタープリタ方式)」と「翻訳型(コンパイル方式)」という2つのタイプがありますが、Pythonは解釈型の言語で、プログラミングされた言語を1行ずつ解釈しながら実行していきます。

    1行ずつ実行するのでエラーがあったら、その時点でエラーメッセージが出てきます。したがってエラーを修正しながら、プログラミングを進められるのが初心者向きです。また、Pythonにはオープンソースのライブラリーが充実しています。利用者が多い言語なので、誰でも見られるオープンソースのリソース量がたくさんあり、それを参考にして自分が表現したい内容をプログラミングすることができます。

    Pythonは子ども向けのプログラミングにもよく使われている言語です。はじめにPythonを覚えると、その他の言語も学びやすくなります。なぜならプログラミングの構造や文法といった大枠の仕組みをつかむことができるからです。Pythonを身につけると、その他の言語を学ぶことがイメージしやすくなります。

    その他、初心者向きのおすすめ言語を紹介します。

    ・JavaScript(ジャバスクリプト)

    ウェブページに動きを与えるなど、複雑な機能を持たせるためのプログラム言語です。開発はHTMLやCSSとセットで行います。スマートフォンアプリの開発にも使われることがあります。

    Ruby(ルビー)

    日本で開発された国際規格認証のプログラミング言語です。主にウェブサイト用のアプリケーション開発で使われていますが、スマートフォン用アプリケーション開発にも用いられます。

    ・Java(ジャバ))

    プログラム開発でよく使われている言語で、Pythonと同じくGoogleが開発の際に採用している言語です。システム開発、ウェブサイト構築、アプリケーション開発など、さまざまな開発に使用されています。

    PHP(ピーエイチピー)

    ウェブサイト構築の中でも、ECサイトのショッピングカート機能、お問合せフォームの自動返信機能などの実装で使われている言語です。

    初心者がプログラミングを勉強する手順

    プログラミング初心者は「何から始めたらいいか」がよくわかりません。例えば、「ウェブサイトを作りたい」と思っても、インターネット上で機能させるためにはプログラミングだけでなく、ネットワークやデータベースなどの知識とスキルの習得も必要となります。

    最初は「プログラミングを使って何をやりたいか」という目的を持つことが大事です。もちろん確固とした目的がなくても、単純に「プログラミングを学びたい」という理由でも問題ありません。いずれにしろ、初心者がプログラミングを始める場合は「総合開発環境(IDE)」を利用して学ぶことがいいでしょう。

    言語を選び、開発環境を確保する

    Pythonをおすすめする理由に「総合開発環境(IDE)」と呼ばれる、プログラム開発をサポートしてくれるアプリケーションが利用可能だからだと説明をしました。総合開発環境は基本的なプログラミングが習得できるだけでなく、構文の強調表示、文法チェック、デバッガーなども行えます。

    まず学びたいプログラミング言語を選んだら、次は総合開発環境を確保しましょう。麗澤大学ではPythonを選び、総合開発環境として「Colaboratory」を無料で活用し、授業の中で機械学習の練習やアプリケーションの開発を行っています。

    初心者がプログラミング習得中に苦労すること

    プログラミング言語と総合開発環境を選び、習得に向けてスタートしたとしても、その過程では、さまざまな苦労が待っています。「ソースコードを入力してもエラーが出る」ことは日常茶飯事です。エラーのたびに不向きかもと悩んでしまったら挫折してしまうので、エラーメッセージを読んで適切に改善するたびに「習得の階段を上っている」と理解しましょう。

    プログラミング003.jpeg

    苦労01 エラー解決(デバッグ)

    エラーの解決は、プログラミングを習得する上では避けて通ることができません。ソースコードのエラーが表示されたら、必ずメッセージが書いてあります。解決するには、まずエラーメッセージを読んで理解することが重要です。

    総合開発環境を活用すれば、自分が表現したいプログラムの正解を知ることができるため、エラーメッセージを照らし合わせてみましょう。表示された内容を修正すれば、ほとんどのエラーは直すことができます。それでも修正できない場合は、プログラムの構造的な文法に間違いがある可能性が高いため、その場合はプログラムを1行ずつ検証しましょう。

    苦労02 トライ&エラーを繰り返す

    基本、プログラミングはエラーが出たら書き直すことの繰り返しです。それゆえトライ&エラーを何度も経験しながら、ソースコードやプログラミング言語の構造、さらに文法を自然に覚えていくことになります。

    エラーの修正についても、すでに多くの情報がインターネット上に存在しますので、それらを参照しましょう。例えば、ソースコードをGoogle検索したり、またChatGPTのような生成AIを利用したりすることも解決手段です。

    総合開発環境を利用してプログラミングを始めたら、簡単にトライ&エラーを繰り返しながらスキルを身につけることが可能です。だからこそプログラミング言語に応じた総合開発環境を探すことが先決です。

    プログラミング初心者が上達する秘訣

    プログラミングの初心者が上達するには、2つの秘訣があります。

    上達の秘訣01 他の人が書いたソースコードを読む

    1つは、他の人が書いたソースコードを読むことです。インターネット上には、先駆者たちが苦労の末に実現させたプログラムが数多く紹介されています。Google検索すれば、自分が表現したいプログラムのソースコードを見つけることが可能なので、それを理解することが上達の秘訣です。

    例えば、文章を書くことがうまい人は作家やライターが書いたプロの文章を読んで参考にしています。ソースコードの書き方も同じで、他人のプログラミングを数多く読んで勉強し、自分のソースコードとして扱えるようになることが上達の近道です。

    上達の秘訣02 自分が覚えたソースコードを書いてみる

    もう1つは、実際にプログラムを書くことです。 見たり読んだりするだけでも勉強になりますが、自分で書いて実行したり確認したりしてみると、小さいミスなどが徐々に発見できるようになります。

    ただChatGPTを多用し、ソースコードを学ぶことはおすすめしません。なぜならプログラミング初心者はChatGPT内で提示されたソースコードが適切なものであるかどうかが判断できないからです。

    ソースコードを知る手段として利用するのは問題ありませんが、ChatGPTが出したものを正解と捉え、プログラミングを学ぶ方法は正解ではないことは理解しておきましょう。ChatGPTなどの生成AIが提示するソースコードは、あくまで参考です。

    麗澤大学がプログラミングを取り入れる理由

    プログラミング004.png

    麗澤大学工学部ではPythonを活用し、「機械学習入門」や「ビジネスAI」といったカリキュラムを進めています。Pythonを選んだ理由は「初心者が勉強しやすい」「ライブラリーが充実している」ことです。

    特に多くのライブラリーがあるツールを用いて学習すれば、データ分析、機械学習、深層学習、人工知能といった開発に即使える知識とスキルが習得できます。2024年に開設する工学部では、プログラミングを通してデータ分析や機械学習、AIのプログラム開発を身につけられるように準備を進めています。

    研究室によって採用するプログラミング言語は異なりますが、入門編としてPythonを取り組めばプログラミングの構造や文法といった基礎知識を身につけやすく、また他の言語も覚えることに役立ちます。


    麗澤大学サイト「データサイエンス教育」
    https://www.reitaku-u.ac.jp/about/global_leader/#linkDataScience

    工学部生が学ぶプログラミング

    工学部生が習得するプログラムは、専攻によって違います。そこで、情報システム工学専攻とロボティクス専攻について、それぞれ紹介します。

    情報システム工学専攻で学ぶプログラミング

    プログラミング005.png

    情報システム工学専攻では、基礎となるプログラミング思考の育成と実践的なプログラミングを学習します。プログラムの世界では、新しい言語が次々生まれており、プログラミングの基本的な考え方を習得しておくと、新しい言語の学習も容易になります。

    さまざまな言語に触れつつ、基礎となるプログラミング思考を鍛えます。演習を通じて実際にアプリ開発やシステム開発を行いつつ、実践に有効なプログラミングのやり方を学びます。

    サイトやアプリケーション、情報システムはユーザーから見える部分と、サーバやデータベースなどユーザーから見えない部分とで成り立っています。それぞれ異なるプログラミング言語やフレームワークを用いながら開発しますが、情報システム工学専攻による演習を通じて開発過程を体験しながら実践的なプログラミングスキルを身につけていきます。

    ロボティクス専攻で学ぶプログラミング

    プログラミング006.png

    ロボットは、まず導入段階でプログラミングを通して動かすことの喜びを知ることができるというメリットがあります。パソコンの画面上だけではなく、実物のロボットを動かすことで体感的にプログラミングの要点を理解することができます。

    一方で、より高度なロボット表現においては実物ゆえに単純なプログラミングでは細かい動きが表現できないことに気づかされ、より深く物理法則や確率、誤差などを考え、センサーフィードバックなどさらなる高度な制御プログラミングの実装へと学びを深めることになります。ロボティクス専攻では、プログラミングの習得が欠かせません。

    あわせて読みたい記事
    「今の時代ほど未来が予測できる時代がないからこそ、早めに自分の素質を見出そう」(Reitaku Journal)
    【前編】https://www.reitaku-u.ac.jp/journal/1776925/
    【後編】https://www.reitaku-u.ac.jp/journal/1776926/


    麗澤大学工学部が見据える就職

    工学部は2024年4月に開設する新しい学部です。工学部はデザイン思考を持つ実践的なプログラミングを行える人材育成を目指すため、さまざまな分野の企業や自治体で「課題解決型DX」を実装できるように教育したいと思っています。

    ●4年間で身につけられること・資格

    基本情報技術者試験/ITパスポート/情報セキュリティマネジメント試験/MOS(Microsoft Office Specialist)/応用情報技術者試験/Python3エンジニア認定基礎試験/TOEIC®/統計検定3級・2級など

    ●情報システム工学専攻の進路想定

    IT業界、コンサルティング会社、メーカー通信事業者、医療・福祉・教育、DXの推進やIoT技術の活用を進めたい各種行政機関や企業、スタートアップ・ベンチャー企業など

    ●ロボティクス専攻の進路想定

    メーカー(機械・電気・自動車など)、IT業界、物流、医療・福祉、ロボティクス技術の活用を進めたい各種行政機関や企業、スタートアップ・ベンチャー企業など

    麗澤大学サイト「工学部/2024年4月開設」
    https://www.reitaku-u.ac.jp/lp/engineering/

    あわせて読みたい記事
    「愛あるテクノロジーで、社会も、自分も幸せに。麗澤大学工学部、始動!」(Reitaku Journal)
    【前編】https://www.reitaku-u.ac.jp/journal/1776766/
    【後編】https://www.reitaku-u.ac.jp/journal/1776767/

    【麗澤大学 工学部・陳寅先生】

    プログラミング プロフィール

    職名:准教授
    学部/学科:工学部情報システム工学科
    専門分野:無線ネットワーク、センシング技術、知能IoT
    研究テーマ:無線指紋を用いるデバイスの識別と認証技術、深層学習による物体検出技術を用いるセンシング技術

    ■学歴
    2008年 西安電子科技大学計算機科学学部計算機科学専攻/卒業
    2011年 西安電子科技大学大学院計算機科学研究科修士課程計算機科学専攻/修了
    2014年 公立はこだて未来大学大学院情報システム研究科博士後期課程情報システム専攻 /修了

    ■経歴
    2014~2018年 慶應義塾大学 政策・メディア研究科/特任助教
    2018~2022年 慶應義塾大学 政策・メディア研究科/特任講師
    2022年~現在 麗澤大学/准教授
    2022年~現在 慶應義塾大学 政策・メディア研究科/特任准教授(非常勤)

    プロフィール参考
    https://www.reitaku-u.ac.jp/about/teachers/1776181/

    SNSでこの記事をシェア