文系大学生がなぜWebエンジニア・デザイナーになりたいのか?実際になるための超具体的な方法
最近、僕の周りでデザイン・コーディング・プログラミングを学ぶ人が増えてきている。
周りの人間は商学部や経済学部の人間が多いのだが、どうにも彼らは自分たちの専攻よりもプログラミングに興味があるらしい。
なぜだろうか? 話を聞いてみると、そのパターンは大きく3つに分かれた。
1、プログラミングを学んで自分でアプリやサービスを作りたい
専攻が商学系だとやはり自分でサービスを作って、実際に売ってみたくなる気持ちが出てくる。
だが、製品を作るには元手が心もとなく、借金をするほどのリスクを負うのは気がひける。
ビジネスを行うためのコンテンツがない状態なので、そのコンテンツを自前で用意しようというのだ。
アプリ開発は、大変根気がいる作業だが、同じ目標を持ったメンバーを集めてグループで作業を行えばやってやれなくもないだろう。
2、将来、エンジニアやデザイナーの職に就きたい
同じ大学の人と話していると、「自分は営業職になりたくない」という話をよく耳にする。
経営学部や商学部に入っても、日本では自分の専攻分野を職種にできる人はごくわずか。
なので、大半の文系大学生が営業・事務・経理などの職に就くことになる。
普通に就職したらこの営業という職種の割合が圧倒的に多いため、文系学生は悩まされる。
悩んだ結果、自分には黙々と作業を進めていくエンジニアとしての仕事が合っていると気づき、在学中から就活に向けてガリガリとコードを書き勉強するのだ。
3、スキルを媒介にコミュニティを広げたい
この理由は聞いてみて、”なるほど”と思った。
商学系の大学生には勉強系のサークル・学生団体・インターンシップなど様々なコミュニティが用意されている。
中には怪しげな団体も存在するが、何かやりたいと思ったらとりあえず探せば自分のニーズにマッチするコミュニティが見つかるだろう。
ただ、僕らはそこに所属したからといって、自分たちの専攻・能力を生かして活動することが難しい。
例えば、帰国子女でネイティブレベルの英語が喋れるのであれば、翻訳のインターンシップなどにチャレンジしたりできるだろう。
しかしながら、普通に大学受験して入ってきた文系大学生は仕事にできるほど尖ったスキルというものをまだ持っていない。
かといって、自分の専攻である商学系・文学系の知識を生かせる場は非常に少ない。
マーケティングを学べるインターンシップ!などと銘打っているものはあるが、そこでやらされる仕事は、市場調査という名のインターネットサーフィンなどが大半だ。
そこで、Webデザイン・Webプログラミングというものが登場する。
学ぶ手段は、スクール・オンラインキャンプなど大量に用意されており、時間さえかければ独学でも問題ない。
一つスキルを持っていたら、それがアイデンティティになるし、そのツールを使ってコミュニケーションを促進させることができる。
Googleいわくこれからの将来プログラミングは絶対必要
How Google Works「私達の働き方とマネジメント」という本を知っているだろうか?
知らなければぜひ読んでみてほしい。
下の記事に要点のみを抽出したものがあるので時間がないというひとはこれだけでも見てほしい。
Googleは、この書籍でスマートクリエィティブという新しい時代に必要とされる人材について述べている。
このスマートクリエイティブな人材の多くは、パソコン上で動いているもの(アプリケーションやWebサイト)の裏側を知っている。
プログラミングを勉強するのに時間や場所は問わない
もし、上記の3パターンのどれかに、あなたが当てはまっていて、まだ勉強を始めていないのならすぐにでも始めたほうがいい。
文系大学生であれば、時間は十分に取れるだろう。 長い春休み、少しだけ早起きをして1日1時間勉強してもいいし、授業が終わった後大学の図書館に行き、残って勉強するのもいい。
プログラミングを勉強することは時間や場所を問わない。パソコンとネット環境さえあればどこでもできる。
しかし、効率的に学ぶ方法は存在する。
最初に、初心者向けのプログラミングの本をよくわからないまま買っても、ゴール地点が曖昧なため、モチベーションが続かず途中で断念してしまうだろう。
僕がWebエンジニアになるまでに辿った道筋を元に効率的にプログラミングを学ぶ方法を紹介していく。
プログラミングを身につけるための具体的な勉強方法
Webエンジニアのタイプ
これを読んでいる読者の中で、「自分は○○なエンジニアになりたい。だから、この言語を勉強するつもりだ。」と、具体的にどのようなWebエンジニアになりたいか決まってる人がいるだろうか?
もしいたなら、残念ながらこの記事の情報はあまり役に立たないだろう。
ここで紹介する内容は、まだどんなエンジニアになりたいか決まってないけど最初に述べた、Webエンジニアになりたいパターンのどれかに当てはまっている人向けだ。
そもそもプログラミングをやる、と言ってもどのようなことがプログラミングなのだろうか?どんなタイプのエンジニアがいるのだろうか?
最初は、ここからわからないと思うのでまずは”Webエンジニアのタイプ”について説明していく。
Webエンジニアはこのように大きく分けて4つに分かれる。(正確にはもっとあるがここでは省く)
デザイナー
この場合のデザイナーは、Webデザイナーという括りになる。
Webデザイナーはホームページのレイアウト、配色、テイストなどを決め、Photoshopなどのソフトを使い、デザインカンプというHPの元となるイメージ画像を作成する。
つまり、彼らは基本的にはコードを打ち込む仕事はしない。 (だが、多くのWeb系の会社ではデザイナーがコーディング作業まで兼任していることがある。)
フロントエンジニア
フロントエンジニアとは、Web制作の表側の部分に携わるエンジニアのこと。
デザインに従ってCSSでレイアウトを整えたり、HTMLでメニューを増やしてみたり、Javascriptでポップアップを加えてみたり。
こういった、表側の見える部分に関する仕事を行うのがフロントエンジニアだ。
必要な能力としては、HTML,CSS,Javascriptが中心。最近ではSass(CSSを便利にしたもの)を要求されることもある。
ミドルエンジニア
正確にはミドルエンジニアという用語はないのだが、分かりやすくするために僕が作った。
フロントの作業(HTML,CSS,Javascript)も一通りできるが、本業はPHPやWordpressなどを扱い、サイトに対し動的な処理を実装する。
動的な処理というのが少しわかりづらいと思う。
これは、サイトを見る人に対してというよりも、サイトを管理する人に向けて、行うものといった方がわかりやすいかもしれない。
例えば、ブログを運営していて、Wordpressやはてなブログなどを使っていたら、記事を投稿する管理画面というものがあると思う。
ボタンを押して、文字を書くだけでサイトにその内容が反映される。
本来であれば、サーバーにアクセスして、HTMLコードに直接書き込まなければいけないところに、PHPやWordpressなどで動的に処理することで、メンテナンス性が非常に高くなる。
サーバーエンジニア
サーバーエンジニアは、サーバーに起こりうる諸問題を解決するプロフェッショナルだ。
Webサイトもそもそもサーバーを構築しなければ動くことはない。
Webサーバーで言えばnginxやapacheなどをサーバーにインストールして初めて動作する。
分かりやすく例えて言えば、サーバーエンジニアは電気会社のようなものである。
電気が通って初めて、パソコンが動き、そこでプログラムを書くことができる。
同じように、Webサイトもサーバーというインフラストラクチャーがあってこそ動いているものである。
これには、Database,apache/nginx,TCP/IPなどの知識が必要である。
特にこだわりがなければ、ミドルエンジニアがオススメ
文系大学生で、特にWebに関して経験がないのであれば、ミドルエンジニアを目指すのが得策だと思う。理由は以下の三つ。
デザイナーを1から目指すのは非常に骨が折れる。
というのも、デザイナーは美術系の知識がある人の方が圧倒的に有利だし、雇う側もそれを考慮する。
ただ、どうしても目指したいという意思があるのならば可能。
同じ職場で、デザイン経験がなく会社に入り、仕事をしていくうちに覚えたという凄腕のデザイナーさんも実際にいる。
初心者にサーバーエンジニアはおすすめできない
もし、サーバーエンジニアを目指したいという人がいたら、一度この記事を読んでみてほしい。
これを読んでも、なおも「サーバーエンジニアになりたい!」という強い意思があればチャレンジしてみるのがいいと思う。
記事にも書いてあるが、インフラを維持・管理するサーバーエンジニアというのは周囲からの評価が得られにくい。
外部からの承認欲求ではなく、サーバー愛によって突き動かされるレベルでないと続けるのは難しいと思う。
フロントエンジニアのスキルは出来て当たり前という世界
HTML、CSSで作られたデザインに沿ってコーディングができるというのはもはや珍しくない。
プラスでJavascriptが完璧にできたらまだ需要があるだろうが、今のWeb業界ではさらにもう一歩進んだものを求められる。
フロントエンジニア+デザイン、フロントエンジニア+PHP,Wordpress、フロントエンジニア+サーバーとか。
その中で言ったら、フロントもできてミドルもできる"ミドルエンジニア"が一番目指しやすいのだ。
エンジニアになるための効率のいい勉強ルート
効率の良い勉強ルートにはお金をふんだんにかける場合と、徹底的に節約する場合の2パターンがある。
当然、お金をかけた方が時間短縮になるし、何よりモチベーションの維持が容易だ。
お金をかけない場合、自力で勉強する割合が多くなるため、モチベーションを保つためにも同じ目標を持つ友人と一緒に作業をするなど工夫をする必要がある。
①お金をかけてもいい場合
1、Webスクールに通って、HTML/CSS/Javascript/Photoshopなどの基本ツールを使えるようにする。
2、TechAcademyのOnlineブートキャンプに参加し、専門分野(PHP,Wordpressなど)を学ぶ
3、TechAcademyの制作課題を通して、アドバイスをもらいながら、HPを制作
4、それをポートフォリオとし、エンジニアとしてインターンをする
- 個人で黙々と学びたいならKenスクールなどの1対1形式
- 時間を縛られずオンラインで学びたいならTechAcademyなどのオンラインブートキャンプ
②できるだけお金をかけたくない場合
1、ドットインストールの無料動画を見て、HTML/CSS/Javascriptについて学ぶ
2、課題付きの教科書を買い、それに沿って自分でサイトを作る
3、自分でテーマを設定し、新たにオリジナルのHPを作ってみる
4、それをポートフォリオとし、エンジニアとしてインターンをする
- HTML・CSSでおすすめの教科書は、よくわかるHTML5+CSS3の教科書
- CSSになれて来たら、CSS設計の教科書
- PHPを学ぶなら、よく分かるPHPの教科書
- Wordpressを学びたいと思ったら、WordPressの教科書
Webエンジニアになるためには、実際に働いてしまうのが手っ取り早い。
だが、自分の会社に入るかどうかも分からない未経験の大学生を一から育てるメリットは会社側にはほとんどないため、未経験のままではエンジニア職には就きにくい。
なので、まず会社に勤めるためにある程度技術を付け、ポートフォリオを一つか二つ用意する必要がある。
ポートフォリオとは製作物や成果物のことで”自分はこれぐらいのものを作れる技術がありますよ”という証明になる。
手っ取り早くクオリティの高いポートフォリオを用意したいなら、Webスクールに通うべきだ。
Webスクールではほとんど付きっ切りで教えてくれるので、必然的に自分一人で作るよりも質の高いポートフォリオが出来上がる。
そのポートフォリオを元にひとまず面接を突破し、会社で足りないことを学びながら成長していけばいい。