こんにちは。こんばんは。おはようございます。
元いじめられっ子ブロガーのRIKITOです。
今日はフリーランスを目指していているプログラマーが絶対に抑えておきたい基礎知識について書いていきます。
本記事はあなたがプログラミングの言語を一つでも学んだことがあれば結構ためになる記事となっています。
あなたは「プログラミングを学ぶ」と志したのはいいものの、HTML/CSS、JavaScript、jQuery、Java、PHP、Rubyなどのプログラミング言語だけ学べばいいと思っていないでしょうか?
もしそうであれば、レッドカードです。
言語だけ学んだとしても、それは正確にはプログラミングの一部しか学べていません。
なぜなら、言語だけ勉強していても、アプリやウェブページは作れないからです。
データの管理はどうやってやりますか?
アプリやウェブページを作る環境はどうやって用意しますか?
普通はいじれないファイルをいじらなきゃいけなくなったとき、どうやっていじりますか?
だから、プログラミング言語だけ学んでいても本当の実力は身に付きません。
大学受験は数学だけやっててもあなたの志望校には行けないのと同じように、プログラミングを極めるのであれば、プログラミング言語以外にも学ぶことがあります。
ということで、プログラミング言語以外に学ぶものについて書いていきます。
Contents
- 1 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと①:OS
- 2 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと②:開発環境
- 3 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと③:仮想環境(仮想マシン)
- 4 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと④:コマンドライン
- 5 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと⑤:エディタ
- 6 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと⑥:データベース
- 7 フリーランスを目指すプログラマが実力をつけるために学ぶべきこと⑦:バージョン管理システム
- 8 フリーランスを目指すプログラマが実力をつけるために学ぶべき基礎知識まとめ
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと①:OS
OSとは、オペレーティングシステム(Operating Sistem)の略であり、パソコンを動かすコンピュータのことです。
ゲームで例えると、OSはWiiやPlaystatison、NINTENDO64やNintendo Switch、PSPや3DSなどのゲーム機本体、すなわちゲームでいうハードウェアです。
もっと分かりやすく言うと、今僕のブログを見ているパソコン・スマホはOSです。
つまり、
- 電話をかける
- 音楽を再生する
- 写真を取る
- インターネットに接続する
- インターネットを見る
- ソーシャルゲームで遊ぶ
- メールを送受信する
- 現在地を確認する
- 録音する
- WordやExcelで資料を作る
- 目覚ましのアラームをセットする
などの、携帯やパソコンを使ってできる動作・行動・処理がまとまったものをOSと言います。
さらに分かりやすく言うと『人間の脳みそ』みたいなものです。
人間の脳には
- 歩く
- 走る
- ご飯を食べる
- 起きる
- 寝る
- 飲み物を飲む
- 人と会話する
- 洗濯する
などの行動がプログラミングされているもしくは成長していくに連れて覚えていくので、これらの行動ができるんです。
OSも同じです。
代表的なOSは
- windows
- Mac OS
- iOS
- Linux
- Android
の5つです。
最低限この5つは覚えておけば間違いないです。
windowsはMicrosoft社が、AndroidはGoogle社が、Mac OSとiOSはApple社がそれぞれパソコンとスマホ向けに作ったOSであり、多くの人が持っているスマホやパソコンの中に搭載されているOSは基本的にこれらのいずれかになります。
Linuxとは?
Linuxはプログラミングを学習しない限りはあまり聞き慣れない言葉です。
まず、上記のOSは、基本的にパソコン・スマホに搭載されているので、機械を買わないと、使うことができません。
その中でも、Linuxは無料で使えるOSなんです。
また、Linuxは自由にカスタマイズできる特徴があり、主にサーバー専用のOSとして使われることが多いです。
後で説明する仮想環境を作る時に、よくLinuxが使われます。
仮想環境内でサーバーが作られるため、通常の操作ではその仮想環境内のデータをLinuxを使って操作するからです。
また、自由にカスタマイズすることができ、あなたが作るものにあった専用OSにすることができるので、ポケモンで言うところのメタモンみたいなものです。
ちなみに、プレイステーション2の開発環境はLinuxベースでした。
事実、2009年にPS2 LinuxというLinuxディストリビューション(一般の人がLinuxを利用できるようにまとめたもの)が発売されています。
詳しく知りたい方は、「【初心者向け】3分でわかるLinuxでできることまとめ 10選」を見てみて下さい。
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと②:開発環境
開発環境は自分が作りたいアプリやウェブサイトを作るための作業環境です。
これだとまだ分かりづらいので、ゲームで例えます。
例えば、あなたが大乱闘スマッシュブラザーズDXというゲームをやりたいとします。
このときに必要なものは
- テレビ
- ゲームキューブ本体
- ACアダプタ(電源コード)
- ステレオAVケーブル(赤白黄の端子がついているもの)
- 大乱闘スマッシュブラザーズDX本体
- コントローラー
- メモリーカード
ですよね?
このように、開発環境とは自分の作りたいウェブサイトやアプリを作るために用意する環境のことです。
では、実際にあるような作業で説明してみましょう。
例えば、あなたが会社が開発・運営しているサイトを作りたいとします。
そのときの開発環境はどうなっているのかというと、
- OS(パソコン、スマホ)
- ACアダプタ(電源コード)
- インターネット回線
- LANケーブル
- インターネットブラウザ
- デスクトップブラウズ
- テキストエディタ(後で説明します)
- バージョン管理ツール(後で説明します)
- その他必要なアプリケーション
と、大体こんな感じになっています。
開発環境は現場によって様々です。
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと③:仮想環境(仮想マシン)
仮想環境もプログラミング初心者の方には聞き慣れない言葉であることが多いでしょう。
これを分かりやすく説明するのに、まずはサーバーの話から始めます。
インターネットに公開されているアプリやウェブサイトはサーバーを介して公表されています。
そのサーバーを使うには基本的にお金がかかります。
サーバーを用意するのは無料ではないので、、独自のアプリやウェブサイトを運営している会社はサーバー代を払って運営しています。
しかし、ウェブアプリやアプリを作っているときも極力本番を想定して作ったほうがいいですよね?
そこで、役に立つのが仮想環境です。
仮想マシンと言うこともあります。
仮想環境とは、OSの中に作る、ウェブサイト・アプリケーションを本番と同じような環境で作業できるように作る環境ことです。
仮想環境を構築することで、普段OSでやっている作業や処理に加え、お金を払わないと使えないサーバーまで作ることができるんです。
つまり、仮設のサーバーを作り、アプリとウェブサイトのリリースに合わせた本番に近い環境を作ってくれます。
なので、現場では仮想環境を作って作業をすることが多いです。
また、仮想環境も開発環境の一部に含まれます。
仮想環境は基本的にサーバーとそのサーバーの中のデータをいじるためのプログラムで作ることが多いです。
その、仮想環境で有名なのがVirtualBox(サーバー)とvagrant(サーバーのデータを管理するプログラム)です。
この2つはよく使われることは多いです。
ドットインストールの仮想環境について学習する項目でこの2つが使われています。
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと④:コマンドライン
コマンドラインとはコマンドプロンプトと呼ばれる黒い画面で入力される文字のことを指します。

↑こんなやつです。
コマンドラインとはキーボードだけを使って、OSの中のデータを編集したりする場合に用いる処理の命令方法のことです。
コマンドラインはどういう時に使うのかというと、
- 普段は触ることのできないファイルやデータを扱う時
- 仮想環境を構築する時
- バージョン管理ツールの作業をする時(バージョン管理ツールについては後で説明します)
などに使われることが多いです。
上記の状況の時にコマンドラインが使われることが多いですが、もちろん普段のOS上で行っている動作や処理もコマンドラインで操作が可能です。
例えば、あるフォルダに入っているjpgの写真のデータを削除する場合、普段だったら、右クリックで削除で削除できますが、これもコマンドラインで削除することができます。
なので、基本的にOS上で処理される動作は全てコマンドラインが具現化したものだと考えると分かりやすいです。
英語を日本語にするようなイメージです。
実はOSにはこのコマンドラインを使わないと見れないファイルが沢山あります。
なぜ普段は見れないファイルになっているかというと、間違って削除したりしてしまったら、OSが動かなくなってしまったり、日本語入力ができなくなってしまったり、OSが壊れてしまうからです。
この危険なファイルを1つ削除してしまうだけで、OSが動かなくなってしまったりします。
そのため、普段はその危険なファイルやフォルダを壊されないように隠しているんです。
というのも、OSは今どんな人でも使います、ITに強い人に限らず、仕事でパソコンを使うことが多いのは簡単に分かります。
しかし、この危険なデータを、こういうことを知らずに間違って削除してしまったらどうですか?
パソコンが壊れてしまい、仕事ができなくなるのは簡単に分かると思います。
こういう理由で普段は見れないようにしてあります。
しかし、現場では、コマンドラインを使用しての作業がかなりあります。
コマンドラインは現場でかなり使うので、プログラミング言語と同時に学んでいきましょう。
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと⑤:エディタ
これは分かる人も多いのではないでしょうか?
HTMLやCSSを書いているアプリがありますよね?
あれがエディタです。
プログラミング言語を編集するアプリケーションのことです。
なぜエディタが必要かと言うと、エディタに書いたプログラミング言語をコンパイルという、コンピュータ言語に変換して、コンピュータが読み込んでくれる処理が必要だからです。
つまり、エディタとはドラえもんのひみつ道具でいうところの「ほんやくコンニャク」です。
コンピュータも人間のようにコンピュータ同士でコミュニケーションを取るための言葉を持っているんです。
そのため、プログラミングを作る人とコンピュータがコミュニケーションを取るためにエディタが存在します。
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと⑥:データベース
データベースもプログラミングを学ぶ前でも何らかの理由で聞いたことがあることでしょう。
これをTwitterで説明すると、
- アカウント名
- パスワード
- ツイート
- 誕生日
- プロフィール
- ヘッダー画像
- アイコン画像
など、沢山のアカウントが持っている情報を管理するものです。
つまり、データベースとはゲームキューブでいうところのメモリーカードです。
メモリーカードは様々なゲームのデータを保管できますよね?
例えば、
- 大乱闘スマッシュブラザーズDX
- マリオカート ダブルダッシュ!!
という2つのゲームがあるとします。
この2つのゲームはそれぞれ情報を持ってます。
スマブラなら、
- 隠しキャラ
- 隠しステージ
- 百人組み手の各キャラのクリアタイム
- ターゲットをこわせ!の各キャラのクリアタイム
- ホームランコンテストで各キャラがサンドバッグくんをふっとばした距離
- 総対戦回数
というデータを持っています。
マリオカートなら、
- 隠しキャラ
- 各ステージの周回タイム
- 使用できるカートの種類
などのデータを持っています。
このように、様々なウェブサイトやアプリケーションでは、様々なデータを管理する必要があるので、データベースを使う必要があるんです。
実際のウェブサイトだと楽天やアマゾンなんかが分かりやすいです。
会員登録すると、
- ニックネーム
- 住所
- メールアドレス
- 電話番号
- 購入履歴
- 閲覧したことのある商品
などの個人情報がデータベースに保存されます。
データベース内のデータを扱う言語がSQL
そのデータベースを扱うための言語も存在します。
その言語がSQLと呼ばれるものです。
- MySQL
- PostgreSQL
- SQLite
などが有名です。
上記に書いたように種類があるので、それぞれの特徴がもちろんあります。
各特徴については、「【DBまとめ】MySQLからPostgreSQL,SQLiteまで」を読んでみて下さい。
フリーランスを目指すプログラマが実力をつけるために学ぶべきこと⑦:バージョン管理システム
これはプログラミングを学んでいる方でもまだ腑に落ちないかもしれません。
Gitがこれにあたります。
バージョン管理システムとは、作ったプログラムの編集履歴を管理するツールです。
このバージョン管理システムを使うことで、自分がいつどのタイミングでどのプログラムのどの部分を編集したかを把握することができます。
例えば、一度変えた編集が後で変更になったとしても、履歴が残っているので、簡単に編集を元に戻すことができます。
今の時代、バージョン管理システムを採用している現場が殆どです。
なので、今の時代バージョン管理システムの使い方を覚えることは必要不可欠です。
バージョン管理システムは現場で学ぶことでスキルも身についていきますので、現場に入ったらしっかりと学びましょう。
フリーランスを目指すプログラマが実力をつけるために学ぶべき基礎知識まとめ
以上がプログラミング初心者が絶対知っておきたい基礎知識です。
- OS→スマホやパソコンを使ってできる処理・機能・行動がまとまったもの
- 開発環境→作りたいアプリやウェブサイトを作るための作業環境
- 仮想環境→OSの中に作るあるウェブサイト・アプリケーションを本番と同じような環境で作業できるように作る作業環境
- コマンドライン→OSの中のデータのやりとりや作業をする場合に用いる処理の命令方法
- エディタ→プログラミング言語を編集するアプリ
- データベース→情報を整理・管理するプログラム
- バージョン管理システム→作成したプログラムの編集履歴を保存するツール
この7つは絶対に押させておきましょう。
フリーランスを目指すのであれば、この7つの基礎知識はないと仕事でかなり困ります。
今の現場でしっかりとやることをやりましょう。
コメントを残す