2020-01-12「Webエンジニアになるために何を勉強すれば良いんだろう?」Webエンジニアへの転職を目指すさい、必ず抱く疑問だと思います。トラハックということでこんにちは!プログラミング未経験からWebエンジニアに転職したトラハックです。僕はもともとSIer企業でインフラエンジニアをしていたので、プログラミングは未経験でした。現在はベンチャー企業でWeb開発のフロントエンドもバックエンドも担当しています。今回は、僕が未経験からWebエンジニアに転職するまでに学んだ5つの知識をご紹介します。これは実体験に基づいた具体的な内容です。全員に当てはまることではないかもしれません。1つの実例として参考になると思います。「楽して成長できる」という内容でもありません。「今後もずっと成長して生き残れる」エンジニアになるヒントを得られると思います。最初に言ってしまいますが、僕が学んだことは「プログラミング言語」だけではないです。エンジニアに必要な知識は、それだけじゃないからです。具体的に何を学んだかというと、次の5つです。最初の2つは、誰でもなんとなく「必要だな」と感じると思います。個人的に特に重要なのは5つめの「サービス設計の知識」でした。技術選定アーキテクチャ設計(=なんのサービスをどう組み合わせるか)プログラミング言語を書けることって、「武器の扱い方を知っている」ようなものなんですよね。両手で握った剣を上からまっすぐ振り下ろせば切れるとか銃の引き金を引いたら発砲できるとかその程度のことです。武器が使えても戦いに勝つことはできません。“戦い方”を知る必要があるということです。開発における「戦い方」が”設計知識”だと僕は考えます。設計方法についてはこのあと解説しますね。Webエンジニアに転職するまでに実践した勉強方法それでは、先ほど挙げた5つの知識を、具体的にどうやって学んだのか、解説します。Webエンジニアに転職するまでのHTMLの勉強方法まず、HTMLとCSSは、Webに触れるエンジニアなら必須の知識ですよね。HTMLの”勉強”にはほとんど時間をかけていません。HTML5のサイト構造は、Progateで基礎をさらっとやった後、有名なWebサイトを模倣することで学びました。あなたの好きなサイトで良いと思います。Google”というページを模倣したことがあります。1から100まで綺麗に模倣する必要はないです。そのサイトのソースコードを見ながら「なぜそのタグがそこで使われているのか」などの疑問を1つずつ潰していくようにしていくと、知識が増えます。次に、Webエンジニアの転職するために、CSSの学習は避けて通れません。最低限身につけるべきCSSの知識paddingとmarginblock要素とinline要素の違いFlexboxハンバーガーメニューメディアクエリを使ったレスポンシブデザインこれらはProgateで一通り勉強することができました。いえ、実践で使うのが一番かなと思います。先ほどHTMLの説明で述べたWebサイトの模倣と合わせて、そのサイトのデザインで気に入った部分のCSSを真似てみましょう。以下のように、他にもCSSで実装できるデザインは色々あります。カルーセルスライダーアコーディオンアニメーションですが、正直、実務に入ってから必要に応じて調べて実装できるようになっていればOKです。次に、クラウドインフラの知識です。2020年現在も、AWSの需要は高いので、勉強しておいて損はないです。クラウドインフラは、バックエンドの言語とセットで勉強した方が良いと思います。Lambdaで使えるPythonを学びました。クラウドやバックエンドは、Qiitaなど技術ブログに掲載されている先人たちの知恵を借りて、実際にサービス開発をしてモノを動かしながら学ぶ方法が最適です。表面的な知識があっても使いこなせないと、全く意味がありません。問題に直面して、調べて、解決していくという経験が、次回以降でずっと使える「生きた知識」になるんです。今、クラウドとバックエンド言語を学ぶために「サービスを作りましょう」と言いましたね。「オリジナルサービスの開発」は、設計知識を身につけるためにも必要なプロセスです。実務では、クライアントの要望に対して仕様を決めていきます。オリジナルサービスの場合、あなた自身がクライアントです。作りたいサービスの要件を書き出すそれを実装するための仕様を考える仕様に応じて必要なインフラと構成を考える上記のように、1人でもサービス設計の経験はできますね。分からなければ、世に出ている情報を見てみましょう。ここでもQiitaが役に立ちます。サービスの要件や機能、インフラの構成を記事にまとめてくれている人がいますよ。【結論】Webエンジニアに転職するために大切だったことは”模倣”でした今回の話をまとめると、Webエンジニアに転職するために必要な5つの知識を身につける方法は、すべて”模倣”に収束するなと思います。「模倣」するためには良い情報を集める能力が必要です。「模倣」した内容を理解したいなら、+αの機能を追加してみて、検証することをおすすめします。いう流れを実践できるなら、どんな技術でも身につけらると思います。成長し続けて長く稼げるエンジニアになりたいなら、この勉強方法を試してみてくださいね。今回の話は以上になります。このチャンネルでは、成長し続けられるエンジニアを増やし、社会の役にたつサービスを開発している企業に優秀なエンジニアが集まり、より便利で豊かな社会を作っていきたいという想いで日々発信しています。すると、この世の中、もっと面白くなるんじゃないですかね。リモートOKなスタートアップでフロントエンド|搾取されないエンジニアを増やすために、キャリア論や転職を成功させる方法、勉強方法について発信しています。