2020年のWeb開発:どのコーディングツールを学ぶべきか

今日、私のお気に入りの教師の1人であるBrad Traversyが、2020年にWeb開発者になることを学ぶことを彼が勧めていることの概要を公開しました。

ブラッドは、ソーシャルメディアで耳にする多くの誇大宣伝を切り抜けます。彼のアドバイスは実用的で現実的です。そして、私は彼があなたに学ぶことを勧めるほとんどすべてについて彼に同意します。

ブラッドが強調している主なこと-そして私がいつも強調していること-は、気が遠くなるような気分になったり、圧倒されたりしないことです。

覚えておいてください:freeCodeCampのカリキュラムはこれらのツールのほとんどをカバーしており、40,000人以上が開発者としての仕事を得るのに役立っています。疑わしい場合は、それに焦点を合わせてください。

あなたの便宜のために、ブラッドの主な洞察を以下に要約しました。そうは言っても、私が下に埋め込んだ彼の完全なビデオをご覧になることをお勧めします。彼はこれらのメモが伝えるものをはるかに超えて多くの詳細を追加します。73分の時計です。

2020年のWeb開発:概要

このビデオの主な目的は、Web開発者が利用できるより主流のWeb開発ツールのいくつかに精通することです。

「私はテクノロジーであなたを圧倒しようとはしていません。これらはあなたが持っているオプションにすぎません...そこにはたくさんのテクノロジーがあります。NuxtやGatsbyのようなものを聞いたら、それが何であるかを知ってもらいたいです。そしてあなたはそれを学びたいかどうかを選ぶことができます。」

ブラッドは、最初に何をしたいのかを尋ねるよう人々に勧めることから始めます。製品会社で働きたいですか?それともコンサルタントとして働いていますか?フリーランスにしますか?または、独自の製品を作成しますか?

何を学ぶべきかについての彼のアドバイスの多くは、あなたの目標が何であるかに要約されます。そして、彼はこの観点から彼のツールの提案の多くを組み立てています。

出発点として、彼は彼が「必需品」と呼ぶものを学ぶことを勧めます。

彼が指摘する直感に反することの1つは、Web開発に豪華なコンピューターは必要ないということです。「ゲームエンジンの開発などとは異なり、ミッドレンジのラップトップやデスクトップ、場合によってはローエンドのコンピューターを使用できます。」

彼は、クラウドサーバー、さらには一部のメディアサーバーにもMacOS、Windows 10、Linuxを使用しています。

彼はエディターのVSCodeの大ファンであり、ブラウザーベースのデバッグにChromeとその組み込みのDevToolsを使用しています。とはいえ、Firefoxも長い道のりを歩んできており、実行可能な代替手段であると彼は考えています。

彼は、標準のHTMLとCSSから始めて、FlexboxやGridなどの新しいCSSツールを学ぶことをお勧めします。

彼は、2020年にレスポンシブウェブデザインを学ぶことは当然のことだと言います。「作成するすべての深刻なプロジェクトは、見栄えがよく、すべてのデバイスで完全に使用できる必要があります。」

BootstrapのようなCSSフレームワークに依存する代わりに、プロジェクト全体で再利用できる独自のモジュラーCSSコンポーネントの構築を練習することをお勧めします。

とはいえ、さまざまな雇用主のプロジェクトに取り組んでいるときに、これらに遭遇する可能性があると彼は言います。

彼は、私が前に聞いたことがなかったテールウィンドについて具体的に言及しています。Tailwindは、他のCSSフレームワークとは少し異なります。これは、デザインで必要なことを達成するために組み合わせることができる「ユーティリティクラス」に焦点を当てています。

ブラッドがJavaScriptを本当に上手に使うことを勧めているのも当然です。

実用的なペースで学ぶ

ブラッドのガイド全体を通して、彼は実用性の必要性を繰り返し強調しています。

はい-すべてにベストプラクティスがあります。しかし、多くの場合、ツールにとらわれることなく、より速く移動し、より多くのことを成し遂げるのに役立つ十分な方法があります。

彼が言う最も興味深い(そしておそらく異端の)ことの1つ:

「小さなサイトでは、DevOpsやAWSなどすべてを学ぶ必要はありません。ホスティングサイトや、InMotionやHostgatorなどのマネージドホスティングサイトで問題ありません。ブラウザで直接[デプロイ]を行うことができます。必要はありません。物事を複雑にしすぎています。」

彼は、2020年でも、使い慣れたツールを使用するために言われることがあると主張します。

Web開発に不慣れな人のために、Bradは、最初に基本的なフロントエンドWeb開発者として働くことができるようになることをお勧めします。これにより、フリーランサーとして地元企業向けのWebサイトを構築できます。

「流行に敏感な人は、間違いなくフロントエンドフレームワークを使用する必要があると言うでしょう。それは真実ではないと思います。フロントエンドフレームワークを使用せずにサーバー上でテンプレートをレンダリングしたい場合、それは絶対に問題ないと思いますが、多くのReactやVueのようなものを探している仕事。」

しかし、フロントエンドフレームワークに取り組む準備ができたら、React、Vue、Angularを探索することをお勧めします。「3つすべてを試して、どれが一番好きかを考えてください。」

彼はまた、フレームワークではなくコンパイラーであるSvelteに賛成します。しかし彼は、2020年に試してみるのはおそらく新しすぎると言います。

また、サーバーサイドレンダリングの人気の高まりについても説明しています。ファイルシステムベースのルーティングは、複雑なルーティングファイルを作成する必要がないことを意味します。代わりに、ファイルを配置したいディレクトリにファイルを置くことができます。

2つの人気のあるサーバーサイドレンダリングツールは、Next.js(React用)とNuxt.js(Vueオプション)です。

もう1つの新しい傾向は、静的サイトレンダリングです。これは、学習する必要はありませんが、注意する必要があると彼は言います。たとえば、ギャツビーサイトは非常に高速で、サーバーを必要としません。

バックエンド開発ツール

サーバー側の開発では、Bradはその速度とフロントエンドとバックエンドの両方でJavaScriptを使用できるため、Node.jsを好みます。

サーバー側の開発フレームワークについては、Expressが最も人気があり、「独自の方法で物事を構築するための多くの自由が得られる」ため、Expressを学ぶことをお勧めします。

彼はまた、いくつかのプロジェクトにPythonを使用しており、それも推奨しています。

「Pythonには2つの素晴らしいフレームワークがあります。Djangoは大規模でフル機能のフレームワークですが、Flaskはよりミニマルです。必要なものは提供されますが、残りの決定はあなたが行います。正直なところ、2つのうちの1つを選ぶことはできません。両方を愛し、さまざまな目的に使用してください。」

そして、彼はすぐにPHPの防御にたどり着きます。

「多くの人がPHPにがらくたをしますが、PHPは優れた言語になる可能性があるため、残念です。実用的で、どこにでも簡単に導入できます。PHPは、物事をすばやく処理する必要があるフリーランサーに最適です。大企業で働いている場合、PHPは最良の選択ではないかもしれませんが、フリーランスで個人的なプロジェクトを構築している場合は、PHPが最適です。PHPをバッシングするのはクールになりました。PHPは私が最初に学んだ言語であり、今でも本当に好きです。それ... Laravelコードを見ると、とてもエレガントです。」

Bradはまた、データベースのクイックウォークスルーを行い、長年愛用されているPostgreSQLを推奨しています。

おそらくここにとどまる他のツール

GraphQLは、REST forAPIの代替手段です。BradのチャネルとfreeCodeCampのチャネルの両方でGraphQLをカバーするいくつかのコースがあります。しかし彼は、「GraphQLは最近学ばなければならないものではありませんが、ここにとどまるには十分な大きさです。それはトレンド以上のものです」と述べています。

ブラッドはまた、コンテンツ管理システム(CMS)と、それらをバックエンドとして使用して独自のフロントエンドをコーディングする新しい「ヘッドレス」オプションにどのように進化しているかについても説明します。

「CMSは、ログインしてブログ投稿などを作成したいクライアントがいるフリーランサーにとって非常に便利です。多くの人がWordPressを非難しますが、インターネット上にはWordPressが運営するウェブサイトの大部分があります。そしてそれはまだ非常に人気があります。」

Webサーバーの場合、彼は「それほど複雑ではないように見える」ため、ApacheよりもNGINXを好みます。私たちはfreeCodeCampでNGINXを広く使用しており、同意する傾向があります。

Bradはまた、仮想化がどのように機能するかを説明し、複数のコンピューター間で環境を標準化することにより、より複雑なプロジェクトを簡素化する方法について説明します。しかし、彼はすべてを仮想化しようとしないように警告しています。

「Dockerはチームにとって本当に良いです。私が嫌いなのは、常にDockerを使用する必要があると言われることです。これは単なる好みです。ローカルのLAMPサーバーを実行したいだけなら、何も問題はありません。プレッシャーを感じないでください。 Dockerのようなことを学ぶために。」

そして彼は、私が個人的に十分に強調することができない何かを強調するために、「私は多くのオタクタイプが物事を過度に複雑にしたいだけだと知っています、そして私はそれを嫌います。君は。"

彼はまた、ほとんどの大企業があなたのためにこれをたくさん行うことができる専任のDevOpsチーム(「サイト信頼性エンジニア」とも呼ばれる)を持っていることをすぐに指摘します。

あなたが専門として学ぶことができるスキルを持っているのは素晴らしい

モバイルアプリの開発で手をテストしたい場合、BradはFlutterフレームワークを強くお勧めします。よりあいまいな言語であるDartを使用します。彼は、DartをJavaとJavaScriptの間のどこかにあると説明し、これらの言語のいずれかを知っていれば、それを理解できるはずだと述べています。

彼のモバイルアプリ開発の2番目の選択肢は、React Nativeです。これは、Reactを既に知っている場合は簡単に理解できます。

次に、ブラッドはプログレッシブWebアプリとは何か、そしてそれらの利点のいくつかを説明する素晴らしい仕事をします。これがスライドですが、繰り返しになりますが、彼の完全なビデオをご覧になることを強くお勧めします。

次に、JavaScriptを使用してデスクトップアプリケーションを構築できるElectronについて触れます。彼は当初懐疑的でしたが、VSCodeやDiscordなどのお気に入りのデスクトップアプリのいくつかは現在Electronを使用して構築されていると言います。

彼は、JAMstack(JavaScript、API、およびマークアップ)とサーバーレスアーキテクチャについて言及しています。これらは、彼のチャンネルとfreeCodeCampのYouTubeチャンネルの両方にビデオチュートリアルがある、より高度なトピックです。

そして、彼は2020年の大きなトレンドに到達します。

機械学習とWebアセンブリ

他のみんなが機械学習について話しているからといって、すべてを捨ててそれを学ぶ必要があるわけではありません。それが彼が彼の話のこの段階の前置きをする方法です。

はい、JavaScriptで機械学習を行うこともできます。

「Pythonは機械学習の王様です。しかし、JavaScriptを使用してもTensorFlow.jsがあり、Brain.jsを使用してニューラルネットワークを作成し、非常に優れた機能を実行できます。」

彼がWebAssemblyについて話している方法から、彼がかなり興奮していることは明らかです。

「WebAssemblyはまだ初期段階ですが、今年はさらに多くのことが見られると思います。従来、WebページでJavaScriptを使用してDOMを操作し、計算を実行します。JavaScriptには速度の点で制限があります。言語CやC ++のようにJavaScriptよりもはるかに高速です。したがって、Web Assemblyは効率的で低レベルのバイトコードであり、ブラウザで実行でき、非常に高速です。C、C ++、Rustなどの言語で生成できます。」

Rustは、(CおよびC ++に加えて)WebAssemblyで使用できる言語の1つです。CやC ++よりも習得と使用が非常に簡単です。

ただし、WebAssemblyはJavaScriptを学ぶ必要があることを免除するものではないことに注意することが重要です。

「JavaScriptはボスと考えることができ、Web Assemblyに何をすべきかを指示できます。そのため、WebアプリでC ++のような非常に高速な低水準言語を使用できます。これにより、次のような多くの機能が提供されます。ブラウザにある次のレベルのビデオゲームとビデオ編集ツール-JavaScriptだけでは考えられないこと。」

最後に、「学べば学ぶほど、より多くのことを学び、これらすべてのテクノロジーを組み合わせることが容易になります。圧倒されないようにしてください。一歩ずつ進んで調査を行い、自分が何をしているのかを理解してください。やってみたいです。"

繰り返しになりますが、この包括的なビデオをまとめてくれたBradTraversyに感謝します。

「Web開発者になりたいのなら、何を学べばいいの?」とよく聞かれます。そして、私の答えは、「freeCodeCampをコアカリキュラムとして使用し、他の学習リソースに分岐するだけです」です。

そして、BradのTraversy Media YouTubeチャンネルは、私が最も強くお勧めする追加のリソースの1つであると言って嬉しく思います。