• Skip to main content
  • Skip to primary sidebar

プログラミング入門ナビ by Proglus(プログラス)

プログラミング学習初心者のための情報メディア

本ページにプロモーションが含まれる場合があります

You are here: Home / Archives for 2021

Archives for 2021

フレームワークとは?開発効率UPに役立つ理由を知っておこう!

2021-01-31 By プログラミング入門ナビ編集部

フレームワークのイメージ

はじめに

フレームワークのイメージ

プログラミング用語としての「フレームワーク」という言葉、知っていますか?

「フレームワークを使えばサクサク開発ができるよ」とか「Ruby on Railsを使えば簡単にWebサービスを作れる」といった文脈を耳にしたことがあるかもしれませんね。

「なんとなく便利なものというイメージはあるけれど、実際はどんなものなんだろう?」

そんな疑問に答えるべく、この記事では初心者の方にもわかりやすくフレームワークについて解説します。

フレームワークとは?

まず、フレームワークとは「プログラミングでよく使う汎用的な機能をまとめて使いやすくした枠組み」のことです。

この説明だけではピンと来ないと思いますので、詳しく見ていきましょう。

フレームワークは「お手軽料理キット」のようなもの

ミールキット

よくプログラミングは料理に例えられます。とある「ECサイトを作ること」を「酢豚を作ること」と例えてみましょう。

ECサイトには「ログイン機能」「商品一覧表示機能」「決済機能」等が必要です。(本来はもっといろんな機能が必要ですが今は気にしないでください。)

かたや、酢豚をざっくりパーツ化すると「揚げた豚肉」「一口大の野菜」「甘酢あん」となり、これらを炒め合わせて完成となります。

このように設計書(料理ならレシピ)に基づき全体をいくつかのパーツに分けてそれぞれを作り上げ、組み合わせて完成させるというところが似ていますね。

酢豚をイチから作る場合は「揚げた豚肉」ひとつをとっても、豚肉を必要な分買ってきてカットし下味をつけてから粉をまぶし、高温の油でカリッと揚げて…といった多くの作業が必要です。

最近は忙しい現代人のために「お手軽料理キット」(ミールキットとも呼ばれます)というものがあります。これは料理を作るために必要な分の材料がある程度調理された状態で提供され、最後の仕上げをするだけで完成するという代物です。

酢豚ならば「揚げた豚肉」「一口大の野菜」「甘酢あん」が完成した状態でパック化されていて、あとはフライパンでこれらを炒め合わせるだけですぐに食べられます。

フレームワークはまさにこのミールキットのように「ログイン機能」「商品一覧表示機能」「決済機能」といったパーツがすぐに使える形で提供されていて、開発者はこれらを適宜組み立てていくだけでWebサイトを作ることが可能です。

冒頭の繰り返しですが、改めてフレームワーク とは「プログラミングでよく使う汎用的な機能をまとめて使いやすくした枠組み」であるということがなんとなくイメージしやすくなったでしょうか。

ライブラリとの違い

調味料のアルミパウチ

ここで、ライブラリという言葉をご存知の方は「なんだかライブラリと似ているけれど、何が違うんだろう?」と思われたかもしれません。

ライブラリとは「汎用的な機能をまとめたもの」なので、まさにフレームワークの定義と似ていますが、フレームワークと比べて少し規模の小さいものを指します。

そのため、フレームワークはライブラリを集めたものと考えてください。

先ほどの酢豚の例えでいうと、「酢豚の素」くらいのレベル感になります。

ライブラリを使えばイチからプログラミングするよりは楽にできるけれど、フレームワーク(料理キット)よりは自分で手を動かす手間がかかるということです。

フレームワークを使うメリット

大人気のフレームワークですが、メリットもあればデメリットもあります。

まずはメリットを見てみましょう。

メリット

開発効率が上がる

これは言わずもがなですが、よく使用される機能が提供されているので開発効率が格段に上がります。

統一感のあるコードが書ける

大きなソフトやシステムを開発する時、複数人でコーディングをすることがあります。

一つのフレームワークに則って開発すれば、バラバラに書いたとしてもコードに統一感が出て、何をやりたい部分なのかが読みやすくなります。

バグが減る

上記の理由からレビューしやすくなるため問題のある箇所を見つけやすくなりますし、予め提供されている機能を使うため凡ミスも減らせてバグの数を軽減できます。

フレームワークを使うデメリット

便利なフレームワークですが、デメリットの方も確認しておきましょう。

デメリット

フレームワーク自体の学習が必要

フレームワークを使うにはその方法を学ばなければなりません。例えばRuby on Railsというフレームワークを使う場合、そのベースとなっているRuby言語の文法だけを知っていても使えません。

新たにRuby on Rails自体の文法を学ぶ必要があります。

初心者の学習の妨げになることもある

例えばRuby自体をよく知らないままにRuby on Railsから学習を始めてしまうと、楽に開発はできるものの自分が便利に使っている機能の内部ではどういった処理をしているのかわからないままになってしまいます。

初心者にとってはフレームワークからではなく、基礎の言語の方から学ぶことが望ましいです。

開発内容に制約がある

便利な機能がたくさんあり、Webサービスの完成までに必要な枠組みが揃っているということは逆に自由度が下がるということです。

用意された枠組みから外れるような機能は載せられないという制約があります。

人気のフレームワーク

ここで実際に人気のあるフレームワークをおすすめの入門講座とともにいくつか紹介します。

3人の喜ぶプログラマー

Ruby on Rails

Rubyという言語はWeb開発で非常に人気がありますが、このRubyで書かれたフレームワークとしてRuby on Railsがあります。

MVCモデルという設計思想に基づいていて、メンテナンス性の高いWebサービスを開発するのに有用です。

はじめてのRuby on Rails 7 入門|Proglus(プログラス)

Vue.js

JavaScriptでの開発を加速するフレームワークがVue.js(読み:ビュージェイエス)です。

手軽にリッチなWebサイトを作ることができます。

はじめてのVue.js 3入門|Proglus(プログラス)

Nuxt.js

Nuxt.js(読み:ナクストジェイエス)は先述のVue.jsをさらにまとめたフレームワークです。

サーバーサイドレンダリング(SSR)という機能を持つのが特長で、通常はブラウザ上で実行されるJavaScriptをサーバー側で実行することで表示を高速化することが可能です。

Nuxt JS入門|Proglus(プログラス)

Bootstrap

Webサイトのレイアウトやデザインを整えるための言語であるCSSのフレームワークとしてBootstrap(読み:ブートストラップ)は非常に人気があります。

特に、パソコンやスマホなど様々な画面サイズに対応するレスポンシブデザインのサイトを手軽に制作することが可能です。

Bootstrap5の基本を習得しよう|Proglus(プログラス)

まとめ

パソコンの前でこちらへ微笑む女性

フレームワークについて解説しました。

まずは基礎となるプログラミング言語の習得が優先ですが、ある程度基礎的なことがわかったらフレームワークについても学び始めることをおすすめします。

フレームワークを使うと圧倒的に開発スピードが上がるため、導入されていない現場はほぼ無いといえるからです。

この記事で挙げたフレームワークの講座はどれも入門レベルで、基礎の言語を学び始めた初心者の方からも人気の内容となっています。

基礎を学びつつ早い段階から現場力も身につけたい方はぜひチェックしてみてください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: フレームワーク, プログラミング

WordPressとは?どんなことができるの?初心者にもわかりやすく解説!

2021-01-31 By プログラミング入門ナビ編集部

ブログの画面

はじめに

ブログを書く女性

WordPress(読み:ワードプレス)をご存知でしょうか。

Webサイトのコンテンツ管理(主にブログ)のために使われるソフトウェアですが、実際にどんなものなのかは知識があいまい…という方も多いはずです。

この記事では、WordPressについて初心者の方にもわかりやすいよう解説します。

WordPressとは?

WordPress公式サイトトップ

WordPressは2000年代初期に開発されたオープンソースのコンテンツ管理システムです。

WordPress公式サイト(日本語)

「Contents Management System」の頭文字を取ってCMSと略称で呼ばれることもあります。

コンテンツ管理システムは、簡単にいえばWebサイトに掲載するコンテンツ(デザインやブログ記事、写真等)のアップロードや編集をするためのソフトウェアです。

なお、このブログサイトもWordPressで記事を管理しています。

WordPressで作られているサイト

まずはWordPressを使うとどんなサイトが作れるのか、イメージを掴むためにいくつか適用事例を見てみましょう。

※いずれも2021年1月時点での情報です。

エン・ジャパン

エン・ジャパンのトップページ

採用関連の情報サイトであるエン・ジャパンはWordPressで作成されています。

記事がわかりやすくカードで示されていて見やすいですね。

エン・ジャパン株式会社

ラクスル

ラクスルのトップページ

印刷業界でイノベーションを起こしたラクスルのコーポレートサイトでもWordPressが使用されています。

サービスの紹介やプレスリリースがわかりやすく並んでいますね。

ラクスル株式会社

東京大学教育学部

東京大学教育学部のトップページ

東京大学教育学部のサイトもWordPressによるものです。

ターゲット(入学希望者・在学生・卒業生等)ごとにメニューが分かれた見やすい構造になっています。

東京大学|大学院教育学研究科・教育学部

その他(自分で調べる方法)

isitwpのトップページ

他にも気になるサイトがあれば、WordPressを使っているかどうか調べることができます。

下記のサイトで上図のように調べたいサイトのURLを入力して「ANALYZE WEBSITE」ボタンをクリックすれば確認可能です。

IsItWP|Free WordPress Theme Detector

WordPressでできること

前項で挙げたサイト例のように、リッチなコンテンツが作れることはイメージが沸いたかと思います。

ここからは具体的にどんなことができるのかを見ていきましょう。

テンプレートを使ってリッチなサイトデザインにできる

WordPressのテーマ例

WordPressには「テーマ」と呼ばれるデザインテンプレートがたくさん用意されており、好きなものを選んで自分のサイトに適用できます。

メイン画像を別のものに変えたり、多少であればコンテンツやボタンの配置も変更可能です。

ほとんどが無料で使用でき、公式ページでも紹介されているのでどんなものがあるか気になる方は見てみてください。新しいものもどんどん追加されます。

WordPressテーマ

コーディングなしでブログを投稿できる

WordPressの投稿画面例

HTMLやCSSを書いたことのある方ならばイメージがつくかと思いますが、ある程度デザイン性のあるWebページを作るには単にコンテンツの内容を書けばいいわけではなく、余白やレイアウトについてもコーディングでしっかりと指定しなければなりません。

WordPressではブログ記事を投稿する際、上図のように直感的なUIを通してコンテンツを記述することができます。

デザインやレイアウトについてコーディングする必要がなく、コンテンツの内容を書くことに集中できるわけです。

プラグインで機能拡張できる

WordPressのプラグイン例

WordPressにはプラグインという後付け機能が豊富に用意されています。

例えば、Webサイトのセキュリティを強化するもの、目次を表示させるもの、問合せフォームをつけるもの等です。

こういったプラグインを必要に応じて追加すれば、自分でコーディングしなくても手軽にサイトの機能を拡張することができます。

WordPressプラグイン

Webサービスも作れる

ここまで紹介したように、WordPressの基本的な用途としてはブログや記事をアップしていくための情報サイトとなりますが、コーディングして機能を追加すればWebサービスとして運用することも可能です。

実際に、先ほど紹介した「https://www.isitwp.com/」(指定したURLのサイトがWordPressを使っているかどうか調べるサービス)もWordPressで制作されています。

WordPressの使い方

女性の横顔

ここでは細かい手順は省略しますが、イメージを掴むためにWordPressの使い方をざっくりと説明します。

サーバーとドメインを用意

WordPressはあくまでCMS(コンテンツ管理システム)なので、それ単体では使用できません。サーバーにインストールして使う必要があります。

また、サーバー上でWordPressを使ったサービスを始めたらそこにユーザーに見に来てもらうためのアドレス(URL)が必要です。

ドメイン管理会社からドメイン(URLの先頭部分)を入手する必要があります。

WordPressをサーバーにインストール

サーバーとドメインが用意できたらそこにWordPressをインストールします。

後ほど必要になる管理者アカウントもこの時に作成します。

管理画面にログイン

WordPressの管理者ログイン画面

無事WordPressが立ち上がったら、管理者ログイン画面にアクセスしログインすることができます。

ダッシュボードからテーマ等を設定

ログインすると「ダッシュボード」という設定画面が使えるようになります。

ここでテーマを選んだり細かい設定をしたりすることが可能です。

ブログサービスとの違い

分かれ道

ここまでの間に「Amebaブログや楽天ブログといったブログサービスも無料なんだから、面倒なことをせずそちらを使えばいいのでは?」と思われたかもしれません。

用途によってはそれでも良い可能性があります。

WordPressを使ったブログサイトの運用では、ブログサービスの使用と比較し下記の違いがありますので、これらを重要とみなすかどうかで決定するようにしましょう。

独自ドメインで運用できる

Amebaブログや楽天ブログなどのブログサービスを使う場合は、自分のブログのURLが「https://ameblo.jp/XXXX」や「https://plaza.rakuten.co.jp/XXXX」といったように各サービスのドメイン名から始まることになります。

個人の情報発信が目的ならばそれでも大きな問題にはなりませんが、何かしらの商業的や社会的な目的で運用したい場合はやはり独自ドメインを用意して使うべきでしょう。

自由にカスタマイズできる

ブログサービスでもたくさんのテーマからデザインを自由に選べるものの、カスタマイズ性についてはどうしても乏しくなります。

細かい見せ方にこだわりたい場合はWordPressがおすすめです。

SEO対策できる

WordPressにはSEO対策に役立つプラグインが多く用意されています。

必要に応じこれらの対策を自由に取ることで他サイトとの差別化を図ることが可能です。

ブログサービスではその運営会社(Amebaや楽天等)が対策を取ってはいるものの、自分のコンテンツに最も適したものを選ぶ自由性はないといえます。

まとめ

ビジネス談議をする人々

WordPressについて解説しました。

自分のWebサービスとしてブログを運用したいユーザー向けに開発された、面倒なコンテンツ管理の手間を省くためのものだと理解できれば問題ありません。

無料で使用可能ですし、導入方法は公式サイトでも詳しく紹介されていますので興味のある方はぜひチャレンジしてください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: WordPress

オブジェクト指向とは?プログラミング初心者にもわかりやすく解説!

2021-01-31 By プログラミング入門ナビ編集部

様々なつみき

はじめに

クエスチョンマーク

オブジェクト指向という言葉を聞いたことがあるでしょうか。

プログラミングを学習していると遅かれ早かれ耳にする用語ですね。

オブジェクト指向については、概念的なものであるためか理解するのにちょっと手間取る方が多いようです。

この記事では、初心者の方にもわかりやすいように噛み砕いてオブジェクト指向について解説します。

オブジェクト指向の理解する一助になれば幸いです。

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

マインドマップ

まず、プログラミング言語は、プログラミングの考え方や記述方法によっていくつかに分類されます。

主なものでは手続き型言語、命令型言語、関数型言語、論理型言語などがあり、その分類の1つがオブジェクト指向言語です。

ここに挙げた中で従来比較的ポピュラーだったのが手続き型言語で、その代表例にC言語があります。

その他の言語については説明を省略しますが、オブジェクト指向言語はこの手続き型言語の欠点を補える点で注目を集めました。よく挙げられる代表言語例はJavaです。

ここからは、わかりやすさのために手続き型言語と比較しながらオブジェクト指向言語について解説していきます。

手続き型言語 vs オブジェクト指向

睨み合うビジネスマン

オブジェクト指向言語とは、簡単にいうと「処理対象をオブジェクトと呼ばれる単位に分割しオブジェクト同士のやりとりとして処理を記述する」ものです。

この説明ではいまいちピンときませんよね。

比較対象としてわかりやすい手続き型言語と比べながらどういうことか見ていきましょう。

ここでは、簡単なコード例として動物(犬、猫、鳥)を順番に鳴かせるプログラムを書いてみます。細かい文法は気にしなくてかまいませんので、雰囲気を味わってください。

手続き型言語(例:C言語)の場合

まず、手続き型言語はその名の通りコンピューターに実行してもらいたい手続きを上から順に書き連ねていく形式です。

#include <stdio.h>

void dog_speak(void) {
  printf("ワンワン/n");
  return;
}

void cat_speak(void) {
  printf("ニャンニャン/n");
  return;
}

void bird_speak(void) {
  printf("ピヨピヨ/n");
  return;
}

int main(void)
{
  dog_speak();
  cat_speak();
  bird_speak();
  return 0;
}

C言語では必ず「main」という関数が実行されます。

main関数の前にそれぞれdog_speak、cat_speak、bird_speakの関数があってそれぞれ鳴き声を表示させる機能をもっており、main関数からこれらの関数が呼び出されていることに注目してください。

このように、手続き型言語では必要な手続きが上から順に書かれていて実行されます。

オブジェクト指向言語(例:Java)の場合

それではオブジェクト指向言語の場合はどうでしょうか。

public class Main {
  public static void main(String[] args) {
    Dog dog1 = new Dog();
    Cat cat1 = new Cat();
    Bird bird1 = new Bird();

    dog1.speak();
    cat1.speak();
    bird1.speak();
  }
}

class Animal {
  private String voice = null;
  public void setVoice(String str) {
    this.voice = str;
  }
  public void speak() {
    System.out.println(voice);
  }
}

class Dog extends Animal {
  public Dog(String str) {
    super.setVoice("ワンワン");
  }
}

class Cat extends Animal {
  public Cat() {
    super.setVoice("ニャンニャン");
  }
}

class Bird extends Animal {
  public Bird() {
    super.setVoice("ピヨピヨ");
  }
}

「なんだか、ややこしくなったなぁ…」と思われたかもしれません。

しかしこれは後述するオブジェクト指向のメリットを享受するためのひと手間なのです。

オブジェクト指向では、コードにもあるように犬、猫、鳥といった処理単位を「クラス(class)」として記述します。

このクラスから犬、猫、鳥のオブジェクトを生成(3、4、5行目)し、鳴かせる処理(speak)を呼び出していますね。

この部分は関数として実装していた手続き型言語との一番の違いはここです。

違いはわかったけれど、書き方が異なるだけで結局同じではないか?と思われるでしょう。

ここからはオブジェクト指向だとどんないいことがあるのかを解説していきます。

オブジェクト指向のメリット

オブジェクト指向のプログラミング言語では次のような3大メリットがあります。

これらの用語はオブジェクト指向の教科書にも必ず出てきますので、この機会にぜひ覚えてください。

継承

花を親から子へ

さきほどのJavaコードにAnimalというクラスがあったのに気づいたでしょうか。

気づかなかった方は、戻って見てみてください。

そして犬(Dog)、猫(Cat)、鳥(Bird)の各クラスは下記のような形で宣言されており、これを「Animalクラスを継承している」というふうに呼びます。

class Dog extends Animal {
…
}

Animalクラスには鳴き声を表す「voice」と、鳴かせる処理を表す「speak」が宣言されています。

一方、Dog・Cat・Birdsにはこれらがありません。

「鳴き声があって、それを鳴かせる」というやりたいことが共通しているため、ひとくくりにした「動物クラス(Animal)」の中で記述し、各動物はこれらの機能を継承して使えるようにしているわけです。

こうすれば、各動物のクラスではそれぞれに特化した内容だけを記述し、共通する内容はAnimalクラスに集約することができます。

今後別の機能(走る・食べる・遊ぶ等)を追加したり、今回の鳴く機能に修正を入れたりしたい時に一つのクラスだけを編集すればいいため管理が非常にしやすくなるのが利点です。

カプセル化

カプセル

Animalクラス内の鳴き声「voice」の宣言の頭に「private」という単語がついています。

「setVoice」には「public」がついていますね。

これは、外部から呼び出したり変更したりできるかどうかを表しています。
コード例を見たほうがわかりやすいため、下記を見てください。

Cat cat2 = new Cat();  //2匹目の猫オブジェクトを生成
cat2.speak();  // ニャンニャン
// ここで、鳴き声を変えてみる
cat2.voice = "ゴロニャン";  //voiceがprivateなのでエラー
cat2.setVoice("ゴロニャン");  //setVoiceはpublicなので成功
cat2.speak(); // ゴロニャン

このように、鳴き声(voice)に直接アクセスして勝手に変更しようとするとprivateであるためエラーとなります。

しかるべき操作方法として用意されたsetVoiceならばpublicなので成功することに注目してください。

結局外部から変更できてしまうんだから意味がないのでは?と思われたかもしれません。

しかし、例えばsetVoiceの処理の中に「いつ、どんなタイミングでvoiceが変更されたのかログに記録する」といったことを追加しておくことができます。

このように、外部からむやみやたらに変更できないようにすることをカプセル化と呼び、予期せぬバグを軽減できるのが利点です。

ポリモーフィズム

いろんな犬

聞き慣れない言葉かもしれませんが、ポリモーフィズムとは多態性という意味です。

Javaの方では、犬・猫・鳥とも「speak」を呼び出すことで鳴かせることができました。

かたや手続き型言語であるC言語の方では、犬ならば「dog_speak」、猫ならば「cat_speak」という風に動物によって関数名が異なっていました。

例えばここに他の種類の犬や猫、また猿・狐・牛・馬…と様々な動物が追加されていくとしたらどうでしょうか。

動物の数だけ関数を用意し、かつその関数名を間違えないようにしっかり気をつけながらコーディングしないといけません。

オブジェクト指向言語ならば、例えばなんの動物かもはやわからないオブジェクトが100個(obj1、obj2、…、obj100)ある時ですら一律「.speak();」で処理を呼び出せば鳴かせることができます。

このようにある処理の呼び出し方を統一し、オブジェクトごとに異なる処理をさせることをポリモーフィズムといい、整合性の取れたコードが書けるのが利点です。

まとめ

いいね!の親指

オブジェクト指向について、手続き型言語との違いを交えながら解説しました。

ここで紹介したJavaに加え、C++・JavaScript・Python・Ruby等もオブジェクト指向言語です。

使ってみるのが一番早く理解できますので、ぜひチャレンジしてみてくださいね。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: オブジェクト指向, プログラミング言語

macのターミナルは何ができる?主な使い方も解説!

2021-01-31 By プログラミング入門ナビ編集部

キーボードの手元

はじめに

オフィス

プログラミングのためにパソコンを選ぶ時「ターミナルが使えるからmacの方がいいよ!」と言われたことはありませんか?

初心者のプログラミング学習には13インチのMacBook Proがおすすめ!その理由も解説!|プログラミング入門ナビ

上記の記事の通り、それ以外にもmacをおすすめする理由はいくつかあるのですが「そもそもターミナルってなんだろう?」と疑問に思われているかもしれません。

この記事では、ターミナルについて初心者の方にもわかりやすく解説します。

使い方についても簡単に説明しますので、ぜひ読んで試してみてください。

ターミナルとは?

macOSのターミナル

わかりやすくいうと、ターミナルとはコンピューターと会話するための窓口です。

上図のような画面からユーザーが「コマンド」を打ち込むことでコンピューターに命令し、それを受け取ったコンピューターがその通りに作業(ファイルのコピーや移動など様々なことができます)を実行し結果を表示する、というのが一連の流れになっています。

ここで「ファイルのコピーや移動だったら、Finderでファイル一覧を開いてマウスを使ってできるんじゃない?」と思われたかもしれません。

まさにその通りで、目で見て直感的に理解しやすいグラフィカルなユーザーインターフェース(GUI:Graphical User Interfaceと呼ばれます)でも同じことをしています。

ユーザーがマウスを使って行った操作は、GUIによりコンピューターが理解できる命令に変換されてコンピューターに渡され実行されるわけです。

一方、ターミナルではユーザーがキーボードのみを使ってコマンド(文字列)を使って命令をするのでCUI(Character User Interface)と呼ばれます。

ここでもユーザーが打ち込んだ命令がCUIによりコンピューターが理解できる命令に変換されコンピュータに渡され実行される流れです。

ざっくりとまとめると、コンピューターにやらせたい作業をウィンドウ表示やマウス操作で行うのが通常なのに対し、キーボードを使って文字だけで指示するためにあるのがターミナルだと捉えてください。

ターミナルを使うメリット

笑顔のビジネスパーソン

「文字だけで指示しなければならないなんて、わかりにくいし余計に面倒なのでは?なんのためにターミナルがあるの?」と疑問がわくはずです。

これにはきちんと理由があります。

素早く操作できる

エクセルやパワーポイント等を使う時にショートカットキーを使ったことはありますか?

いちいちマウスでクリックしてメニューを開き、やりたい作業のところまでカーソルを持って行ってまたクリックしてさらにメニューを開いて…

といった一連の作業をするよりも、キーボードでショートカットキーを打ち込む方が断然速く作業できますよね。

これと同じで、慣れてくるとマウス作業よりもキーボードでタイプする方が素早く操作できるようになってきます。

かゆいところに手が届く

GUIに比べてより細かい命令が可能なので、かゆいところに手が届きます。

例えばファイルの検索をしたい時などに有効です。

macの検索ではファイル名でしか検索できませんが、ターミナルを使えば「○○から始まるファイル名」で「3ヶ月前くらいに作ったファイル」のようなあいまいな検索もできます。

一括処理が可能

ターミナルでは複数のファイルに対して一括処理をすることができます。

たとえば「このフォルダにあるファイルを全て削除する」といった作業も可能です。

全部削除するだけならばGUIでも比較的簡単にできますが、先ほどの「かゆいところに手が届く」利点も活かし、細かい条件を指定し当てはまるものだけを一括削除することができるため、目で見てマウスで一つ一つ作業していくよりもかなり速くできます。

ターミナルの主な使い方

議論するエンジニアたち

ターミナルを使う利点を把握したところで、使い方を見ていきましょう。

起動方法

ターミナルはFinderから下記の通りに起動できます。

Finder → アプリケーション → ユーティリティ → ターミナル.app

また、macの右上にある虫眼鏡アイコンからSpotlight検索を起動し「ターミナル」と打ち込んで起動するのでも問題ありません。

主なコマンド

無事ターミナルが起動できたら早速コマンドを打ってみましょう。

下記はよく使用される主なコマンドです。

ターミナルでは「$」マークの後にユーザーがコマンドを入力することができます。

逆に「$」で始まっていない行は全てターミナルからの返答です。

また「ディレクトリ」という言葉が出てきますがこれは階層構造を指しており、「フォルダ」と同じような意味合いと捉えてください。

pwd

「print working directory」の頭文字で、現在いるディレクトリのパスを表示します。

$ pwd
/System/Library

ls

ディレクトリにあるファイルやディレクトリを表示します。
「ls」単体ならば現在のディレクトリ、「ls」のあとにスペースをはさんでディレクトリを指定すればそのディレクトリについて表示されます。

$ ls /Applications
App Store.app		Image Capture.app	Preview.app
Books.app		Mail.app		Reminders.app
Calculator.app		Maps.app		Siri.app
Dictionary.app		News.app		TV.app
FaceTime.app		Notes.app		TextEdit.app

cd

「change directory」の頭文字で、ディレクトリを移動します。
スペースを挟んで移動したい先のディレクトリパスを指定しましょう。
なお「.」は現在のディレクトリ、「..」と入力すれば一つ上の階層のディレクトリとなります。

$ cd ..

mkdir

「make directory」の略で、ディレクトリを作成します。
スペースを挟んでディレクトリ名を指定しましょう。

$ mkdir test

touch

ファイルを作成します。
スペースを挟んでファイル名を指定しましょう。

$ touch test.txt

find

ファイルを検索します。
スペースで挟んで探したいファイル名を指定しましょう。
ファイル名にその文字列を含むファイルが見つかればそのパスが表示されます。
見つからない場合は下記の通りです。

$ find aa
find: aa: No such file or directory

rm

ファイルを削除します。
スペースで挟んで削除したいファイル名を指定しましょう。

$ rm test.txt

mv

ファイルを移動させます。
スペースで挟んで移動させたいファイル名と移動先のパスを指定しましょう。

$ mv test.txt ../temp

cp

ファイルをコピーします。
スペースで挟んでコピーしたいファイル名とコピー先のパスを指定しましょう。

$ cp test.txt ../temp

cat

ファイルの内容を表示します。
スペースで挟んでファイル名を指定しましょう。

$ cat test.txt
Hello, World!

まとめ

いいね!する男性

macのターミナルについて概要や使い方を解説しました。

コマンドはたくさんあるのですが、まずはここに挙げたコマンドを覚えれば一通りのことはできるはずです。

物足りなくなってきたらぜひ他のコマンドやオプションについても調べてみてください。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: mac, ターミナル

「丸写し」が吉!プログラミング習得に役立つ「写経」のすすめ

2021-01-31 By プログラミング入門ナビ編集部

プログラミングする僧侶

はじめに

パソコンの前で困っている男性

映画やドラマに出てくるハッカー等のイメージから、初心者の方はなんとなく「プログラミングする時って、すごい速さでタイプするんだろうな」と思っていらっしゃるかもしれません。

実際にプログラミング言語に慣れてくれば文法が頭に入っているので何も見ずにカタカタと打ち込むことができますが、初心者の場合はそうはいきません。

参考書や教材を何度も見ながらコードを打ち込んで、エラーが出てはまた見直して…という非常に泥臭い作業を通して覚えていくことになります。

この過程こそが重要ではあるのですが、思い描いていたプログラミングの像とあまりにかけはなれていることに絶望し、挫折感を味わう人も多くありません。

そんな挫折を避けるためにぜひおすすめしたいのが「プログラミングの写経」です。

「写経って、あのお寺とかでお経を一文字ずつ書き写すあれ?」と思われた方、まさにそれです!

この記事ではなぜ写経がおすすめなのかの説明や、効果的な実施方法を紹介します。

プログラミング初心者の方の挫折を避ける一助になれば幸いです。

プログラミングにおける写経のメリット

パソコンの前でガッツポーズをする女性

「プログラミングの写経」とは、まさにお経の写経と同じくサンプルコードを一文字ずつ書き写していくことです。

小学生の時に漢字を覚えるためにドリルに漢字を書いたり、英単語帳を作って覚えたりしたと思います。

このように「書き写して覚える」という方法は新しいことを習得する際にとても有効なのですが「もう大人なのだからもっと効率よくやりたい」「基礎を本で叩き込んだ後に自分でオリジナルコードを書いて実践した方がスマートだ」と思われる方も多いようです。

もちろんそれが自分に合っていて問題なく学習が進んでいるのであれば非常に素晴らしく、ぜひその方法を続けていただきたいのですが、中にはなかなかうまくいかずに挫折してしまうケースもあります。

「急がば回れ」のことわざの通り、効率がよくないと感じても結局はかなり効率の良い学習方法といえるのが写経です。

理由を見ていきましょう。

手っ取り早く達成感を味わえる

一番の理由はこれです。動くことが保証されているサンプルコードを書き写して実行するだけなので、比較的さくっと動かすことができます。

プログラミング学習を挫折してしまうパターンで最も多いのが「エラーが多すぎて心が折れる」ことです。

書き写しさえできれば動くのと、もし動かなかったとしてもオリジナルのコードではなくサンプルコードなので、その提供者へ原因を質問することができます。

「なんで動かないんだろう…」と悶々と過ごす時間を短縮し、その分次に挙げる重要な学習に時間を割けるわけです。

これは精神衛生上非常にいい効果があります。

言語に素早く慣れられる

プログラミング言語は多く存在していて、それぞれ文法やお作法が異なります。

やりたいこと(コンピュータに命令を出して思い通りの処理をさせる)は同じなので、基本的なコンセプトや全体感は似ていますがそれでもかっこの書き方や記号(カンマ、ピリオド、コロン等)の意味合い等、細かい部分が違うのです。

写経をすることで全体の雰囲気を素早く掴み取ることができます。

ある言語に熟練した上級プログラマーでも、別の新しい言語を学ぶ時にはまずドキュメント等に記載されているサンプルコードに目を通してこの雰囲気掴みから始めることが多いです。

基本的な文法を理解できる

一文字ずつ書き写すことで、細かい部分にまで意識が回ります。

なぜこの部分でかっこが必要なのか?

さっき書いたところと同じような処理に見えたけどなぜ今回は書き方が違うのか?

ここで書いたコロンにはどんな意味があるのか?

そんなことを考えながら書き、実際にプログラムを動かしてみることでどんな意味があったのかを理解できるのです。

実行するだけでは理解できなくても、疑問に思った部分を後から消してみたり変えてみたりするとまた挙動が変わるので、サンプルコードからの「足し引き」でいろいろなことが学べます。

写経の効果的なやり方

タイプする手

それでは、実際にプログラミングの写経はどのように行うのが効果的なのでしょうか。

必ずプログラムを動かせる環境で行う

お経の写経は紙と筆で行いますが、プログラミングは動かしてからが本番ですので、必ず動かせる実行環境を用意して行いましょう。

写経する→実行する→エラーが出たら確認→再実行

という流れを、プログラムが動くまで行うのが肝要です。

エラーが出たら自力で解決する

エラーが出てもくじけたり投げ出したりせずに自力で解決しましょう。

エラー文は「コードの何行目にどんな問題があるか」が英語で出ることが多いですが、英語がわからなくてもそのエラー文をコピー&ペーストしてWeb検索すればたくさんのヒントが手に入ります。

そのヒントを元に、自分で何がおかしいのか考えたりサンプルコードと何が違うのかを確認しながら解決しましょう。

プログラマーにとってエラー解決能力は非常に重要で、どんなに上達した人でもエラーが出ない日はないといってもいいほどです。

エラーを自力でさくっと解決できるよう、今のうちから鍛えておきましょう。

もちろん、自力でやってもわからない場合は最終的にまわりの人に聞いてみてください。

写経後の「チョイ変」で応用を楽しむ

写経は「書き写すだけ」なのですが意外と一発では実行成功しないことが多いです。

スペースが足りなかったり、書き順を間違えていたり、スペルミスがあったり…

元のサンプルコードと一文字違うだけでも失敗してしまいます。

実行に成功するまではそういった細かい記述に集中して文法を習得していきますが、見事動いた後はぜひ細かい部分をちょっと変更(チョイ変)して挙動がどうなるのか試してみてください。

ただ他人が作ったコードを書き写すだけでは実行の喜びを味わえても自分で書いた気がしなくてつまらなく感じてしまうものです。

ここに自分なりの変更を入れることで初めて「自分のコードが動いた!」という実感が出てくるだけでなく、サンプルコードをベースにいろんなパターンの実行例を体験することでより発展した学びにつながります。

サンプルコードの選び方

プログラミングコード

写経するサンプルコードの選び方も非常に重要です。

おすすめの言語

すでに学びたい言語が決まっている場合を除けば、まずはどんな言語から学習に入ればいいのかな?と悩んでいる方も多いでしょう。

実行環境の構築が容易かつ実行結果を目視で確認しやすい言語、具体的にはHTML やCSS、JavaScriptあたりがおすすめです。

これらはWeb開発のための言語なので、マスターしたらWeb開発に役立てることができるというメリットもあります。

おすすめのコード入手方法

その言語の入門書にはサンプルコードがたくさん書いてあります。

実行環境が整っていればそういった書籍を購入するのが良いでしょう。

もしパソコンが手元にあるだけだ…という方は、プログラミング講座の受講がおすすめです。

講座では実行環境の構築から説明があるため初めてでも簡単に導入できます。

また、サンプルコードを実行する際に講師と全く同じ環境で動かすことができるため、やっかいな問題の一つである「実行環境の違いによるエラー」が発生しにくいです。

プログラミングを学ぶにあたり本質でない部分に費やす時間を減らすことができます。

下記の講座はサンプルコードも豊富で、初心者の方に特におすすめです。

新HTML入門|Proglus(プログラス)

CSS入門|Proglus(プログラス)

JavaScript入門|Proglus(プログラス)

まとめ

パソコンを使う僧侶

プログラミングの写経を初心者の方に強くおすすめする理由と、効果的な実施方法について紹介しました。

簡単にできる割には学習効果が非常に高いですので、ぜひ試してみてくださいね。

動画でプログラミング入門をしよう

オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!

プレミアムプランを2週間無料体験しよう

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: プログラミング, 写経

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to page 4
  • Go to Next Page »

Primary Sidebar

Proglus(プログラス)

Twitter

Follow @programmingnavi Tweets by programmingnavi

最近の投稿

  • 【05/02更新】Udemyプログラミング入門講座等の割引クーポン配布
  • AWSのパブリックIPv4アドレス有料化について 2024/2より
  • 【CSS】Google Fontsの利用方法について解説します!新UIに対応2023年11月更新
  • 【SQL】XAMPPのMySQLがXAMPPがポートの競合で起動できない問題について解決方法を解説します!
  • 【Colab】–NOMAL– と表示されて、ショートカットキー(ctrl+c)でコピーができない場合の解決方法を解説します!

カテゴリー

  • AIの使い方
  • Arduino入門
  • AWS
  • その他
  • エンジニアのしごと
  • エンジニアへの道
  • ツールの使い方
  • ニュース
  • プログラミング入門
  • 電子工作入門

タグクラウド

AI AWS AWS Cloud9 Cloud9 CodeWing CSS Emmet GCP Git GitHub Heroku HTML JavaScript li Linux macOS MySQL MySQL Workbench node.js Nuxt.js ol Proglus Python Ruby Ruby on Rails SQL Udemy Visual Studio Code Vue.js Web開発 Windows インストール エラー エンジニア オンライン学習 サーバー スクリーンショット セール プログラミング プログラミング入門 プログラミング学習 ユーデミー 初心者 未経験 機械学習

アーカイブ

  • 2025年5月
  • 2024年1月
  • 2023年11月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年5月
  • 2023年4月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年4月
  • 2021年3月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年11月
  • 2019年9月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月

検索

Copyright © 2025 · programmingnavi.com ・About・プライバシーポリシー