どうも、かずきちです。
今回は、私が実際にプログラミングど素人から3ヶ月の独学と1年の実務経験を通して年収1,200万を得てきた中で、絶対に必要になるスキルをちょろっと公開します。
ちなみに私のプログラミングスキルはレベルが高いわけでもなく、普通よりちょい上程度です。
目次
- 1 必要な5大能力
- 2 技術スキル
- 2.1 1.フロントエンド言語
- 2.2 2.サーバサイド言語
- 2.3 3.レスポンシブデザインでのフロントコーディングスキル
- 2.4 4.CSSプリプロセッサ
- 2.5 5.CSS設計手法
- 2.6 6.フレームワーク(フロント、バック)
- 2.7 7.オブジェクト指向
- 2.8 8.エラー対処
- 2.9 9.ネットワーク
- 2.10 10.セキュリティ
- 2.11 11.インフラ周り
- 2.12 12.DB設計
- 2.13 13.高速化(フロント、サーバ)
- 2.14 14.テスト
- 2.15 15.設計書作成
- 2.16 16.バージョン管理
- 2.17 17.複数人開発
- 2.18 18.見積もりスキル
- 2.19 19.パッと仕組みが分かる
- 2.20 20.提案できる
- 3 まとめ
必要な5大能力
エンジニアで稼ぐために大切なことは、技術スキルだけではありません。というか、技術スキルだけで年収1200万を稼ぐのはかなり頭が良くないと無理です。なので、私のように普通の人がそれだけの年収をエンジニアで稼ぐためには、技術スキルだけでなく、下記の5大能力を高めることが必要になります。
1.技術スキル2.営業スキル3.コミュニケーションスキル4.マネジメントスキル5.ビジネススキル
その中でも、今回は必要な技術スキルについて。この技術スキルだけでも年収800万は稼げる内容です。
技術スキル
1.フロントエンド言語
HTML、CSS、JavaScript、jQueryが書ければOK
2.サーバサイド言語
PHPやRuby、JavaなどとSQL言語が書ければOK
PHPやRubyなどのスクリプト言語とJava(JSPとサーブレット)がちょろっと出来るとよい。
3.レスポンシブデザインでのフロントコーディングスキル
%指定とメディアクエリの仕組みがわかり、Bootstrapを使ってスマホサイト作れればOK。
4.CSSプリプロセッサ
SASSやLESSが書ければOK
5.CSS設計手法
BEMやSMACSSが分かればOK
6.フレームワーク(フロント、バック)
MVCのフレームワーク使ってWEBサービス1つ作れればOK。(ウェブカツではFuelPHPを教えています)
フロントのjsフレームワークならbackbone.jsやangular.jsらへんがどれか1つ知ってればOK。
7.オブジェクト指向
どんな現場でも求められるが、最低限わかっていればよい。(ウェブカツでも分かりやすく教えてます)
8.エラー対処
デバッグ方法や原因切り分けが出来ればOK。
原因切り分けには、ネットワークを含めたWEBサービスの全体像が見えていることが大事。
9.ネットワーク
WEBサービスの通信の仕組み、流れが分かっていればOK。
情報処理技術者試験に出てくる、OSI7階層モデルとかそういう知識は全くいらないし無駄。
10.セキュリティ
クロスサイトスクリプティング、クロスサイトリクエストフォージェリなど。最低限のセキュリティが分かっていればOK
でも、最近はフレームワークがほとんどやってくれるけど。
11.インフラ周り
VPSサーバーとか借りて、サーバーにLAMP(LinuxとApachとMySQLとPHPの略)環境作れる程度でいい。
Dockerとか仮想環境ソフトが使えると尚よい。
12.DB設計
自分でWEBサービス作ってデータベースの設計を学んだ程度でOK。
DB設計指南書とか1冊さらっと読んでおくと尚よい。
DB設計指南書とか1冊さらっと読んでおくと尚よい。
13.高速化(フロント、サーバ)
処理を高速化するための方法を知っていること。ブログとか2,3記事読んでおくだけ。
14.テスト
単体テスト、内部連結テスト、総合テストの違いがわかり、シナリオ作成、ケース作成が大体出来ること。大体でいい。
これもブログ2,3記事よむだけ。
これもブログ2,3記事よむだけ。
15.設計書作成
設計書の書式は現場によって違うので、外部設計書、内部設計書で何を書くべきかが分かっていればいい。最近は設計書書かないケースも多いけど。
16.バージョン管理
SVNかGitがあるが、Gitが使えること。SVNはもうほとんど使われていない。(SIer入ってるとこは未だに使ってるけど。)
17.複数人開発
コミュニケーションの取り方が大事だったり、納期直前で「出来てません」とか言わないこととか、報連相なり仕事として当たり前のことが出来てればいい。
あとは現場経験1年もすれば十分。
18.見積もりスキル
「◯◯を作って欲しい」と言われた時に「何時間かかるか」がだいたい見積もれること。(WEBサービスを2,3コ自分で作れば、どの機能が何時間で出来るか分かってくる)
19.パッと仕組みが分かる
「◯◯を作って欲しい」と言われた時に「テーブルは何が必要でカラムは何が必要」「クラスはこんな感じで」「セッションに値は持たせて〜」と一通りの処理フローがパッと思い浮かべばOK
20.提案できる
現場では、マネージャーなどがお客さん。お客さんの要望に対して「それならこっちの方がいいですよ。なぜなら〜」とか「それは止めたほうがいいです」ときちんと意見と提案が出来ること。ただし、ただ意見言えばいいってもんじゃないので、これは営業力にも通じるブブン。
まとめ
「結構学ぶことありそう。。」って思うかもしれませんが、実際は17と20以外は根詰めてやれば3ヶ月、通常でも半年、かかっても1年で身につけられます。
大学で理論数学とかわけわからんものを学ぶ必要もなければ、100万もかけてスクールに通う必要もないんですよね。