プログラミング言語の勉強をして、ある程度プログラミングができるようになった。
じゃあ、プログラマーとしてバッチリお仕事ができるか。
もちろん、可能ですが、ここでお話するシステム的な知識についても知っている、また学習しておくことで、1人前のプログラマーとして活躍することができます。
むしろ、この知識を知っておかねば、プログラマーとして必ずどこかで行き詰ってしまうといってもいいでしょう。
ちなみにシステム以外のプログラマーが必要なことについては以下
内容としては以下となります。
データベース知識とSQL
データベースの知識は必ずと言っていいほど必要です。
大半のプログラムで扱われるWebサイトやシステムは、データを利用します。
データをどのように処理するか、がプログラムで記載されています。
そのデータを保存しておくために、データベース(DB)が必要となってきます。
データベースとはデータを保存するための仕組みです。
プログラムにてDBよりデータを取り出し、Webサイトにて表示したりできます。
また、ユーザーからWebサイトにて入力されたデータをDBに書き込むことができます。
このDBへ指示を与えているのがSQLという言語になります。
また、SQLはたいていプログラム内にてDBへ実行することができます。
(PHP内にてSQLか記述されており、PHPよりDBへアクセスすることで、SQL内容を実行できるイメージ)
SQL(Structured Query Language)とは、データベースの操作や定義を行うためのデータベース言語(問い合わせ言語)になります。(プログラム言語ではありません。)
何かしらのプログラム言語を学習してきたのちには、SQLも合わせて学習するようにしましょう。
また、DBの考え方についても合わせて勉強できるとよいです。
LinuxOSの基本的な知識と操作
OSといえば、WindowsかMacOSかと思うかもしれません。
確かに、一般家庭でのパソコンには上2つのどちらかが大半です。
ただ、システムを扱うサーバーで動いているのは「Linux」というOSがメジャーとなっています。
世界で最も普及しているOS
そして、オープンソースになっており、すべて無料で、中のプログラムを自由に改変してよいものとなっている。
LinuxOSの上で、プログラムやデータベースが動いています。
その為、Linuxの基本的な操作を覚える必要があります。
WindowsやMacOSで考えた場合、以下のような作業が良く発生しているかと思います。
- ファイルの名前変更
- ファイルの場所移動
- ディレクトリ作成
- 新しいアプリケーションをインストール
それと同じで、Linuxの上で様々な作業が必要となってきます。
ただ、WindowsやMacのようにLinuxをGUIで操作できる環境が少ないです。
もちろんLinuxにもGUIは用意されていますが、基本的にはSSHにてLinuxサーバに入りCUIにて操作することが大半です。
会社のPC(Windowsなど)からSSHにて、作業するWebサーバー(Linux)に入り作業。
というイメージです。
皆さんが普段使っているWindowsやMacOSの画面での操作(アイコンがたくさん並んで、マウスにてファイル等を操作できるなど)です。画面にて画像情報とマウスにて直感的なコンピュータに対して操作できることをいいます。
真っ黒な画面に白い文字でプログラマーがカタカタキーボードを打っている(マウス使わず)。これがCUIになります。
テキストコマンドのみでコンピュータに指示をおくり、基本テキストが画面で戻ってくる。というコンピュータとの操作になります。
SSHとは「Secure Shell」ネットワーク越しに他のコンピュータに接続して、そのこんぴゅーを操作する手段のことです。ただこちらネットワーク上の通信はすべて暗号化されており、安全にやり取りができる仕組みとなっています。
テキスト編集
テキストファイルを操作、編集する作業。
これが意外と必要となってきます。
コンピュータでシステムを動作させる際に、テキストデータを利用することがとても多いです。
- 機能と機能の間で、テキストファイルでデータをやりとりすること
- 機能が出力するログがテキストファイルであること
など。
これらのテキストファイルは数行レベルのものではなく、とても大量の文字が記載されていることが多く、人の目で見ていると何時間、何日もかかってしまうものも多々あります。
それらのテキストファイルに対して、いろいろな操作や調査をしていく場面が出てきます。
それをテキスト編集等のテクニックを利用することで上手く進めることができます。
では、よく行われているやり方について2点解説します。
エクセルを利用
単純にテキストファイルをメモ帳やテキストエディタで開いて、いろいろな操作を行うのではなく、エクセルで読み込んで操作を行うやり方です。
これは該当のテキストファイルが、TSVファイルやCSVファイルの際に利用できます。
TSV=Tab Separated Values
テキスト内の各項目がタブ区切りで記載されているテキストファイルです。
CSV=Comma Separated Value
テキスト内の各項目がカンマ区切りで記載されているテキストファイルです。
エクセルで読み込むことで、表形式でテキストファイルを編集することできる(エクセルで可能な操作ができる)ため、単純なテキストエディタよりも、とても操作が行いやすくなります。
正規表現
正規表現という言葉を初めて聞く方も多いかもしれません。
意味は以下です。
文字列をパターンで表現する方法。パターンで表現した文字列で「検索」「置換」などの操作を行うことができる。テキストエディタやプログラム言語内にて実行可能です。
まだ???という方もいらっしゃるかもしれません。
簡単な例を記載します。
abcd123efghijk
この文字列に3桁の数字が混ざっているか判断する際にどうするか。
もちろんこの文字列では、人の目で見ればすぐわかります。
ただ、これが何万行もあるテキストだった場合、人の目で見ることはすごく時間がかかります。
その際に、正規表現を使います。
正規表現で以下は3桁の数字という意味合いになります。
[0-9]{3}
もしくは \d{3}
これを上記のテキストにかけるとヒットする仕組みです。
このように何かしらの文字列をパターンで表現することができるため、大量テキストから、電話番号だったりURL、メールアドレスの検索、置換などに利用できます。
また、正規表現は奥が深く、正規表現だけで専門の本が出ているほどです。
まとめ
プログラマーがプログラミング言語以外で必要となること(システム編)について、大きく3つお話ししました。
以下です。
もちろんこれ以外にも身に着けておいたほうがよいことはあります。
また、プログラミングで何を作るかによってもそれは変わってくるかもしれません。
ただ今回お話した内容については、プログラマーとして普通に必要とされるシステムのスキルとなるため、ぜひ学習しておけばよいと考えています。
コメント