2022年に学ぶのに最適なプログラミング言語

公開: 2022-03-17

あなたが今後何年にもわたって正しい選択をしたことを確実にするために、今日学ぶのに最適なプログラミング言語を知りたいですか?

プログラミング(コーディング)は技術の原動力です。 プログラミングは、新しく有利なキャリアルートを取るのに役立つ重要なスキルになる可能性があります。 ベテランのプログラマーが年間$100,000〜$300,000以上を稼ぐことは珍しいことではありません。 これらの種類の賃金は、グーグルやフェイスブックのような企業が従業員に与えているエキゾチックな利益と相まって、抵抗するのは難しいかもしれません。

プログラミングは自由に学ぶことができ、教科書は安い傾向があります。 新しいプログラミング言語を学ぶときはいつでも、ドキュメントを参照している時間の75%であり、StackOverflowのような人気のある開発者のWebサイトで質問をするのに多くの時間が費やされています。 プログラミングは、新しい技術的な言語を学び、それを素晴らしいものを作成する方法として使用することをいとわない人なら誰でも利用できます。

プログラミングの幅広いスペクトル

Colorlibは、プログラミングにとっても見知らぬ人ではありません。 私たちのテーマは、PHP、CSS、およびJavaScriptを使用して「コーディング」されています。 アクティブなWeb開発は、私たちが作業する領域と呼ばれるものであり、ほとんどがフロントエンドです。 Webには、モバイルアプリケーションやデスクトップコンピュータソフトウェアなど、プログラミングを使用して優れたものを作成できる領域がたくさんあります。 各プログラミング言語には独自の機能があり、ブラウザ専用のものもあれば、サーバー専用のものもあります。 NASAが作るロケット、宇宙に行くロケット? それらは、プログラミングと、プログラミングがエンジニアリングやテクノロジーとどのように相互作用するかによってのみ可能になります。 それは魅力的です。

私たちは2021年に住んでいますが、初心者に最適なプログラミング言語については、非常に多くの議題、規定、および一般的な意見があります。 数百の言語のうち、フロントエンドとバックエンドの両方の開発に一貫して使用できる言語はほんの一握りです。 そして、この投稿の主なアイデアは、現代の企業や新興企業からの需要が高いプログラミング言語と、学習に利用できる無料のリソースに関する迅速な学習曲線を提供する言語について話すことです。 以下の結果は、多くの開発者調査での徹底的な調査と、開発者がお気に入りの言語を共有して作業する開発者の質問によって可能になりました。 コーダーになるのに遅すぎることはありません。 それらの需要は供給よりもはるかに高く、今後何年もその状態が続くでしょう。

ここにそれ以上の期限がないので、何年にもわたって関連するであろう今日学ぶのに最適なプログラミング言語があります。

JavaScript

JavaScript

JavaScriptは、Web上のどこにでもあります。 V8 JavaScriptエンジンは、特にGoogleChromeのWebブラウザーの未来を形作るのに役立ちました。 JavaScriptはフロントエンド開発で使用され、デスクトップ、モバイル、およびソフトウェアアプリケーションを単純なページ間操作から構築します。 jQueryのようなインタラクティブなWebスクリプト言語はJSの直接のブランチであり、言語を移動するときにそれらについて個別に説明します。 JavaScriptの長所は、開発者がJavaScriptを使用してWeb用に開発する際のエクスペリエンスを調整するのに役立ったWebフレームワークです。 Meteor、Angular、およびReactは、堅実なパフォーマンスとセキュリティのベンチマークを備えたエンタープライズレベルのアプリを構築するために使用される一般的なフレームワークです。

また、JSから直接成長したNode.jsも忘れてはなりません。これは、現在、地球上で最も利用されている非同期言語です。 そして、学習曲線はどうですか? JSの学習パスの数は爆発的に増加しています。 遅くとも10年前には、教科書から学ぶのに何ヶ月も費やす必要があったでしょう。 現在、これらの学習方法は、インタラクティブで動的なチュートリアル、書籍、ゲーミフィケーションされた学習プラットフォームに置き換えられています。 今日のウェブを作成するのに役立った魅力的な言語。 フロントエンド開発者は非常に高い需要があるため、経験豊富なJS開発者は、今日の主要なスタートアップのいずれかで働いている場合、最高$100,000の初任給を期待できます。 スタートアップを構築してブートストラップすることも可能です。

JavaScriptリソース:

学習を開始

SQLサーバー

SQLサーバー

Webを使用する人は誰でも、Webページをそのように表示することについてさまざまなレベルの理解を持っています。 たとえば、現在読んでいるテキストには、いつでも再アクセスできるように「ストレージ」が必要です。 この場合、そのストレージをMySQLサーバーと呼びます。 非常に珍しいことですが、MongoDBなどの外部データベースを使用するようにカスタマイズされていない限り、すべてのWordPressブログで使用される一般的なデータベースタイプ。

次に、世界の他のWebサイトとデータベースの種類について考えてみましょう。 GoogleとNetflixについて考えてみてください。 視聴したい検索結果と映画はすべてデータベースに保存されるため、ユーザーが新しいリクエストを行うたびに、サーバーはデータベースクエリを実行してそれを実行できます。 当然のことながら、SQL言語はバックエンド開発が複雑であるため非常に人気があり、経験豊富なSQL開発者は200,000ドルの範囲の給与を簡単に稼ぐことができます。 データベースクエリをつなぎ合わせる以外に、パフォーマンスを失わないようにクエリをキャッシュ、最適化、および配信する方法を学ぶ必要があります。これは、SQL開発者がカバーする方法を学ぶ必要があるもう1つの領域です。

学習を開始

Java

Java

Javaは、ユーザーとアプリケーション間の相互作用を形作った先駆的なプログラミング言語の1つと見なすことができます。 何十億ものデバイス、ブラウザ、スマートフォン、自動車デバイスなどで使用されています。また、Webにインタラクティブなエクスペリエンスを提供するために最も一般的に使用されています。 たとえば、私たちがプレイまたは知っているWebブラウザゲームの大部分はJavaを使用して構築されており、特にFlashが大幅に減少しているためです。 Javaは、C ++の習得が非常に困難だったため、C++のブランチとして誕生しました。 Javaを使用すると、構文の問題を最小限に抑えることができます。 また、オブジェクト指向であるため、信頼性と堅牢性が向上します。

さらに、Javaは、最も安全なプログラミング言語、特にフォレーション開発であるという実績があります。 脆弱なアプリケーションを車に搭載したくないでしょう。 そこでJavaが登場し、仕事をこなします。 また、独立したプログラミング言語であり、起動しようとするすべてのオペレーティングシステムで動作します。 Java開発者は高水準の給与を享受でき、通常はかなり早く採用されます。

Javaリソース:

学習を開始

PHP

PHP

もう1つの高度に進化したWeb言語はPHPです。 現在表示しているページは、プレーンPHPを使用して実行および配信されています。このブログプラットフォームの言語言語は、安全性が低く、信頼性が低く、パフォーマンスベンチマークが遅いと見なされることが多く、PHPの使用レベルに近づくことができるプログラミング言語は多くありません。そして、これから何十年も続くでしょう。 従来のPHP開発者は依然としてうまく機能しているため、経験豊富なPHP開発者が既存のスキルセットを放棄して新しいものを開発する必要がある理由はありません。 開発者がPHPisoを大いに嫌う理由について、簡単なGoogleクエリを実行すると、セキュリティ上の懸念が主要な問題として浮上します。 ただし、安全なPHPアプリケーションとソフトウェアを簡単に構築できるため、特定の開発者がコードに対して無能であることも示しています。

Facebookは、バックエンドインフラストラクチャにまだ多くのPHPコードを使用しています。 いくつかの脆弱性が報告されることはめったにありませんが、それらはビジネス自体のコアバリューにとって重要ではありません。 PHPコードは、ASPなどの対応するコードよりもはるかに高速になる傾向があります。 PHPは無料のプラットフォームでもあり、PHPを使用して構築されたソフトウェアの大部分も同様です。 有名なSQLサーバーをサポートし、開発者がPHP学習プロセスを進めるときに両方を学習するのに役立ちます。 PHP開発者/フリーランサーは、通常、高可用性を実現します。 いくつかの新しい言語やフレームワークについても同じことが言えませんでした。 そうそう、PHPはLaravelフレームワークの開発に使用される言語でもあります。 Laravelは芸術作品であり、一人の人間によってこれまでに構築された中で最も多様なフレームワークの1つとして、プログラミングの歴史書に必ず登場します。

PHPリソース:

学習を開始

Python

Python

Pythonは、最も英語のプログラミング言語と見なされてきました。 Python構文は、書面での従来の英語に非常に似ているため、ユーザーは、関数、式、および一般的なプログラミング構文の概念を学ぶだけで、自分で何を構築できるかを理解できます。

Pythonは、データ操作、機械学習、データサイエンス、Webスクレイピング、および一般的なスクレイピングのニーズを含むプロジェクトで人気があります。 Pythonの使用を開始するには、メインのPythonライブラリをコンピューターにインストールするのと同じくらい簡単です。これには、ダウンロード速度が必要な時間だけかかります。 その後すぐに、ターミナルを起動してPython関連のコマンドの入力を開始できます。 ターミナルから直接エラーレポートを追跡することもできるので、毎回ブラウザを開くなどの操作を行う必要はありません。 スクリプト言語として、Pythonは効率的です。 そしてPythonの学習はとても簡単です!

このトピックについて作成されたリソースがありますが、GitHubなどのWebサイトにアクセスして、最も人気のあるオープンソースプロジェクトのPythonソースコードを読んで、プラットフォームを使用して複雑なプログラムを作成する方法を自分の目で確認することもできます。 。 経験豊富な開発者の場合、給与はすぐに$100,000以上に上昇する可能性があります。 GoogleやDropboxのような企業がPythonを使用してコア製品を開発するのには十分な理由があります。 DropboxデスクトップスイートはPythonのみを使用して作成されており、Pythonコードのマルチプラットフォームサポートの機能を紹介しています。 GoogleはPythonを非常に取り入れているため、Google Developer Networkで一連のPythonチュートリアルを大量に(そして確かに高価に)作成しています。 さらに、Pythonは私たちが日常的に使用している多くの最新アプリをサポートしていることがわかります。

Pythonリソース:

学習を開始

Node.js

NodeJS

Node.jsは、ChromeのV8JavaScriptエンジンに基づくJavaScriptランタイムです。 イベント駆動型のノンブロッキングI/Oモデルを使用しているため、軽量で効率的です。 Node.jsのパッケージエコシステムであるnpmは、世界最大のオープンソースライブラリシステムです。 Node.jsプロジェクトを開始することは、レゴのピースで遊ぶようなものです。 床のすべての部品が互いに切り離されています。 しかし、創造性を刺激し始めると、どんな規模でも、好きなものを作ることができます。 これは主に、Node Package Managerが何千ものライブラリを提供しており、開発者がそれらを利用してプラグインし、Webおよびモバイルデバイス用のアプリケーションを迅速に作成できるためです。

最新のビジネスWebサイトを作成するには、すべてを最初から作成するのではなく、アイデアをサポートするライブラリを選択する必要があります。 そして、それがプラットフォームの美しさです。 数行のコードで本物の何かを作成できますが、そのプロジェクトの外観と機能に対する完全な権限を維持できます。 また、Node.jsはJavaScriptに基づいているため、Nodeコードを作成すると、JavaScriptのスキルをさらに発揮する機会が得られます。

さらに、Node.jsイベントループは、このフレームワークをリアルタイムの状況で非常に高速にし、非ブロッキングの観点から非同期I/O操作を実行します。 Node.jsはエンタープライズレベルのプロジェクトにも簡単に拡張でき、新しいNode.jsのタレントを獲得することはそれほど難しくないと報告されています。通常、各プロジェクトが提供するクリエイティブフローのために、同じタレントがしばらくの間固執したいと考えています。 。 PayPalなどの支払いプラットフォームがNode.jsをコア構造に統合するのはなぜですか? それは高速で安全であり、同時に非常に信頼できるからです。

Node.jsリソース:

学習を開始

AngularJS

AngularJS

Angularは、他のJavaScriptフレームワーク、特にjQueryと比較されることがよくあります。 しかし、Webのフレームワークおよび個別のプログラミング言語として、Angularには、Web開発で従来から知られているものから際立ったモデルがあります。 AngularがGoogleによって維持されているという事実は、次のWeb開発プロジェクトに適切なフレームワークを選択する際のもう1つの大きな要因です。

Angularは、わずか数行のコードで利用できるサーバーとの簡単な会話方法をサポートしています。 Angularの構文は、テンプレートシステムのようにも機能します。構文を学習すると、Moustacheのようなテンプレートエンジンから得られるものと同様に、包括的なテンプレートに似たアプリケーションをよりフレンドリーに作成できます。 Angularは、HTMLでビューを定義するのに役立ちます。 したがって、作成するコードは少なくなりますが、統合するモデルは多くなります。 Angular 2のリリースでも、フレームワークがReact.jsユーザーにどのように影響するかについての議論や議論が活発化していますが、この簡潔な議論で読むことができるように、両方を比較することは、パイナップルとスイカを比較するようなものです。

Angular.jsリソース:

学習を開始

C ++

C ++

C ++についてはあまり耳にしません。なぜなら、C ++は、コンピューターを通じて経験することの陰で主に機能する言語だからです。 たとえば、ゲーム開発では主にC++を使用します。 今日最も人気のあるフランチャイズを可能にするためには、正当な信用が必要です。 しかし、多くの場合、私たちはそれを調べない限り、この事実を認識しません。 習得が難しい言語と見なされているC++は、PHPなどの言語のバックエンドを強化し、最近では最新のWeb開発で使用されていることがわかります。 Pythonは構文が単純なため、高級言語と見なすことができます。 一方、C ++は低水準言語であり、非常に多くの構文オプションを提供するため、C++コードの記述の基本概念を理解するのに圧倒される可能性があります。

ただし、C ++は非常に機能的でスケーラブルであるため、最新のゲーム開発で多くの使用法が見られます。 これにより、エンジニアはC++が最も困難なパフォーマンス要求でも処理できるようになることを保証します。 そのため、ゲーム開発、ゲームエンジン開発、デスクトップアプリケーションとWebアプリの開発、およびモバイルアプリの開発でC++を使用できます。

書きにくいコードを補うのは、初期の頃からC++を使い続けてきたサポーターのコミュニティです。 C ++のような複雑な言語は、その背後に支援コミュニティがあれば、はるかに簡単に習得できます。 それがC++の特徴です。彼らが書いたコードを信じるコミュニティです。 あなたはいつもあなたが持っている難しい質問への答えを見つけることができます。 質問が難しいほど、回答という形でコミュニティの関与が高まります。 経験豊富なベテランエンジニアの給与は、50,000ドルから250,000ドルまでの範囲です。 プロジェクトはたくさんあるので、どちらにも取り組むプロジェクトの不足を心配する必要はありません。

C ++リソース:

学習を開始

ルビー

ルビー

人々が習得しやすいと宣伝しているのを目にするもう1つの言語はRubyです。 これは主にコード構文のおかげです。 RubyとRubyonRailsはほとんど同じものです。 Rubyは、好きな言語でコードを書くのにうんざりしていて、灰白質を刺激するために何か新しくてエキサイティングなものが必要な開発者にとって便利です。 それは素晴らしい選択です! また、複雑なWebサイトおよびアプリケーションアーキテクチャとも互換性があります。 Rubyのコミュニティには、仲間の学習者がさらに進歩するために何が必要かを理解し、役立つという確かな実績があります。

Rubyリソース:

学習を開始

HTML5

HTML5

HTMLは、フロントエンドWeb開発がどのように機能するか、およびフロントエンド開発手法を使用して何を構築できるかを学ぶことに強い関心を示した場合に学習し始めるスクリプト言語です。 HTML5は、HTMLマークアップ言語の最後の標準であり、Webを高速化するための機能の広範なライブラリ、パフォーマンスの強化、およびブラウザーでWebおよびモバイルアプリを構築するためのインタラクティブ機能を提供します。

私たちは常にHTML5とやり取りします。 これが、ネイティブのレスポンシブデザイン標準の由来です。 さらに、YouTubeのようなメディアWebサイトは、ビデオ再生のニーズにHTML5を使用しています。 それは一日中いつでもフラッシュに勝ちます。 HTML5の優れた機能リストは、実装プロセスが延長されていますが、まだすべての主要なWebブラウザーからのサポートを取得していません。 HTML5は紙と鉛筆の組み合わせのようなもので、ウェブサイト用に作成したいもののスケッチを作成するために両方を使用しますが、最適なデザイン効率のためにカスケードスタイルシートに頼る必要があります。

HTML5は、アクションと脇の要素を導入することにより、コンテンツを理解するのに役立ちました。 すべての貴重な要素を使用してWebサイトのレイアウトを構成し、ブラウザーまたはデバイスにそれらのレイアウトを簡単に解釈させることができます。 以前は、「div」タグを使用してデザインのレイアウトを整理するのが一般的でしたが、言語がそのようなお粗末な習慣から成長したためです。 「canvas」要素は、HTML5言語を解釈できる最新のブラウザが使用する何百万ものオンラインゲームを再利用するのに役立ちました。

HTML5リソース:

学習を開始

CSS3

CSS3

Webのガレージへようこそ—カスケードスタイルシート(CSS)は、リビジョン番号3で快適に使用できます。最新の標準はすべてのCSSユーザーが利用できます。 私たちが学んだように、HTML5はあなたが構築しているプロジェクトの基盤であり、CSS3はデザインを磨き、それらにもう少し生命を与えるのに役立つペイントとブラシになります。 Webの機能がこのように大幅に拡張されたことで、CSS3はCSSアニメーションと一般的なWebアニメーションで驚異的な成長を遂げました。

過去、そして現在でも、動的なアニメーション効果を実現するには、JavaScriptとjQueryをある程度使用する必要がありました。 しかし今日では、CSS3だけでこれらのタスクのいくつかを実行できます。 下記のCSS3ドキュメントから始めて、名前で自明である個々のCSS関数について学ぶことができますが、実際に習得するには集中的な練習が必要になります。

CSS3リソース:

学習を開始

さび

さび

Rustはマルチパラダイムプログラミング言語です。 命令型の手続き型、並行アクター、オブジェクト指向、純粋関数型のスタイルをサポートします。 また、静的スタイルと動的スタイルの両方で、ジェネリックプログラミングとメタプログラミングもサポートしています。 プログラミング言語は、コンピューターと対話できる何かについて話しているため、「一晩で成功」する効果を経験する傾向はありません。 したがって、開発者がそれにもっと興味を持つためには、存在する正当な理由が必要です。 Rustはこれらの「ルール」を超えており、将来から学び続けるプログラミング言語の提供に優れています。 Rustの超薄型で低レベルの構造を使用して、オペレーティングシステム、Webブラウザー、およびOSカーネルを構築することもできます。 多くの人がC++またはCだけが可能であると考えているもの。 しかし、さびは違います。 Rustはオープンソースであり、MozillaFoundationの人々がその保守に責任を負っています。 それだけでも、信頼性が大幅に向上します。

さびのリソース:

学習を開始

迅速

迅速

Swiftは、モバイル技術の巨人Appleが提供する新しいプログラミング言語です。 誰もがすでに恋に落ちていたObjective-C言語を置き換える大胆な動き。 しかし、過去2年間のレポートを分析すると、同じ愛情がSwiftユーザーのコミュニティ全体に広がっているようです。 そして本当に、Swiftは最も要求の厳しいアプリケーションタスクにも対応できます。

さらに、Swiftは実際にははるかに高水準の言語であり、単純さを優先したいと考えています。 これは、エントリーレベルのプログラマーが新しいアプリを作成することで迅速な結果を体験できるようにするためです。 また、オープンソースであり、開発者コミュニティから多くの尊敬を集めました。 このような動きは通常、Appleが自分たちのコードを信じており、そのスケーラビリティとセキュリティを維持するためにコミュニティを信頼しているという事実を暗示しています。 Swiftに恋をする理由はたくさんありますが、シンプルさと読みやすさは、誰もが話したり自慢したりするのを聞くことができる2つのお気に入りです。

Swiftリソース:

学習を開始

React

ReactJS

賢い人の言葉を覚えておいてください…インターフェースはそれがどのように機能するかであり、それがどのように見えるかではありません。 安っぽいユーザーインターフェースを持つということは、ユーザーがあなたの製品との安っぽい相互作用を経験することを意味します。 そして、スムーズなユーザーインターフェイスを構築することは冗談ではありません。 このようにして、Reactは開発者から多くの賞賛を集めることができます。 これは、パフォーマンスを損なうことなく、JavaScriptを使用して広範なユーザーインターフェイスを構築するための革新的な方法です。

さらに、Reactはフレームワークではありません。 人々はそれを他のフレームワークと比較しますが、実際にはReactはビューの部分でしか役に立ちません。 Reactは、アプリケーション内でビューをレンダリングするJSライブラリです。 ユーザーインターフェイス。 Reactはコンポーネント開発を支持します。これは、コンポーネントを整理できるため、Reactユーザー自身によって報告された素晴らしい生産性向上です。 現在、上位のフレームワークを見ると、多くのフレームワークが検索エンジンに対応しておらず、SEOの問題を解決できるサードパーティのライブラリの複雑な統合が必要ですが、Reactではそうではないことは明らかです。 React.jsは最初からSEOに対応しており、心配する必要はありません。 検索エンジンはあなたのコンテンツの迅速さとそれが美しくレンダリングされるという事実を楽しむでしょう。

React.jsリソース:

学習を開始

行け

ゴラン

Goは、Googleが積極的に開発しているプログラミング言語です。 それをシステムの言語、実際には主要な言語として解釈することができます。 コンピューターは物事の計算が上手になっていますが、言語は同じままです。 これにより、さまざまな状況でさまざまな言語をテストするときに、パフォーマンスベンチマークに大きなギャップが生じる可能性があります。 Goはそのような問題の多くを解決しようとします。 たとえば、C ++を使用したことがある人なら誰でも、その最も難しい障害の1つが遅いコンパイラとデバッガであることを知っています。 これにより、1つのプロジェクトに数え切れないほどの開発時間が追加されます。 そこでGoが輝いており、アプリケーションやプロジェクトのサイズに関係なく、同じように高速に動作する高速コンパイルエンジンを提供します。 Goは2009年にオープンソースプロジェクトとして立ち上げられました。それ以来、この言語は多くの並外れた偉業を成し遂げてきました。

リソースに移動:

Go言語は本当に何に適していますか?Goは申し分のない欠陥があります、これが私たちがそれを使用する理由です
例を見てください

学習を開始

jQuery

jQuery

jQueryのオープンソースコード、巨大なコミュニティサポートベース、および開発を加速するために選択できる数十万のライブラリが、jQueryを2000年代後半にフロントエンド開発者に起こった最高のものにした理由です。 jQueryは、HTMLとCSSを組み合わせて使用​​して、Webサイトに達成が難しい効果を作成する必要性を減らします。 jQueryはSEO要件に対応しており、コードベースは通常、パフォーマンスがかなり最適化されています。 これは、ページの読み込み時間が遅くなる必要がないことを意味します。 何よりも、jQueryは無料であり、そのすべてのリソースも無料です。 これは、クライアントに直接サービスを提供する軽量のライブラリであるため、Webページの応答時間は急速に短縮されます。

jQueryはクロスデバイスおよびブラウザー互換であるため、最新のスマートフォンでも機能します。 また、JavaScriptに基づいて構築されています。 したがって、既存のJS開発者は、急な学習曲線を回避し、代わりに構文の学習と実際の構築に集中できます。 jQueryはウェブ上のいたるところにあります。 アニメーション効果から、ポップアップや通知ボックスまで。 jQueryはさまざまなブラウザやデバイスで非常に機能するため、これらの効果を実現できます。 また、データベースを利用して自動クエリを実行できるオートコンプリートおよびオートサジェスト機能があるため、フォームを作成するためのプラットフォームとしてもよく使用されます。

さらに、eコマースサイトのナビゲーションメニューは、jQueryを使用して、顧客向けのよりパーソナライズされたナビゲーションエクスペリエンスの概要を示します。 ギャラリー、マップ、スライダーは、最も検索されているjQueryライブラリの一部であり、毎日何千ものヒットを獲得しています。 私たちはjQueryのコンテンツとライブラリを自分たちで共有することに恥ずかしがり屋ではありません。 チェックアウトしてください。

jQueryリソース:

学習を開始

今学ぶのに最適なプログラミング言語

上記のプログラミング言語とフレームワークは、現在、世界中のコーダーにとって最も需要の高い職業です。 テクノロジーの未来を形作る世界をリードする企業や企業は、これらの言語のほとんどを使用しています。 私たちは当初、言語自体についてのみ報告することを計画していました。 ただし、特定のプログラミング言語ごとにいくつかのリソースを含めるように拡張したことがわかります。 ドキュメントから学習を開始するために、各言語のメインページへの送信リンクもあります。