未経験者がWEBエンジニアとして就職する前に身につけておいたほうがよいスキル一覧

夕方、用事から帰ってきてから寝てしまったので寝れなくなっている松本です。
寝れないので今日はもう1本記事を書きます。例によって技術的なことではなくて雑談ネタですが。
WEBエンジニアとして就職する場合、大体求人案件には「実務経験2年」などと書かれていることが一般的です。
とはいっても未経験の方は経験そのものがありませんから実務未経験者はどれくらいのことができればよいのか?といったことがわかりません。もちろん企業によって違いますが、私の経験からこれぐらいのことができれば最低限の仕事はできるだろうという基準を書かせていただきます。
自分はPHPですが、その他の言語でも多少は参考になるのではと思います。
プログラミング言語
配列の基本操作
このブログでも何回もいいましたが超重要です。プログラミングは結局のところどこからかデータをひっぱってきて、加工して、どこかに送るということを延々とやります。
そのデータはほとんどの場合、配列を使いますので配列の操作が自由自在にできることが大前提です。これはおそらく例外はないと思います。
基本的なエラー消去
プログラミングを学習し始めていると、最初のうちはほとんどまともに進みません。エラーがぼこぼこでてきてしまうからです。そういったエラーをすばやく消せないと作業そのものがすすみません。
もちろん何年仕事をしていてもはまってしまうエラーはでてきてしまうのですが、基本的なものであればすぐに潰せることが必須条件でしょう。
ファイルの入出力、データベースへの入出力
外部とのデータ連携ですね。多くのWEBアプリはよほど単純なものでない限り、外部にデータを保存しておきます。
多くの場合はデータベースですが、テキストなこともあります。ファイル(またはデータベース)からデータを取り出して、加工し、逆にこれらに保存するといった操作はスムーズにできるようになっておきましょう。
デバッグ処理
アプリを作るときに疑問に思った部分で適切にデバッグをできるか。PHPだとvar_dumpですね。これができないと調査そのものができませんので、絶対に見につけておくべきスキルです。
基本的なオブジェクト指向の理解、クラス設計
ある程度の規模のWEBアプリになってくるとDB、ログイン、メール送信、セッション管理など様々な機能が必要になってきます。これらをうまく使い分けるにはオブジェクト指向を理解し、クラスを設計することが必須になってきます。
強引に1つのファイルだけで書くこともできますが、非常にソースがみにくくなります。
初心者にとってはオブジェクト指向はかなり鬼門で多くの方がここでつまずきます。しかし、オブジェクト指向を使うと使わないとではできることや保守性(メンテナンスのしやすさ)が大きく変わってきますので必ず使えるようになっておきましょう。
機能とファイルの分割
クラスの設計にも通じますが、複雑なアプリであれば機能ごとにクラスを作り、ファイル自体を分割します。役割ごとにファイルを適切に分けられるか。フレームワークを使っていなくても、役割ごとにざっくりとソースを分割できるようになって起きましょう。
セッション
ログイン情報などPOSTと違って比較的長い期間のデータを取り扱う場合、セッションやクッキーを使うことがあります。POSTとセッションを適切に使い分けられるか。
以上、言語のスキルで言うとざっくりいうとこんなところかなという気がします。
データベース
現在のWEBアプリですとほぼデータベースは必須ですね。
MySQLかPostgresSQLが使えれば問題ないと思います。片方の操作に習熟していればもう片方の操作もそれほど問題ないでしょう。
データベースの作成、ユーザーの作成、テーブル作成
これは基本ですね。コンソールからログインして、データベース→ユーザー→テーブルを自在につくれるかどうかです。
int,varcharなど基本的な型の理解
テーブル設計などに通じますが、型を適切に選べるか。とはいっても最初はint,varchar,text,timestamp,datetime,tinyintぐらいでしょう。これぐらいの使い分けが適切にできるかですね。逆に言うと最初はこれぐらいが使えればなんとかなります。
select,insert,update,deleteなどの基本構文操作
特にselectは最頻出なので何もみなくてもできるようになりましょう。またSUMやAVERAGEなど基本的な算術計算もできるようになっておいたほうがよいです。
複数テーブルの使用
リレーションを使って複数テーブルを使ったアプリを作れるか。ざっくりで良いので仕様を把握して1:Nを理解して複数のテーブルに分けられるようにしておきましょう。
バックアップ、リストアができるか
ダンプしてDBファイルを別サーバーに移行できるかどうかですね。ほとんどの場合まずは自分のローカルPCでアプリを作っていると思いますので、これらを別環境にスムーズに移行できるようにしておきましょう。
ネットワーク、サーバー
最初は自分のPCで作業をしていると思いますが、リリースする際は当然サーバーにアプリを配置することになります。それが円滑に行うための基本的な知識と処理になれておきましょう。これらの作業はVPSなどを借りて作業をすることで身につくでしょう。
サーバーサービスの分類
ロリポップなどのいわゆる通常のレンタルサーバー業者、VPSサーバー、クラウドサーバー、各種サービスがどのように違いどのような用途でつかわれるのかを理解しておきましょう。
IPとドメイン、DNSの知識
WEB上の住所というのはどうなっているのか。なぜWEB上でhttp://www.xxxx.jpなどとうつとWEBサイトを見ることができるのか。
基本的なLinuxコマンド
就職する前にファイルの操作がCUIで問題なくできるようになっておきましょう。特にls,cd,mv,cpといったコマンドは最頻出であり、数学をやるときの九九のようなものです。Windows(GUI)での操作が不便に感じられるぐらいCUIになれればOKです。
ユーザー権限とパーミッション
Windowsと違いマルチユーザーですので、権限とパーミッションの理解は最重要です。初心者がサーバーにあげたのにうごかない・・ときは大抵ここがネックになっています。適切に設定を行い、動かせるようになっておきましょう。
基本的なサービスのインストール
yumでいいので、WEBサービスをリリースする際に必要なソフトウェアをインストールできるようにしておきましょう。最低限,Apache,PHP,MySQLがインストールできて操作できればなんとかなります。
ソフト操作
エンジニアとして仕事をしていると業務に必要な様々なソフトウェアが必要になってきます。それらを使って日常的な操作が不自由ないかどうかは作業が円滑にすすむかに大きくかかわってきます。
エディタ
特にエディタは毎日ずっと使うものですので、作業が円滑にできるかどうかは時間に大きくかかわってきます。下記操作はできるようになっておきましょう。エディタによってはないものもあります。
特に置換系はできると作業スピードがかなり変わりますのでしっかりと覚えておきましょう。
- 矩形選択
- 入力補完処理
- 特殊文字表記(全角、タブ、改行など)
- 文字置換(正規表現を含むもの)
- 複数ファイルにまたがった置換
- 基本的なプラグインの導入
- マクロ操作
- 各種設定変更
FTP(SFTP)ソフト
有名どころでいうとFileZilaやWinSCPでしょうか。ホスト情報をもらってすぐにログインして操作ができるか。
SSHソフト
TeraTermやPuttyが有名でしょう。私はPoderosaというソフトを使っています。こちらもホスト情報をもらってログイン操作ができるか。
下記セキュリティ設定ができると望ましいです。
- rootログイン禁止
- パスワードログイン禁止
- 鍵認証
上記のスキルを身につけるために
このようなスキルですが、教材を読んで1つ1つ覚えるというのはあまり効率がよくありません。
お勧めするのは掲示板などのアプリを作成し、自分なりにどんどんカスタマイズを加えていくことです。どんなアプリでも拡張していくうちにかならず上記の機能を全て実装しきります。
それが最速でスキルを身につける方法です。初心者のかたはぜひ参考に!
関連記事
-
-
フレームワークのメリット・デメリット
こんばんは。松本です。 昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島
-
-
PHPで掲示板を作ろう!(データベース編) その1 データベースとは
以前、掲示板を作成するブログ記事を書きました。 その1 PHPで掲示板を作ろう! 掲示板の作成
-
-
PHPのメリット・デメリット
うちのブログで一番読まれている記事が「フレームワークのメリット・デメリット」ですね。 タイトル
-
-
セミナー告知のお知らせ
突然ですが2018/06/16にIT業界への就職希望者を対象とした無料プログラミングセミナーを開催さ
-
-
勘違いしてはいけない未経験ややる気という言葉
かなり久しぶりの投稿になってしまいました・・・ 以前ダイエットに成功し、2年以上かけて10kg
-
-
就活生必見! Webエンジニアになるなら知っておきたい超基本業界用語
本日はWEB業界でよくつかわれる専門用語について私の知っている範囲で書いていこうと思います。
-
-
Java/PHP/Perl/Ruby/Python 主要Web系言語徹底比較
本日はWeb系で使われているプログラミング言語の比較をしてみようと思います。 Web系で使われ
-
-
PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編
今回はMySQLの第5回目の講義です。 前回までの記事 PHPで掲示板を作ろう!(データベース編
-
-
初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編
前回からの続きですが、主にプログラムの勉強目的として、簡単なWEBサービス(アフィリエイトサイト)を