プログラミングを独学すれば、「就職後に即戦力として活躍できる!」と考えていませんか?
プログラミングを学ぶとき、基本的には言語のルール・書き方・関数など、ファイルの作り方を覚えます。しかし、システムを動かすには、たくさんのファイルをサーバーに置いて、データベースなどと連携させなければいけません。
その際、サーバーにログインして操作したり、ファイルの送受信などを行います。つまり、システムを動かすためには、「サーバーに関する基礎スキル」が必要になるということです。
ここが、独学の弱点とも言えます。なぜなら、独学で「実際のシステムを動かす経験をするのは難しい」からです。もし、自分でシステムを作って動かせるレベルなら、転職には困らないでしょう。
そこで、自分が未経験でエンジニアに転職した経験から、「覚えておくべき基礎知識・スキル」をご紹介します。
もちろん、業種や言語の種類によって使用するツールは異なりますが、サーバーを使うシステムであれば共通点も多いので、ぜひ参考にしてください。
使用する頻度の多い3つのスキル
まずはじめに、サーバーに関する業務を大きく3つにまとめておきます。
- サーバーとファイルの送受信をする
- サーバーをCUIで操作する
- データベースを操作する
これらの業務に必要なツールはたくさんの種類があり、会社の考え方やシステムの環境などにより異なります。今回はわかりやすく解説するため、それぞれの代表例を簡単にご紹介します。
サーバーとファイルの送受信をする
システムを動かすためには、サーバーと呼ばれるコンピューターを構築する必要があります。現在では、Web上にサーバーを構築するAmazonのサービス(AWS)が有名です。
サーバーはWeb上にあるため、リモートで操作しなければいけません。このとき、安全に通信するために暗号化する「SSH」が多く利用されています。
ということは、SSHで接続する方法や仕組みを理解しておく必要があります。そこで、ターミナルやコマンドプロンプトから、ローカル環境(MAMPやXAMPPなど)のサーバーにSSHでログインしてみましょう。
また、サーバーとファイルの送受信を行う場合、「FTPソフト」を使います。例えば、OSに関係なく無料で使える「FileZilla」が有名です。(公式サイトは英語ですが、Chromeの翻訳機能を使えば問題なく読めます)
ツールを使う理由や操作方法を確認しておくと、スムーズに業務を始められますよ。
サーバーをCUIで操作する
サーバーを簡単に説明すると、「決まった動作をさせるためのコンピューター」です。ですから、一般に販売されているPCをサーバーとして動かすこともできます。
その上で、決まった動作をさせるためにプログラムを置いておくだけのPCなら、ディスプレイは必要ありません。なぜなら、入出力データや処理が決まっていれば、画面から操作する(=GUI)必要がないからです。
また、ディスプレイに関する処理能力も削減できるため、サーバーの操作はCUI(テキストでコンピューターを操作する)で行うことが多いです。
独学だと使う場面も少ないことから敬遠されがちですが、業務では必須のスキルになるため、できるだけ慣れておくことをおすすめします。
とはいえ、難しい操作は必要ありません。業務で使う頻度が多い操作は下記の通りです。
コマンド | 内容 |
---|---|
pwd | 現在の(カレント)ディレクトリを表示 |
ls | カレントディレクトリ内のフォルダー・ファイルを表示 |
cd | 指定したディレクトリへ移動 |
また、CUIから直接ファイルを開く(編集する)ために、「vi」や「vim」というテキストエディターを使います。操作するコマンドが独特なため、Google検索で確認しておくことをおすすめします。
データベースを操作する
システムの仕組みは、「データベースに保存したデータをどのように利用するか」で説明できます。そのため、データベースを操作するスキルは、システムを運用するエンジニアにとっての必須条件になります。
なお、データベースにはたくさんの種類がありますが、SQLの基礎知識を学んでおけば実務上は問題ありません。逆に言えば、システムを管理するエンジニアなら、SQLは必須のスキルです。
データベースに接続できるツールの中で、OSに関係なく無料で使えるのは「DBeaver」です。Windowsであれば「A5:SQL Mk-2」が有名です。
なお、多くのシステムには「リレーショナルデータベース」が使われているため、複数のテーブルから狙った情報のみ取得する「SELECT」文を多く使います。
狙ったデータを取得できると、「UPDATE」や「DELETE」にも応用でき、間違えるリスクが低くなります。本やサービスなどに付属しているデータを利用して、SQLの練習をしておきましょう。
サーバーに関する知識やスキルを身に付けよう
世の中にある多くのサービスは、サーバーとデータをやり取りするシステムの組み合わせで作られています。プログラミングはデータを動かすためのスキルで、そのプログラムを置く場所がサーバーです。
つまり、システムの開発や運用を行う業務では、サーバーに関する知識やスキルは必ず必要になります。特に、使う機会の多い基礎スキルを身に付けておくと役に立ちます。
とはいえ、転職するのが目的であれば深く学習する必要はありません。自分で動かしてみて、操作方法を覚えておくだけで十分です。
プログラミングを学んで簡単なサービスを作れるようになったら、サーバーでどのように動いているのか確認してみてください。特に、エンジニア転職を目指す方にはおすすめの学習方法です。