<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Technology - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Technology - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 08:27:54 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/tag/technology/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ サブネットマスク早見表: サブネットマスク 24、30、26、27、29、その他 IP アドレスと CIDR のネットワークリファレンス ]]>
                </title>
                <description>
                    <![CDATA[ 開発者、またはネットワークエンジニアなら、サブネットマスクの値を調べたりその意味を理解する必要があったりするでしょう。 その作業を楽にするために、freeCodeCamp コミュニティはこのシンプルなチートシートを作成しました。このまま読み進めるか、Ctrl/Cmd + F でお探しの値を見つけてください。 一覧表は下記の通りです。意味は後ほど説明します。 CIDRサブネットマスクワイルドカードマスクIP アドレスの数利用可能なIP アドレスの数/32255.255.255.2550.0.0.011/31 255.255.255.2540.0.0.122*/30255.255.255.2520.0.0.342/29255.255.255.2480.0.0.786 /28255.255.255.2400.0.0.151614/27255.255.255.2240.0.0.313230/26255.255.255.192 0.0.0.636462/25255.255.255.1280.0.0.127128126/24255.255.255.00.0.0.255256254/23 25 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/subnet-cheat-sheet-24-subnet-mask-30-26-27-29-and-other-ip-address-cidr-network-references/</link>
                <guid isPermaLink="false">623cd5e4fa0d9e053f44dd00</guid>
                
                    <category>
                        <![CDATA[ NETWORK ENGINEERING ]]>
                    </category>
                
                    <category>
                        <![CDATA[ NETWORK ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ COMPUTER NETWORKING ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Sun, 24 Apr 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/04/5f9c9647740569d1a4ca10a9.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/subnet-cheat-sheet-24-subnet-mask-30-26-27-29-and-other-ip-address-cidr-network-references/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Subnet Cheat Sheet – 24 Subnet Mask, 30, 26, 27, 29, and other IP Address CIDR Network References</a>
      </p><p>開発者、またはネットワークエンジニアなら、サブネットマスクの値を調べたりその意味を理解する必要があったりするでしょう。</p><p>その作業を楽にするために、freeCodeCamp コミュニティはこのシンプルなチートシートを作成しました。このまま読み進めるか、Ctrl/Cmd + F でお探しの値を見つけてください。</p><p>一覧表は下記の通りです。意味は後ほど説明します。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th>CIDR</th>
<th>サブネットマスク</th>
<th>ワイルドカードマスク</th>
<th>IP アドレスの数</th>
<th>利用可能なIP アドレスの数</th>
</tr>
</thead>
<tbody>
<tr>
<td>/32</td>
<td>255.255.255.255</td>
<td>0.0.0.0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>/31</td>
<td>255.255.255.254</td>
<td>0.0.0.1</td>
<td>2</td>
<td>2*</td>
</tr>
<tr>
<td>/30</td>
<td>255.255.255.252</td>
<td>0.0.0.3</td>
<td>4</td>
<td>2</td>
</tr>
<tr>
<td>/29</td>
<td>255.255.255.248</td>
<td>0.0.0.7</td>
<td>8</td>
<td>6</td>
</tr>
<tr>
<td>/28</td>
<td>255.255.255.240</td>
<td>0.0.0.15</td>
<td>16</td>
<td>14</td>
</tr>
<tr>
<td>/27</td>
<td>255.255.255.224</td>
<td>0.0.0.31</td>
<td>32</td>
<td>30</td>
</tr>
<tr>
<td>/26</td>
<td>255.255.255.192</td>
<td>0.0.0.63</td>
<td>64</td>
<td>62</td>
</tr>
<tr>
<td>/25</td>
<td>255.255.255.128</td>
<td>0.0.0.127</td>
<td>128</td>
<td>126</td>
</tr>
<tr>
<td>/24</td>
<td>255.255.255.0</td>
<td>0.0.0.255</td>
<td>256</td>
<td>254</td>
</tr>
<tr>
<td>/23</td>
<td>255.255.254.0</td>
<td>0.0.1.255</td>
<td>512</td>
<td>510</td>
</tr>
<tr>
<td>/22</td>
<td>255.255.252.0</td>
<td>0.0.3.255</td>
<td>1,024</td>
<td>1,022</td>
</tr>
<tr>
<td>/21</td>
<td>255.255.248.0</td>
<td>0.0.7.255</td>
<td>2,048</td>
<td>2,046</td>
</tr>
<tr>
<td>/20</td>
<td>255.255.240.0</td>
<td>0.0.15.255</td>
<td>4,096</td>
<td>4,094</td>
</tr>
<tr>
<td>/19</td>
<td>255.255.224.0</td>
<td>0.0.31.255</td>
<td>8,192</td>
<td>8,190</td>
</tr>
<tr>
<td>/18</td>
<td>255.255.192.0</td>
<td>0.0.63.255</td>
<td>16,384</td>
<td>16,382</td>
</tr>
<tr>
<td>/17</td>
<td>255.255.128.0</td>
<td>0.0.127.255</td>
<td>32,768</td>
<td>32,766</td>
</tr>
<tr>
<td>/16</td>
<td>255.255.0.0</td>
<td>0.0.255.255</td>
<td>65,536</td>
<td>65,534</td>
</tr>
<tr>
<td>/15</td>
<td>255.254.0.0</td>
<td>0.1.255.255</td>
<td>131,072</td>
<td>131,070</td>
</tr>
<tr>
<td>/14</td>
<td>255.252.0.0</td>
<td>0.3.255.255</td>
<td>262,144</td>
<td>262,142</td>
</tr>
<tr>
<td>/13</td>
<td>255.248.0.0</td>
<td>0.7.255.255</td>
<td>524,288</td>
<td>524,286</td>
</tr>
<tr>
<td>/12</td>
<td>255.240.0.0</td>
<td>0.15.255.255</td>
<td>1,048,576</td>
<td>1,048,574</td>
</tr>
<tr>
<td>/11</td>
<td>255.224.0.0</td>
<td>0.31.255.255</td>
<td>2,097,152</td>
<td>2,097,150</td>
</tr>
<tr>
<td>/10</td>
<td>255.192.0.0</td>
<td>0.63.255.255</td>
<td>4,194,304</td>
<td>4,194,302</td>
</tr>
<tr>
<td>/9</td>
<td>255.128.0.0</td>
<td>0.127.255.255</td>
<td>8,388,608</td>
<td>8,388,606</td>
</tr>
<tr>
<td>/8</td>
<td>255.0.0.0</td>
<td>0.255.255.255</td>
<td>16,777,216</td>
<td>16,777,214</td>
</tr>
<tr>
<td>/7</td>
<td>254.0.0.0</td>
<td>1.255.255.255</td>
<td>33,554,432</td>
<td>33,554,430</td>
</tr>
<tr>
<td>/6</td>
<td>252.0.0.0</td>
<td>3.255.255.255</td>
<td>67,108,864</td>
<td>67,108,862</td>
</tr>
<tr>
<td>/5</td>
<td>248.0.0.0</td>
<td>7.255.255.255</td>
<td>134,217,728</td>
<td>134,217,726</td>
</tr>
<tr>
<td>/4</td>
<td>240.0.0.0</td>
<td>15.255.255.255</td>
<td>268,435,456</td>
<td>268,435,454</td>
</tr>
<tr>
<td>/3</td>
<td>224.0.0.0</td>
<td>31.255.255.255</td>
<td>536,870,912</td>
<td>536,870,910</td>
</tr>
<tr>
<td>/2</td>
<td>192.0.0.0</td>
<td>63.255.255.255</td>
<td>1,073,741,824</td>
<td>1,073,741,822</td>
</tr>
<tr>
<td>/1</td>
<td>128.0.0.0</td>
<td>127.255.255.255</td>
<td>2,147,483,648</td>
<td>2,147,483,646</td>
</tr>
<tr>
<td>/0</td>
<td>0.0.0.0</td>
<td>255.255.255.255</td>
<td>4,294,967,296</td>
<td>4,294,967,294</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><ul><li>/31 は、<a href="https://tools.ietf.org/html/rfc3021">RFC 3021</a> で定められている特殊なケースです。このタイプのサブネットマスクを使用するネットワークは、2 つの IP アドレスをポイント・ツー・ポイントリンクとして割り当てることができます。</li></ul><p>そしてこちらが、サブネットマスクとワイルドカードのオクテットの 10 進数から 2 進数への変換表です。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th></th>
<th>サブネットマスク</th>
<th></th>
<th>ワイルドカード</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>00000000</td>
<td>255</td>
<td>11111111</td>
</tr>
<tr>
<td>128</td>
<td>10000000</td>
<td>127</td>
<td>01111111</td>
</tr>
<tr>
<td>192</td>
<td>11000000</td>
<td>63</td>
<td>00111111</td>
</tr>
<tr>
<td>224</td>
<td>11100000</td>
<td>31</td>
<td>00011111</td>
</tr>
<tr>
<td>240</td>
<td>11110000</td>
<td>15</td>
<td>00001111</td>
</tr>
<tr>
<td>248</td>
<td>11111000</td>
<td>7</td>
<td>00000111</td>
</tr>
<tr>
<td>252</td>
<td>11111100</td>
<td>3</td>
<td>00000011</td>
</tr>
<tr>
<td>254</td>
<td>11111110</td>
<td>1</td>
<td>00000001</td>
</tr>
<tr>
<td>255</td>
<td>11111111</td>
<td>0</td>
<td>00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>ワイルドカードはサブネットマスクを反転させたものとなっています。</p><p>ネットワークエンジニアリングの初心者であれば、<a href="https://www.freecodecamp.org/news/computer-networks-and-how-to-actually-understand-them-c1401908172d/">この記事で、コンピューターネットワークの仕組みについて理解を深めると良いでしょう。</a>(英語版)</p><p>最後に、このチートシートとこれ以降の説明は、より新しい IPv6 プロトコルではなく IPv4 アドレスにフォーカスしています。IPv6 について詳しく学びたい場合も、上記、コンピューターネットワークの仕組みについての記事を参考にしてください。</p><h2 id="ip-">IP アドレスブロックの仕組み</h2><p><code>192.168.0.1</code> のような IP アドレスは、2 進数のブロック 4 組を 10 進数で表したものです。</p><p>各ブロックは 8 ビットで、0～255 の数字を表現できます。ブロックは 8 ビットのかたまりなので、それぞれのブロックは <strong>オクテット</strong> と呼ばれます。そして、8 ビットのブロックが 4 組あるので、IPv4 アドレスはすべて 32 ビットです。</p><p>例えば IP アドレス <code>172.16.254.1</code> を 2 進数で表すと次のようになります。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/1125px-Ipv4_address.png" class="kg-image" alt="1125px-Ipv4_address" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/1125px-Ipv4_address.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/1125px-Ipv4_address.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/1125px-Ipv4_address.png 1125w" sizes="(min-width: 720px) 720px" width="1125" height="675" loading="lazy"><figcaption>引用元: <a href="https://en.wikipedia.org/wiki/IPv4">IPv4</a></figcaption></figure><p>IP アドレスの 10 進数と 2 進数の変換を行うには下記の表を利用できます。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">128</th>
<th style="text-align:center">64</th>
<th style="text-align:center">32</th>
<th style="text-align:center">16</th>
<th style="text-align:center">8</th>
<th style="text-align:center">4</th>
<th style="text-align:center">2</th>
<th style="text-align:center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>この表は 1 組、8 ビットのオクテットを表しています。</p><p>ではここで、IP アドレス <code>168.210.225.206</code> を変換したいとしましょう。そのためにはアドレスを 4 つのブロックに分け (<code>168</code>, <code>210</code>, <code>225</code>, <code>206</code>)、それぞれ上の表を使用して 2 進数に変換します。</p><p>2 進数では 1 が「オン」、0 が「オフ」を表すことを思い出してください。つまり、最初のブロック <code>168</code> を 2 進数に変換するには、表の左端からスタートして、合計が <code>168</code> となるように、それぞれのセルに 1 か 0 を入れていきます。</p><p>例:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">128</th>
<th style="text-align:center">64</th>
<th style="text-align:center">32</th>
<th style="text-align:center">16</th>
<th style="text-align:center">8</th>
<th style="text-align:center">4</th>
<th style="text-align:center">2</th>
<th style="text-align:center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>128 + 32 + 8 = 168 なので、変換後の 2 進数は <code>10101000</code> となります。</p><p>残りのブロックにも同じ手順を繰り返すと <code>10101000.11010010.11100001.11001110</code> という値が得られます。</p><h2 id="-">サブネットとは</h2><p>上の表を見ると IP アドレスの数は事実上無限のように思えます。結論から言うと、利用可能な IPv4 アドレスは約 42 億通りです。</p><p>しかし、インターネットがどれだけ拡大したか、現在どれだけのデバイスが接続されているかを考えてみれば、すでに <a href="https://whatismyipaddress.com/ipv4-shortage">IPv4 アドレスの枯渇</a>が発生していると聞いてもそう驚かないことでしょう。</p><p>IPv4 アドレスの枯渇は何年も前から懸念されていたので、IP アドレスを「サブネット」と呼ばれるさらに小さなネットワークに分割する方法が考案されました。</p><p>「サブネット化」と呼ばれるこの方法は、IP アドレスのホスト部を使用して、1 つの IP アドレスをより小さいネットワーク、サブネットに分割します。</p><p>通常、IP アドレスはネットワーク部とホスト部で構成されています。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/network-and-host-bits.png" class="kg-image" alt="network-and-host-bits" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/network-and-host-bits.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/network-and-host-bits.png 677w" width="677" height="224" loading="lazy"><figcaption>引用元: <a href="https://support.huawei.com/enterprise/en/doc/EDOC1100145159">What is IPv4</a></figcaption></figure><p>大まかに言うと、サブネット化の役割は 2 つあります。1 つはネットワークをサブネットに分割する方法を提供し、もう 1 つは、あるデバイスと他方のデバイス (IP アドレス) が同じローカルネットワーク内にあるかどうかを判別できるようにします。</p><p>サブネット化を理解する良い方法は、あなたの家の無線ネットワークを思い浮かべることです。</p><p>サブネット化がなければ、インターネットに接続されているすべてのデバイスにそれぞれ固有の IP アドレスが必要になります。</p><p>しかし、無線ルーターがあるおかげでルーター用に 1 つの IP アドレスがあるだけで済みます。このパブリック (外部) IP アドレスは通常、ISP (インターネットサービスプロバイダー) によって自動で割り当てられます。</p><p>そして、そのルーターに接続されているすべてのデバイスが、それぞれ固有のプライベート (内部) IP アドレスを持ちます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/home-network-diagram.png" class="kg-image" alt="home-network-diagram" srcset="https://www.freecodecamp.org/japanese/news/content/images/2022/04/home-network-diagram.png 600w" width="600" height="351" loading="lazy"><figcaption>引用元: <a href="https://www.popularmechanics.com/technology/a32729384/how-to-find-ip-address/">What Is My IP Address?</a></figcaption></figure><p>ここで、内部 IP アドレス <code>192.168.1.101</code> を持つデバイスが他のデバイスと通信しようとする場合、他方のデバイスの IP アドレスとサブネットマスクが必要になります。</p><p>IP アドレスとサブネットマスクの組み合わせにより、<code>192.168.1.101</code> のデバイスは、他方のデバイスが同じネットワーク内のデバイス (例えば <code>192.168.1.103</code> のデバイス) か、あるいはインターネットのどこかにある全く別のネットワークのデバイスかを判断できます。</p><p>面白いことに、ISP によってあなたのルーターに割り当てられた外部 IP アドレスも、おそらくは近隣の家庭や職場の IP アドレスを含むサブネットの一部です。そして内部 IP アドレスと同じようにサブネットマスクを利用して動作しています。</p><h3 id="--1">サブネットマスクの仕組み</h3><p>サブネットマスクは IP アドレスのフィルターのような役割を果たします。サブネットマスクを使うことで、デバイスは IP アドレスのネットワーク部とホスト部を判断できます。</p><p>そしてその情報を利用してデバイス同士が通信するベストな方法を判断します。</p><p>あなたのルーターやコンピューターのネットワーク設定を調べたことがあれば、<code>255.255.255.0</code> という数字に見覚えがあるかもしれません。</p><p>これはシンプルなホームネットワークによく使われるサブネットマスクです。</p><p>IPv4 アドレスと同様に、サブネットマスクも 32 ビットです。そして IP アドレスを 2 進数に変換したのと同じように、サブネットマスクでも同じことができます。</p><p>例を見てみましょう。先ほどの表をもう一度使います。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align: center">128</th>
<th style="text-align: center">64</th>
<th style="text-align: center">32</th>
<th style="text-align: center">16</th>
<th style="text-align: center">8</th>
<th style="text-align: center">4</th>
<th style="text-align: center">2</th>
<th style="text-align: center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>では、最初のオクテット 255 を変換してみましょう。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">128</th>
<th style="text-align:center">64</th>
<th style="text-align:center">32</th>
<th style="text-align:center">16</th>
<th style="text-align:center">8</th>
<th style="text-align:center">4</th>
<th style="text-align:center">2</th>
<th style="text-align:center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>とてもシンプルですね。<code>255</code> というオクテットは、2 進数では <code>11111111</code> です。つまり <code>255.255.255.0</code> は、2 進数では <code>11111111.11111111.11111111.00000000</code> となります。</p><p>では次に、サブネットマスクと IP アドレスを組み合わせて IP アドレスのどの部分がネットワーク部か、ホスト部かを計算してみます。</p><p>サブネットマスクと IP アドレスをそれぞれ 10 進数と 2 進数で表記したものがこちらです。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">IP アドレス</td>
<td style="text-align:center">192.168.0.101</td>
<td style="text-align:center">11000000.10101000.00000000.01100101</td>
</tr>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">255.255.255.0</td>
<td style="text-align:center">11111111.11111111.11111111.00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>2 つの値をこのように並べれば <code>192.168.0.101</code> をネットワーク部とホスト部に分けるのは簡単です。</p><p>2 進数表記のサブネットマスクのとあるビットが 1 の時、2 進数表記の IP アドレスの同じビットはネットワーク部のビットです。</p><p><code>255</code> というオクテットは 2 進数では <code>11111111</code> なので、そのオクテットは全体がネットワーク部です。したがって、最初の 3 つのオクテット <code>192.168.0</code> は IP アドレスのネットワーク部にあたり、<code>101</code> がホスト部にあたります。</p><p>言い換えると、<code>192.168.0.101</code> のデバイスが他のデバイスと通信しようとする場合、サブネットマスクを見ると、IP アドレスが <code>192.168.0.xxx</code> のデバイスならばどれも同じローカルネットワークにあると分かります。</p><p>この情報を表現するもう一つの方法は、ネットワーク ID を使う方法です。ネットワーク ID とは、IP アドレスのネットワーク部にあたる部分です。つまり、サブネットマスクが <code>255.255.255.0</code> の場合、IP アドレス <code>192.168.0.101</code> のネットワーク ID は <code>192.168.0.0</code> です。</p><p>同じローカルネットワーク内の他のデバイス (<code>192.168.0.102</code>, <code>192.168.0.103</code> など) についても同様です。</p><h3 id="cidr-cidr-">CIDR、CIDR 表記とは？</h3><p><strong>CIDR</strong> とは「Classless Inter-Domain Routing」の略です。IPv4 で使われていましたが、最近では IPv6 ルーティングでも使われています。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/1920px-IP_Address_Match.svg.png" class="kg-image" alt="1920px-IP_Address_Match.svg" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/1920px-IP_Address_Match.svg.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/1920px-IP_Address_Match.svg.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2022/04/1920px-IP_Address_Match.svg.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/1920px-IP_Address_Match.svg.png 1920w" sizes="(min-width: 720px) 720px" width="1920" height="1892" loading="lazy"><figcaption>引用元: <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a></figcaption></figure><p>インターネットが構築された当初のクラスフル IP アドレッシングシステムの下では、IPv4 アドレスが急速に使い果たされようとしていました。そこで、IPv4 アドレスの消費を減速させる方法として、1993 年に CIDR が発表されました。</p><p>CIDR には主要な概念がいくつか含まれます。</p><p>一つ目は可変長サブネットマスク (Variable Length Submasking, VLSM) です。これによりサブネット内にさらにサブネットを作成できるようになりました。そしてサブネットごとにサイズを変えることもできるため、使用されない IP アドレスを減らすことができます。</p><p>二つ目の主要な概念は CIDR 表記です。</p><p>CIDR 表記とはサブネットマスクの簡略表記で、IP アドレスに使用可能なビット数を表します。例えば <code>192.168.0.101/24</code> の <code>/24</code> は、IP アドレス <code>192.168.0.101</code> とサブネットマスク <code>255.255.255.0</code> に相当します。</p><h3 id="cidr-">CIDR 表記の計算方法</h3><p>あるサブネットマスクを CIDR 表記にするには、サブネットマスクを 2 進数に変換し、「1」、つまり「オン」の桁数を数えます。例えば下記の場合:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">255.255.255.0</td>
<td style="text-align:center">11111111.11111111.11111111.00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>最初の 3 つのオクテットがすべて 1 なので、24 個の「オン」のビットがあります。したがって CIDR 表記は <code>/24</code> となります。</p><p>どちらの表記で書いても構いませんが、<code>255.255.255.0</code> よりも <code>/24</code> の方が書きやすいですよね。</p><p>この表記は通常、IP アドレスと一緒に表記されます。同じサブネットマスクを IP アドレスと組み合わせた場合を見てみましょう。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">IP アドレス</td>
<td style="text-align:center">192.168.0.101</td>
<td style="text-align:center">11000000.10101000.00000000.01100101</td>
</tr>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">255.255.255.0</td>
<td style="text-align:center">11111111.11111111.11111111.00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>サブネットマスクの最初の 3 つのオクテットがすべて「オン」なので、IPアドレスの、対応する 3 つのオクテットがネットワーク部であることを意味しています。</p><p>最後の 4 つ目のオクテットを詳しく見てみましょう。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">IP アドレス</td>
<td style="text-align:center">101</td>
<td style="text-align:center">01100101</td>
</tr>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">0</td>
<td style="text-align:center">00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>サブネットマスクを見ると、このオクテットのすべてのビットが「オフ」になっているので、IP アドレスの対応するビットはホスト部であると分かります。</p><p>CIDR 表記を記述する際、通常はネットワーク ID を使用して記述します。したがって、IP アドレス <code>192.168.0.101</code> とサブネットマスク <code>255.255.255.0</code> の CIDR 表記は <code>192.168.0.0/24</code> となります。</p><p>ある IP アドレスとサブネットマスクの CIDR 表記とネットワーク ID を計算する方法の例をもっと見るにはこちらの動画をどうぞ。</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/XQ3T14SIlV4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h2 id="-ip-">クラスフル IP アドレッシング</h2><p>サブネット化と CIDR の基本的な例をいくつか見てきたので、少し範囲を広げて、今度はクラスフル IP アドレッシングと呼ばれる方式を見ていきましょう。</p><p>サブネット化が開発される以前は、すべての IP アドレスは決まったクラスに分けられていました。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/subnetting.png" class="kg-image" alt="subnetting" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/subnetting.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/subnetting.png 975w" sizes="(min-width: 720px) 720px" width="975" height="453" loading="lazy"><figcaption>引用元: <a href="https://community.spiceworks.com/networking/articles/2489-subnetting-for-dummies">Subnetting for dummies</a></figcaption></figure><p>クラス D や E もありますが、これについては後ほど詳しく説明します。</p><p>クラスフル IP アドレスにより、ネットワークエンジニアはさまざまな組織に合わせて有効な IP アドレスの範囲を提供することができるようになりました。</p><p>ただこのアプローチには多くの問題があり、結果としてサブネット化へとつながりました。しかしその前に、それぞれのクラスを詳しく見てみましょう。</p><h3 id="-a-ip-">クラス A IP アドレス</h3><p>クラス A IP アドレスでは、最初のオクテット (8 ビット / 1 バイト) がネットワーク ID、残りの 3 つのオクテット (24 ビット / 3 バイト) がホスト ID を表します。</p><p>クラス A IP アドレスの範囲は <code>1.0.0.0</code> から <code>127.255.255.255</code> です。デフォルトマスクは <code>255.0.0.0</code> (CIDR 表記では <code>/8</code>) です。</p><p>つまり、クラス A のアドレスは合計 128 個 (2<sup>7</sup>) のネットワークと、各ネットワークに 16,777,214 個 (2<sup>24</sup>-2) の利用可能なアドレスを持つことができます。</p><p>また、クラス A の範囲内のうち <code>127.0.0.0</code> から <code>127.255.255.255</code> はホストループバックアドレス用に予約されていることに注意してください。(<a href="https://tools.ietf.org/html/rfc5735">RFC5735</a> を参照)</p><h3 id="-b-ip-">クラス B IP アドレス</h3><p>クラス B IP アドレスでは、最初の 2 つのオクテット (16 ビット / 2 バイト) がネットワーク ID、残りの 2 つのオクテット (16 ビット / 2 バイト) がホスト ID を表します。</p><p>クラス B IP アドレスの範囲は <code>128.0.0.0</code> から <code>191.255.255.255</code> です。デフォルトマスクは <code>255.255.0.0</code> (CIDR 表記では <code>/16</code>) です。</p><p>クラス B のアドレスは 16,384 個 (2<sup>14</sup>) のネットワークと、各ネットワークに 65,534 個 (2<sup>16</sup>-2) の利用可能なアドレスを持つことができます。</p><h3 id="-c-ip-">クラス C IP アドレス</h3><p>クラス C IP アドレスでは、最初の 3 つのオクテット (24 ビット / 3 バイト) がネットワーク ID、最後のオクテット (8 ビット / 1 バイト) がホスト ID を表します。</p><p>クラス C IP アドレスの範囲は <code>192.0.0.0</code> から <code>223.255.255.255</code> です。デフォルトマスクは <code>255.255.255.0</code> (CIDR 表記では <code>/24</code>) です。</p><p>クラス C のアドレスは 2,097,152 個 (2<sup>21</sup>) のネットワークと、各ネットワークに 254 個 (2<sup>8</sup>-2) の利用可能なアドレスを持つことができます。</p><h3 id="-d-e-ip-">クラス D、クラス E IP アドレス</h3><p>最後の 2 つのクラスはクラス D とクラス E です。</p><p>クラス D IP アドレスはマルチキャスト用に予約されています。IP アドレスの範囲は <code>224.0.0.0</code> から <code>239.255.255.255</code> です。</p><p>クラス E IP アドレスは実験用とされており、<code>240.0.0.0</code> 以上のすべての範囲です。</p><h3 id="-ip--1">クラスフル IP アドレスの問題</h3><p>クラスフル IP アドレスの主な問題は、効率が悪く、多くの IP アドレスを無駄にする可能性があることです。</p><p>例えば、あなたが大きな組織の一員だと想像してみてください。あなたの会社には 1,000 人の従業員がいます。つまりクラス B に該当する規模です。</p><p>しかし上の説明を見てみると、クラス B のネットワークは最大 65,534 個のアドレスを利用できることが分かります。これはあなたの組織が必要とするであろう数よりずっと多いですね。もし各従業員が固有のアドレスを持つデバイスを複数持っていたとしても、この数に達する可能性は低そうです。</p><p>そして、代わりにクラス C を利用することもできません。利用可能な IP アドレスの数が足りないからです。</p><p>このように、IPv4 アドレスが普及する頃まではクラスフル IP アドレスが使われていましたが、じきに、利用可能な 42 億個のアドレスを使い果たさないためにはより良いシステムが必要であることが明らかになりました。</p><p>クラスフル IP アドレスは、1993 年に CIDR に置き換えられてからは使われなくなりました。現在これを学ぶ目的としては、初期のインターネットアーキテクチャについて学んだり、サブネット化が重要である理由を理解するためであることがほとんどです。</p><h2 id="--2">このチートシートがお役に立てば幸いです。</h2><p>この記事がお役に立ちましたら、もっと多くの人々が恩恵を受けられるように、ぜひ周りの友人にシェアしてください。</p><p>また、<a href="https://twitter.com/kriskoishigawa">Twitter</a> でお気軽に、筆者までご意見をお聞かせください。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ About Blank – about:blank とは？表示されないようにすべき？ ]]>
                </title>
                <description>
                    <![CDATA[ どこかのウェブページにアクセスしようとした時、アドレスバーに目的の URL ではなく "about:blank" と表示されてしまったことがありますか？ 心配ありません。これは時々起こることで、悪いものではありません。この記事では、以下の点を解説します。  * about:blank とはどういうものか  * なぜ表示されるのか  * どのような場面で使うか  * 表示されないようにすることはできるか  * 心配する必要があるものかどうか では始めましょう。 about:blank とは？ about:blank とは、ブラウザで表示できるものが他に何もなかったときに表示されるページです。これはインターネット上のページではなく、あなたのブラウザの内部にあるものです。 "about" の部分はブラウザの about URI (URL) scheme [https://en.wikipedia.org/wiki/About_URI_scheme#:~:text=about%20is%20an%20internal%20URI,registered%20scheme%2C%20an ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/about-blank-what-does-about-blank-mean-and-why-is-it-blocked-in-chrome-and-firefox/</link>
                <guid isPermaLink="false">6235d88efa0d9e053f44db78</guid>
                
                    <category>
                        <![CDATA[ BROWSERS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Sun, 10 Apr 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/03/5f9c9a01740569d1a4ca22f9.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/about-blank-what-does-about-blank-mean-and-why-is-it-blocked-in-chrome-and-firefox/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">About Blank – What Does about:blank Mean and Should You Get Rid of It?</a>
      </p><p>どこかのウェブページにアクセスしようとした時、アドレスバーに目的の URL ではなく "about:blank" と表示されてしまったことがありますか？</p><p>心配ありません。これは時々起こることで、悪いものではありません。この記事では、以下の点を解説します。</p><ul><li>about:blank とはどういうものか</li><li>なぜ表示されるのか</li><li>どのような場面で使うか</li><li>表示されないようにすることはできるか</li><li>心配する必要があるものかどうか</li></ul><p>では始めましょう。</p><h2 id="about-blank-">about:blank とは？</h2><p>about:blank とは、ブラウザで表示できるものが他に何もなかったときに表示されるページです。これはインターネット上のページではなく、あなたのブラウザの内部にあるものです。</p><p>"about" の部分はブラウザの <a href="https://en.wikipedia.org/wiki/About_URI_scheme#:~:text=about%20is%20an%20internal%20URI,registered%20scheme%2C%20and%20is%20standardized.&amp;text=An%20exception%20is%20about%3Ablank%20%2C%20which%20is%20not%20translated.">about URI (URL) scheme</a> に基づいています。アドレスバーに "about:[項目名]" と入力して、あなたのブラウザに関する詳細情報を表示できる機能です。</p><p>Chrome、Firefox、Safari、Edge、Chromium、Internet Explorer などの主要なブラウザであれば、この機能に対応しています。</p><p>例えば Chrome で "about:dino" と入力すると、Chrome が自動的に chrome://dino と変換し、あのいまいましい "No Internet" のメッセージと恐竜を表示します。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/03/about-dino.png" class="kg-image" alt="about-dino" srcset="https://www.freecodecamp.org/japanese/news/content/images/2022/03/about-dino.png 600w" width="600" height="293" loading="lazy"><figcaption>でもちょっと待って、なぜ？</figcaption></figure><p>Chrome の恐竜ゲームをプレイしたことがないなら、<a href="https://www.freecodecamp.org/news/how-to-play-the-no-internet-google-chrome-dinosaur-game-both-online-and-offline/">この記事が参考になるでしょう</a> (時間を無駄にする覚悟をしておいてください)。でも、このゲームは特に重要ではありません。</p><p>もっと便利な機能があります。例えば "about:about" と入力すると、Chrome URL の一覧を表示できます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/03/about-about-chrome.png" class="kg-image" alt="about-about-chrome" width="398" height="694" loading="lazy"><figcaption>たくさんの URL (このスクリーンショットに収まりきらないほどあります)</figcaption></figure><p>では about:blank の ":blank" の部分に戻りましょう。これは、他に表示するものがなければ空白のページを表示することをブラウザに指示します。</p><p>つまり、文字通り何もない真っ白なページを表示します。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/03/about-blank.png" class="kg-image" alt="about-blank" srcset="https://www.freecodecamp.org/japanese/news/content/images/2022/03/about-blank.png 600w" width="600" height="296" loading="lazy"><figcaption>分かりやすい良い名前ですね。</figcaption></figure><p>繰り返しになりますが、これはインターネット (ウェブ) 上の場所ではありません。上記のような目的のためにブラウザが持っている空白のページです。</p><h2 id="-about-blank-">なぜ about:blank が表示されるか</h2><p>ではなぜこの空白のページが表示されることがあるのでしょう？主な理由には以下のようなものがあります。</p><ul><li>無効なリンク・URL にアクセスした時</li><li>ブラウザにとって表示すべきページや実行すべき処理が不明な状態になった場合でも、<strong>何か</strong>をしなければならないので、結果として about:blank を表示する</li><li>ブラウザがマルウェアなどの危険を検出した場合、ブラウザによっては、危険なページに進む代わりに about:blank を表示するものがある</li></ul><p>ここまでで分かる通り、about:blank 自体は何も心配するようなものではありません。しかし、頻繁に表示される場合はあなたのコンピューターがマルウェアに感染していないかチェックすることをお勧めします。この点については後ほど詳しく説明します。</p><h2 id="about-blank--1">about:blank の用途</h2><p>どのような場面でこの空白のページを意図的に表示させたいのか、疑問に思っているかもしれません。役に立つことは特になさそうですよね。</p><p>でも考えてみてください。</p><p>インターネット接続の帯域が狭く、通信速度が遅い場合の対策として、ブラウザのホームページを about:blank に設定できます。これにより、ブラウザや新しいタブを開く度に通信量や時間を無駄にすることを避け、高速に表示できます。</p><h3 id="about-blank--2">about:blank をホームページに設定する方法</h3><p>Chrome の場合、メニュー (ブラウザ右上の縦に三つ並んだ点のアイコン) から設定を開き、「On startup (起動時)」のセクションを探します。(一番下にある可能性が高いです。)</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/03/make-about-blank-homepage-1.png" class="kg-image" alt="make-about-blank-homepage-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/03/make-about-blank-homepage-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/03/make-about-blank-homepage-1.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/03/make-about-blank-homepage-1.png 1076w" sizes="(min-width: 720px) 720px" width="1076" height="706" loading="lazy"></figure><p>次に三つめのオプション「Open a specific page or set of pages (特定のページまたはページセットを開く)」を選択し、表示される入力欄に "about:blank" と入力します。</p><p>これで、ブラウザや新しいタブを開いた際に空白のページが表示されるようになりました。</p><h3 id="about-blank--3">about:blank のその他の使用目的</h3><p>ブラウザを開いた時に、以前のブラウジングセッションで閲覧していたタブなどが表示されないようにしたいこともあるでしょう。</p><p>about:blank をホームページにすることはプライバシーの観点からも有益です。また、オフライン状態でもブラウジングセッションを開始でき、帯域幅を節約できます。</p><h2 id="about-blank--4">about:blank が表示されないようにできるか</h2><p>about:blank は取り除いたり回避しなければならないものではありません。しかし、ブラウザを開くたび毎回表示されるのであれば、起動時に about:blank を表示するように設定されている可能性があります。</p><p>これが希望する動作でない場合は、ホームページの設定をお好きなページに変更してください。(前述の手順を参考にしてください。)</p><h2 id="about-blank--5">about:blank はマルウェアやウイルス？</h2><p>この記事で説明した通り、about:blank 自体は悪意のあるものではありません。しかし、あなたのコンピューターがマルウェアをブロックしている兆候の可能性もあります。そのため関連がある場合もあります。</p><p>アンチウイルス、アンチマルウェアソフトウェアの中には、危険な URL やサイトを検出した場合に about:blank を使用するものがあります。つまり、悪意のあるサイトへ誘導せずに空白のページを表示することで、あなたを守っているのです。</p><p>また、マルウェアがシステムから削除された後に about:blank ページが表示されることもあります。もしマルウェア削除の過程で何かが破損した場合、ブラウザはあなたが実行しようとした操作を完了できなくなり、about:blank を表示することがあります。</p><p>結論として、about:blank をホームページに設定したい場合や、あなたのコンピューターがマルウェアやウイルスに感染した可能性の調査が必要と思われる場合を除き、about:blank について心配する必要はありません。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 人気のコーディングチャレンジウェブサイト 10 選 [2021年更新] ]]>
                </title>
                <description>
                    <![CDATA[ コードを学習する際にコーディングチャレンジを解くことは、スキルを向上させる重要な手段です。いろいろなタイプのチャレンジやパズルを解くことによって、課題をより良く解決できる人になったり、プログラミング言語の複雑さについて学習したり、新しいアルゴリズムを学習したり、仕事の面接に備えたりできます。 人気のあるコーディングチャレンジウェブサイトについて、それぞれが提供しているものを短く説明しながら、これからお伝えしていきます。 1. TopCoder [https://www.topcoder.com/challenges/?pageIndex=1] TopCoder は、オンライン競技プログラミングのための独自プラットフォームのひとつです。オンラインで直接、自分の力でコードエディタを用いて解くことができる、過去のアルゴリズムのチャレンジの一覧を TopCoder は提供しています。よく知られている Single Round Match は、毎月数回ほど特定の時期に開催されており、他の人といかに早くチャレンジを解いて最高のスコアを取得できるかを競い合います。 TopCoder のトップラ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/</link>
                <guid isPermaLink="false">61e153c6777cd904f8c6fedc</guid>
                
                    <category>
                        <![CDATA[ Technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manabu Matsumoto ]]>
                </dc:creator>
                <pubDate>Wed, 16 Feb 2022 23:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/01/1-vmGJG77e-nLnKlv-tUgf5w.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The 10 Most Popular Coding Challenge Websites</a>
      </p><p>コードを学習する際にコーディングチャレンジを解くことは、スキルを向上させる重要な手段です。いろいろなタイプのチャレンジやパズルを解くことによって、課題をより良く解決できる人になったり、プログラミング言語の複雑さについて学習したり、新しいアルゴリズムを学習したり、仕事の面接に備えたりできます。</p><p>人気のあるコーディングチャレンジウェブサイトについて、それぞれが提供しているものを短く説明しながら、これからお伝えしていきます。</p><h3 id="1-topcoder"><a href="https://www.topcoder.com/challenges/?pageIndex=1">1. TopCoder</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f.png" class="kg-image" alt="MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f.png 800w" sizes="(min-width: 720px) 720px" width="800" height="133" loading="lazy"></figure><p>TopCoder は、オンライン競技プログラミングのための独自プラットフォームのひとつです。オンラインで直接、自分の力でコードエディタを用いて解くことができる、過去のアルゴリズムのチャレンジの一覧を TopCoder は提供しています。よく知られている Single Round Match は、毎月数回ほど特定の時期に開催されており、他の人といかに早くチャレンジを解いて最高のスコアを取得できるかを競い合います。</p><p>TopCoder の<a href="https://www.topcoder.com/tc?module=AlgoRank">トップランクのユーザー</a>はとても優秀なプログラマーであり、プログラミングコンテストで定期的に競争しています。トップランクのユーザーである Petr Mitrichev 氏は、コーディング、コンテスト、アルゴリズム、数学などについて書かれている、<em>Algorithms weekly by Petr Mitrichev</em> というタイトルの、<a href="http://petr-mitrichev.blogspot.com/">自身のブログ</a>を管理しています。</p><h3 id="2-coderbyte"><a href="https://www.coderbyte.com/">2. Coderbyte</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig.png" class="kg-image" alt="sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig.png 800w" sizes="(min-width: 720px) 720px" width="800" height="288" loading="lazy"></figure><p>Coderbyte は、200 を上回るコーディングチャレンジを提供しており、オンラインで直接、10 個のプログラミング言語のひとつを用いてチャレンジを解くことができます (こちらの<a href="https://www.coderbyte.com/information/First%20Factorial">例題</a>をチェックしてください) 。チャレンジは、簡単なもの (文字列の中の、最も長い単語を見つける) から難しいもの (グラフの最大マッチングを出力する) にまで及びます。</p><p>また、Coderbyte は、<a href="https://www.coderbyte.com/algorithm/tree-traversal-algorithms">アルゴリズムのチュートリアル</a>集、入門ビデオ、<a href="https://www.coderbyte.com/course/google-interview-questions">面接準備コース</a>を提供しています。HackerRank やその他の同じようなウェブサイトとは違って、Coderbyte では提供される公式の解答とは別に、他のユーザーが提供する解答が見れます。</p><h3 id="3-project-euler-"><a href="https://projecteuler.net/">3. Project Euler (プロジェクト・オイラー)</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V.png" class="kg-image" alt="plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V.png 742w" sizes="(min-width: 720px) 720px" width="742" height="422" loading="lazy"></figure><p>Project Euler (プロジェクト・オイラー) は、コンピュータサイエンスと数学の分野における、多くのチャレンジ集を提供しています。通常、そのチャレンジを解くためには、<a href="https://projecteuler.net/problem=551">一連の各番号の直前にある番号の各桁の数字の合計を見つける</a>というような、巧みな数学の公式または方程式の解を、小さなプログラムを記述して考え出す必要があります。</p><p>このウェブサイト上では、エディタなどを用いて直接コードを記述することはできないので、ご自身のコンピュータで解答を記述し、その後解答をウェブサイト上で送信します。</p><h3 id="4-hackerrank"><a href="https://www.hackerrank.com/domains">4. HackerRank</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu.jpg" class="kg-image" alt="dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu.jpg 796w" sizes="(min-width: 720px) 720px" width="796" height="416" loading="lazy"></figure><p>HackerRank はアルゴリズム、数学、SQL、関数型プログラミング、AI (人工知能) などのような、さまざまな分野に向けたチャレンジを提供しています。すべてのチャレンジは、オンラインで直接解くことができます (こちらの<a href="https://www.hackerrank.com/challenges/simple-array-sum/problem">例題</a>をご覧ください) 。また、HackerRank はすべてのチャレンジへ、discussion と leaderboard を提供しています。ほとんどのチャレンジは、その詳細について説明し、解答を考え出すためのアプローチの方法について説明する editorial (解説)も備えています。ただし、その editorial は別として、HackerRank では他のユーザーの解答を見ることは今のところはできません。</p><p>HackerRankは、企業が主催するコーディングチャレンジを解き、申請書を提出して仕事に応募するユーザーに向けた機能も提供しています。</p><h3 id="5-codechef"><a href="https://www.codechef.com/">5. CodeChef</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa.png" class="kg-image" alt="81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa.png 800w" sizes="(min-width: 720px) 720px" width="800" height="354" loading="lazy"></figure><p>CodeChef は、何百ものチャレンジを提供する、インドで生まれた競技プログラミング<a href="https://en.wikipedia.org/wiki/CodeChef">ウェブサイト</a>です。そこでは、オンライン<a href="https://www.codechef.com/ide">エディター</a>でコードを記述することができ、スキルのレベルに応じてさまざまなカテゴリーに分けられた、チャレンジ集を見ることもできます (こちらの<a href="https://www.codechef.com/problems/TREEFUN">例題</a>をご覧ください) 。CodeChef には、フォーラムに貢献し、<a href="https://www.codechef.com/wiki/tutorial-paying">チュートリアル</a>を書き、コーディング<a href="https://www.codechef.com/contests/">コンテスト</a>に参加するコーダーの、大きなコミュニティがあります。</p><h3 id="6-exercism-io">6. <a href="https://exercism.io/">Exercism.io</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/Screen-Shot-2019-12-11-at-8.14.45-AM.png" class="kg-image" alt="Screen-Shot-2019-12-11-at-8.14.45-AM" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/Screen-Shot-2019-12-11-at-8.14.45-AM.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/01/Screen-Shot-2019-12-11-at-8.14.45-AM.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2022/01/Screen-Shot-2019-12-11-at-8.14.45-AM.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/Screen-Shot-2019-12-11-at-8.14.45-AM.png 2162w" sizes="(min-width: 720px) 720px" width="2162" height="1384" loading="lazy"></figure><p><a href="https://exercism.io/">Exercism</a> は、52 種類に及ぶプログラミング言語で、 3100 を上回るチャレンジを提供する、コーディングチャレンジウェブサイトです。マスターしたいと思う言語を選んでから、すぐに自分のコンピューターで、コーディングチャレンジに取り組めます。(Exercism は、GitHub からダウンロードできる、独自のコマンドラインインターフェースをもっています) 。</p><p>Exercism が他のチャレンジウェブサイトと少しだけ違うところは、各チャレンジを完了した後で指導者と協力する点です。指導者は、解答をオンラインでレビューし、必要に応じて改善するのを手伝います。回答が承認され提出されることで、さらなるチャレンジが明らかになります。</p><h3 id="7-codewars"><a href="https://www.codewars.com/">7. Codewars</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq.png" class="kg-image" alt="QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq.png 800w" sizes="(min-width: 720px) 720px" width="800" height="406" loading="lazy"></figure><p>Codewars は、独自のコミュニティーによって提出され編集された、多くのコーディングチャレンジ集を提供しています。いくつかの言語の中からひとつを選んで、<a href="https://www.codewars.com/kata/trailing-zeros-in-factorials-in-any-given-integer-base/train/javascript">オンライン</a>上のエディターで直接、チャレンジを解くことができます。ユーザーの解答だけでなく、各チャレンジに向けた議論も見ることができます。</p><h3 id="8-leetcode"><a href="https://leetcode.com/">8. LeetCode</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7.jpg" class="kg-image" alt="RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="363" loading="lazy"></figure><p>LeetCode は、ポピュラーな<a href="https://en.wikipedia.org/wiki/Online_judge">競技プログラミングサイト</a>であり、テクニカルな仕事の面接に備えるのに役立つ、190 を上回るチャレンジリストを提供しています。9 種類のプログラミング言語のひとつを選んで、<a href="https://leetcode.com/problems/merge-k-sorted-lists/">オンラインで直接</a>、チャレンジを解くことができます。他のユーザーの解答を見ることはできませんが、他のユーザーのコードと比較した場合に自分のコードはどのくらい処理が早いのかといった、独自の統計量が解答へ提供されます。</p><p>LeetCode は、特に面接に向けた準備のための<a href="https://leetcode.com/mockinterview/">模擬面接</a>セクションも用意していますし、コーディング<a href="https://leetcode.com/contest/">コンテスト</a>を主催したり、特定の問題をより理解するのに役立つ記事のセクションを用意しています。</p><h3 id="9-spoj"><a href="http://www.spoj.com/">9. SPOJ</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL.png" class="kg-image" alt="MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL.png 800w" sizes="(min-width: 720px) 720px" width="800" height="392" loading="lazy"></figure><p>Sphere Online Judge (SPOJ) は、20,000 を上回るコーディングチャレンジを提供している、競技プログラミングサイトです。SPOJ では、<a href="http://www.spoj.com/problems/TETRA/">オンラインエディター</a>を使用してコードを提出できます。また、SPOJ は独自の<a href="http://www.spoj.com/contests/">コンテスト</a>を主催していますし、コーディングチャレンジについて議論をする場をユーザーのために用意しています。とはいえ、SPOJ には現在、他のウェブサイトが提供しているような公式の解答または解説はありません。</p><h3 id="10-codingame"><a href="https://www.codingame.com/">10. CodinGame</a></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/01/6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU.png" class="kg-image" alt="6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/01/6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/01/6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU.png 800w" sizes="(min-width: 720px) 720px" width="800" height="460" loading="lazy"></figure><p>CodinGame では、他のウェブサイトとは少しだけ違って、単にエディターの中でコーディングチャレンジを解く代わりに、オンラインで直接プレーするゲームのためにコードを記述するということに、実際に参加します。現在、提示されたゲームの一覧を<a href="https://www.codingame.com/training">こちら</a>で見ることができ、その例のひとつが<a href="https://www.codingame.com/ide/puzzle/there-is-no-spoon-episode-1">こちら</a>です。ゲームは、問題の説明とテストケース、そして 20 種類を上回るプログラミング言語のひとつでコードを記述できるエディターを備えています。</p><p>上記の代表的な競技プログラミングウェブサイトとは異なりますが、CodinGame も、チャレンジを解いたりコンテストに参加することを楽しむプログラマーの間で<a href="https://techcrunch.com/2015/11/11/with-codingame-learning-to-code-becomes-a-game/">人気があります</a>。</p><p>このリストは、自分自身で各ウェブサイトを使用した経験、<a href="https://www.google.com/webhp?sourceid=chrome-instant&amp;rlz=1C5CHFA_enUS689US689&amp;ion=1&amp;espv=2&amp;ie=UTF-8#safe=off&amp;q=coding+challenges">Google での検索結果</a>、<a href="https://www.quora.com/What-are-good-coding-challenges-websites">Quora の投稿</a>、<a href="https://www.linkedin.com/pulse/most-popular-programming-contest-sites-coding-practice-somenath-panda">こちらの記事</a>などを基に作成しました。また、いくつかのフォーラムや<a href="https://www.reddit.com/r/learnprogramming/">r/learnprogramming</a>のようなサブレディットに頻繁にアクセスして、そこにいるユーザーがよくどのウェブサイトを薦めているかを確認しました。免責事項: 記事の原文の著者は、上記のウェブサイトのひとつである Coderbyte に勤めています。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
