<?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[ Beginners - 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[ Beginners - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 15 May 2026 19:50:05 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/tag/beginners/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ JavaScript で文字列を数値に変換する方法 ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript では、文字列を数値に変換する方法がたくさんあります。それぞれコードではどのように書くのでしょうか？ この記事では、文字列を数値に変換する 11 の方法を紹介します。 こちらは、JavaScript で文字列を数値に変換する方法を示すインタラクティブなスクリーンです: JavaScript で文字列を数値に変換する方法: Number() 関数を使用する 文字列を数値に変換する方法の一つは、Number() 関数を使用することです。 この例では、quantity という名前の文字列があり、その値は "12" です。 const quantity = "12"; typeof 演算子を quantity に使用すると、その型は string として返されます。 console.log(typeof quantity); Number 関数を使って、quantity を次のように数値に変換できます: Number(quantity) 再び typeof 演算子を使用して、それが数値になったことを確認できます。 console.log(typeo ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-convert-a-string-to-a-number-in-javascript/</link>
                <guid isPermaLink="false">66caff161ba26f044de398f6</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Mon, 25 Nov 2024 11:59:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/08/volkan-olmez-aG-pvyMsbis-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-convert-a-string-to-a-number-in-javascript/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Convert a String to a Number in JavaScript</a>
      </p><p>JavaScript では、文字列を数値に変換する方法がたくさんあります。それぞれコードではどのように書くのでしょうか？</p><p>この記事では、文字列を数値に変換する 11 の方法を紹介します。</p><h3 id="-javascript-">こちらは、JavaScript で文字列を数値に変換する方法を示すインタラクティブなスクリーンです:</h3><p></p><!--kg-card-begin: html--><iframe src="https://v1.scrimba.com/scrim/co2894c679bc693326603ac73?embed=freecodecamp%2Cmini-header&amp;a=354.0.3.L1_22" width="100%" height="420" title="Embedded content" loading="lazy"></iframe><!--kg-card-end: html--><h2 id="javascript-number-">JavaScript で文字列を数値に変換する方法: <code>Number()</code> 関数を使用する</h2><p>文字列を数値に変換する方法の一つは、<code>Number()</code> 関数を使用することです。</p><p>この例では、<code>quantity</code> という名前の文字列があり、その値は <code>"12"</code> です。</p><pre><code class="language-JavaScript">const quantity = "12";
</code></pre><p><code>typeof</code> 演算子を <code>quantity</code> に使用すると、その型は <code>string</code> として返されます。</p><pre><code class="language-JavaScript">console.log(typeof quantity);</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/08/Screen-Shot-2022-05-01-at-9.50.17-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-9.50.17-AM" width="172" height="160" loading="lazy"></figure><p><code>Number</code> 関数を使って、<code>quantity</code> を次のように数値に変換できます:</p><pre><code class="language-JavaScript">Number(quantity)</code></pre><p>再び <code>typeof</code> 演算子を使用して、それが数値になったことを確認できます。</p><pre><code class="language-js">console.log(typeof Number(quantity));</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/08/Screen-Shot-2022-05-01-at-9.57.35-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-9.57.35-AM" width="164" height="154" loading="lazy"></figure><p>数値に変換できない値を渡そうとすると、返り値は <code>NaN</code>「Not a Number」になります。</p><pre><code class="language-JavaScript">console.log(Number("awesome"));</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/08/Screen-Shot-2022-05-01-at-10.00.34-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.00.34-AM" width="184" height="174" loading="lazy"></figure><h2 id="javascript-parseint-">JavaScript で文字列を数値に変換する方法: <code>parseInt()</code> 関数を使用する</h2><p>文字列を数値に変換するもう一つの方法は、<code>parseInt()</code> 関数を使用することです。この関数は文字列とオプションの基数 (radix) を受け取ります。</p><p>基数は、記数法の底を表す 2 から 36 の間の数値です。例えば、基数が 2 の場合は 2 進数を表し、基数が 10 の場合は 10 進数を表します。</p><p>先ほどの <code>quantity</code> 変数を使用して、その文字列を数値に変換することができます。</p><pre><code class="language-JavaScript">const quantity = "12";

console.log(parseInt(quantity, 10));</code></pre><p><code>quantity</code> 変数を <code>"12.99"</code> に変更した場合、<code>parseInt()</code> を使用して得られる結果は数値の <code>12.99</code> になるでしょうか？</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.45.08-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.45.08-AM" width="158" height="184" loading="lazy"></figure><p>ご覧のとおり、結果は丸められた整数になります。浮動小数点数を返したい場合は、<code>parseFloat()</code> を使用する必要があります。</p><h2 id="javascript-parsefloat-">JavaScript で文字列を数値に変換する方法: <code>parseFloat()</code> 関数を使用する</h2><p><code>parseFloat()</code> 関数は値を受け取り、浮動小数点数を返します。浮動小数点数の例としては、<code>12.99</code> や <code>3.14</code> などがあります。</p><p>以前の例を修正して <code>parseFloat()</code> を使用すると、結果は浮動小数点数の 12.99 になります。</p><pre><code class="language-JavaScript">const quantity = "12.99";

console.log(parseFloat(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.55.03-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.55.03-AM" width="170" height="142" loading="lazy"></figure><p>文字列に先頭または末尾の空白が含まれていても、<code>parseFloat()</code> はその文字列を浮動小数点数に変換します。</p><pre><code class="language-JavaScript">const quantity = "   12.99    ";

console.log(parseFloat(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.55.03-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.55.03-AM-1" width="170" height="142" loading="lazy"></figure><p>文字列の最初の文字が数値に変換できない場合、<code>parseFloat()</code> は <code>NaN</code> を返します。</p><pre><code class="language-JavaScript">const quantity = "F12.99";

console.log(parseFloat(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM" width="172" height="162" loading="lazy"></figure><h2 id="javascript-">JavaScript で文字列を数値に変換する方法: 単項プラス演算子 (<code>+</code>) を使用する</h2><p>単項プラス演算子 (<code>+</code>) を使用すると、文字列を数値に変換できます。この演算子はオペランドの前に置かれます。</p><pre><code class="language-JavaScript">const quantity = "12";

console.log(+quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.45.08-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.45.08-AM-1" width="158" height="184" loading="lazy"></figure><p>単項プラス演算子 (<code>+</code>) を使用して、文字列を浮動小数点数に変換することもできます。</p><pre><code class="language-JavaScript">const quantity = "12.99";

console.log(+quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.55.03-AM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.55.03-AM-2" width="170" height="142" loading="lazy"></figure><p>文字列の値が数値に変換できない場合、結果は <code>NaN</code> になります。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(+quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM-1" width="172" height="162" loading="lazy"></figure><h2 id="javascript-1-">JavaScript で文字列を数値に変換する方法: 文字列を数値の 1 と掛け算する</h2><p>文字列を数値に変換する別の方法は、基本的な数学演算を使用することです。文字列の値に 1 を掛けると、数値が返されます。</p><pre><code class="language-JavaScript">const quantity = "12";

console.log(quantity * 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-10.45.08-AM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-10.45.08-AM-2" width="158" height="184" loading="lazy"></figure><p>ご覧のとおり、<code>quantity</code> の値に 1 を掛けると、数値の <code>12</code> が返されます。しかし、これはどのように機能するのでしょうか？</p><p>この例では、JavaScript は文字列の値を数値に変換し、その後に数学演算を実行しています。文字列が数値に変換できない場合、数学演算は機能せず、<code>NaN</code> が返されます。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(quantity * 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM-2" width="172" height="162" loading="lazy"></figure><p>この方法は浮動小数点数にも適用できます。</p><pre><code class="language-JavaScript">const quantity = "10.5";

console.log(quantity * 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.56.19-AM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.56.19-AM" width="152" height="178" loading="lazy"></figure><h2 id="javascript-1--1">JavaScript で文字列を数値に変換する方法: 文字列を数値の 1 で割る</h2><p>1 を掛ける代わりに、文字列を 1 で割ることもできます。JavaScript は文字列の値を数値に変換し、その後に数学演算を実行します。</p><pre><code class="language-JavaScript">const quantity = "10.5";

console.log(quantity / 1);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.56.19-AM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.56.19-AM-1" width="152" height="178" loading="lazy"></figure><h2 id="javascript-0-">JavaScript で文字列を数値に変換する方法: 文字列から数値の 0 を引く</h2><p>別の方法として、文字列から 0 を引くこともできます。この場合も同様に、JavaScript は文字列の値を数値に変換し、その後に数学演算を実行します。</p><pre><code class="language-JavaScript">const quantity = "19";

console.log(quantity - 0);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.11.59-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.11.59-PM" width="158" height="160" loading="lazy"></figure><h2 id="javascript-not-">JavaScript で文字列を数値に変換する方法: ビット単位の NOT 演算子 (<code>~</code>) を使用する</h2><p>ビット単位の NOT 演算子 (<code>~</code>) はオペランドのビットを反転させ、その値を 32 ビット符号付き整数に変換します。32 ビット符号付き整数は、32 ビット (または 4 バイト) で表される整数値です。</p><p>数値に対して 1 つのビット単位の NOT 演算子 (<code>~</code>) を使用すると、以下の操作が実行されます: <code>-(x + 1)</code></p><pre><code class="language-JavaScript">console.log(~19);</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.20.18-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.20.18-PM" width="152" height="150" loading="lazy"></figure><p>しかし、ビット単位の NOT 演算子 (<code>~</code>) を 2 回使用すると、文字列を数値に変換することができます。</p><pre><code class="language-JavaScript">const quantity = "19";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.11.59-PM-1.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.11.59-PM-1" width="158" height="160" loading="lazy"></figure><p>この方法は浮動小数点数には適用できません。結果は整数になるためです。</p><pre><code class="language-JavaScript">const quantity = "19.99";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.11.59-PM-2.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.11.59-PM-2" width="158" height="160" loading="lazy"></figure><p>この方法を数値以外の文字に対して使用した場合、結果はゼロになります。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.32.45-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.32.45-PM" width="174" height="156" loading="lazy"></figure><p>この方法には制限があり、非常に大きな値の場合には動作が不安定になることがあります。数値が 32 ビット符号付き整数の範囲内に収まっていることを確認することが重要です。</p><pre><code class="language-JavaScript">const quantity = "2700000000";

console.log(~~quantity);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.36.16-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.36.16-PM" width="230" height="160" loading="lazy"></figure><p>ビット単位の NOT 演算子 (<code>~</code>) について詳しく知りたい場合は、<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_NOT">ドキュメント</a>を参照してください。</p><h2 id="javascript-math-floor-">JavaScript で文字列を数値に変換する方法: <code>Math.floor()</code> 関数を使用する</h2><p>文字列を数値に変換する方法として、他には <code>Math.floor()</code> 関数も使用できます。この関数は数値を最も近い整数に切り捨てます。</p><pre><code class="language-JavaScript">const quantity = "13.4";

console.log(Math.floor(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.44.53-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.44.53-PM" width="184" height="180" loading="lazy"></figure><p>以前の例と同様に、数値以外の文字を使用しようとすると、結果は <code>NaN</code> になります。</p><pre><code class="language-JavaScript">const quantity = "awesome";

console.log(Math.floor(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-11.08.33-AM-3.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-11.08.33-AM-3" width="172" height="162" loading="lazy"></figure><h2 id="javascript-math-floor--1">JavaScript で文字列を数値に変換する方法: <code>Math.floor()</code> 関数を使用する</h2><p><code>Math.ceil()</code> 関数は、数値を最も近い整数に切り上げます。</p><pre><code class="language-JavaScript">const quantity = "7.18";

console.log(Math.ceil(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.48.15-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.48.15-PM" width="166" height="146" loading="lazy"></figure><h2 id="javascript-math-round-">JavaScript で文字列を数値に変換する方法: <code>Math.round()</code> 関数を使用する</h2><p><code>Math.round()</code> 関数は、数値を最も近い整数に丸めます。</p><p>例えば、値が <code>6.3</code> の場合、<code>Math.round()</code> は <code>6</code> を返します。</p><pre><code class="language-JavaScript">const quantity = "6.3";

console.log(Math.round(quantity));
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.50.20-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.50.20-PM" width="164" height="156" loading="lazy"></figure><p>しかし、その値を <code>6.5</code> に変更すると、<code>Math.round()</code> は <code>7</code> を返します。</p><pre><code class="language-js">const quantity = "6.5";

console.log(Math.round(quantity));</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/11/Screen-Shot-2022-05-01-at-12.51.35-PM.png" class="kg-image" alt="Screen-Shot-2022-05-01-at-12.51.35-PM" width="172" height="156" loading="lazy"></figure><h2 id="-">結論</h2><p>この記事では、JavaScript を使用して文字列を数値に変換する 11 の方法を紹介しました。</p><p>この記事で説明した 11 の方法は以下の通りです。</p><ul><li><code>Number()</code> 関数を使用する</li><li><code>parseInt()</code> 関数を使用する</li><li><code>parseFloat()</code> 関数を使用する</li><li>単項プラス演算子 (<code>+</code>) を使用する</li><li>文字列に数値の 1 を掛ける</li><li>文字列を数値の 1 で割る</li><li>文字列から数値の 0 を引く</li><li>ビット単位の NOT 演算子 (<code>~</code>) を使用する</li><li><code>Math.floor()</code> 関数を使用する</li><li><code>Math.ceil()</code> 関数を使用する</li><li><code>Math.round()</code> 関数を使用する</li></ul><p>この記事を楽しんでいただけたなら幸いです。JavaScript の学習、頑張ってください！</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 初心者向け 25 の Python 開発プロジェクト - Python でコーディングを始めるためのシンプルなアイデア ]]>
                </title>
                <description>
                    <![CDATA[  新しい言語を学ぶ最も良い方法は、その言語を使ったプロジェクトを作ることです。 私は、25 の初心者向け Python プロジェクトチュートリアルのリストを作成しました。 これらのチュートリアルに取り組む初心者に向けての私からのアドバイスは、動画を視聴しながら、プロジェクトを作り、分解し、自らの手でもう一度作り上げることです。チュートリアルにない新しい機能の追加や違うメソッドを使うといった実験に取り組むこともおすすめです。 この経験を通して、チュートリアルから得られるコンセプトを本当に学んだかどうかをテストできるのです。 以下のリストからプロジェクト名をクリックすると、この記事の各項目へ飛ぶことができます。 もしも、Python の基礎をしっかり固めたいならば、freeCodeCamp の初心者向けの Python チュートリアル [https://www.youtube.com/watch?v=rfscVS0vtbw]を視聴することをおすすめします。(編集注: 日本語版はこちら [https://www.youtube.com/watch?v=nnjCkgX_ZPQ])  ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/python-projects-for-beginners/</link>
                <guid isPermaLink="false">6537d4a7cdaff103f90d40cc</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Sat, 27 Apr 2024 08:11:02 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/04/hitesh-choudhary-D9Zow2REm8U-unsplash.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/python-projects-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">25 Python Projects for Beginners – Easy Ideas to Get Started Coding Python</a>
      </p><p></p><p>新しい言語を学ぶ最も良い方法は、その言語を使ったプロジェクトを作ることです。</p><p>私は、25 の初心者向け Python プロジェクトチュートリアルのリストを作成しました。</p><p>これらのチュートリアルに取り組む初心者に向けての私からのアドバイスは、動画を視聴しながら、プロジェクトを作り、分解し、自らの手でもう一度作り上げることです。チュートリアルにない新しい機能の追加や違うメソッドを使うといった実験に取り組むこともおすすめです。</p><p>この経験を通して、チュートリアルから得られるコンセプトを本当に学んだかどうかをテストできるのです。</p><p>以下のリストからプロジェクト名をクリックすると、この記事の各項目へ飛ぶことができます。</p><p>もしも、Python の基礎をしっかり固めたいならば、freeCodeCamp の初心者向けの <a href="https://www.youtube.com/watch?v=rfscVS0vtbw">Python チュートリアル</a>を視聴することをおすすめします。(編集注: <a href="https://www.youtube.com/watch?v=nnjCkgX_ZPQ">日本語版はこちら</a>)</p><h2 id="-python-"><strong><strong><strong>作成可能な Python プロジェクト</strong></strong></strong></h2><!--kg-card-begin: markdown--><ol>
<li><a href="#mad-libs-python-project">Mad Libs (マッドリブス)</a></li>
<li><a href="#guess-the-number-game-python-project-computer-">数あてゲーム (コンピューター側の数)</a></li>
<li><a href="#guess-the-number-game-python-project-user-">数あてゲーム (ユーザー側の数)</a></li>
<li><a href="#rock-paper-scissors-python-project">じゃんけん</a></li>
<li><a href="#hangman-python-project">ハングマン</a></li>
<li><a href="#countdown-timer-python-project">カウントダウンタイマー</a></li>
<li><a href="#password-generator-python-project">パスワード生成システム</a></li>
<li><a href="#qr-code-encoder-decoder-python-project">QR コードのエンコード／デコード</a></li>
<li><a href="#tic-tac-toe-python-project">○×ゲーム</a></li>
<li><a href="#tic-tac-toe-ai-python-project">AI ○×ゲーム</a></li>
<li><a href="#binary-search-python-project">二分探索アルゴリズム</a></li>
<li><a href="#minesweeper-python-project">マインスイーパー</a></li>
<li><a href="#sudoku-solver-python-project">数独解決</a></li>
<li><a href="#photo-manipulation-in-python-project">画像加工</a></li>
<li><a href="#markov-chain-text-composer-python-project">マルコフ連鎖テキスト作成</a></li>
<li><a href="#pong-python-project">ピンポンゲーム</a></li>
<li><a href="#snake-python-project">スネークゲーム</a></li>
<li><a href="#connect-four-python-project">四目並べ</a></li>
<li><a href="#tetris-python-project">テトリス</a></li>
<li><a href="#online-multiplayer-game-python-project">オンライン多人数ゲーム</a></li>
<li><a href="#web-scraping-program-python-project">Web スクレイピング</a></li>
<li><a href="#bulk-file-re-namer-python-project">ファイル名変更機能</a></li>
<li><a href="#weather-program-python-project">天気プログラム</a></li>
<li><a href="#code-a-discord-bot-with-python-host-for-free-in-the-cloud">Python での Discord Bot 開発 - クラウド上での無料ホスティング</a></li>
<li><a href="#space-invaders-game-python-project">スペースインベーダーゲーム</a></li>
</ol>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><h2 id="mad-libs-python-project">
    Python での Mad Libs (マッドリブス) 開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=100s">「Kylie Ying のチュートリアル」</a>では、ユーザーが入力する情報を取得する方法、Python の文字列フォーマットである f-strings の使い方、そして、コンソールに出力された結果を確認する方法を学びます。</p><p>このチュートリアルは、Python での文字の連結に慣れるにあたり、とても良い初心者向けのプロジェクトとなります。</p><!--kg-card-begin: html--><h2 id="guess-the-number-game-python-project-computer-">
    Python での数あてゲーム開発 (コンピューター側の数)
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=414s">「Kylie Ying のチュートリアル」</a>では、<a href="https://docs.python.org/3/library/random.html">Python のランダムモジュール</a>の動かし方、関数の作り方、ループ処理と条件分岐の使い方、そして、利用者が入力した情報を取得する方法を学べます。</p><!--kg-card-begin: html--><h2 id="guess-the-number-game-python-project-user-">
    Python での数あてゲーム開発 (ユーザー側の数)
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=797s">「Kylie Ying のチュートリアル」のこのパート</a>では、今度はコンピューターがユーザー側の数を予想する数あてゲームを作成します。こちらでも <a href="https://docs.python.org/3/library/random.html">Python のランダムモジュール</a>の動かし方、関数の作り方、ループ処理と条件分岐の使い方、そして、利用者が入力した情報を取得する方法を扱います。</p><!--kg-card-begin: html--><h2 id="rock-paper-scissors-python-project">
    Python でのじゃんけんゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=797s">「Kylie Ying のチュートリアル」</a>では、<code>random.choice()</code>、if 文、ユーザー入力の取得を扱います。これは、条件分岐や関数のような基礎を固めるのに役立つプロジェクトです。</p><!--kg-card-begin: html--><h2 id="hangman-python-project">
    Python でのハングマン開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=1465s">「Kylie Ying のチュートリアル」</a>では、辞書型、リスト型、そして、条件がネストされている中での活用の仕方を学べます。これらに加えて、文字型と random 関数のモジュールについても理解できるでしょう。</p><!--kg-card-begin: html--><h2 id="countdown-timer-python-project">
    Python でのカウントダウンタイマー開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=1992s">「Code With Tomi のチュートリアル」</a>では、<code>time</code> という時刻データへのアクセスと変換の Python のモジュールを利用して、カウントダウンタイマーを開発する方法を学べます。このチュートリアルは、Python における while ループの使い方を学ぶことができるので、Python の初心者におすすめのプロジェクトの一つです。</p><!--kg-card-begin: html--><h2 id="password-generator-python-project">
    Python でのパスワード生成システム開発
</h2><!--kg-card-end: html--><p>同じく<a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=2531s">「Code With Tomi のチュートリアル」</a>で、ランダムのパスワードを生成するシステムについて学べます。パスワードの数とパスワードの長さを利用者から受け取り、ランダムなパスワードを生成します。<br>このプロジェクトでは、loop 処理と Python の標準モジュールである <code>random</code> 関数の使い方を学べるでしょう。</p><!--kg-card-begin: html--><h2 id="qr-code-encoder-decoder-python-project">
    Python での QR コードのエンコード／デコード開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=3192s">「Code With Tomi」のチュートリアル</a>で、QR コードの作り方、そして、QR コードの情報をエンコード／デコードする処理について学べます。このプロジェクトは、QR コードライブラリを利用します。</p><p>初心者にとって、Pythonの異なるモジュールをインストールして使うことに慣れるのに最適なプロジェクトの一つでしょう。</p><!--kg-card-begin: html--><h2 id="tic-tac-toe-python-project">
    Python での○×ゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=2153s">「Kylie Ying のチュートリアル」</a>では、コマンドラインで、複数人のプレイヤーとプレイできる〇×ゲームを作る方法を学べます。ネストされた if 文の使い方を練習したり、<code>time</code> と <code>math</code> という 2 つの Python の標準モジュールの使い方を学んだりできます。</p><!--kg-card-begin: html--><h2 id="tic-tac-toe-ai-python-project">
    Python での AI ○×ゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=3599s">「Kylie Ying のチュートリアル」</a>で、コンピュータが負けることのない〇×ゲームの作り方を学べます。このプロジェクトは、意思決定に用いられる再帰的アルゴリズムであるミニマックス・アルゴリズムを利用します。</p><!--kg-card-begin: html--><h2 id="binary-search-python-project">
    Python での二分探索アルゴリズム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=4553s">「Kylie Ying のチュートリアル」</a>で、バイナリサーチ (二分探索) と呼ばれる分割統治アルゴリズムの実装方法を学べます。これは、採用面接で出題されることもある検索アルゴリズムで、コードでの実装方法を知っておくことが重要です。</p><!--kg-card-begin: html--><h2 id="minesweeper-python-project">
    Python でのマインスイーパー開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=5236s">「Kylie Ying のチュートリアル」</a>で、コマンドラインでのマインスイーパーゲームを開発できます。このプロジェクトは、再帰とクラスの処理にフォーカスしたプロジェクトです。</p><!--kg-card-begin: html--><h2 id="sudoku-solver-python-project">
    Python での数独解決開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=6715s">「Kylie Ying のチュートリアル」</a>で、バックトラックの技術を活用する数独の解決を開発できます。バックトラックは、問題を解決するにあたり、あらゆる組み合わせの探索を行う再帰的な技法の一つです。</p><!--kg-card-begin: html--><h2 id="photo-manipulation-in-python-project">
    Python での画像加工開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=7534s"> 「Kylie Ying のチュートリアル」</a>では、画像フィルターを作成して、画像のコントラスト、明るさ、ぼかしを変更する方法を学べます。このプロジェクトを始める前に、<a href="https://github.com/kying18/pyphotoshop">スターターファイル</a>をダウンロードする必要があります。</p><!--kg-card-begin: html--><h2 id="markov-chain-text-composer-python-project">
    Python でのマルコフ連鎖テキスト作成開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=9109s">「Kylie Ying のチュートリアル」</a>では、過去の状態に基づいて未来の状態を予測する確率モデルとして知られるマルコフ連鎖モデルについて、そしてそれを歌詞の関係にどのように適用できるかを学べます。このプロジェクトは、Python での人工知能への素晴らしい入門講座となるでしょう。</p><!--kg-card-begin: html--><h2 id="pong-python-project">
    Python でのピンポンゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=78s">「Christian Thompson のチュートリアル」</a>では、Python での古典的なピンポンゲームの再構築の仕方を学べます。OS の動かし方、そして、タートルの Python モジュールを利用して、ゲームのグラフィックスを作成する方法を学びます。</p><!--kg-card-begin: html--><h2 id="snake-python-project">
    Python でのスネークゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=2736s">「Tech with Tim のチュートリアル」</a>では、Python でなつかしのスネークゲームを再構築する方法を学べます。このプロジェクトは、オブジェクト指向のプログラミングと Python でゲームを作るための人気モジュールである Pygame を使います。</p><!--kg-card-begin: html--><h2 id="connect-four-python-project">
    Python での四目並べ開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=5697s">「Keith Galli のチュートリアル」</a>で、昔からある四目並べのコネクトフォーの作り方を学べます。このプロジェクトでは、<code>numpy</code>、<code>math</code>、<code>pygame</code>、そして <code>sys</code> という Python モジュールを活用します。</p><p>このプロジェクトは、既に初心者向けの小規模の Python プロジェクトに取り組んだことがある人に最適です。Python プロジェクトの開発が初めての場合は、ここまで紹介したリストの一つに先に取り組むことを強くおすすめします。</p><!--kg-card-begin: html--><h2 id="tetris-python-project">
    Python でのテトリス開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=9756s">「Tech with Tim のチュートリアル」</a>では、昔からあるテトリスゲームを再開発する方法を学べます。このプロジェクトは、Pygame を活用し、開発初心者が次のレベルのスキルを取得するのに良い機会です。</p><!--kg-card-begin: html--><h2 id="online-multiplayer-game-python-project">
    Python でのオンライン多人数ゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=15732s">「Tech with Tim のチュートリアル」</a>では、世界中の人たちと遊べるオンラインのマルチプレイヤーゲームの開発を学べます。このプロジェクトは、Sockets やネットワーク、そして、Pygame の使い方を学ぶ素晴らしい第一歩となるでしょう。</p><!--kg-card-begin: html--><h2 id="web-scraping-program-python-project">
    Python での Web スクレイピング開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=37s">「Code With Tomi のチュートリアル」</a>で、利用者が入力する GitHub の利用者リンクに対して、Web スクレイピングを通して、プロフィール画像リンクを出力する方法を学べます。Web スクレイピングは、Web ページからデータを集める手法の一つです。</p><!--kg-card-begin: html--><h2 id="bulk-file-re-namer-python-project">
    Python でのファイル名変更機能開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=833s">「Code With Tomi のチュートリアル」</a>で、コンピュータ上の任意のフォルダにある全てのファイルについて、Python コードに書かれた条件に基づいて名前を変更するプログラムの開発を学べます。</p><!--kg-card-begin: html--><h2 id="weather-program-python-project">
    Python での天気プログラム開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=1494s">「Code With Tomi のチュートリアル」</a>で、特定の地域の利用者データを集めて、集められた地域の詳細な気象情報を出力する仕組みを開発します。これは、API からデータを取得する方法を学び始めるのに適したプロジェクトです。</p><!--kg-card-begin: html--><h2 id="code-a-discord-bot-with-python-host-for-free-in-the-cloud">
    Python での Discord Bot 開発 - クラウド上での無料ホスティング
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=SPTfmiYiuok">「Beau Carnes のチュートリアル」</a>で、利用者がオンラインチャットを楽しめるプラットフォームである Discord で機能する bot を開発する方法を学べます。このプロジェクトは、Discord API の仕組み、そして、Replit IDE について教えてくれます。</p><p>このビデオが公開された後、Replit は、環境変数をプログラムに保存する方法を変更しました。Replit の環境変数の設定方法は、この<a href="https://forum.freecodecamp.org/t/steps-on-how-to-setup-environment-variable-for-fcc-python-bot-tutorial/473303">チュートリアル</a>から確認してください。</p><!--kg-card-begin: html--><h2 id="space-invaders-game-python-project">
    Python でのスペースインベーダーゲームプロジェクト
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=FfWpgLFMI7w"> 「buildwithpython のチュートリアル」</a>では、Pygame を用いたスペースインベーダーゲームの開発方法を学べます。ゲーム上でのループ処理、衝突検出、キープレスイベントなどゲーム開発におけるたくさんの基礎を学べます。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML+CSS で取り組む初めての freeCodeCamp 認定プロジェクト [YouTube 動画講座] ]]>
                </title>
                <description>
                    <![CDATA[ freeCodeCamp カリキュラム [https://www.freecodecamp.org/japanese/learn/] では、講座を修了すると認定証が取得できます。 そのためには指定の認定プロジェクトを完成させる必要がありますが、いざ取り組もうと思ってもどこから手を付けたらいいか分からなくて挫折してしまう人も多いようです。 そこで、YouTube チャンネル freeCodeCamp Japanese [https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww] にて HTML と CSS を扱う新講座を公開しました。日本語チャンネルとして初のオリジナル講座です。 この講座では、レスポンシブウェブデザイン認定証に必要な最初の認定プロジェクト「アンケートフォーム」に実際に取り組みながら、HTMLとCSSの基本、問題の解決方法、作業に役立つツールなどについて学習します。 認定プロジェクトに限らず、自分の力でウェブ開発に取り組むために役立つ知識が学べます。 この講座は私、松田が作成しました。私自身も freeCo ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/code-your-first-certification-project/</link>
                <guid isPermaLink="false">63ee20c7721fc106335f1955</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML5 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                    <category>
                        <![CDATA[ YouTube ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video Courses ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Thu, 16 Feb 2023 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2023/02/HTML-CSS_thumbnail2.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a href="https://www.freecodecamp.org/japanese/learn/">freeCodeCamp カリキュラム</a>では、講座を修了すると認定証が取得できます。</p><p>そのためには指定の認定プロジェクトを完成させる必要がありますが、いざ取り組もうと思ってもどこから手を付けたらいいか分からなくて挫折してしまう人も多いようです。</p><p>そこで、YouTube チャンネル <a href="https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww">freeCodeCamp Japanese</a> にて HTML と CSS を扱う新講座を公開しました。日本語チャンネルとして初のオリジナル講座です。</p><p>この講座では、レスポンシブウェブデザイン認定証に必要な最初の認定プロジェクト「アンケートフォーム」に実際に取り組みながら、HTMLとCSSの基本、問題の解決方法、作業に役立つツールなどについて学習します。</p><p>認定プロジェクトに限らず、自分の力でウェブ開発に取り組むために役立つ知識が学べます。</p><p>この講座は私、松田が作成しました。私自身も freeCodeCamp カリキュラムを通してウェブ開発を学んだのですが、他のプログラミング教材にない freeCodeCamp の魅力だと感じたのが、この認定プロジェクトでした。</p><p>ざっくりとしたユーザーストーリーを基に自分で考えてコードを書いていく経験は、ただチュートリアルをこなしているだけでは得られない実力を付けるためにとても役立ったと感じています。</p><p>その経験を通して得たものを、この講座で解説しています。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/02/screenshot.png" class="kg-image" alt="screenshot" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/02/screenshot.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/02/screenshot.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2023/02/screenshot.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2023/02/screenshot.png 1920w" sizes="(min-width: 720px) 720px" width="1920" height="1080" loading="lazy"><figcaption>認定プロジェクトの課題に沿ってコードを書きながら学びます。</figcaption></figure><p>この講座では以下の流れでプロジェクトに取り組みます。</p><!--kg-card-begin: markdown--><ul>
<li>Visual Studio Code の導入
<ul>
<li>日本語言語パック、拡張機能のインストール</li>
</ul>
</li>
<li>HTML ボイラープレートを書く</li>
<li>ユーザーストーリーの確認</li>
<li>最低限のコードを書く
<ul>
<li>プレビューと自動テストの活用方法</li>
<li>MDN Web Docs の紹介</li>
</ul>
</li>
<li>HTML の改善</li>
<li>CSS を書く
<ul>
<li>開発者ツールの活用</li>
</ul>
</li>
<li>画像の追加方法</li>
<li>フォーラムでの質問方法</li>
</ul>
<!--kg-card-end: markdown--><p>本講座は YouTube で全編無料公開されています。(全 2.5 時間)</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/hft6dxPHPCU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" title="【HTML+CSS】初めてのfreeCodeCamp認定プロジェクト: アンケートフォームの作成" name="fitvid0"></iframe>
          </div>
        </div>
      </figure> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ プログラミングの学習方法 – 私がコードを学び始めた時に求めていたガイド ]]>
                </title>
                <description>
                    <![CDATA[ コーディングを学ぶなんて、考えるだけでも恐ろしいと感じるかもしれません。まずコード という言葉が定義からして謎めいています。コードとは、人ではなくコンピューターが理解できることを目的とした、技術的なコミュニケーションの形です。 多くの人がコードを学び始める方法の 1 つは、有名なプログラミング言語を選んで、方針も定めずとりあえず飛びついてみるというものです。オンラインのコーディング講座を受講したり、チュートリアルプロジェクトを作成したり、もしくはあるトピックについての本を無作為に購入したりするでしょう。 開発者を目指す人でも、ロードマップを持って学び始める人はめったにいません。ここで言うロードマップとは、関連するプログラミングの概念、言語、よく使われるツールなどの概要を説明する、コーディングの世界を見渡す鳥瞰図のようなものです。 この記事では、そのようなロードマップの 1 つを提案します。そのために 14 のステップをお伝えします。各ステップで、重要な概念、言語、もしくはツール (プロの開発者がコードを記述し、共同作業を行い、専門的なプロジェクトを作成するのに使用するツール) を ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-learn-programming/</link>
                <guid isPermaLink="false">63189c9a87a3a3073e97e5aa</guid>
                
                    <category>
                        <![CDATA[ Learning To Code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                    <category>
                        <![CDATA[ PROGRAMMING ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manabu Matsumoto ]]>
                </dc:creator>
                <pubDate>Sat, 03 Dec 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/09/The-Programming-Guide-I-Wish-I-Had-When-I-Started-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-learn-programming/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Learn Programming – The Guide I Wish I Had When I Started Learning to Code</a>
      </p><p>コーディングを学ぶなんて、考えるだけでも恐ろしいと感じるかもしれません。まず<strong>コード</strong>という言葉が定義からして謎めいています。コードとは、人ではなくコンピューターが理解できることを目的とした、技術的なコミュニケーションの形です。</p><p>多くの人がコードを学び始める方法の 1 つは、有名なプログラミング言語を選んで、方針も定めずとりあえず飛びついてみるというものです。オンラインのコーディング講座を受講したり、チュートリアルプロジェクトを作成したり、もしくはあるトピックについての本を無作為に購入したりするでしょう。</p><p>開発者を目指す人でも、ロードマップを持って学び始める人はめったにいません。ここで言うロードマップとは、関連するプログラミングの概念、言語、よく使われるツールなどの概要を説明する、コーディングの世界を見渡す鳥瞰図のようなものです。</p><p>この記事では、そのようなロードマップの 1 つを提案します。そのために 14 のステップをお伝えします。各ステップで、重要な概念、言語、もしくはツール (プロの開発者がコードを記述し、共同作業を行い、専門的なプロジェクトを作成するのに使用するツール) を説明します。</p><p>私 (原著者) 個人の 20 年近くにも及ぶコーディング学習の旅をもとにして、この 14 のステップを慎重に選びました。</p><p>開発者として自信を持つのにそのような長い時間がかかった一因は、広いコーディングの世界の全体像が見えないまま、特定のトピックについて学んでいたからです。</p><p>この記事の中の各ステップは「コーディングに不可欠なもの」、コーディングを学び始める際に<strong>少なくともその存在を知っておくことが欠かせない</strong>と思うものについて述べています。</p><p>ロードマップの各ステップをリストアップする前に、最後に注意点があります。当然ですが、この記事を読んだから熟練のプログラマーになれるというわけではありません。そういったつもりはありません。この記事の目的は、各ステップの扱う事柄の存在を知らせることと、その仕組みの基本を教え、そこを基礎にして読者が自力で学べるようにすることです。</p><h2 id="-14-">新米開発者向けの 14 ステップのロードマップ</h2><ol><li><a href="#1-familiarize-yourself-with-computer-architecture-and-data-basics">コンピューターアーキテクチャとデータの基本を理解する</a></li><li><a href="#2-learn-how-programming-languages-work">プログラミング言語の仕組みについて学ぶ</a></li><li><a href="#3-understand-how-the-internet-works">インターネットの仕組みを理解する</a></li><li><a href="#4-practice-some-command-line-basics">コマンドラインの基本を練習する</a></li><li><a href="#5-build-up-your-text-editor-skills-with-vim">Vim を使用してテキストエディタスキルを鍛える</a></li><li><a href="#6-take-up-some-html">HTML をある程度習得する</a></li><li><a href="#7-tackle-some-css">CSS にある程度取り組む</a></li><li><a href="#8-start-programming-with-javascript">JavaScript でプログラミングを始める</a></li><li><a href="#9-continue-programming-with-python">Python でプログラミングを継続する</a></li><li><a href="#10-further-your-knowledge-with-java">Java で知識を深める</a></li><li><a href="#11-track-your-code-using-git">Git を使用してコードを追跡する</a></li><li><a href="#12-store-data-using-databases-and-sql">データベースと SQL を使用してデータを保存する</a></li><li><a href="#13-read-about-web-frameworks-and-mvc">ウェブフレームワークと MVC (Model-View-Controller: モデル・ビュー・コントローラ) について読む</a></li><li><a href="#14-play-with-package-managers">パッケージマネージャーに触れる</a></li></ol><p>さっそく最初のステップから始めていきましょう！</p><!--kg-card-begin: html--><h2 id="1-familiarize-yourself-with-computer-architecture-and-data-basics">1) コンピューターアーキテクチャとデータの基本を理解する</h2><!--kg-card-end: html--><p>モダンなプログラミング言語の素晴らしい点のひとつは、水面下で動作しているハードウェアの本質的な詳細部分について (ほとんどの場合は) 悩むことなく、凝ったアプリケーションを作成できるようにしてくれるところです。</p><p>これは<strong>抽象化</strong>と呼ばれます。抽象化とは、理解とスキルの求められる範囲を簡素化し、絞り込んだ上位ツール (上記の例ではプログラミング言語) を扱えるようにする機能です。</p><p>とはいえ、これは、自分のコードを実行しているハードウェアの基礎について知っていても無駄であるということではありません。最低限、その一部について認識しておくと、職場で CPU やメモリの使用率が高いというような会話についていくのに役に立ってくれるでしょう。</p><p>では、ここからコンピューターアーキテクチャの必要最小限の基礎を学び始めましょう:</p><p>コンピューターの最重要部品は (<strong>集積回路</strong>とも呼ばれている) <strong>マイクロチップ</strong>上にあります。</p><p>マイクロチップの機能は、<strong>トランジスター</strong>と呼ばれる電子部品に依存しています。トランジスターとは、特定のタイミングにおいてオフ (0) もしくはオン (1) している小さな電子スイッチのことです。1 つのマイクロチップには数百万、または数十億もの小さなトランジスターが組み込まれています。</p><p>ほとんどの最新のコンピューターは、<strong>中央演算処理装置</strong> (<strong>CPU</strong> - Central Processing Unit) と呼ばれるマイクロチップを備えています。CPU は、コンピューターの頭脳だと考えることができます。それはコンピューターが実行する複雑な計算や、論理的なタスクのほとんどを処理しています。</p><p>各 CPU は<strong>命令セット</strong>と呼ばれるものを備えています。これは、CPU が理解できるバイナリ形式 (0 と 1) で書かれた命令の集まりのことです。幸運なことに、ソフトウェア開発者としてこれらのことを気に掛ける必要はありません！それが抽象化の力なのです。</p><p>CPU が脳の論理的思考を担っているのであれば、一時的に、または長期的に情報を記憶できるメモリもあると便利です。</p><p>コンピューターは、プログラムの実行中にアクティブに使用される情報を記憶するために、<strong>ランダムアクセスメモリ (RAM)</strong> を「ワーキングメモリ」(作業記憶もしくは短期記憶) として備えています。</p><p>RAM は、複数のビットのデータを記憶するのに使用されている、<strong>メモリアドレス</strong>の集まりで構成されています。C のような古くからある言語では、プログラマーは、<strong>ポインタ</strong>と呼ばれる機能を使用してメモリアドレスを直接操作しますが、それは C よりもモダンな言語では、まれなことです。</p><p>最後に、ハードドライブという、誰もが必ず知っている部品について触れておきましょう。脳にたとえると、これは長期記憶にあたります。ハードドライブは、コンピューターの電源を切った後も持続するデータを記憶する、内部または外部デバイスです。</p><p>では、プログラミング言語の詳細について話を進める前に、データについての説明に少し時間をとります。ところで、<strong>データ</strong>という言葉は、正確には何を意味するのでしょうか？</p><p>大まかに言うと、テキストドキュメントや画像、動画、電子メール、ファイル、およびフォルダなどが思い浮かびます。これらは、ふだん私たちがコンピューター上で作成し保存している、ハイレベルな (抽象度が高い) データ構造です。</p><p>ただ、(CPU や RAM チップのような) コンピューターチップは、その内部では「画像」や「動画」が何であるかを認識しません。</p><p>チップから見ると、これらの構造すべてが、長い 1 と 0 が連続しているものとして保存されています。この 1 と 0 は<strong>ビット</strong>と呼ばれています。</p><p>一般的には、ビットは一度に、バイトとして知られている 8 つのセットで保存されます。バイトとは、<code>00000001</code>、<code>01100110</code>、<code>00001111</code> というように、単にビットが 8 つ連続したものです。このように情報を表現する方法のことを<strong>二進表現 (binary representation) </strong>と呼びます。</p><!--kg-card-begin: html--><h2 id="2-learn-how-programming-languages-work">2) プログラミング言語の仕組みについて学ぶ</h2><!--kg-card-end: html--><p>前のセクションの中で、ほとんどのコンピューターが CPU に依存しており、CPU が、特定の命令セットを 1 と 0 の形式で理解するということを説明しました。</p><p>つまり、理論的には、私たちは CPU に何をすべきかを伝えるコードを、CPU が理解できる、1 と 0 が長く連続してつながっている形式で記述できます。このようなバイナリ形式で記述された命令は<strong>機械語</strong>と呼ばれます。</p><p>これを扱うとなると、恐ろしいことになると感じませんか？ええ、たぶんそうでしょう。とはいえ私は、JavaScript、Python、および Java のような高水準プログラミング言語を主に使用してきたので、よくわかりませんが。</p><p><strong>高水準プログラミング言語</strong>は、人が読みやすいキーワードや文、および、とても簡単に誰もが学び、デバッグし、扱うことができる構文ルールを提供しています。</p><p>プログラミング言語は、私たち人間の脳が世界を知る方法と、コンピューターの脳 (CPU) が同じことを行う方法の間にあるギャップを埋める手段を提供します。</p><p>最終的には、私たちが書くコードは、CPU が理解できるバイナリ形式の命令 (機械語) に翻訳されなければなりません。</p><p>言語によりますが、コードは CPU によって実行できる機械語へと<strong>翻訳 (compile) </strong>または<strong>解釈 (interpret) </strong>されます。ほとんどのプログラミング言語は、この変換ステップを実行する、<strong>コンパイラ</strong>もしくは<strong>インタプリタ</strong>と呼ばれているプログラムを含んでいます。</p><p>いくつか例を挙げてみましょう - JavaScript と Python はインタプリタ型言語であり、一方で Java はコンパイラ型言語です。言語がコンパイラ型かインタプリタ型 (または、この 2 つの組み合わせ) かどうかは、開発者の利便性、エラー処理、性能、および他の領域と密接な関係がありますが、ここではそれらの詳細に立ち入るのは控えます。</p><!--kg-card-begin: html--><h2 id="3-understand-how-the-internet-works">3) インターネットの仕組みを理解する</h2><!--kg-card-end: html--><p>どの種類のプログラミングを志すにしても、コンピューターが相互に通信する仕組みを知っておくと、役に立つ場面に遭遇することになるでしょう。これは通常、インターネットを通して行われます。</p><p>インターネットは、接続されたコンピューターのグローバルな集合体にすぎません。いわば、グローバルネットワークです。このネットワーク内の各コンピューターは、互いに通信できるようにするために、ある一連のルールに同意しています。コンピューターにおいて、「通信」とはデータの移動を意味します。</p><p>前のセクションで説明したように、ウェブページ、画像、ビデオ、電子メールなど、すべての種類のデータは、どれも 1 と 0 で表すことができます。</p><p>したがってインターネットは、データの意味を保持したまま、1 と 0 を相互に転送できるコンピュータの非常に大きな集まりである、と考えることができます。インターネットは、デジタル伝送手段のひとつにすぎません。</p><p>ここで、インターネットが単なる巨大な会話の場であるとすれば、今度はその参加者を定義してみましょう。</p><p>まずは例え話です。ほとんどの人間の会話には少なくとも二人の参加者が必要です。たいていの場合、人が二人いて、準備ができていれば、片方の人が会話を開始し、もう片方の人が応答します。</p><p>インターネットにおいては、通信を開始するコンピュータは<strong>クライアント (client)</strong> と呼ばれます。返信または応答する側のコンピュータは<strong>サーバー (server)</strong> と呼ばれます。</p><p>例えば、ウェブブラウザーを開いて「www.google.com」にアクセスしたとします。この状況では、ウェブブラウザーがクライアントです。ひいては、自分の作業しているコンピューターをクライアントと考えることもできます。</p><p>さらに抽象的な意味では、あなたが通信を開始しているので、あなたがクライアントです。検索バーへ「www.google.com」と入力し &lt;エンター&gt; を押すことで、ブラウザーは、Google のコンピュータのひとつと通信を開始するように要求します。</p><p>この Google のコンピュータはサーバーと呼ばれます。これは、要求されている Google のウェブページをブラウザー内で表示するための、データを送ることによって応答します。それから、Google のウェブページが目の前に表示されるのです。このようなクライアント／サーバーの関係が、インターネットのすべてのデータ転送において利用されています。</p><!--kg-card-begin: html--><h2 id="4-practice-some-command-line-basics">4) コマンドラインの基本を練習する</h2><!--kg-card-end: html--><p><strong>コマンドライン</strong>は、一目見ただけでは威圧感があるかもしれません。これは、理解できないテキスト、数字、記号がスクロールする、謎めいたブラックスクリーンとして、たいていは悪意のあるハッカーか天才技術者の相棒という形で、映画の中にたびたび出てきます。</p><p>本当のところは、コマンドラインを使ったり理解するのに、特別な才能は必要ありません。実際には、マウス操作で快適に行っている多くのタスクと同じことを、コマンドラインを使って実行できます。</p><p>コマンドラインとマウスの大きな違いは、コマンドラインが主にキーボードからの入力を受け付けるところで、コツさえつかんでしまえば、入力スピードをかなり向上させることができます。</p><p>コマンドラインを使用すれば、フォルダの参照およびコンテンツの一覧表示、新しいフォルダの作成、ファイルの作成、移動、および削除、プログラムの実行など、他にもまだまだ多くのことが可能です。また、コマンドラインでコマンドを入力できるウィンドウは、<strong>ターミナル</strong>と呼ばれています。</p><p>ここからは、コマンドラインで作業している雰囲気をつかむために、基本的なナビゲーションコマンドの、短いチュートリアルを練習してみましょう。</p><p>ターミナルを開いたら、「自分がどこにいるのか」という疑問がまず浮かびます。(「Print Working Directory (ワーキングディレクトリを表示する)」の略である) <code>pwd</code> コマンドを使用すればそれがわかります。このコマンドは、ファイルシステムの中で、今自分がどのフォルダ内にいるのかを画面に表示してくれます。</p><p>では自分でも試してみてください:</p><h3 id="-">コマンドラインの使い方</h3><p>もし Mac を使用しているなら、ターミナルを開いてください。これは、本質的には Unix コマンドラインターミナルと同じものです。</p><p>Linux もしくは Unix のように、GUI (グラフィカルユーザーインターフェース - Graphical User Interface) を使用しないオペレーティングシステムを実行している場合は、コンピューターを起動した時に、デフォルトでコマンドラインが表示されます。使用している Linux のフレーバーもしくは Unix のオペレーティングシステムが、GUI を備えている場合は、手動でターミナルを開く必要があります。</p><p>では、プロンプトの後ろに <code>pwd</code> と入力し、&lt;エンター&gt; を押してください。するとコマンドラインが、今いるフォルダのパス (path) を出力します。</p><p>デフォルトでは、コマンドラインを開いた時のアクティブなフォルダは、ログインしているユーザーのホームディレクトリです。別の便利な場所から始めたい場合には、設定を変更できます。</p><p>便利なことに、チルダ (<code>~</code>) 文字を使用すれば、ホームディレクトリを参照できます。この先のいくつかの例の中でこの文字を使用します。</p><p>自分がどのフォルダの中にいるのかがわかったところで、<code>ls</code> コマンドを使用して、カレントディレクトリのコンテンツを一覧表示しましょう。<code>ls</code> コマンドは「List (一覧表)」の略です。</p><p><code>ls</code> と入力し &lt;エンター&gt; を押してください。するとカレントディレクトリに属しているコンテンツ (ファイルとサブフォルダ) が、画面に表示されます。</p><p>今度はこのコマンドを <code>ls -al</code> というように入力し、&lt;エンター&gt; を押して再実行してください。これで、ファイルサイズ、修正日、およびファイルパーミッションを含む、ディレクトリのコンテンツに関する先ほどよりも詳細な情報を取得できます。</p><p>今入力したコマンドの中のハイフンは、コマンドの動作を変更する、特定のフラグを設定するのに使用します。先ほどの場合は、ディレクトリの (隠しファイルを含む) コンテンツのすべてを一覧表示する -a フラグと、ファイルの詳細を追加表示する -l フラグを追加しました。</p><p>次は、「Make Directory (ディレクトリの作成)」の略である <code>mkdir</code> コマンドです。このコマンドを使用すれば、新しいフォルダを作成できます。では「testdir」という名前の新しいフォルダを作成してみましょう。</p><p><code>mkdir testdir</code> と入力し、&lt;エンター&gt; を押してください。それから、<code>ls</code> と入力して &lt;エンター&gt; を押してください。一覧の中に新しいディレクトリが確認できるはずです。</p><p>複数階層のディレクトリを一度に作成するには、<code>-p</code> フラグを使用して、<code>mkdir -p directory1/directory2/directory3</code> のように一連のディレクトリ全体を作成します。</p><p>もし、ひとつの場所にしか滞在できないなら、コマンドラインはあまり役に立ってくれません。そこで、ファイルシステム内の別のディレクトリに移動する方法を学びましょう。それを行うには、「Change Directory (ディレクトリの変更)」の略である、<code>cd</code> コマンドを使用します。</p><p>まず、<code>cd testdir</code> と入力し &lt;エンター&gt; を押してください。次に、<code>pwd</code> と入力し &lt;エンター&gt; を押します。ここでは、cd コマンド内で指定した「testdir」ディレクトリの中にいますよ、と出力に表示されることに注目してください。その中に入ってから確認しているのです！</p><p>今度は <code>cd ..</code> と入力して &lt;エンター&gt; を押してください。<code>..</code> は、親ディレクトリへ戻ることをコマンドラインに伝えています。</p><p><code>pwd</code> と入力し &lt;エンター&gt; を押してください。ここでは元のディレクトリに戻っていますよ、と出力に表示されることに注目してください。さかのぼってから確認したのです！</p><p>では次に、カレントディレクトリ内に新しい空のファイルを作成する方法を学びましょう。</p><p><code>touch newfile1.txt</code> と入力し &lt;エンター&gt; を押してください。<code>ls</code> コマンドを使用すれば、カレントディレクトリ内に新しいファイルが作成されているのを確認できます。</p><p>ここで、cp コマンドを使用して、あるフォルダから別のフォルダに、そのファイルをコピーしてみましょう。</p><p><code>cp newfile1.txt testdir</code> と入力し &lt;エンター&gt; を押してください。<code>ls</code> と <code>ls testdir</code> コマンドを使用すれば、カレントディレクトリ内にこの新しいファイルが残っており、「testdir」ディレクトリにそのファイルがコピーされているのを確認できます。</p><p>また、<code>mv</code> コマンドを使用して、コピーする代わりにファイルを移動させることもできます。</p><p><code>touch newfile2.txt</code> と入力し &lt;エンター&gt; を押して、新しいファイルを作成してください。次に、<code>mv newfile2.txt testdir</code> と入力し &lt;エンター&gt; を押して、そのファイルを「testdir」フォルダの中へ移動させます。</p><p><code>ls</code> と <code>ls testdir</code> コマンドを使用すれば、作成したファイルが「testdir」フォルダの中に移動しているのが確認できます (コピーではなく<em>移動</em>させたので、ファイルは最初に作成した場所にはもうありません)。</p><p>また、<code>mv</code> コマンドはファイル名の変更にも使用できます。</p><p>それを行うには、<code>touch newfile3.txt</code> と入力し &lt;エンター&gt; を押して、新しいファイルを作成してください。次に、<code>mv newfile3.txt cheese.txt</code> と入力し &lt;エンター&gt; を押して、ファイル名を更新します。<code>ls</code> コマンドを使用して、ファイル名が変更されているのを確認してみましょう。</p><p>最後になりますが、<code>rm</code> コマンドを使用すれば、ファイルとフォルダを削除できます。</p><p><code>rm cheese.txt</code> と入力し &lt;エンター&gt; を押して、ファイルを削除してください。<code>ls</code> コマンドを使用して、ファイルが削除されているのを確認してみましょう。</p><p><code>rm -rf testdir</code> と入力し &lt;エンター&gt; を押すと、今度は「testdir」ディレクトリとそのコンテンツを削除できます。<code>ls</code> コマンドを使用して、ディレクトリが削除されているのを確認しましょう。</p><p>ディレクトリを削除する際は、<code>-rf</code> フラグを使用する必要があることに注意してください。このフラグは、フォルダとそのすべてのコンテンツを強制的に削除します。</p><!--kg-card-begin: html--><h2 id="5-build-up-your-text-editor-skills-with-vim">5) Vim を使用してテキストエディタスキルを鍛える</h2><!--kg-card-end: html--><p>ここまでの間に、コマンドラインの基本について説明し、さらに、マウスを使用せずにファイルを扱う方法の例を、いくつか見てきました。</p><p>ファイルの作成、複製、移動、名前の変更、および削除を、コマンドラインから行う方法についてはわかりましたが、ターミナル内でテキストファイルの内容を編集する方法については、まだわかっていません。</p><p>コンピューターコードは、体系づけられた一連のファイルに保存されたテキストにすぎないので、ターミナル内でテキストファイルを扱うのは重要なことです。</p><p>もちろん、Microsoft Word (もしくは Sublime や Atom のようなよりコード向けのエディター) のような凝ったテキストエディタを使用して、コードを記述または編集することもできますが、そこまでは必要ではありません。通常は、コマンドを実行するために事前にターミナルを開いているため、たいていはターミナルがコードを書いたり編集するのに最も適している場所なのです！</p><p>ターミナル内でテキストファイルを扱うために特別に作られた、優れたテキストエディタがいくつかありますが、私は、<a href="https://www.freecodecamp.org/news/vimrc-configuration-guide-customize-your-vim-editor/">Vim と呼ばれるテキストエディタの基本を学ぶこと</a>をお勧めしています。</p><p>Vim は最も古くからあるテキストエディタであり、実績のある素晴らしいツールです。Vim とは「<strong><em>V</em></strong>i <em><strong>IM</strong></em>proved<strong>」の略であり、vi</strong> と呼ばれるツールの後を継ぐものです。</p><p>前述のとおり、Vim はターミナル内で直接動作するように作られているテキストエディターなので、別ウィンドウを開いて作業したり、マウスを使用したりする必要は全くありません。Vim には、キーボードのみを使用して、テキストコンテンツを簡便に作成し編集できる、一連のコマンドとモードが備わっています。</p><p>Vim を扱うには<a href="https://www.freecodecamp.org/news/how-not-to-be-afraid-of-vim-anymore-ec0b7264b0ae/">試行錯誤が多少は必要です</a>が、少し練習すれば、学んだスキルがコーディングのキャリアを通じて利益を生み出してくれます。</p><p>Vim は、多くのオペレーティングシステムにデフォルトでインストールされています。インストールされているかどうか確認するには、コマンドラインを開いて、<code>vim -v</code> と入力します。</p><p>ターミナル内で Vim が開いて、バージョンが表示されていれば、確認完了です！ (<code>:q!</code> と入力し &lt;エンター&gt; を押せば Vim を終了できる、ということを覚えておきましょう) 開かない場合は、システムにインストールする必要があります。インストールの詳細については、<a href="https://www.vim.org/">https://www.vim.org/</a> をご確認ください。</p><p>私見ではありますが、Vim の使用方法を最も早く、簡単に学ぶ方法は、Vim の組み込みチュートリアルである <strong><strong>VimTutor</strong> (VIM 教本) </strong>を使用することです。これを起動するには、自分のシステムに Vim がインストールされていることを確認してから、コマンドラインを開き、<code>vimtutor</code> (日本語版は <code>vimtutor ja</code> ) と入力して、&lt;エンター&gt; を押してください。</p><p>ここで解説に時間を割く理由などないほどに、このチュートリアルはとても優れています。なので、今から VIM 教本を実際に学習してみましょう！では後ほど次のセクションで。</p><p>VIM 教本を完了した後でまだ余力がある場合は、Vim を使い始める際に、<a href="https://initialcommit.com/blog/7-versatile-vim-commands">生産性を劇的に改善できる 7 つの Vim コマンド</a>をチェックしてみてください。</p><!--kg-card-begin: html--><h2 id="6-take-up-some-html">6) HTML をある程度習得する</h2><!--kg-card-end: html--><p>HTML (<strong>H</strong>yper<strong>T</strong>ext <strong>M</strong>arkup <strong>L</strong>anguage - ハイパーテキストマークアップランゲージの略) は、ウェブページの骨組みであると考えることができます。HTML は、表示される要素と、その順序を指定することによって、ページの構造を定義します。</p><p>あなたがブラウザー内で訪問してきたすべてのウェブページには、それに関連付けられている HTML が備わっています。ウェブページを訪問すると、そのウェブページをホストしているウェブサーバーは、HTML をブラウザーへ送信します。その後、ブラウザーは受信した HTML を解釈し、表示します。</p><p>ほぼすべてのウェブページには、タイトル、テキストコンテンツ、画像リンク、ナビゲーションリンク、ヘッダーとフッターなど、標準的なコンテンツのセットが含まれています。ページの構造を定義している HTML に、これらすべての情報が保存されています。</p><p>ところで、HTML は、厳密にはプログラミング言語ではないにもかかわらず、「HTML コード」と呼ばれることがよくあるということを、知っておいた方がよいでしょう。</p><p>後述しますが、プログラミング言語は、一連の操作を順番に実行するなど、<strong>何か処理を行う</strong>コードを記述できます。しかし、HTML が<strong>何かを処理するということはありません</strong>。HTML を実行したり動作させるわけではないのです。HTML はファイル内に記述されており、その内容がエンドユーザーに表示できるウェブブラウザーへ送信されるのを、待つだけなのです。</p><p>実は、HTML は基本的にはデータにすぎません。ウェブページの見た目を定義するデータでしかないのです。</p><p>では、HTML はどのように記述するのでしょうか？HTML では、ウェブページを構成する要素を明示するのに、標準的な (基本的にはただのラベルである) <strong>タグ</strong>のセットを使用します。それぞれのタグは山かっこを使用して記述します。</p><p>たとえば、<strong>タイトル</strong>タグは <code>&lt;title&gt;My Page Title&lt;/title&gt;</code>、<strong>段落 (パラグラフ)</strong> タグは <code>&lt;p&gt;たくさんのランダムなテキストコンテンツ。&lt;/p&gt;</code>、というように明示します。</p><p>各 HTML 要素は、開始タグと終了タグから成ります。開始タグとは、次のような山かっこで囲まれたタグラベルのことです。</p><p><code>&lt;tagname&gt;</code></p><p>これで新しい HTML タグが始まります。終了タグは本質的には同じものですが、終了タグであることを示すために、手前の山かっこ (小なり記号) の後ろに斜線を記述します。</p><p><code>&lt;/tagname&gt;</code></p><p>実際のページには、この 2 つのタグの間にあるテキストが、コンテンツとして表示されます。</p><p>ここからは、最も一般的に用いられているタグをいくつか見ていきましょう。まずは <code>&lt;html&gt;</code> タグです。このタグは HTML ページの始まりを明示します。これに対応する <code>&lt;/html&gt;</code> タグ (斜線に注目しましょう) は HTML ページの終わりを明示します。この 2 つのタグの間の、すべてのコンテンツがページの一部となります。</p><p>2 つ目は <code>&lt;head&gt;</code> タグです。ブラウザーがページを把握するための追加情報を明示するために、このタグを使用します。このタグの中のほとんどのコンテンツはユーザーへ表示されません。これに対応する <code>&lt;/head&gt;</code> タグは HEAD セクションの終わりを明示します。</p><p>先ほど、<code>&lt;title&gt;</code> タグが出てきましたね。これはブラウザーのタブに表示される、ウェブページのタイトルを指定します。このタグは <code>&lt;head&gt;...&lt;/head&gt;</code> セクション内に置く必要があります。</p><p>次は <code>&lt;body&gt;</code> タグです。このタグの中のすべてのコンテンツが、ウェブページの主なコンテンツを構成します。これら 4 つのタグを組み立てると、次のようになります:</p><pre><code class="language-html">&lt;html&gt;
    
    &lt;head&gt;
        &lt;title&gt;My Page Title&lt;/title&gt;
    &lt;/head&gt;
        
    &lt;body&gt;
        &lt;p&gt;A bunch of random text content.&lt;/p&gt;
    &lt;/body&gt;

&lt;/html&gt;
</code></pre><p>上記の簡素な HTML スニペットは、タイトルと、body のコンテンツに段落が 1 つ含まれている、シンプルなウェブページを表しています。</p><p>この例には、これまでのセクションでは言及していなかったポイントが含まれています。それは、HTML タグは互いに入れ子にできる、ということです。つまり、HTML タグは、他の HTML タグの内側に置くことができるのです。</p><p>HTML には、リッチな一連のコンテンツをウェブユーザーに提供できる、多くのタグが他にも用意されています。ここではそれらの詳細については取り上げませんが、参照用に短いリストを以下に示しておきます:</p><ul><li><code>&lt;p&gt;</code>: テキストの段落を新しい行から始めます。</li><li><code>&lt;h1&gt;</code>: ページの見出しであり、通常はページタイトルに用いられます。</li><li><code>&lt;h2&gt;</code>: セクションの見出しであり、通常はセクションのタイトルに用いられます。</li><li><code>&lt;hx&gt;</code>: 小見出しに用いられ、<em>x</em> には 3 から 6 の数字が入ります。</li><li><code>&lt;img&gt;</code>: 画像を配置します。</li><li><code>&lt;a&gt;</code>: リンクを配置します。</li><li><code>&lt;form&gt;</code>: ユーザーが記入し送信するための入力欄を含むフォームです。</li><li><code>&lt;input&gt;</code>: ユーザーが情報を入力するための入力欄で、通常は form 内に配置されます。</li><li><code>&lt;div&gt;</code>: コンテンツ区分要素で、いくつかの他の要素をグループ化して、間隔を調整するなどの目的で使用されます。</li><li><code>&lt;span&gt;</code>: もうひとつのグループ化要素で、通常は、他の要素内のテキストフレーズを囲み、テキストコンテンツの特定の部分だけに特別な書式を適用するのに使用されます。</li></ul><!--kg-card-begin: html--><h2 id="7-tackle-some-css">7) CSS にある程度取り組む</h2><!--kg-card-end: html--><p>CSS (カスケーディングスタイルシート - <strong>C</strong>ascading <strong>S</strong>tyle <strong>S</strong>heets) が備わっていないウェブページは、フロスティングのないケーキのようなものです。フロスティングがなくてもケーキはケーキですが、美味しそうには見えませんよね。</p><p>CSS によって、HTML の要素に、背景色、フォントサイズ、幅、高さなどの、スタイルプロパティを適用できます。</p><p>各々のスタイルプロパティは、スクリーン上における必要な表示効果をブラウザーに指示します。HTML と同じで、CSS は厳密にはプログラミング言語ではありません。何かしらのアクションを実行するのではなく、骨組みである HTML に、スタイルを適用できるようにしてくれます。</p><p>では、HTML 要素に CSS スタイルを関連付ける方法を見ていきましょう。この方法を解き明かす要素は、以下の 3 つです:</p><p><strong>CSS セレクター:</strong> スタイルを適用する HTML の 1 つまたは複数の要素を選択するのに使用されます。</p><p><strong>CSS プロパティ名:</strong> セレクターに対応している HTML 要素に適用する、特定のスタイルのプロパティの名前です。</p><p><strong>CSS プロパティの値:</strong> 適用するスタイルプロパティの値です。</p><p>これらの要素をまとめて、段落の文字色とフォントサイズを設定する例がこちらです:</p><pre><code class="language-css">p {
  color: red;
  font-size: 12px;
}
</code></pre><p>では、中かっこの手前から見ていきましょう。そこには CSS のセレクターがあります。上記の場合では、<code>&lt;p&gt;</code> (paragraph - 段落) の HTML タグを表す文字 <strong>p</strong> がこれにあたります。これは、ウェブページ上のすべての <code>&lt;p&gt;</code> タグに対して、中かっこ内に記述したスタイルが適用されることを意味しています。</p><p>今度は、中かっこ内に話題を移しましょう。そこには、指定した要素に適用するスタイルが記述されています。</p><p>コロンによって区切られた、CSS プロパティとその値のペアが確認できますね。コロンの左側がプロパティ (上記の場合は「color」と「font-size」) です。右側にはそのプロパティの値 (上記の場合は「red」と「12px」) があります。各プロパティ／値のペアの末尾にはセミコロンをつけます。</p><p>おそらく、あなたはこの動作を確認することができるでしょう。上記の CSS コードスニペットは、<code>&lt;p&gt;</code> タグ内に配置されているすべてのテキストを、赤色で、かつ文字サイズを 12 ピクセルで表示するよう、ブラウザーに指示します。</p><p>では、HTML ページに、これらの CSS スタイルを含むことを認識させるには、どうすればよいでしょうか？その答えは、<code>&lt;link&gt;</code> HTML タグを入れること、となります。CSS スタイルは、通常は HTML とは別のファイル (<strong>.css</strong> ファイル) 内に作成されます。つまり、適用するスタイルがあるということをブラウザーに伝えるには、何らかの方法で HTML ファイル内にそれらをインポートする必要があります。</p><p><code>&lt;link&gt;</code> 要素はこのような目的のために存在しています。外部の CSS ファイルをインポートするには、次のように HTML ファイルの <code>&lt;head&gt;</code> セクション内に <code>&lt;link&gt;</code> 要素を入れます:</p><pre><code class="language-css">&lt;head&gt;

    &lt;title&gt;My Page Title&lt;/title&gt;

    &lt;link rel="stylesheet" type="text/css" href="/home/style.css"&gt;

&lt;/head&gt;
</code></pre><p>この例では、<strong>href</strong> 属性で指定した CSS スタイルをインポートしており、<em>/home/style.css</em> はそのファイルパスです。</p><p>この後の 3 つのセクションでは、厳密にプログラミング言語と呼べる言語に (ついに) 入っていきます！</p><p>JavaScript、Python、Java の全般的な概要と、その 3 つの言語に共通する、重要なコーディングの概念をいくつか説明します。各言語の特徴とサンプルコードを比較対照していきますので、できれば 3 つの言語の基本を、総合的に理解するようにしてみてください。</p><!--kg-card-begin: html--><h2 id="8-start-programming-with-javascript">8) JavaScript でプログラミングを始める</h2><!--kg-card-end: html--><p>まず次の質問に回答することから始めましょう: HTML を使用してウェブページの骨組みを作り、CSS でページの見た目をきれいに整えることができたならば、なぜ JavaScript が必要になるのでしょうか？</p><p>技術的には必要ありません、というのが答えです。見た目のきれいな静的サイトを用意するだけで十分ならば、HTML と CSS だけで大丈夫でしょう。</p><p>ここでのキーワードは「静的」です。一方で、コンテンツを変更したり、複雑なユーザーとの対話処理を行ったりするような、動的な機能をウェブページに追加しようとする場合には、JavaScript を使用しなければなりません。</p><h3 id="javascript-">JavaScript とは何か？</h3><p>では、JavaScript とは一体何なのでしょうか？JavaScript は、特にウェブサイトおよびインターネットのために作られたプログラミング言語です。セクション 2 で説明しましたが、ほとんどのプログラミング言語はコンパイラ型かインタプリタ型であり、たいていプログラムは単独で動作する (スタンドアロンの) 環境内で実行されます。</p><p>JavaScript はこの点では少しユニークで、ウェブブラウザー内で直接実行できるように作られています。ウェブページ上で実行できる、一連の動作を表すコードを JavaScript で記述できるので、サイトをもっと動的なものにすることができるようになります。</p><p>JavaScript コードは、ファイル名の後に <code>.js</code> 拡張子が付けられているテキストファイル内に記述するか、もしくは HTML 内の <code>&lt;script&gt;</code> タグの中に直接記述できます。</p><p>長い間、JavaScript コードは、主にウェブブラウザー内で実行することしかできませんでした。ですがこのような考え方は、どこででも実行できるスタンドアロンな JavaScript 実行環境を作り出す、<strong>Node.js</strong> プロジェクトによって一変しました。</p><p>ブラウザー内 (つまりクライアント側) だけではなく、Node.js はさまざまなコンピューターのローカル環境にインストールすることができ、そこで JavaScript コードの開発や実行ができるようになります。また、ウェブサーバーにも Node をインストールできるので、JavaScript を単にウェブブラウザーのフロントエンドコードとして使用するだけでなく、アプリケーションのバックエンドコードとしても、使用することができるのです。</p><p>概要の説明は済んだので、ここからは JavaScript の基本をいくつか掘り下げてみましょう。</p><h3 id="javascript--1">JavaScript における変数と代入</h3><p>変数はおそらくプログラミングにおけるもっとも重要な概念を表しています。変数とは、特定の値を参照するのに使用する、名前もしくはプレースホルダーのことです。</p><p><strong>変数 (variable)</strong> は、保存されている値をプログラムの実行中に変更できる、という意味を含んでいます。</p><p>変数には、数値、文字列、リスト (配列)、および後ほど詳しく説明する他のデータ構造を保存できます。</p><p>あらゆるプログラミング言語が変数を使用しますが、構文は言語によって異なります。</p><p>変数は、コードの別の場所からでもその値を参照できるので便利です。そうすることで、必要に応じて変数の値をチェックしたり、その値の変化に応じて異なる処理を実行したりできます。</p><p>JavaScript では、<code>let x;</code> というように、<code>let</code> キーワードを使用して変数を宣言します。</p><p>この例は、x をコード内で使用できる変数として宣言しています。セミコロンを行末に加えていることに注目してください。JavaScript (と、他の多くの言語) では、セミコロンでコードの各文の終わりを明示します。</p><p>変数 <em>x</em> の作成が済んでいれば、<code>x = 10;</code> のように、<strong>代入演算子</strong>とも呼ばれる等号 (=) を使用して、その変数に値を代入できます。</p><p>この例では、数値 10 を <em>x</em> という名前の変数に代入しています。これにより、コード内の別の場所で <em>x</em> を使用すると、それが値 10 に置き換えられます。</p><p>次のようにして、変数の宣言と代入の両方を 1 行で行うこともできます:</p><pre><code class="language-javascript">let x = 10;
</code></pre><h3 id="javascript--2">JavaScript におけるデータ型</h3><p>直前のセクションで、整数 (正の整数) の値を <em>x</em> という名前の変数に格納しました。変数には<strong>浮動小数点数</strong>として知られている、小数も格納できます。たとえば、<code>let x = 6.6;</code> と記述できます。</p><p>変数に格納できる値のいろいろな型のことを、<strong>データ型</strong>といいます。ここまでは、数値型 (整数と浮動小数点数) しか出てきませんでしたが、それではデータ型の中のひとつを扱っただけにすぎません。変数には、テキストデータも同じように格納できるのです。</p><p>コーディング用語では、文字のまとまりのことを<strong>文字列 (String)</strong> といいます。文字列値は、次のように一重または二重引用符で囲むことで、変数 x に格納できます:</p><pre><code class="language-javascript">let x = 'Hello there!';

let y = "Hey bud!";
</code></pre><p>次に説明するデータ型は<strong>論理型 (Boolean)</strong> です。論理型は、<code>true</code> もしくは <code>false</code> のどちらかの値を取ることができます。なお、この 2 つの値はすべて小文字でなければなりません。JavaScript において、true と false は論理型変数の値に使われる専用のキーワードです。次のように使用されます:</p><pre><code class="language-javascript">let x = true;

let y = false;
</code></pre><p><code>true</code> と <code>false</code> が、文字列の時のように引用符で囲まれていないことに注目してください。ここでもし引用符で囲んでしまうと、値は文字列型となり、論理型ではなくなります。</p><p>論理型は、次のセクションで学ぶ、条件文 (if/else 文) などのプログラムのフロー制御によく使用されます。</p><h3 id="javascript--3">JavaScript におけるプログラムのフロー制御文</h3><p>変数と JavaScript のデータ型の基本を理解できたところで、それらを使ってできることを、いくつか見ていきましょう。</p><p>変数を用いて何を行うのかについて、コードの中で指示しなければ、変数は役に立ちません。そこで、変数を用いた処理を実行するために、<strong>文 (statement)</strong> を使用します。</p><p>文とは、定義済みの変数の値などをもとに処理を実行する、コードの中の特別なキーワードのことです。文によって、プログラムの論理の流れを定義でき、プログラムの動作を決めるさまざまな便利な処理を実行できます。</p><h4 id="if-else-">If / Else 文</h4><p>では、最初に <code>if</code> 文について説明します。<code>if</code> 文は、条件が満たされた (true である) 時だけ、処理を実行するようにしてくれます。使い方はこちらです:</p><pre><code class="language-javascript">let x = 10;

if ( x &gt; 5 ) {
    console.log('X is GREATER than 5!');
} else {
    console.log('X is NOT GREATER than 5!');
}
</code></pre><p>まず、<em>x</em> という名前の変数を定義し、その値を 10 に設定します。その次に <code>if</code> 文が記述されています。キーワード <code>if</code> の後ろには、評価される条件が入った、一組の丸かっこがあります。この例では、<code>x &gt; 5</code> が条件です。<em>x</em> は 10 と等しい、と定義してあるので、この条件は true と評価されます。</p><p>丸かっこ内の条件が true なので、中かっこの間に記述されているコードが実行され、文字列「X is GREATER than 5!」が画面に表示されるのを確認できます (ここでは <code>console.log()</code> の意味には触れず、単にそれが、丸かっこ内の値を画面に表示する、ということだけ理解していただければ大丈夫です)。</p><p>同じサンプルコードの中には、<code>else</code> 文も含まれていますね。これは、条件が <code>false</code> と評価された場合に、その後ろの中かっこの間のコードを実行します。</p><h4 id="while-">While ループ</h4><p>次に説明する文の種類は、<strong>while ループ</strong>です。ループを使用することで、コードを何度もコピー＆ペーストしなくても、コードブロックを必要な回数だけ繰り返し実行できるようになります。</p><p>たとえば、ある文を 5 回画面に表示させる場合を考えてみましょう。これは次のようにして行うことができます:</p><pre><code class="language-javascript">console.log('とても重要なメッセージです!');
console.log('とても重要なメッセージです!');
console.log('とても重要なメッセージです!');
console.log('とても重要なメッセージです!');
console.log('とても重要なメッセージです!');
</code></pre><p>5 つのメッセージを表示するだけなら、これでも問題ないかもしれませんが、100 個や 1000 個ではどうでしょうか？何回もコードを繰り返し実行してくれる、よい方法が必要ですよね。ループは、それを可能にしてくれます。コーディング用語では、何回もコードを反復して実行することを、<strong>イテレーション (iteration)</strong> といいます。</p><p>次の <code>while</code> ループでは、条件が true である限り、その後ろのコードブロックを実行し続けます:</p><pre><code class="language-javascript">let x = 1;

while ( x &lt;= 100 ) {
    
    console.log('とても重要なメッセージです!');
    
    x = x + 1;
    
}
</code></pre><p>この例では、<em>x</em> を値 1 で初期化しています。次に、<code>while</code> ループを記述しています。<code>if</code> 文と同様に、条件が入った一組の丸かっこがありますね。この場合は、<code>x &lt;= 100</code> が条件です。<em>x</em> が 100 以下であれば、条件は <code>true</code> と評価されます。</p><p>その後ろの中かっこ内に、実行するコードブロックが記述されています。最初にコンソールにメッセージを表示します。次に、<em>x</em> を 1 ずつインクリメントします。</p><p>このタイミングで、ループは条件を再評価し、結果が <code>true</code> のままであるか確認します。1 回目のループ実行時に、変数 <em>x</em> は 1 インクリメントされているので、現在は値 2 を保持しています。2 は 100 以下なので、条件は変わらず <code>true</code> と評価されます。</p><p>ループ内のコードを繰り返し実行しながら、<em>x</em> の値は 101 になるまでインクリメントされます。そしてこの時点で、<em>x</em> が 100 より大きくなり、条件は <code>false</code> と評価され、ループ内のコードは実行されなくなります。</p><h3 id="html-script-">HTML の &lt;script&gt; タグについて</h3><p>これで JavaScript の紹介は済んだので、今度は JavaScript コードのファイルを HTML ページに追加する方法について説明します。その方法とは、これまでに説明していなかった、<code>&lt;script&gt;</code> タグという HTML タグを使用することです。</p><p>これは、CSS ファイルを HTML に追加するのに使用した <code>&lt;link&gt;</code> 要素と似ていますが、<code>&lt;script&gt;</code> 要素は主に JavaScript のために使用します。</p><p>例えば先ほど説明した JavaScript のサンプルコードの一つを、HTML ファイルと同じフォルダ内の、<code>customscript.js</code> という名前のファイルに保存したとしましょう。この場合、HTML の <code>&lt;head&gt;...&lt;/head&gt;</code> セクション内に以下のタグを追加することで、この JavaScript ファイルを HTML に追加できます:</p><pre><code class="language-html">&lt;script type="text/javascript" src="customscript.js"&gt;&lt;/script&gt;
</code></pre><p>これにより、JavaScript コードがファイルから読み込まれ、ブラウザー内にウェブページを表示する際に実行されます。</p><p>JavaScript のスキルに慣れてきたら、<a href="https://www.freecodecamp.org/japanese/news/javascript-projects-for-beginners/">こちらの初心者向けの楽しいプロジェクトをいくつか作成しながら</a>練習してみましょう。</p><!--kg-card-begin: html--><h2 id="9-continue-programming-with-python">9) Python でプログラミングを継続する</h2><!--kg-card-end: html--><p>JavaScript の基本について学んだところで、別のプログラミング言語である Python に飛び込んでみるのも有意義なことです。</p><p>多くのプログラミング言語は、変数、算術演算子、if/else 文、ループ、関数などを含む、似通った一連の機能を提供しています。</p><p>同じような機能を、別のプログラミング言語で実装する方法を調べてみると、役に立つことがあります。たいてい考え方はほとんど一緒ですが、構文 (コードを記述する上でのきまり) は言語によって異なります。</p><h3 id="python-">Python とは何か？</h3><p>では Python の予備知識について少し説明するところから始めます。JavaScript のように、Python は実行速度よりも開発しやすさを優先している、高水準プログラミング言語です。</p><p>初心者が学ぶのに最適な言語のひとつが Python であると、私は考えています。その構文は、簡素かつ直感的であり、Python はオープンソースとビジネスの世界で、とても人気のある言語です。</p><p>この記事の前の方で、コンパイラ型言語とインタプリタ型言語について、対比しながら説明しました。Python はインタプリタ型言語です。Python のプログラムを実行する時には、<strong>Python インタプリタ</strong>が、マシン上でコードを一行ずつ逐次的に読み込んで実行します。</p><p>この点が、コンパイラ型言語と異なります。コンパイラ型言語では、最初にコンパイラを使用してコードを最適化された形式 (実行ファイル) に変換し、その後で変換されたコードを実行します。</p><p>JavaScript とは違い、Python はウェブブラウザー内で直接実行されるように作られてはいません。Python は便利な<em>スクリプト言語</em>であり、通常はユーザーのローカル環境で実行される、任意のタスク用のコードを記述するために使用されます。</p><p>Python コードは、Python インタプリタがインストールされているコンピュータであれば実行できます。Python は現在も一般的に使用されているスクリプト言語ですが、データサイエンスやサーバーサイドアプリケーションにも広く使用されています。</p><h3 id="python--1">Python における変数と代入</h3><p>JavaScript と同じように、Python でも変数を定義できます。Python では、必要に応じて、次に示すように等号を使用して変数を作成し、値を代入します:</p><pre><code class="language-python">x = 10
y = "cheese"
</code></pre><p>変数を定義する構文において、Python と JavaScript の間には 2 つの違いがあります。Python では、<code>let</code> キーワードは必要ありませんし、行末にセミコロンを付ける必要もありません。</p><p>Python は、空白またはインデント (字下げ) に基づく、一連の構文規則を使用します。これによって、セミコロンのような行の終了文字をつけたり、中かっこを使用してブロックスコープを定義する必要がなくなります。</p><h3 id="python--2">Python におけるデータ型</h3><p>Python には、変数に代入できるデータ型一式も備わっています。これには、整数、浮動小数点数 (小数)、文字列、リスト、辞書が含まれます。</p><p>整数、浮動小数点数、および文字列は、本質的には JavaScript の対応するものと同じですから、同じ説明をここでは繰り返しません。</p><p>Python において、論理値型は JavaScript のものととても似ていますが、True と False キーワードは大文字で始めなければならないという点が異なります:</p><pre><code class="language-python">x = True

y = False
</code></pre><h3 id="--1">プログラムのフロー制御文について</h3><p>JavaScript と同じように、Python にも一連のフロー制御文が備わっていますが、構文がわずかに異なります。</p><h4 id="if-else--1">If / Else 文</h4><p>JavaScript のセクションで説明した <code>if/else</code> の例を、Python で記述すると次のようになります:</p><pre><code class="language-python">x = 10

if ( x &gt; 5 ):
    print('X is GREATER than 5!')
    
else:
    print('X is NOT GREATER than 5!')
</code></pre><p><em>x</em> という名前の変数を定義して、その値を 10 に設定し、それから <code>if</code> 文が続いています。丸かっこ内の条件は <code>True</code> と評価されるので、<code>if</code> 文の後のインデントされたコードが実行され、画面に「X is GREATER than 5!」が表示されるのを確認できます。</p><p>Python では、<code>print()</code> 関数を使用して情報を画面に表示します。</p><p>また、<code>else</code> 文にも注目してみましょう。この文は、<em>x</em> の値を評価している条件が <code>False</code> である場合に、先ほどとは別の文字列を画面に表示します。</p><p>この記事の前の方で説明した JavaScript のコードと、すぐ上の Python のコードの間には、2 つの大きな違いがあります。Python では、<code>if</code> 文のブロックの始まりを示すために、中かっこの代わりにコロンが使用されます。</p><p>加えて、Python では <code>print()</code> 関数の前のインデントが重要です。JavaScript では、中かっこを使用してコードブロックを明確に記述したり、セミコロンを使用して文の終わりを示したりするので、文の間にあるインデントまたは空白についてあまり考慮する必要はありません。ところが、この Python の例では、セミコロンも中かっこも記述されていないのです！</p><p>なぜならば、実は Python では空白と改行文字をもとに、文の終わりやコードブロックを認識しているからです。</p><p>コロンは、<code>if</code> ブロックの始まりを Python インタプリタに伝えています。<code>if</code> ブロックを構成しているコードをインデントしています (1 タブ = 4 スペース が通例になっています) が、これは、そこから先が <code>if</code> ブロックの一部であることを Python インタプリタに理解させるために必要なことです。その後にインデントされていない行が来ると、それが <code>if</code> ブロックの終わりを表します。</p><h4 id="while--1">While ループ</h4><p>次は、Python のループについて説明します。Python の <code>while</code> ループも、本質的には JavaScript のセクションで解説したものと同じですが、以下のように、Python の構文を使用します:</p><pre><code class="language-python">x = 1

while ( x &lt;= 100 ):
    print('とても重要なメッセージです!')
    x = x + 1

print('ここはループの中ではありません！')
</code></pre><p>この <code>while</code> ループと、JavaScript バージョンとの違いは、次の通りです:</p><ul><li>変数の定義を行っているコードから <code>let</code> を削除しています。</li><li>行末のセミコロンを削除しています。</li><li>中かっこをコロンに置き換えています。</li><li>ループ内のコードをタブを使って確実にインデントさせています。</li></ul><p>インデントされていない行は、ループの一部ではないので、繰り返し実行されない、ということを示すために、上記の例では、ループの外側で追加のメッセージを表示しています。</p><p>ここで、新米パイソニスタのために書かれた、<a href="https://initialcommit.com/blog/zen-of-python">禅 オブ Python (the Zen of Python)</a> に一度目を通してみることをお勧めします。これは、Python 的なコードを記述するための、20 個のゆるい規則のリストです。</p><p>Python の基本に慣れてきたら、<a href="https://www.freecodecamp.org/news/python-projects-for-beginners/">こちらの初心者向けの楽しい Python プロジェクトをいくつか作成してみましょう</a>。</p><!--kg-card-begin: html--><h2 id="10-further-your-knowledge-with-java">10) Java で知識を深める</h2><!--kg-card-end: html--><p>2 つの高水準プログラミング言語を扱ってきましたが、さらにもうひとつ Java を掘り下げてみましょう。</p><p>インタプリタを使用して、リアルタイムでソースコードを実行する JavaScript や Python とは違い、Java はコンパイラ型言語です。つまり、Java のソースコードをコンピューターが理解できる形式に変換するには、(インタプリタではなく) コンパイラを使用します。</p><p>ほとんどのコンパイラは、機械語でできた 1 つ以上の実行ファイルを生成します。これは、特定のオペレーティングシステムとハードウェアプラットフォームですぐに実行できる形式に、ソースコードからコンパイルされたものです。</p><p>ただ、Java は少し変わっていて、Java ソースコードを、<strong>バイトコード</strong>と呼ばれる中間コードに変換します。これは他のほとんどのコンパイラ型言語が作成する機械語とは異なります。Java バイトコードは、<strong>Java 仮想マシン (JVM - Java Virtual Machine)</strong> と呼ばれるものによって実行することを意図して作られています。</p><p>JVM は、コンピューターにインストールするプログラムだと考えることができます。このプログラムが、Java バイトコードを実行することによって、Java プログラムが動作します。だれかが「コンピューターに Java がインストールされているかどうか」について話しているときは、たいてい <strong>JVM</strong> がコンピューターにインストールされているかどうかを尋ねているのです。</p><p>JVM は、前の章で説明したインタプリタに似た機能を果たしています。ただし、入力としてソースコード (これは .java ファイル内に保存されています) を読み込む代わりに、コンパイルされたバイトコードを読み込みます。</p><p>この仕組みの利点は、特定のオペレーティングシステムとプラットフォームでコンパイルされたバイトコードを、JVM がインストールされている他のどのプラットフォームでも実行できるようにしてくれるところです。</p><p>たとえば、Windows オペレーティングシステムを実行しているコンピューターで記述された、Java コードのファイルがあり、それがバイトコードへコンパイルされたとしましょう。このバイトコードは、Windows、macOS、Linux などを含む、どのプラットフォームの JVM でも実行できます。</p><p>これは、他のプログラミング言語には当てはまりません。コンパイルされた実行ファイルはほとんどの場合、コンパイルされた環境内でのみ実行できます。</p><h3 id="java-">Java における変数と代入</h3><p>これまで説明してきた言語 (Python と JavaScript) と Java の、大きく異なる点のひとつは、Java が<strong>静的型付け</strong>言語であることが挙げられます。</p><p>つまり、プログラムのコンパイル時に、変数のデータ型がわかっていなければならないので、あらかじめ型の設定を行う必要があります。</p><p>Java コードの中で変数を作成するときは、整数 (Integer)、文字列 (String) など、毎回必ずその変数のデータ型を明確に定義しなければなりません。これは変数の<strong>宣言</strong>と呼ばれます。</p><p>いったん変数のデータ型が宣言されると、プログラムの実行中は、宣言されたデータ型の値しかその変数は保持できません。</p><p>この点が、<strong>ランタイム</strong> (プログラムの実行中) に変数のデータ型が設定される、JavaScript や Python と大きく異なっています。このことから、JavaScript や Python のような言語は<strong>動的型付け</strong>言語と呼ばれています。動的型付け言語では、ソースコード内で変数のデータ型を明示せずに、任意の型の値を臨機応変に変数へ再代入できます。</p><p>Java では、次の構文を用いて変数を作成します:</p><pre><code class="language-java">Datatype name = value;
</code></pre><p>この <code>Datatype</code> が、整数 (Integer) や文字列 (String) など、変数に格納される値のデータ型です。次に、定義する変数名を <code>name</code> で表し、これをコードの中で使用します。<code>value</code> は、変数に代入する実際の値です。JavaScript と同じように、Java の文はすべてセミコロンで終わるということに注意してください。</p><h3 id="java--1">Java におけるデータ型</h3><p>Java では、基本的な組み込みデータ型は<strong>プリミティブ</strong>型と呼ばれます。Python や JavaScript のような高水準言語についてここまで学習した内容を踏まえると、見覚えがあると感じるでしょう。主なプリミティブ型を以下に示します:</p><ul><li>整数型 <code>int</code>: −2,147,483,648 から 2,147,483,647 までの整数を格納できます。</li><li>浮動小数点型 <code>float</code>: 負の値は -3.4×10<sup>38</sup> から -1.4×10<sup>-45</sup>、正の値は 1.4×10<sup>-45</sup> から 3.4×10<sup>38</sup> の間の小数を格納できます。</li><li>論理型 <code>bool</code>: <code>true</code> もしくは <code>false</code> の、2 つの論理値のいずれかを格納できます。</li></ul><p>プリミティブ型は (short、long、byte、double など) 他にもいくつかあるということに注意が必要ですが、それらは上記のものほど頻繁に使用されないので、ここでは触れません。プリミティブ型の変数を初期化する方法はこちらです:</p><p>整数型: <code>int x = 100;</code></p><p>浮動小数点型: <code>float pi = 3.14;</code></p><p>文字型: <code>char middleInitial = 'T';</code></p><p>論理型: <code>bool isHuman = true;</code></p><p>ここで再度お伝えしたいのですが、データ型は一度宣言されると、その変数は特定のデータ型の値しか保持できません。</p><p>たとえば、1 文字の値 (character) を、整数型で宣言された変数に格納しようとすると、エラーが返ってきます。上記の例の整数型変数 <em>x</em> に、文字 'S' は代入できないのです。</p><p>では次に、文字、数値、および記号の連なりをテキストデータとして表す、文字列型について説明します。</p><p>Java の文字列型はプリミティブ型ではありません。つまり、文字列型は小さなパーツから構築されています。文字列を格納する変数を宣言するには、文字列型を使用し、変数に代入する値を二重引用符で囲みます:</p><pre><code class="language-java">String name = "Harry Potter";
</code></pre><h3 id="java--2">Java におけるプログラムのフロー制御文</h3><p>JavaScript と同じように、Java は <code>if</code> 文、ループ、および関数のコードブロックの定義に中かっこを使用します。ここからは、前の章で示したサンプルコードと同じ制御文をもつプログラムについて調べ、Java の構文を使用するために、それらを更新します。</p><h4 id="if-else--2">If / Else 文</h4><p>こちらが前の章のサンプルコードを反映した Java の if/else 文です:</p><pre><code class="language-java">int x = 10;

if ( x &gt; 5 ) {
    System.out.println("X is GREATER than 5!");
} else {
    System.out.println("X is NOT GREATER than 5!");
}
</code></pre><p>この基本的な <code>if</code> 文の例は、JavaScript の場合のサンプルコードとほとんど同じです。違いは、<em>x</em> のデータ型を int と宣言していることと、メッセージを画面に表示するために <code>console.log()</code> の代わりに <code>System.out.println()</code> を使用していることだけです。</p><p>次に、Java におけるループに話題を移しましょう。Java と JavaScript の構文は非常に似ているので、Java の <code>while</code> ループは、JavaScript の例で見たものと基本的には同じです:</p><pre><code class="language-java">int x = 1;

while ( x &lt;= 100 ) {

    System.out.println("とても重要なメッセージです!");
    
    x = x + 1;
    
}
</code></pre><p>この <code>while</code> ループは、指定したメッセージを 100 回画面に表示します。</p><p>以上で、特定のプログラミング言語を説明するセクションを終了します。同じ概念のセットを 3 つの言語について説明してきたので、ちょっと聞き飽きたかもしれませんが、これらの基本的で不可欠な考え方をしっかり理解するのに役に立つことを願っています。</p><p>以降は、ここで取り上げない限りはすぐに学び始めない可能性のある、いくつか中間的なテーマで記事を締めくくります。</p><p>まずは、Git と呼ばれる欠かせないコラボレーションツールについて説明します。次に、データベース内へデータを保存し、アクセスする方法を学びます。その後で、ウェブ開発フレームワークについて少し触れてから、最後にパッケージマネージャーにスポットを当てます。</p><!--kg-card-begin: html--><h2 id="11-track-your-code-using-git">11) Git を使用してコードを追跡する</h2><!--kg-card-end: html--><p>Git は、現在使用されているものの中で、最も有名なバージョン管理システム (VCS) です。Git によって、多くの開発者が協働してソフトウェアを作れるようになります。このセクションでは、Git について、その仕組みと基本的なコマンドの使用方法について学びます。</p><p>Git の学習に入る前に、ほとんどのプログラミングプロジェクトに共通する概念について、いくつか具体的に見ていきましょう。</p><p>ソフトウェアプロジェクトを構成しているディレクトリとファイルのフルセットは、<strong>コードベース</strong>と呼ばれています。プロジェクトのディレクトリツリー内の、最上位のフォルダが<strong>プロジェクトルート</strong>です。ファイルは、プロジェクトルート内に直接含められたり、複数階層のフォルダに組織されたりします。</p><p>コードベースは、テストやデプロイの準備が整ったときに、コンピューター上で実行できるプログラムに<strong>ビルド</strong>されます。<strong>ビルドプロセス</strong>には、人間が書いたコードを、コンピューターのプロセッサによって実行できるファイルに変換する、1 つ以上のステップが含まれます。</p><p>コードは一度ビルドされると、Linux、macOS、Windows などの特定のオペレーティングシステムで、いつでも実行できるようになります。</p><p>長い時間をかけて、開発者はプロジェクトコードを更新して、新しい機能を追加したり、バグを修正したり、セキュリティ更新プログラムを実装したりします。開発者がソフトウェアプロジェクトを変更する方法は、一般的には以下の 3 つが挙げられます:</p><ol><li>新しいファイルとフォルダをプロジェクトに追加する</li><li>既存のファイルまたはフォルダ内のコードを編集する</li><li>既存のファイルまたはフォルダを削除する</li></ol><p>新しい機能が追加されプロジェクトが大きくなるにつれて、ファイルとフォルダの数 (およびその中にあるコードの量) は増えていきます。大規模なプロジェクトは、何百、何千というファイルに何百万行ものコードが含まれるような規模まで拡大することもあります。</p><p>この拡大を後押しするために、大規模なプロジェクトのチームはたいてい増員します。大きなソフトウェアのプロジェクトでは、何百人、あるいは何千人もの開発者が協力して働いています。</p><p>これは次の疑問を投げかけます:「そのような多くの<em>開発者が (世界中に散らばっている可能性さえあるのに) どのようにして 1 つのプロジェクトに協力して取り組めるように、ソフトウェアプロジェクトのコードを追跡しているのでしょうか？</em>」</p><p>コードの変更内容、影響を受けたファイルもしくはフォルダ、および各変更が誰によって行われたのかについて正確に追跡する方法が、開発チームには必要です。また各開発者は、他のすべての開発者による変更内容を取得できなければなりません。</p><p>このプロセスは、<strong>バージョニング</strong>または<strong>バージョン管理</strong>と呼ばれています。開発者は、<strong>バージョン管理システム (Version Control Systems - VCS)</strong> と呼ばれる特殊なツールを使用して、ソフトウェアプロジェクトのバージョンを追跡し、管理し、共有しています。現在活発に使用されており、人気のあるバージョン管理システムを、いくつか以下に示します:</p><ul><li>Git</li><li>Subversion (SVN)</li><li>Mercurial (Hg)</li></ul><p>ただ、今のところは Git が頼れる VCS として王座についています。Git は今や世界中の政府機関、企業、およびオープンソースコミュニティで使用されている、最も有名な VCS です。</p><p>Git は GitHub や Bitbucket のような、有名なウェブベースの VCS プラットフォームの中核を成しています。Git は、どの有能な開発者にとっても、習得しておくべき必要不可欠なツールなのです。</p><h3 id="-git-">基本的な Git コマンド</h3><p>Git は<strong>リポジトリ</strong>と呼ばれているものの中に、ソフトウェアプロジェクトに関する情報を作成、保存します。Git リポジトリとは、単なるコンピューター上の隠しフォルダであり、Git はそれを用いてソフトウェアプロジェクト内のファイルに関するデータを保存します。</p><p>私たちが扱うたいていのソフトウェアプロジェクトは、プロジェクトに関する情報を保存するための Git リポジトリをそれぞれ持っています。このようにして、1 台のコンピューター内のさまざまなプロジェクトに関するコードは、個別に追跡されます。</p><p>コンピューターに Git リポジトリを作成する方法は主に 2 つあります。1 つ目は、新しい Git リポジトリを、ファイルシステムの既存のフォルダ内に作成するという方法です。</p><p>これを行うには、単にコマンドラインを開いて、デスクトップのようなどこか便利な場所に新しいフォルダを 1 つ作成し、そのフォルダの中に移動します:</p><pre><code class="language-sh">cd ~/Desktop

mkdir testgit
 
cd testgit/
</code></pre><p>これで新しいフォルダを作成してその中に移動できたので、以下のコマンドを使用して、新しい Git リポジトリを作成して初期化できます。</p><pre><code class="language-sh">git init
</code></pre><p>コマンドを入力すると、次のような出力が表示されるはずです:</p><pre><code class="language-sh">Initialized empty Git repository in /Users/me/Desktop/testgit/.git/
</code></pre><p>実行できる Git コマンドはすべて <code>git</code> という単語から始まり、その後にスペースを 1 つ入れて、実行する特定のコマンドが続きます。Git コマンドの後にフラグや引数を追加することもあります。</p><p><code>git init</code> コマンドは、<code>.git</code> という名前の隠しフォルダを、カレントディレクトリ内に作成します。このフォルダが上述の Git リポジトリです。コマンド <code>ls -al</code> を実行すれば、このフォルダが確認できます。</p><p>コンピューターに Git リポジトリを追加する 2 つ目の方法は、Bitbucket もしくは GitHub のようなところから、リポジトリをダウンロードすることです。</p><p>Bitbucket と GitHub とは、コンピューターにダウンロード可能なオープンソースプロジェクトを、ユーザーがホストできるウェブサイトのことです。</p><p>Bitbucket もしくは GitHub で、面白そうなプロジェクトを見つけて目を通していると、Clone または Code というラベルの付いたボタンがあります。このボタンを押すと、コマンドラインターミナル内にコピー＆ペーストできるコマンドや、URL が表示されます。以下のような形式になっているでしょう:</p><pre><code class="language-sh">git clone https://jacobstopak@bitbucket.org/jacobstopak/baby-git.git
</code></pre><p><code>git clone</code> コマンドは、コンピューターの新しいフォルダの中に、指定した URL からリポジトリをダウンロードします。この URL は、上の例のようなウェブ URL でもいいですし、次のような SSH URL にもできます:</p><pre><code class="language-sh">git clone git@bitbucket.org:jacobstopak/baby-git.git
</code></pre><p>git clone コマンドを実行すると、新しく作成されたフォルダが確認できるはずです。ダウンロードしたプロジェクトを構成している、すべてのファイルとサブフォルダを、その中で見ることができます。</p><p>では次に、<code>git add &lt;filename.ext&gt;</code> コマンドについて説明します。<code>git add</code> コマンドは、Git にどのファイルを追跡するのかを伝えたり、既に追跡されているファイルの変更を、Git の <code>staging area</code> に追加するために使用されます。</p><p>新しいファイルまたは変更されたファイルをステージできたら、<code>git commit -m "Commit message"</code> を使用して、それらをリポジトリにコミットできます。これによって、Git リポジトリにステージされたすべてのファイル内の変更が保存されます。</p><p>ワーキングディレクトリの現在の状態と、プロジェクトのコミット履歴を見直すには、<code>git status</code> と <code>git log</code> コマンドを使用すると便利です。</p><p>ここでは Git のほんの一部だけしか説明していません。<a href="https://initialcommit.com/blog/Git-Cheat-Sheet-Beginner">Git にはさらに多くの基本的なコマンドが備わっており</a>、それらに慣れるのはとても有益なことです。</p><!--kg-card-begin: html--><h2 id="12-store-data-using-databases-and-sql">12) データベースと SQL を使用してデータを保存する</h2><!--kg-card-end: html--><p>データベースとは、膨大な量のデータの保存、更新、取得、削除を、効率よく行えるように、特別に設計されたプログラムのことです。簡単に言うと、データベースはテーブルの集まりのコンテナと考えることができます。</p><p>もしかしたら、あなたは Microsoft Excel のテーブルを使ったことがあるかもしれませんね。テーブルとは、データを含む列と行の集まりに過ぎません。データベース内にテーブルを設定することで、プログラムが適切に処理しなければならない情報を保存できます。</p><p>JavaScript、Python、Java、または他のどの言語でプログラムを書いているかに関わりなく、必要に応じてデータベースと情報をやり取りするように、プログラムに指示できます。</p><p>ウェブページ上でユーザーに表示するデータは、データベースから取得できます。また、ユーザーから送信されたウェブ会員登録フォームを受け付け、そのユーザーの情報を、後で使用するためにデータベース内に保存しておくことができます。</p><p>プログラムは、アプリケーション内でイベントが発生すると同時に、リアルタイムでデータベースと情報をやり取りできます。ほとんどのデータベースでは、そのやり取りに <strong>Structured Query Language (構造化問い合わせ言語)</strong> を略した <strong>SQL</strong> と呼ばれる言語が使用されています。</p><p>SQL はデータベース専用に作り出されたプログラミング言語です。これを用いて、データベースに指示を出すことができます。</p><p>SQL コードの 1 つのかたまりのことを、<strong>クエリ</strong>と呼びます。SQL クエリを記述することで、あるタイミングで必要になったデータを取得したり、特定のテーブルの中に新しいデータを挿入したりできます。おおまかに言うと、SQL クエリには、主に <strong>read-SQL</strong> と <strong>write-SQL</strong> の 2 つのタイプがあります。</p><p>read-SQL とは、データを確認または使用するために、シンプルにデータベースからデータを取得するものです。これは、データベース内のデータを全く変更しません。</p><p>一方で write-SQL クエリは、テーブル内への新しいデータの挿入や、既存のデータの更新または削除を行います。このセクションでは基本的な read-SQL の書き方をいくつか学んでみましょう。</p><p>クエリを書く前に、何をクエリ (問い合わせ) しているのかについて理解しておくと、それが役に立ちます！伝統的なデータベースは、列と行で構成された<strong>テーブル</strong>を含んでいます。read-SQL クエリを書く際の目標は、通常はこれらの行と列の一部を、検索し取得することになります。</p><p>たとえば、4 つの列と、<code>FIRST_NAME</code> および <code>LAST_NAME</code> の列でできている、<code>PERSON</code> という名前のテーブルがあるとしましょう。以下のクエリを使用すると、<code>FIRST_NAME</code> の列のデータだけをすべて選択できます:</p><pre><code class="language-sql">SELECT FIRST_NAME FROM PERSON;
</code></pre><p>SELECT キーワードは、データベースにデータの取得を指示します。このキーワードの後ろには、データを取得しようとしている列の名前 (この例では、FIRST_NAME) が続きます。</p><p>それから、FROM キーワードを使用して、データベースにどのテーブル (この場合は PERSON テーブル) からデータを取得するかを指示しています。また、すべての SQL コマンドは、セミコロンで終えるということにも注意しましょう。</p><p>データに関する最も一般的な要件の 1 つは、データを選別できることです。選別 (フィルタリング) とは、指定された条件に基づいて、SQL クエリの実行結果 (result set) を制限することです。</p><p>たとえば、<code>PERSON</code> テーブルから、「PHIL」という名前の人たちの行だけを選択したい場合があるかもしれません。その場合は、次のように SQL クエリ内で <code>WHERE</code> キーワードを使用すればフィルタリングできます:</p><pre><code class="language-sql">SELECT * FROM PERSON WHERE FIRST_NAME = 'PHIL';
</code></pre><p><code>SELECT</code> 句の中で、特定の列の名前をリストアップする代わりにアスタリスク <code>*</code> を使用しているので、このクエリは <code>PERSON</code> テーブル内のすべての列を返します。そこから、<code>PERSON</code> テーブル内の <code>FIRST_NAME</code> が「PHIL」に設定されている行のデータだけが取得されます。</p><p>最後に、ソートについて説明します。クエリの実行結果を特定の順序にソートして確認したい場合が多くあります。それを可能にしてくれるのが、以下に示す <code>ORDER BY</code> 句です:</p><pre><code class="language-sql">SELECT *
FROM PERSON
ORDER BY LAST_NAME;
</code></pre><p>このクエリは、LAST_NAME のアルファベット順に並べ替えられた、<code>PERSON</code> テーブル内のすべての列を返します。</p><p>デフォルトでは、実行結果は A から Z の昇順に並び替えられます。以下の例のように、オプションの ASC または DESC をクエリに追加して、昇順または降順のどちらの順番で並び替えるかを指定できます。</p><pre><code class="language-sql">SELECT *
FROM PERSON
ORDER BY LAST_NAME DESC;
</code></pre><!--kg-card-begin: html--><h2 id="13-read-about-web-frameworks-and-mvc">13) ウェブフレームワークと MVC (Model-View-Controller: モデル・ビュー・コントローラ) について読む</h2><!--kg-card-end: html--><p>私たちは、ごく普通のタイプのアプリケーション用のコードを書いているということに、たびたび気づきます。ウェブアプリケーション (または <strong>ウェブアプリ</strong>) とは、インターネットにその機能を依存しているアプリケーションのことです。作成されている最も一般的なタイプのソフトウェアアプリケーションの一部に、ウェブアプリが含まれます。</p><p>ウェブアプリとは、基本的にはウェブサイトをもっと機能的、かつロバスト (堅牢) にしたものです。ほとんどのウェブアプリには、ウェブサーバーに置かれ、アプリケーションの機能を水面下で支えるロジックを実行するバックエンドコードが実装されています。</p><p>ウェブアプリのバックエンドコードに使用される一般的な言語には、Python、Java、JavaScript などがあります。</p><p>ほとんどのウェブアプリに共通して含まれる機能を以下にいくつか挙げます:</p><ul><li>ウェブページのコンテンツを動的に変更できる便利な方法を提供すること</li><li>ログインページによって安全なユーザー認証を実行すること</li><li>アプリケーションの堅牢なセキュリティ機能を提供すること</li><li>データベースとやり取りしてデータの取得や保存を行うこと</li></ul><p>ウェブフレームワークは、多くのウェブアプリで使われる一般的な機能が、複雑な設定をすることなく使えるようになっているコードライブラリの集まりです。ウェブフレームワークは、多くのウェブアプリに共通する、水面下で行われる多くのタスクのためのコードを記述することについて悩まずに、アプリケーションを構築できるシステムを、開発者に提供します。</p><p>ウェブアプリの要件を満たせる、フレームワークのパーツを利用するだけで十分なのです。</p><p>たとえば、あるウェブアプリにおいて、データベースに接続する必要がない場合には、単にデータベース機能を省略して、必要な他の機能だけを利用すればいいのです。</p><p>その上で、アプリケーション、ユーザーフロー、およびビジネスロジックを形成するウェブページを自由にカスタマイズできます。ウェブフレームワークは、ウェブアプリを構築するために使用できる、プログラミングツール一式として考えることができます。</p><p>この記事のなかで取り上げた各プログラミング言語には、現在も利用されている、有名なウェブフレームワークが 1 つ、またはいくつか用意されています。これは素晴らしいことで、開発チームに、彼らが最も精通している言語のフレームワークを使用できるという、柔軟性を与えてくれます。</p><p>Java には、<strong>Spring Boot</strong> によって特に使いやすいものになった、<strong>Spring Framework</strong> があります。Python には <strong>Django</strong> というフレームワークがあります。JavaScript には <strong>Node.js</strong> ランタイム環境と、<strong>Express.js</strong> や <strong>Meteor.js</strong> を含む複数のフレームワークの選択肢があります。これらのフレームワークは、すべて無料でオープンソースです。</p><!--kg-card-begin: html--><h2 id="14-play-with-package-managers">14) パッケージマネージャーに触れる</h2><!--kg-card-end: html--><p>このガイドブックの最後に説明するテーマは<strong>パッケージマネージャー</strong>です。環境にもよりますが、<strong>パッケージ</strong>とは、コンピューターにすぐにインストールできる単体プログラム、またはソフトウェアプロジェクトの一部で活用しようとしている、外部ライブラリのいずれかを表します。</p><p>アプリケーションは外部ライブラリに依存していることも多く、これらは<strong>依存関係</strong>と呼ばれています。</p><p>パッケージマネージャーとは、システムやソフトウェアプロジェクトの依存関係を、管理しやすくしてくれるプログラムです。ここでの「管理」は、必要に応じて依存関係のインストール、更新、一覧の作成、およびアンインストールを行うことを意味しています。</p><p>状況によりますが、これから説明するパッケージマネージャーは、オペレーティングシステム上にインストールされたプログラムの管理、またはソフトウェアプロジェクトの依存関係の管理を行うために使用できます。</p><h3 id="macos-homebrew">macOS: Homebrew</h3><p><strong>Homebrew</strong> は、macOS オペレーティングシステム向けの、最も有名なパッケージマネージャーです。これは、Mac でパッケージとアプリケーションのインストール、更新、追跡、一覧の表示、およびアンインストールを行う、便利な方法を提供してくれます。</p><p>ダウンロードした .dmg ファイルによってインストールできる、多くのアプリケーションは、Homebrew を使って、同じようにダウンロードしインストールできます。</p><p>Homebrew で <code>wget</code> パッケージをインストールする例はこちらです:</p><pre><code class="language-sh">brew install wget
</code></pre><h3 id="linux-apt-yum">Linux: Apt と Yum</h3><p>Linux はコマンドラインを中心に作られているので、パッケージマネージャーが、プログラムをインストールするデフォルトの方法になっているのは当然のことです。</p><p>Linux の主流のフレーバーのほとんどは、組み込みのパッケージマネージャーと一緒に提供されています。<strong>Advanced Package Tool (APT)</strong> は、Debian と Ubuntu ベースの Linux ディストリビューション用の、ネイティブパッケージマネージャーです。<strong>Yellowdog Updater Modified (YUM)</strong> は、RedHat Linux ディストリビューション用のネイティブパッケージマネージャーです。</p><p>APT を使用して Vim をインストールする例はこちらです:</p><pre><code class="language-sh">sudo apt-get install vim
</code></pre><p>Yum を使用すると次のようになります:</p><pre><code class="language-sh">sudo yum install vim
</code></pre><h3 id="javascript-node-package-manager-npm-">JavaScript: Node Package Manager (NPM)</h3><p>ここまでは OS レベルのパッケージマネージャーの使い方について見てきたので、今度は、プログラミング言語に特化したパッケージマネージャーをいくつか見ていきましょう。これらは、コーディングプロジェクトの多くが依存しているソフトウェアライブラリを、管理しやすくしてくれます。なお、<strong>Node Package Manager (NPM)</strong> は、Node.js にデフォルトでインストールされています。</p><p>NPM とこれまで説明してきたパッケージマネージャーの違いのひとつは、NPM が<strong>ローカル</strong>もしくは<strong>グローバル</strong>モードで実行できることです。ローカルモードでは、作業中の特定のプロジェクト／ディレクトリの中だけにパッケージがインストールされ、一方でグローバルモードではシステム上にパッケージがインストールされます。</p><p>デフォルトでは、パッケージはローカルモードでインストールされますが、以下のように <code>-g</code> フラグを使用することで、パッケージをグローバルモードでインストールできます:</p><pre><code class="language-sh">npm install request -g
</code></pre><h3 id="python-pip">Python: Pip</h3><p>Python にも <strong>Pip</strong> と呼ばれるパッケージマネージャーがあります。最近のバージョンの Python には、Pip があらかじめ内包されているので、すでにあなたのシステムにインストールされているかもしれません。Pip のおかげで、次のように <code>pip install &lt;package-name&gt;</code> コマンドを使用して、<strong>Python Package Index</strong> から、パッケージを簡単にインストールすることができるようになります:</p><pre><code class="language-sh">pip install requests
</code></pre><h3 id="java-apache-maven">Java: Apache Maven</h3><p><strong>Apache Maven</strong> (通常は単に <strong>Maven</strong> と呼ばれています) とは、依存関係の管理機能を含む無料のオープンソースツール一式です。</p><p>Maven は主に Java プロジェクトに使用されていますが、他の言語もサポートしています。Maven の使用方法はちょっと複雑で、できることが多いので、ここでは詳細に立ち入ることはしません。</p><h2 id="--2">要約</h2><p>この記事では、私がコードを学び始めた時に知っていたらよかったと思うソフトウェア開発の概要を説明するために、一連の重要なコーディングの概念とツールを紹介しました。</p><p>インターネット、いくつかのプログラミング言語、バージョン管理システム、およびデータベースなどのテーマを取り上げ、これらが互いにどう関係し、組み合わさっているか説明することを目指しました。</p><h2 id="--3">次なるステップ</h2><p>この記事を楽しんでいただけたならば、私が書いた <a href="https://initialcommit.com/store/coding-essentials-guidebook-for-developers">Coding Essentials Guidebook for Developers</a> という名前の本を紹介させてください。この本には 14 の章があり、この記事の中で取り上げたテーマを 1 つずつ、各章で説明しています。</p><p>本の中で、これら 14 のテーマについてさらに掘り下げているので、この記事からきちんと知識が得られたかどうか確認する、良い資料となってくれるかもしれません。</p><p>この記事を読んでいただいた後、特定の言語、ツール、または概念に惹かれることがあるかもしれません。その時は、その領域にさらに深く入り込むことをお奨めします。</p><p>この本に関する質問やご意見ご要望がございましたら、<a>jacob@initialcommit.io</a> までご連絡いただければ幸いです。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 日本語で利用可能な freeCodeCamp のコンテンツ (2022年最新版) ]]>
                </title>
                <description>
                    <![CDATA[ 2021 年初頭に freeCodeCamp コミュニティのローカリゼーション活動が始まって以来、多くのコントリビューターの協力によって、さまざまな学習リソースが日本語化されています。 この記事では、現在日本語版が提供されている freeCodeCamp の教材や freeCodeCamp コミュニティのコンテンツを紹介します。 動画講座  * YouTube チャンネル: freeCodeCamp Japanese    [https://www.youtube.com/@freeCodeCampJapanese] この夏日本語版チャンネルを立ち上げ、現在までに計 3 種類の講座を公開しました。 現在公開されている講座は、さまざまなプログラミング言語の基礎をゼロから学ぶ入門レベルの講座となっています。ぜひ、興味のある言語の学習をここから始めてみてください。 C++ 入門 (全 5 時間) 先日公開したばかりの新講座です。  * C++ 入門: 講座概要 [/japanese/news/c-plus-plus-tutorial-japanese/] Python 入門 ( ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/japanese-freecodecamp-contents-2022/</link>
                <guid isPermaLink="false">6372af9b9e175105f680f39c</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                    <category>
                        <![CDATA[ COMMUNITY ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Mon, 14 Nov 2022 23:33:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/11/freeCodeCamp_ja.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>2021 年初頭に freeCodeCamp コミュニティのローカリゼーション活動が始まって以来、多くのコントリビューターの協力によって、さまざまな学習リソースが日本語化されています。</p><p>この記事では、現在日本語版が提供されている freeCodeCamp の教材や freeCodeCamp コミュニティのコンテンツを紹介します。</p><h2 id="-">動画講座</h2><ul><li><a href="https://www.youtube.com/@freeCodeCampJapanese">YouTube チャンネル: freeCodeCamp Japanese</a></li></ul><p>この夏日本語版チャンネルを立ち上げ、現在までに計 3 種類の講座を公開しました。</p><p>現在公開されている講座は、さまざまなプログラミング言語の基礎をゼロから学ぶ入門レベルの講座となっています。ぜひ、興味のある言語の学習をここから始めてみてください。</p><h3 id="c-5-">C++ 入門 (全 5 時間)</h3><p>先日公開したばかりの新講座です。</p><ul><li><a href="https://www.freecodecamp.org/japanese/news/c-plus-plus-tutorial-japanese/">C++ 入門: 講座概要</a></li></ul><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 75%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="150" src="https://www.youtube.com/embed/dZOlsgK6sS0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" title="C++入門: まず押さえておきたい基本の集中講座【プログラミングチュートリアル】" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h3 id="python-6-">Python 入門 (全 6 時間)</h3><p>英語版 freeCodeCamp.org チャンネルの一番人気の動画を日本語化した Python 入門講座です。</p><ul><li><a href="https://www.freecodecamp.org/japanese/news/learn-python-full-course-for-beginners-japanese/">Python 入門: 講座概要</a></li></ul><h3 id="javascript-4-">JavaScript 入門 (全 4 時間)</h3><p>登録者数 600 万人を超える<a href="https://www.youtube.com/c/Freecodecamp">英語版 freeCodeCamp.org チャンネル</a>を運営している Beau さんの JavaScript 入門講座を日本語化しました。</p><ul><li><a href="https://www.freecodecamp.org/japanese/news/learn-javascript-full-course-for-beginners-japanese/">JavaScript 入門: 講座概要</a></li></ul><h3 id="--1">コミュニティ投稿</h3><p>また、<a href="https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww/community">YouTube チャンネルのコミュニティタブ</a>でも、更新情報やプログラミングに関するクイズを投稿しています。</p><p>現在投稿されている動画は、英語版チャンネルの動画をベースに日本語化したものですが、字幕や吹き替えではなく、日本語話者向けに講座の内容を再検討して撮り直しています。</p><p>言語のハードルをできる限り取り除き、プログラミングの学習に集中できることを目指しています。</p><p>今後、日本語版チャンネルオリジナルの講座も予定しておりますのでご期待ください。</p><p>動画講座の最新情報を受け取るには、ぜひ<a href="https://www.youtube.com/@freeCodeCampJapanese">チャンネル登録</a>をお願いします。</p><h2 id="--2">チュートリアル記事</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/11/news-2.png" class="kg-image" alt="news-2" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/11/news-2.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/11/news-2.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/11/news-2.png 1473w" sizes="(min-width: 720px) 720px" width="1473" height="928" loading="lazy"></figure><ul><li><a href="https://www.freecodecamp.org/japanese/news">freeCodeCamp ニュース</a></li></ul><p>この記事が掲載されているサイトです。世界中の freeCodeCamp コントリビューターの手による記事を順次翻訳して掲載しています。</p><p><a href="https://www.freecodecamp.org/japanese/news/help-translate-freecodecamp-language/">翻訳コントリビューターも募集しています</a>。</p><h2 id="--3">カリキュラム (認定講座)</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/11/curriculum-1.png" class="kg-image" alt="curriculum-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/11/curriculum-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/11/curriculum-1.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/11/curriculum-1.png 1347w" sizes="(min-width: 720px) 720px" width="1347" height="924" loading="lazy"></figure><ul><li><a href="https://www.freecodecamp.org/japanese/">freeCodeCamp.org</a></li></ul><p>freeCodeCamp の中心となるプログラミング学習サイトです。</p><p>各ステップに自動テストが用意されており、実際に手を動かしてコードを書きながら学べるインタラクティブな形式の講座となっています。講座を修了したことを証明する認定証も取得できます。</p><p>現在、<a href="https://www.freecodecamp.org/japanese/news/freecodecamp-certifications/">10 種類の認定講座</a>とコーディングインタビューの練習問題が日本語化されています。</p><p>また、リニューアルされた「<a href="https://www.freecodecamp.org/japanese/learn/2022/responsive-web-design">新レスポンシブウェブデザイン認定講座</a>」の日本語版も公開しました。</p><p>こちらも<a href="https://www.freecodecamp.org/japanese/news/help-translate-freecodecamp-language/">翻訳コントリビューターを募集しています</a>。</p><h2 id="--4">質問用フォーラム</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/11/forum.png" class="kg-image" alt="forum" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/11/forum.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/11/forum.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2022/11/forum.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2022/11/forum.png 1881w" sizes="(min-width: 720px) 720px" width="1881" height="938" loading="lazy"></figure><ul><li><a href="https://forum.freecodecamp.org/c/japanese/552">freeCodeCamp フォーラム 日本語カテゴリー</a></li></ul><p>カリキュラムに取り組む中でつまずいても、日本語で質問できます。</p><p>英語圏のユーザーが圧倒的に多いため、コメントが英語で返ってきて驚くこともあるかもしれませんが、そのまま日本語でやりとりを続けても構いませんし、英語で返事を書くことに挑戦するのも良いと思います。</p><p>質問を通して、世界中の開発者との交流を楽しんでください。</p><p>また、このフォーラムでアクティブに活動しているユーザーを、年に一度<a href="https://www.freecodecamp.org/news/2021-top-contributors/">トップコントリビューターとして発表</a>しています。</p><p>ぜひ他のユーザーの質問にも答えてみましょう。来年のトップコントリビューターのリストにはあなたの名前が載っているかもしれません。</p><h2 id="twitter">Twitter</h2><p>日本語版 freeCodeCamp に関する情報は、主に Twitter アカウント <a href="https://twitter.com/freecodecampJA">@freecodecampJA</a> で発信しています。</p><h2 id="--5">無料の学習リソース</h2><p>この記事で挙げた各講座を含め、freeCodeCamp のコンテンツはすべて無料で公開されています。</p><p>ぜひプログラミング学習にお役立てください。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ C++ 入門: まず押さえておきたい基本の集中講座 [YouTube 動画講座] ]]>
                </title>
                <description>
                    <![CDATA[ C++ は世界中で使われているプログラミング言語です。ロボットや IoT 機器の制御、OS 制御などの低レイヤの開発に使われることの多い言語ですが、ゲームやグラフィックスなどにも使われます。 この度、YouTube チャンネル freeCodeCamp Japanese [https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww] にて C++ 入門講座を公開しました。 この講座では、C++ の基礎の基礎として、環境構築の手順から、さまざまなデータ型の扱い方、if 文、for 文などの制御構文、ポインタやクラスの説明など、プログラミング言語を学び始めるにあたって押さえておきたい文法の基礎を中心に学びます。 本動画は、英語版 freeCodeCamp.org チャンネルで公開されている「C++ Tutorial for Beginners - Full Course [https://youtu.be/vLnPwxZdW4Y]」を元にした日本語版として作成されました。 日本語版動画は、今回も freeCodeCamp コント ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/c-plus-plus-tutorial-japanese/</link>
                <guid isPermaLink="false">6369280c196be305f95c5400</guid>
                
                    <category>
                        <![CDATA[ C++ ]]>
                    </category>
                
                    <category>
                        <![CDATA[ YouTube ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video Courses ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Sun, 13 Nov 2022 05:18:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/11/20221103_C--.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>C++ は世界中で使われているプログラミング言語です。ロボットや IoT 機器の制御、OS 制御などの低レイヤの開発に使われることの多い言語ですが、ゲームやグラフィックスなどにも使われます。</p><p>この度、YouTube チャンネル <a href="https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww">freeCodeCamp Japanese</a> にて C++ 入門講座を公開しました。</p><p>この講座では、C++ の基礎の基礎として、環境構築の手順から、さまざまなデータ型の扱い方、if 文、for 文などの制御構文、ポインタやクラスの説明など、プログラミング言語を学び始めるにあたって押さえておきたい文法の基礎を中心に学びます。</p><p>本動画は、英語版 freeCodeCamp.org チャンネルで公開されている「<a href="https://youtu.be/vLnPwxZdW4Y">C++ Tutorial for Beginners - Full Course</a>」を元にした日本語版として作成されました。</p><p>日本語版動画は、今回も freeCodeCamp コントリビューターの <a href="https://twitter.com/besshy8">Besshy</a> さんにより作成されました。Besshy さんは慶應義塾大学の大学院生で、「<a href="https://www.youtube.com/user/kcs1959">KCS :: Keio Computer Society</a>」という YouTube チャンネルも運営しています。</p><p>プログラミング言語入門シリーズ第三弾として、英語版チャンネルでも人気の高い C++ の入門講座を日本語化してくださいました。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/11/c--_screenshot.png" class="kg-image" alt="c--_screenshot" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/11/c--_screenshot.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/11/c--_screenshot.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/11/c--_screenshot.png 1213w" sizes="(min-width: 720px) 720px" width="1213" height="716" loading="lazy"><figcaption>つまずきやすい「ポインタ」についても学びます。</figcaption></figure><p>この講座では以下のトピックを学習します。</p><ul><li>環境構築 (Windows / macOS)</li><li>[演習] 三角形を書く</li><li>変数</li><li>データ型</li><li>文字列を扱う</li><li>数値を扱う</li><li>ユーザーの入力を受け取る</li><li>[演習] 計算機を作る (1)</li><li>配列</li><li>関数の定義と引数</li><li>関数の戻り値</li><li>if 文</li><li>比較演算子</li><li>[演習] 計算機を作る (2)</li><li>switch 文</li><li>while 文</li><li>[演習] 推理ゲームを作る</li><li>for 文</li><li>[演習] 累乗を計算する関数</li><li>二次元配列と for 文のネスト</li><li>コメントアウト</li><li>ポインタ</li><li>クラスとオブジェクト指向</li><li>クラスとコンストラクタ</li><li>オブジェクト内の関数</li><li>Setter と Getter</li><li>クラスの継承</li></ul><p>本講座は YouTube で全編無料公開されています。(全 5 時間)</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 75%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="150" src="https://www.youtube.com/embed/dZOlsgK6sS0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" title="C++入門: まず押さえておきたい基本の集中講座【プログラミングチュートリアル】" name="fitvid0"></iframe>
          </div>
        </div>
      </figure> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ JavaScript 入門: Hello World から ES6 までしっかり学ぶ基礎講座 [YouTube 動画講座] ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript は今最も人気のあるプログラミング言語です。例えば Stack Overflow の Developer Survey [https://insights.stackoverflow.com/survey/2021/#section-most-popular-technologies-programming-scripting-and-markup-languages]  でも、2021 年の人気第一位のプログラミング言語となっています。 この度、新たに JavaScript 入門講座を YouTube チャンネル freeCodeCamp Japanese [https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww] にて公開しました。 この講座では、JavaScript の学習を始めるにあたって知っておきたい基礎として、コードの実行方法やコメント、簡単な四則演算、if 文や for 文などの基本的な文法から、近年主流となっている ES6 のアロー関数、クラス、import/export などの新しい文法 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/learn-javascript-full-course-for-beginners-japanese/</link>
                <guid isPermaLink="false">633c73d2292eef06159fbf4e</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ES6 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ YouTube ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video Courses ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Wed, 05 Oct 2022 11:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/10/4.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>JavaScript は今最も人気のあるプログラミング言語です。例えば <a href="https://insights.stackoverflow.com/survey/2021/#section-most-popular-technologies-programming-scripting-and-markup-languages">Stack Overflow の Developer Survey</a> でも、2021 年の人気第一位のプログラミング言語となっています。</p><p>この度、新たに JavaScript 入門講座を YouTube チャンネル <a href="https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww">freeCodeCamp Japanese</a> にて公開しました。</p><p>この講座では、JavaScript の学習を始めるにあたって知っておきたい基礎として、コードの実行方法やコメント、簡単な四則演算、if 文や for 文などの基本的な文法から、近年主流となっている ES6 のアロー関数、クラス、import/export などの新しい文法まで段階を追って学習します。</p><p>本動画は、英語版 freeCodeCamp.org チャンネルで公開されている「<a href="https://youtu.be/PkZNo7MFNFg">Learn JavaScript - Full Course for Beginners</a>」を元にした日本語版として作成されました。</p><p>日本語版動画は freeCodeCamp コントリビューターの <a href="https://twitter.com/besshy8">Besshy</a> さんにより作成されました。Besshy さんは慶應義塾大学の大学院生で、「<a href="https://www.youtube.com/user/kcs1959">KCS :: Keio Computer Society</a>」という YouTube チャンネルも運営されています。</p><p>freeCodeCamp Japanese チャンネルの第一弾動画「<a href="https://youtu.be/nnjCkgX_ZPQ">Python 入門: 基礎から始める集中講座</a>」に続き、今回は JavaScript の入門講座を作成してくださいました。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/10/scrimba.png" class="kg-image" alt="scrimba" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/10/scrimba.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/10/scrimba.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2022/10/scrimba.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2022/10/scrimba.png 1920w" sizes="(min-width: 720px) 720px" width="1920" height="1080" loading="lazy"><figcaption>ブラウザだけでコードを書いて実行できる Scrimba という環境を使って学習します。</figcaption></figure><p>この講座では以下のトピックを学習します。</p><ul><li>JavaScript の環境構築、実行</li><li>コメントアウト</li><li>データ型と変数</li><li>代入演算子 (<code>=</code>)</li><li>四則演算 (足し算、引き算、掛け算、割り算)</li><li>インクリメント・デクリメント</li><li>浮動小数点</li><li>余りの計算</li><li>複合代入演算子 (<code>+=</code> <code>-=</code> <code>*=</code> <code>/=</code>)</li><li>エスケープシーケンス</li><li>文字列の連結</li><li>文字列の長さの取得</li><li>文字列の要素を取り出す (ブラケットノーテーション)</li><li>イミュータブルな文字列</li><li>配列、多次元配列</li><li>インデックスを使った配列の要素へのアクセス</li><li>配列の操作 (<code>push()</code> <code>pop()</code> <code>shift()</code> <code>unshift()</code>)</li><li>関数</li><li>引数</li><li>スコープ (グローバルスコープ、ローカルスコープ)</li><li>真偽値 (Boolean)</li><li>if 文を使った条件分岐</li><li>比較演算子 (<code>==</code> <code>===</code> <code>!=</code> <code>!==</code> <code>&gt;</code> <code>&lt;</code>)</li><li>論理演算子 (<code>&amp;&amp;</code> <code>||</code>)</li><li>switch 文</li><li>JavaScript のオブジェクト</li><li>オブジェクトの値の変更、追加、削除</li><li>while ループを使った繰り返し処理</li><li>for ループを使った繰り返し処理</li><li>do...while 文を使った繰り返し処理</li><li>乱数を発生させる</li><li>parseInt() 関数</li><li>条件 (三項) 演算子</li><li>var、let、const</li><li>オブジェクトが変更されることを防ぐ</li><li>アロー関数</li><li>関数の default 引数</li><li>Rest 演算子</li><li>Spread 演算子</li><li>分割代入</li><li>テンプレートリテラル</li><li>オブジェクトの簡潔な作り方</li><li>オブジェクト内での関数の定義の仕方</li><li>コンストラクタ関数とクラス</li><li>getter と setter</li><li>require と import</li></ul><p>本講座は <a href="https://youtu.be/TtJqDrLGoKQ">YouTube で全編無料公開されています</a>。(全 4.5 時間)</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/TtJqDrLGoKQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" title="【JavaScript入門】Hello WorldからES6までしっかり学ぶ基礎講座" name="fitvid0"></iframe>
          </div>
        </div>
      </figure> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Python 入門: 基礎から始める集中講座 [YouTube 動画講座] ]]>
                </title>
                <description>
                    <![CDATA[ Python は多くの分野で利用されており、直観的に書きやすい文法を持つため、これからプログラミングを始めたい人におすすめの言語です。 この度、日本語版 YouTube チャンネル「freeCodeCamp Japanese」 [https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww]として初の動画講座「Python入門: 基礎から始める集中講座」を公開しました。 この講座では、Python の基礎を環境構築と Hello World から、条件分岐などの基本的な構文、クラスとオブジェクトの利用まで総合的にカバーします。Python に初めて触れる人、今一度基礎をしっかり固めたい人におすすめの講座です。 本動画は、英語版 freeCodeCamp.org チャンネルで公開されている一番人気の動画「Learn Python - Full Course for Beginners [Tutorial]」 [https://www.youtube.com/watch?v=rfscVS0vtbw]  を元にした日本語版として作成さ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/learn-python-full-course-for-beginners-japanese/</link>
                <guid isPermaLink="false">630f4b6ea100e207215d454b</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                    <category>
                        <![CDATA[ YouTube ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video Courses ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Wed, 31 Aug 2022 11:58:30 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/08/20220727_Python-for-Beginners.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Python は多くの分野で利用されており、直観的に書きやすい文法を持つため、これからプログラミングを始めたい人におすすめの言語です。</p><p>この度、日本語版 YouTube チャンネル<a href="https://www.youtube.com/channel/UClLQp_GforzsmSpSec5M7Ww">「freeCodeCamp Japanese」</a>として初の動画講座「Python入門: 基礎から始める集中講座」を公開しました。</p><p>この講座では、Python の基礎を環境構築と Hello World から、条件分岐などの基本的な構文、クラスとオブジェクトの利用まで総合的にカバーします。Python に初めて触れる人、今一度基礎をしっかり固めたい人におすすめの講座です。</p><p>本動画は、英語版 freeCodeCamp.org チャンネルで公開されている一番人気の動画<a href="https://www.youtube.com/watch?v=rfscVS0vtbw">「Learn Python - Full Course for Beginners [Tutorial]」</a> を元にした日本語版として作成されました。</p><p>日本語版動画作成者の <a href="https://twitter.com/besshy8">Besshy</a> さんは慶應義塾大学の大学院生で、AI や量子コンピューターの研究をされています。また「<a href="https://www.youtube.com/user/kcs1959">KCS :: Keio Computer Society</a>」という YouTube チャンネルも運営されており、そちらでもプログラミングやコンピューターサイエンスに関する動画を多数投稿されています。この度動画講座作成という形で freeCodeCamp コミュニティに貢献してくださいました。</p><p>この講座では以下のトピックを学習します。</p><ul><li>Python と PyCharm のインストール、環境構築</li><li>Hello World</li><li>[演習] 三角形を書いてみる</li><li>変数とデータ型</li><li>文字列を扱う</li><li>数値を扱う</li><li>ユーザー入力を受け取る</li><li>[演習] 基礎的な計算機を作る</li><li>リスト</li><li>リストを操作する関数</li><li>タプル</li><li>関数</li><li>Return 文</li><li>If 文</li><li>If 文と比較演算子</li><li>[演習] 計算機を改善する</li><li>辞書</li><li>While ループ</li><li>[演習] Guessing Game を作る</li><li>For ループ</li><li>[演習] 累乗を計算する関数を書く</li><li>二次元配列と For 文のネスト</li><li>[演習] 翻訳機を作る</li><li>コメント</li><li>Try / Except</li><li>ファイルの読み込み</li><li>ファイルの書き込み</li><li>モジュールと pip</li><li>クラスとオブジェクト</li><li>[演習] クイズゲームを作る</li><li>メソッド</li><li>継承</li><li>Python のインタープリター</li></ul><p>本講座は YouTube で全編無料公開されています。(全 6.5 時間)</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/nnjCkgX_ZPQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" title="Python入門: 基礎から始める集中講座" name="fitvid0"></iframe>
          </div>
        </div>
      </figure> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Python の剰余演算子 - Python における % 記号の意味するものとは？ (解決済み) ]]>
                </title>
                <description>
                    <![CDATA[ % 記号を見た時に、それが「パーセント」であると思われるかもしれませんが、Python や他の多くのプログラミング言語では、% 記号は違った意味をもちます。 Python において %  記号は剰余演算子と呼ばれています。この演算子は、左辺の項を右辺の項で除算した余りを返します。割り算の問題の余りを得るのに使用されます。 剰余演算子は +, -, /, *, **, // とともに算術演算子と見なされます。 基本的な構文は次のようになります: a % b 上の例では、a を b で割って、その余りを返します。今度は数値を使用した例を見てみましょう。 7 % 2 上の例の答えは 1 です。2 は 7 に 3 回収まり、1 が残ります。 以下の図は 7 / 2 と 7 % 2 を視覚的に表したものです ("R" は "remainder (余り)" ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/the-python-modulo-operator-what-does-the-symbol-mean-in-python-solved/</link>
                <guid isPermaLink="false">626a7b9d1de492050fdb4565</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manabu Matsumoto ]]>
                </dc:creator>
                <pubDate>Wed, 04 May 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/04/python-modulo-image.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/the-python-modulo-operator-what-does-the-symbol-mean-in-python-solved/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The Python Modulo Operator - What Does the % Symbol Mean in Python? (Solved)</a>
      </p><p>% 記号を見た時に、それが「パーセント」であると思われるかもしれませんが、Python や他の多くのプログラミング言語では、% 記号は違った意味をもちます。</p><p>Python において <code>%</code> 記号は剰余演算子と呼ばれています。この演算子は、左辺の項を右辺の項で除算した余りを返します。割り算の問題の余りを得るのに使用されます。</p><p>剰余演算子は <code>+</code>, <code>-</code>, <code>/</code>, <code>*</code>, <code>**</code>, <code>//</code> とともに算術演算子と見なされます。</p><p>基本的な構文は次のようになります:</p><pre><code class="language-python">a % b
</code></pre><p>上の例では、<code>a</code> を <code>b</code> で割って、その余りを返します。今度は数値を使用した例を見てみましょう。</p><pre><code class="language-python">7 % 2
</code></pre><p>上の例の答えは <strong>1</strong> です。2 は 7 に 3 回収まり、<strong>1</strong> が残ります。</p><p>以下の図は <code>7 / 2</code> と <code>7 % 2</code> を視覚的に表したものです ("R" は "remainder (余り)" の略です)。右側のひとつのロゴ (緑色の矢印で指してあります) が割り算の問題の余りです。これが <code>7 % 2</code> の答えでもあります。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/remainder-diagram.png" class="kg-image" alt="remainder-diagram" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/remainder-diagram.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/remainder-diagram.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/remainder-diagram.png 1161w" sizes="(min-width: 720px) 720px" width="1161" height="784" loading="lazy"></figure><p>こちらに別の例を示します:</p><pre><code class="language-python">3 % 4
</code></pre><p>この例の答えは <strong>3</strong> になります。4 は 3 に一度も収まらないので、元の <strong>3</strong> が余ります。ここで何が起こっているのかを以下の図に示します。剰余演算子は割り算を行ってからその余りを返すということを忘れないようにしましょう。ここでの余りは 3 です。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/image-197.png" class="kg-image" alt="image-197" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/image-197.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/image-197.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/image-197.png 1051w" sizes="(min-width: 720px) 720px" width="1051" height="740" loading="lazy"></figure><h3 id="-">剰余演算子の使用例</h3><p>剰余演算子のよくある使い方のひとつは、偶数または奇数の判定です。以下のコードは、剰余演算子を使用して 0 から 10 の間の奇数をすべて表示します。</p><pre><code class="language-python">for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
</code></pre><p>実行結果:</p><pre><code>1
3
5
7
9
</code></pre> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Python における改行と、print 関数で改行させずに出力する方法 ]]>
                </title>
                <description>
                    <![CDATA[ ようこそ! Python の改行文字は、行の終わりと新しい行の始まりを示すのに使用されます。コンソールに出力を表示したり、ファイルを扱おうとする場合には、改行文字の使用方法について知ることが非常に重要です。 この記事では、以下の内容を学ぶことができます:  * Python で改行文字を識別する方法  * 文字列内および print 文の中での改行文字の使用方法  * 文字列の最後に改行文字を追加させずに print 文を記述する方法 さあはじめましょう！ ✨ 🔹 改行文字とは Python での改行文字がこちらです: 改行文字は以下の 2 つの文字でできています:  * バックスラッシュ (訳注: 日本語フォントでは半角の￥記号として表示される場合があります) 。  * 文字 n 。 文字列内に改行文字がある場合は、それは現在の行がそこで終わり、その直後に新しい行が始まることを意味します: 改行文字は f-string (フォーマット済み文字列) 内でも使用できます: >>> print(f"Hello\nWorld!") 🔸 print 文内の改行文字 デ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/python-new-line-and-how-to-python-print-without-a-newline/</link>
                <guid isPermaLink="false">623d9fa4fa0d9e053f44dd56</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manabu Matsumoto ]]>
                </dc:creator>
                <pubDate>Sun, 01 May 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/03/New-Line.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/python-new-line-and-how-to-python-print-without-a-newline/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Python New Line and How to Python Print Without a Newline</a>
      </p><p><strong>ようこそ!</strong> Python の改行文字は、行の終わりと新しい行の始まりを示すのに使用されます。コンソールに出力を表示したり、ファイルを扱おうとする場合には、改行文字の使用方法について知ることが非常に重要です。</p><p><strong>この記事では、以下の内容を学ぶことができます:</strong></p><ul><li>Python で改行文字を識別する方法</li><li>文字列内および print 文の中での改行文字の使用方法</li><li>文字列の最後に改行文字を追加させずに print 文を記述する方法</li></ul><p><strong>さあはじめましょう！ ✨</strong></p><h2 id="-">🔹 改行文字とは</h2><p>Python での改行文字がこちらです:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/newline-image.png" class="kg-image" alt="newline-image" width="353" height="149" loading="lazy"></figure><p><strong>改行文字は以下の 2 つの文字でできています:</strong></p><ul><li>バックスラッシュ (訳注: 日本語フォントでは半角の￥記号として表示される場合があります) 。</li><li>文字 <code>n</code> 。</li></ul><p>文字列内に改行文字がある場合は、それは現在の行がそこで終わり、その直後に新しい行が始まることを意味します:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/newline-character-in-a-string.png" class="kg-image" alt="newline-character-in-a-string" width="540" height="245" loading="lazy"></figure><p>改行文字は <strong>f-string (フォーマット済み文字列)</strong> 内でも使用できます:</p><pre><code class="language-python">&gt;&gt;&gt; print(f"Hello\nWorld!")
</code></pre><h2 id="-print-">🔸 print 文内の改行文字</h2><p>デフォルトでは、print 文は文字列の最後に「こっそり」改行文字を加えます。</p><p>このようにして:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/newline-character-in-print-statement.png" class="kg-image" alt="newline-character-in-print-statement" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/newline-character-in-print-statement.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/newline-character-in-print-statement.png 918w" sizes="(min-width: 720px) 720px" width="918" height="303" loading="lazy"></figure><p><a href="https://docs.python.org/3/library/functions.html#print">Python の公式ドキュメント</a>に従って改行文字が追加されます。</p><p>Python に備わっている print 関数 の <code>end</code> パラメーターのデフォルト値は <code>\n</code> なので、改行文字が文字列にアペンドされています。</p><p><strong>💡 ヒント:</strong> アペンド (append) は 「末尾に付加する」を意味します。</p><p>関数の定義はこちらです:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-function-definition.png" class="kg-image" alt="print-function-definition" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/print-function-definition.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/print-function-definition.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-function-definition.png 1509w" sizes="(min-width: 720px) 720px" width="1509" height="79" loading="lazy"></figure><p><code>end</code> の値が <code>\n</code> なので、それが文字列の末尾に付加される点に注目してください。</p><p>print 文を 1 つだけ使用する場合は、出力に 1 行しか表示されないため、このことに気づくことができません。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/only-one-print-statement.png" class="kg-image" alt="only-one-print-statement" width="425" height="62" loading="lazy"></figure><p>ですが、いくつかの print 文を相次いで Python のスクリプト内で使用した場合には:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/several-print-statements.png" class="kg-image" alt="several-print-statements" width="394" height="128" loading="lazy"></figure><p>それぞれの行の末尾に <code>\n</code> が「こっそり」付加されているので、出力される文字列は別々の行に表示されます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/printed-in-separate-lines.png" class="kg-image" alt="printed-in-separate-lines" width="484" height="172" loading="lazy"></figure><h2 id="--1">🔹 改行せずに出力を表示する方法</h2><p><code>print</code> 関数の <code>end</code> パラメーターの値をカスタマイズすることで、このデフォルトの挙動を変えられます。</p><p>例として、デフォルトの値を使用する場合は:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/using-print-function-with-default-end-parameter.png" class="kg-image" alt="using-print-function-with-default-end-parameter" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/using-print-function-with-default-end-parameter.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/using-print-function-with-default-end-parameter.png 619w" width="619" height="170" loading="lazy"></figure><p>次のように出力が 2 行で表示されるのが確認できます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/printed-strings-in-two-lines.png" class="kg-image" alt="printed-strings-in-two-lines" width="360" height="127" loading="lazy"></figure><p>ですが、次のように <code>end</code> の値をカスタマイズして、<code>" "</code> に設定した場合は、</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/customize-end-parameter.png" class="kg-image" alt="customize-end-parameter" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/customize-end-parameter.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/customize-end-parameter.png 846w" sizes="(min-width: 720px) 720px" width="846" height="199" loading="lazy"></figure><p>文字列の末尾に改行文字の <code>\n</code> ではなくスペースが付加されるので、2 つの print 文の出力は 1 行で表示されます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-strings-in-one-line.png" class="kg-image" alt="print-strings-in-one-line" width="491" height="80" loading="lazy"></figure><p>このことを利用して、次の例のように一連の値を 1 行で表示できます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-a-sequence-of-values-in-one-line.png" class="kg-image" alt="print-a-sequence-of-values-in-one-line" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/print-a-sequence-of-values-in-one-line.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-a-sequence-of-values-in-one-line.png 834w" sizes="(min-width: 720px) 720px" width="834" height="333" loading="lazy"></figure><p>出力は次のように表示されます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/output-of-printing-a-sequence-of-values-in-one-line.png" class="kg-image" alt="output-of-printing-a-sequence-of-values-in-one-line" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/output-of-printing-a-sequence-of-values-in-one-line.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/output-of-printing-a-sequence-of-values-in-one-line.png 776w" sizes="(min-width: 720px) 720px" width="776" height="42" loading="lazy"></figure><p><strong>💡 ヒント:</strong> 条件文を加えて、最後の数にコンマが付かないようにしてあります。</p><p>同様に、次のようにしてイテラブル (訳注: for 文で繰り返し可能なオブジェクト) のすべての値を、同じ行内に表示するのにも使用できます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-statement-with-iterable.png" class="kg-image" alt="print-statement-with-iterable" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/print-statement-with-iterable.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/print-statement-with-iterable.png 813w" sizes="(min-width: 720px) 720px" width="813" height="271" loading="lazy"></figure><p>出力は次のように表示されます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/output-iterable-values.png" class="kg-image" alt="output-iterable-values" width="155" height="49" loading="lazy"></figure><h2 id="--2">🔸 ファイル内の改行文字</h2><p>改行文字 <code>\n</code> はファイル内にも存在しますが、隠されています。テキストファイルの中に改行があるとき、そこには改行文字 <code>\n</code> が挿入されています。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/newline-character-in-files.png" class="kg-image" alt="newline-character-in-files" width="455" height="207" loading="lazy"></figure><p>次のように <code>&lt;file&gt;.readlines()</code> でファイルを読み込むことで、これをチェックできます:</p><pre><code class="language-python">with open("names.txt", "r") as f:
    print(f.readlines())
</code></pre><p>出力は次のように表示されます:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/output-file-readlines.png" class="kg-image" alt="output-file-readlines" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/output-file-readlines.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/output-file-readlines.png 866w" sizes="(min-width: 720px) 720px" width="866" height="74" loading="lazy"></figure><p>ご覧の通り、テキストファイルの最初の 3 行は、行の終わりが改行文字 <code>\n</code> になっており、「こっそり」改行してくれています。<br><strong>💡 ヒント:</strong> ファイルの最後の行だけは改行文字で終わっていないことに注目してください。</p><h2 id="--3">🔹 まとめ</h2><ul><li>Python の改行文字は <code>\n</code> です。改行文字はテキストの行の終わりを示すのに使用されます。</li><li><code>end = &lt;character&gt;</code> を使用することで、改行させずに文字列を出力に表示できます。ここで、<code>&lt;character&gt;</code> は行を分けるために使用される文字です。</li></ul><p><strong>この記事があなたのお役に立ち、気に入ってくだされば幸いです。</strong> これで、Python で改行文字を扱うことができるようになりましたね。</p><p>よろしければ私 (原著者) の<a href="https://www.udemy.com/user/estefania-cn/">オンライン講座</a>をチェックしてみてください。<a href="https://twitter.com/EstefaniaCassN">Twitter</a> のフォローもよろしくお願いします。 ⭐️</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ git add の取り消し方法 ]]>
                </title>
                <description>
                    <![CDATA[ コミット前の git add を取り消すには git reset <file> を実行します。すべてのファイルの変更を対象とする場合には git reset  を実行します。 古いバージョンの Git では、それぞれ git reset HEAD <file>、git reset HEAD というコマンドでした。この変更は Git 1.8.2 で対応されました。 その他のよく使われる Git の操作については下記の記事を参照してください。  * Git checkout [https://guide.freecodecamp.org/git/git-checkout/] (英語版)  * Git pull vs Git fetch    [https://guide.freecodecamp.org/miscellaneous/git-pull-vs-git-fetch/] (英語版)  * Gitignore [https://guide.freecodecamp.org/git/gitignore/] ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-undo-a-git-add/</link>
                <guid isPermaLink="false">62658e9c5535b50526b616d3</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Wed, 27 Apr 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/04/5f9c9deb740569d1a4ca3a5e.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-undo-a-git-add/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Undo a Git Add</a>
      </p><p>コミット前の <code>git add</code> を取り消すには <code>git reset &lt;file&gt;</code> を実行します。すべてのファイルの変更を対象とする場合には <code>git reset</code> を実行します。</p><p>古いバージョンの Git では、それぞれ <code>git reset HEAD &lt;file&gt;</code>、<code>git reset HEAD</code> というコマンドでした。この変更は Git 1.8.2 で対応されました。</p><p>その他のよく使われる Git の操作については下記の記事を参照してください。</p><ul><li><a href="https://guide.freecodecamp.org/git/git-checkout/">Git checkout</a> (英語版)</li><li><a href="https://guide.freecodecamp.org/miscellaneous/git-pull-vs-git-fetch/">Git pull vs Git fetch</a> (英語版)</li><li><a href="https://guide.freecodecamp.org/git/gitignore/">Gitignore</a> (英語版)</li></ul><h2 id="git-">Git に関する予備知識</h2><h3 id="git-3-">Git プロジェクトの 3 つのセクションを理解する</h3><p>Git プロジェクトには以下 3 つの重要なセクションがあります。</p><ol><li>Git ディレクトリ</li><li>ワーキングディレクトリ (またはワーキングツリー)</li><li>ステージングエリア</li></ol><p><strong>Git ディレクトリ</strong> (<code>YOUR-PROJECT-PATH/.git/</code> にあるディレクトリ) は、Git がプロジェクトを正確に追跡するために必要なすべてのものが保存されている場所です。その中には、メタデータと、圧縮されたプロジェクトファイルの各バージョンを含むオブジェクトデータベースが含まれます。</p><p><strong>ワーキングディレクトリ</strong>は、ユーザーがプロジェクトに対してローカルで変更を行う場所です。ワーキングディレクトリは Git ディレクトリのオブジェクトデータベースからプロジェクトのファイルを取得し、ユーザーのローカルマシンに配置します。</p><p><strong>ステージングエリア</strong>は、次のコミットに含める予定の情報を保存しているファイルです (「index」「stage」「cache」とも呼ばれます)。コミットとは、ステージングエリアに追加された変更を保存するよう Git に伝えるタイミングです。Git はその時点のファイルの状態のスナップショットを撮り、スナップショットを Git ディレクトリに永続的に保存します。</p><p>この 3 つのセクションにより、ある時点のファイルの状態は主に以下 3 種類のいずれかの状態を取ります。「変更済 (modified)」「ステージ済 (staged)」そして「コミット済 (committed)」です。ワーキングディレクトリにあるファイルに変更を加えると、そのファイルは「変更済」となります。次にそのファイルをステージングエリアに追加すると (訳注: <code>git add</code> コマンドによりこれが行われる)「ステージ済」となります。最後に、コミットすると「コミット済」となります。</p><h2 id="git--1">Git のインストール方法</h2><ul><li>Ubuntu の場合: <code>sudo apt-get install git</code> を実行</li><li>Windows の場合: <a href="https://git-scm.com/download/win">ダウンロードページ</a></li><li>Mac: <a href="https://git-scm.com/download/mac">ダウンロードページ</a></li></ul><h2 id="git--2">Git 環境の設定</h2><p>Git 環境をカスタマイズできる <code>git config</code> というツール (コマンド) があります。特定のコンフィグ変数を設定することで、Git の見た目や機能を変更できます。これから説明するコマンドは、コマンドラインインターフェースで実行します (Mac ならターミナル、Windows ならコマンドプロンプトか PowerShell)。</p><p>コンフィグ変数の保存場所には次の 3 つのレベルがあります。</p><ol><li>システム: <code>/etc/gitconfig</code> に保存されている変数は、そのコンピューターのすべてのユーザーに適用されるデフォルト設定です。このファイルに変更を加えるには、<code>git config</code> コマンドと <code>--system</code> オプションを使用します。</li><li>ユーザー: <code>~/.gitconfig</code> または <code>~/.config/git/config</code> に保存されている変数は、ある特定のユーザーの設定として適用されます。このファイルに変更を加えるには、<code>git config</code> コマンドと <code>--global</code> オプションを使用します。</li><li>プロジェクト: <code>YOUR-PROJECT-PATH/.git/config</code> に保存されている変数は、そのプロジェクトだけに適用される設定です。このファイルに変更を加えるには、<code>git config</code> コマンドを使用します。</li></ol><p>互いに競合する設定がある場合、プロジェクトレベルの設定はユーザーレベルの設定より優先され、ユーザーレベルの設定はシステムレベルの設定より優先されます。</p><p><strong>Windows ユーザー向けの注意</strong>: Git は、ユーザーレベルの設定ファイル (<code>.gitconfig</code>) をあなたの <code>$HOME</code> ディレクトリ (<code>C:\Users\$USER</code>) の中から探します。Git はまた <code>/etc/gitconfig</code> も探しますが、これは MSYS のルートディレクトリからの相対パスであり、インストーラーの実行時にあなたが Git を Windows システムのどこにインストールするよう指定したかによって変わります。あなたが Git for Windows のバージョン 2.x 以上を使用しているなら、システムレベルの設定ファイルが下記の場所にも存在します。</p><ul><li>Windows Vista 以降なら <code>C:\ProgramData\Git\config</code></li><li>Windows XP では <code>C:\Documents and Settings\All Users\Application Data\Git\config</code></li></ul><p>この設定ファイルは、<code>git config -f &lt;file&gt;</code> コマンドを管理者として実行する方法でのみ変更が可能です。</p><h3 id="-">ユーザー名とメールアドレスの追加</h3><p>Git は、ユーザー名とメールアドレスをコミットの情報の一部として含めます。下記コマンドでこの情報をユーザーレベルの設定ファイルに設定できます。</p><pre><code class="language-shell">git config --global user.name "My Name"
git config --global user.email "myemail@example.com"
</code></pre><h3 id="--1">テキストエディタの変更</h3><p>Git は自動でデフォルトのテキストエディタを使用しますが、変更することも可能です。下記は、代わりに Atom エディタを使用するよう設定する例です。(<code>--wait</code> オプションは、シェルにテキストエディタを待つように指示します。これにより、プログラムの実行が先へ進む前に、テキストエディタで作業することができます。)</p><pre><code class="language-shell">git config --global core.editor "atom --wait"
</code></pre><h3 id="--2">出力の表示色の設定</h3><p>このコマンドで、シェルが Git の出力に色を付けるように設定できます。</p><pre><code class="language-shell">git config --global color.ui true
</code></pre><p>すべての設定を確認するには、<code>git config --list</code> コマンドを使用します。</p><h2 id="-git-">プロジェクト内で Git を初期化する</h2><p>Git のインストールと設定後、バージョン管理機能を使い始めるためには、プロジェクトディレクトリ内で Git を初期化する必要があります。コマンドラインで、<code>cd</code> コマンドを使用してあなたのプロジェクトの一番上 (ルート) のディレクトリに移動します。次に、<code>git init</code> コマンドを実行します。このコマンドは、Git があなたのプロジェクトを追跡するのに必要なファイルやオブジェクトを含んだ Git ディレクトリを設置します。</p><p>Git ディレクトリはプロジェクトのルートディレクトリに設置されていることが重要です。Git はサブディレクトリ内のファイルを追跡することができますが、Git ディレクトリから見て親ディレクトリにあるファイルは追跡できません。</p><h2 id="git--3">Git のヘルプを表示する</h2><p>Git コマンドの使い方を忘れた場合、コマンドラインから Git のヘルプにアクセスする方法がいくつかあります。</p><pre><code class="language-shell">git help COMMAND
git COMMAND --help
man git-COMMAND
</code></pre><p>このコマンドは、指定されたコマンドのマニュアルページを表示します。シェルウィンドウに表示されたマニュアルは、上下キーでスクロールするか、下記のキーボードショートカットを使用して操作できます。</p><ul><li>f またはスペースキー: 次のページ</li><li>b: 前のページ</li><li>q: 閉じる</li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Java の String を Int に変換 – 文字列を整数に変換する方法 ]]>
                </title>
                <description>
                    <![CDATA[ 文字列 (String) オブジェクトは、ひと続きの文字 (characters) によって表されます。 Java Swing で作業したことがあれば、GUI からの入力を受け付ける際に使う JTextField や JTextArea のようなコンポーネントをご存じでしょう。これらのコンポーネントは入力を文字列として受け取ります。 例えば Swing でシンプルな電卓を作りたい場合、文字列を整数 (Integer) に変換する方法が必要です。そこでこの疑問が浮かんできます。どうすれば文字列を整数に変換できるでしょうか？ Java では、文字列を整数に変換するには Integer.valueOf() や Integer.parseInt() を使用できます。 1. Integer.parseInt() を使用して文字列を整数に変換する このメソッドは文字列を プリミティブ型の int に変換して返します。文字列が有効な整数を含まない場合は NumberFormatException [https://docs.oracle.com/javase/7/docs/api/java/ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/java-string-to-int-how-to-convert-a-string-to-an-integer/</link>
                <guid isPermaLink="false">622ce90dc001ce04f5fbb38e</guid>
                
                    <category>
                        <![CDATA[ Java ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Wed, 06 Apr 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/03/Untitled-design.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/java-string-to-int-how-to-convert-a-string-to-an-integer/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Java String to Int – How to Convert a String to an Integer</a>
      </p><p>文字列 (String) オブジェクトは、ひと続きの文字 (characters) によって表されます。</p><p>Java Swing で作業したことがあれば、GUI からの入力を受け付ける際に使う JTextField や JTextArea のようなコンポーネントをご存じでしょう。これらのコンポーネントは入力を文字列として受け取ります。</p><p>例えば Swing でシンプルな電卓を作りたい場合、文字列を整数 (Integer) に変換する方法が必要です。そこでこの疑問が浮かんできます。どうすれば文字列を整数に変換できるでしょうか？</p><p>Java では、文字列を整数に変換するには <code>Integer.valueOf()</code> や <code>Integer.parseInt()</code> を使用できます。</p><h2 id="1-integer-parseint-">1. Integer.parseInt() を使用して文字列を整数に変換する</h2><p>このメソッドは文字列を <strong>プリミティブ型の int</strong> に変換して返します。文字列が有効な整数を含まない場合は <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/NumberFormatException.html">NumberFormatException</a> が発生します。</p><p>そのため、文字列を int に変換する際には必ずコードを try-catch ブロック内に配置して、この例外を処理する必要があります。</p><p><code>Integer.parseInt()</code> を使って文字列を int に変換する例を考えてみましょう。</p><pre><code class="language-java">        String str = "25";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number); // output = 25
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }
</code></pre><p>このコードに整数として無効な値を入力して、例外を発生させてみます。</p><pre><code class="language-java">     	String str = "25T";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number);
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }
</code></pre><p>上記のコードでは <code>25T</code> を整数に変換しようとしました。これは有効な入力値ではありません。したがって、NumberFormatException が発生します。</p><p>こちらが上記のコードの出力です。</p><pre><code class="language-java">java.lang.NumberFormatException: For input string: "25T"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at OOP.StringTest.main(StringTest.java:51)
</code></pre><p>次に、<code>Integer.valueOf()</code> メソッドを使って文字列を整数に変換する方法を考えます。</p><h2 id="2-integer-valueof-">2. Integer.valueOf() を使用して文字列を整数に変換する</h2><p>このメソッドは文字列を <strong>Integer オブジェクト</strong> として返します。<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#valueOf(java.lang.String)">Java のドキュメント</a> を見ると、<code>Integer.valueOf()</code> は <code>new Integer(Integer.parseInt(s))</code> と同等の Integer オブジェクトを返すことが分かります。</p><p>このメソッドを使う際も try-catch ブロック内にコードを配置します。<code>Integer.valueOf()</code> メソッドを使った例を考えてみましょう。</p><pre><code class="language-java">        String str = "25";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); // output = 25
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }
</code></pre><p>では、無効な整数を入力して上記のコードを壊してみましょう。</p><pre><code class="language-java">        String str = "25TA";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); 
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }
</code></pre><p>前の例と同様に、このコードも例外を発生させます。</p><p>こちらが上記のコードの出力です。</p><pre><code class="language-java">java.lang.NumberFormatException: For input string: "25TA"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.valueOf(Integer.java:766)
	at OOP.StringTest.main(StringTest.java:42)
</code></pre><p>与えられた文字列が有効な数値かどうかを、上述のメソッドを使う前にチェックするためのメソッドを作成するのも良いでしょう。</p><p>下記に、渡された文字列が数値かどうかをチェックするシンプルなメソッドを作成しました。</p><pre><code class="language-java">public class StringTest {
    public static void main(String[] args) {
        String str = "25";
        String str1 = "25.06";
        System.out.println(isNumeric(str));
        System.out.println(isNumeric(str1));
    }

    private static boolean isNumeric(String str){
        return str != null &amp;&amp; str.matches("[0-9.]+");
    }
}
</code></pre><p>出力は以下の通りです。</p><pre><code class="language-java">true
true
</code></pre><p><code>isNumeric()</code> メソッドは文字列を引数にとります。そしてまず、与えられた値が <code>null</code> かどうかをチェックします。次に <code>matches()</code> メソッドを使用して、0～9 の数字とピリオドが含まれているかどうかをチェックします。</p><p>これはシンプルな数値チェックです。ユースケースに応じて、数値をチェックする更に高度な正規表現を自分で書いたり、Google で検索したりするのも良いでしょう。</p><p>整数への変換を試みる前に、与えられた文字列が数値かどうかチェックすることがベストプラクティスです。</p><p>お読みいただきありがとうございました。</p><p>画像: <a href="https://unsplash.com/@itfeelslikefilm?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">🇸🇮 Janko Ferlič</a> (<a href="https://unsplash.com/collections/139346/soul-care?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a> より)</p><p><a href="https://mvthanoshan.medium.com/">Medium</a> で筆者とつながることができます。</p><p><strong>Happy Coding!</strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ JavaScript のコーディングを始めるための 40 個のやさしい JS プロジェクト (初心者向け) ]]>
                </title>
                <description>
                    <![CDATA[ プロジェクトの構築こそ新しいプログラミング言語を学ぶ最善の方法です。 そこで、純粋な JavaScript、React、TypeScript を使用する、初心者にやさしい 40 個のプロジェクトチュートリアルの一覧を作成しました。 チュートリアルについてのアドバイスなのですが、ビデオを見て、プロジェクトを構築し、それを分解してから独自の方法で再構築してみてください。新しい機能を追加したり、違う方法を試したりしてください。 そうすることで、プロジェクトの概念をつかめたかどうかテストできます。 なお、以下のリストの各プロジェクトの上でクリックすれば、対応する記事のセクションまでジャンプできます。 純粋な JavaScript のプロジェクト  1.  カラーフリッパーの作り方  2.  カウンタの作り方  3.  レビューカルーセルの作り方  4.  レスポンシブなナビゲーションバーの作り方  5.  サイドバーの作り方  6.  モーダルの作り方  7.  FAQ ページの作り方  8.  レストランのメニューページの作り方  9.  背景動画の作り方  ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/javascript-projects-for-beginners/</link>
                <guid isPermaLink="false">61fe78c70e2ac404be731bad</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manabu Matsumoto ]]>
                </dc:creator>
                <pubDate>Sun, 13 Mar 2022 23:45:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/02/60599216687d62084bf6ac9e.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/javascript-projects-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">40 JavaScript Projects for Beginners – Easy Ideas to Get Started Coding JS</a>
      </p><p>プロジェクトの構築こそ新しいプログラミング言語を学ぶ最善の方法です。</p><p>そこで、純粋な JavaScript、React、TypeScript を使用する、初心者にやさしい 40 個のプロジェクトチュートリアルの一覧を作成しました。</p><p>チュートリアルについてのアドバイスなのですが、ビデオを見て、プロジェクトを構築し、それを分解してから独自の方法で再構築してみてください。新しい機能を追加したり、違う方法を試したりしてください。</p><p>そうすることで、プロジェクトの概念をつかめたかどうかテストできます。</p><p>なお、以下のリストの各プロジェクトの上でクリックすれば、対応する記事のセクションまでジャンプできます。</p><h2 id="-javascript-">純粋な JavaScript のプロジェクト</h2><ol><li><a href="#how-to-create-a-color-flipper">カラーフリッパーの作り方</a></li><li><a href="#how-to-create-a-counter">カウンタの作り方</a></li><li><a href="#how-to-create-a-review-carousel">レビューカルーセルの作り方</a></li><li><a href="#how-to-create-a-responsive-navbar">レスポンシブなナビゲーションバーの作り方</a></li><li><a href="#how-to-create-a-sidebar">サイドバーの作り方</a></li><li><a href="#how-to-create-a-modal">モーダルの作り方</a></li><li><a href="#how-to-create-a-faq-page">FAQ ページの作り方</a></li><li><a href="#how-to-create-a-restaurant-menu-page">レストランのメニューページの作り方</a></li><li><a href="#how-to-create-a-video-background">背景動画の作り方</a></li><li><a href="#how-to-create-a-navigation-bar-on-scroll">スクロールについてくるナビゲーションバーの作り方</a></li><li><a href="#how-to-create-tabs-that-display-different-content">いろいろなコンテンツを表示するタブの作り方</a></li><li><a href="#how-to-create-a-countdown-clock">カウントダウンタイマーの作り方</a></li><li><a href="#how-to-create-your-own-lorem-ipsum">独自のロレム・イプサム (Lorem ipsum) の作り方</a></li><li><a href="#how-to-create-a-grocery-list">食材リストの作り方</a></li><li><a href="#how-to-create-an-image-slider">画像スライダーの作り方</a></li><li><a href="#how-to-create-a-rock-paper-scissors-game">じゃんけんゲームの作り方</a></li><li><a href="#how-to-create-a-simon-game">サイモンゲームの作り方</a></li><li><a href="#how-to-create-a-platformer-game">プラットフォーマーゲームの作り方</a></li><li><a href="#how-to-create-doodle-jump-and-flappy-bird">Doodle Jump の作り方</a></li><li><a href="#how-to-create-doodle-jump-and-flappy-bird">Flappy Bird の作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">神経衰弱の作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">もぐらたたきの作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">四目並べの作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">Snake (蛇) ゲームの作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">インベーダーゲームの作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">フロッガーの作り方</a></li><li><a href="#how-to-create-seven-classic-games-with-ania-kubow">テトリスの作り方</a></li></ol><h2 id="react-">React プロジェクト</h2><ol><li><a href="#how-to-build-a-tic-tac-toe-game-using-react-hooks">React のフックを用いてまるばつゲームを作る方法</a></li><li><a href="#how-to-build-a-tetris-game-using-react-hooks">React のフックを用いてテトリスを作る方法</a></li><li><a href="#how-to-create-a-birthday-reminder-app">誕生日通知アプリの作り方</a></li><li><a href="#how-to-create-a-tours-page">ツアーページの作り方</a></li><li><a href="#how-to-create-an-accordion-menu">アコーディオンメニューの作り方</a></li><li><a href="#how-to-create-tabs-for-a-portfolio-page">ポートフォリオページ用のタブの作り方</a></li><li><a href="#how-to-create-a-review-slider">レビュースライダーの作り方</a></li><li><a href="#how-to-create-a-color-generator">カラージェネレーターの作り方</a></li><li><a href="#how-to-create-a-stripe-payment-menu-page">Stripe 風の決済メニューページの作り方</a></li><li><a href="#how-to-create-a-shopping-cart-page">買い物かごページの作り方</a></li><li><a href="#how-to-create-a-cocktail-search-page">カクテル検索ページの作り方</a></li></ol><h2 id="typescript-">TypeScript プロジェクト</h2><ol><li><a href="#how-to-build-a-quiz-app-with-react-and-typescript">React と TypeScript を用いてクイズアプリを作る方法</a></li><li><a href="#how-to-create-an-arkanoid-game-with-typescript">TypeScript を用いてアルカノイドゲームを作る方法</a></li></ol><h2 id="-javascript--1">純粋な JavaScript のプロジェクト</h2><p>JavaScript の基礎を学習されていない場合は、プロジェクトの構築を進める前に、<a href="https://www.youtube.com/watch?v=PkZNo7MFNFg">こちらのコース</a>のご視聴をお勧めします。</p><p>以下のスクリーンショットの多くは<a href="https://www.vanillajavascriptprojects.com/">こちらから引用しています</a>。</p><!--kg-card-begin: html--><h3 id="how-to-create-a-color-flipper">カラーフリッパーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/color-flipper.png" class="kg-image" alt="color-flipper" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/color-flipper.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/color-flipper.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="445" loading="lazy"></figure><p>この <a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=421s">John Smilga のチュートリアル</a>では、ランダムに背景色を変化させる方法を学習します。これは DOM を扱い始めるのにふさわしいプロジェクトです。</p><p><a href="https://www.freecodecamp.org/news/whats-the-document-object-model-and-why-you-should-know-how-to-use-it-1a2d0bc5429d/#:~:text=Advantages,the%20page%20without%20a%20refresh.">Leonardo Maldonado の記事</a>の中で、DOM について学ぶことの重要性について、次のように述べられています:</p><blockquote>DOM を操作することによって、無限の可能性を手に入れます。ページの再読み込みをせずにデータを更新するアプリケーションを作成できます。また、再読み込みしないで、ユーザーが、ページのレイアウトを変更することでカスタマイズできるアプリケーションも作成できます。</blockquote><p>プロジェクトで扱う重要な概念:</p><ul><li>配列</li><li>document.getElementById()</li><li>document.querySelector()</li><li>addEventListener()</li><li>document.body.style.backgroundColor</li><li>Math.floor()</li><li>Math.random()</li><li>array.length</li></ul><p>プロジェクトの構築を開始する前に、John がすべてのプロジェクトの設定ファイルにアクセスする方法を説明している、<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=0s">導入部</a>をご覧になることをお勧めします。</p><!--kg-card-begin: html--><h3 id="how-to-create-a-counter">カウンタの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/counter.png" class="kg-image" alt="counter" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/counter.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/counter.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="599" loading="lazy"></figure><p>この John Smilga の<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=1825s">チュートリアル</a>では、カウンタの作り方を学習します。また、プロジェクトの中で、正か負かに応じて、表示されている数字の色を変えるために、条件文を記述します。</p><p>このプロジェクトは、より多く DOM を扱う練習を提供してくれます。また、ポモドーロタイマーのような他のプロジェクトの中で、この単純なカウンタを活用できます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.querySelectorAll()</li><li>forEach()</li><li>addEventListener()</li><li>currentTarget プロパティ</li><li>classList</li><li>textContent</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-review-carousel">レビューカルーセルの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/reviews.png" class="kg-image" alt="reviews" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/reviews.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/reviews.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="770" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=2644s">チュートリアル</a>では、レビューカルーセルの作り方を、ランダムにレビューを生み出すボタンを作成する方法と一緒に学習します。</p><p>e コマースサイトで顧客のレビューを表示したり、個人のポートフォリオページでクライアントの評価を表示するという重要な機能を、このカルーセルは備えています。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>オブジェクト</li><li>DOMContentLoaded</li><li>addEventListener()</li><li>array.length</li><li>textContent</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-responsive-navbar">レスポンシブなナビゲーションバーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/navbar-1.png" class="kg-image" alt="navbar-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/navbar-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/navbar-1.png 988w" sizes="(min-width: 720px) 720px" width="988" height="580" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=4289s">チュートリアル</a>では、 小さなデバイスの画面ではハンバーガーメニューを表示する、レスポンシブなナビゲーションバーの作り方を学習します。</p><p>ウェブ開発者になるにあたって、レスポンシブなウェブサイトの作り方の学習は、重要な部分です。レスポンシブであることは、一般的な機能として多くのウェブサイトで使用されています。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.querySelector()</li><li>addEventListener()</li><li>classList.toggle()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-sidebar">サイドバーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/sidebar.png" class="kg-image" alt="sidebar" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/sidebar.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/sidebar.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="459" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=5181s">チュートリアル</a>では、アニメーションをともなうサイドバーの作り方を学習します。</p><p>これは、ご自身の個人用ウェブサイトに追加できる素晴らしい機能です。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.querySelector()</li><li>addEventListener()</li><li>classList.toggle()</li><li>classList.remove()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-modal">モーダルの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/modal.png" class="kg-image" alt="modal" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/modal.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/modal.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="463" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=5943s">チュートリアル</a>では、ウェブサイト上で、ユーザーに入力を促したり、何か特定のものを表示するために使用される、モーダルウィンドウの作り方を学習します。</p><p>モーダルウィンドウの良い例は、ユーザーがサイト内で変更を加えてから、それを保存せずに他のページへ移動しようとする場合です。変更を保存しなければ、その情報が失われてしまうことをユーザーに警告するために、モーダルウィンドウを表示できます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.querySelector()</li><li>addEventListener()</li><li>classList.add()</li><li>classList.remove()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-faq-page">FAQ ページの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/FAQ-section.png" class="kg-image" alt="FAQ-section" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/FAQ-section.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/FAQ-section.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="612" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=6506s">チュートリアル</a>では、よくある質問 (frequently asked questions - FAQ) ページの作り方を学習します。 事業についてユーザーを教え導いたり、質問の内容に関連のある検索結果を通じて、ウェブサイトへの往来を活発にします。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.querySelectorAll()</li><li>addEventListener()</li><li>forEach()</li><li>classList.remove()</li><li>classList.toggle()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-restaurant-menu-page">レストランのメニューページの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/menu.png" class="kg-image" alt="menu" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/menu.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/menu.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="469" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=8185s">チュートリアル</a>では、さまざまな食事のメニューを選別できる、レストランのメニューページの作り方を学習します。この楽しいプロジェクトは、map、reduce、filter のような高階関数について教えてくれます。</p><p><a href="https://www.freecodecamp.org/news/a-quick-intro-to-higher-order-functions-in-javascript-1a014f89c6b/">Yazeed Bzadough の記事</a>の中で、高階関数について次のように述べられています:</p><blockquote>高階関数の最大の利点は、再利用性が高いことです。</blockquote><p>プロジェクトで扱う重要な概念:</p><ul><li>配列</li><li>オブジェクト</li><li>forEach()</li><li>DOMContentLoaded</li><li>map、reduce、filter</li><li>innerHTML</li><li>includes メソッド</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-video-background">背景動画の作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/video-1.png" class="kg-image" alt="video-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/video-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/video-1.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="463" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=11773s">チュートリアル</a>では、再生／一時停止機能を含んだ背景動画の作り方を学習します。これは多くのウェブサイトに見られる、一般的な機能です。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.querySelector()</li><li>addEventListener()</li><li>classList.contains()</li><li>classList.add()</li><li>classList.remove()</li><li>play()</li><li>pause()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-navigation-bar-on-scroll">スクロールについてくるナビゲーションバーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/scroll-page.png" class="kg-image" alt="scroll-page" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/scroll-page.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/scroll-page.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="469" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=12765s">チュートリアル</a>では、スクロール中に、特定の高さに固定したままスライドする、ナビゲーションバーの作り方を学習します。</p><p>これは、多くのプロのウェブサイトに見られる、人気のある機能です。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>document.getElementById()</li><li>getFullYear()</li><li>getBoundingClientRect()</li><li>slice メソッド</li><li>window.scrollTo()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-tabs-that-display-different-content">いろいろなコンテンツを表示するタブの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/tabs-2.png" class="kg-image" alt="tabs-2" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/tabs-2.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/tabs-2.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="452" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=16575s">チュートリアル</a>では、シングルページアプリケーションを作る際に便利な、いろいろなコンテンツを表示できるタブの作り方を学習します。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>classList.add()</li><li>classList.remove()</li><li>forEach()</li><li>addEventListener()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-countdown-clock">カウントダウンタイマーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/countdown.png" class="kg-image" alt="countdown" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/countdown.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/countdown.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="420" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=17933s">チュートリアル</a>では、新製品を発売しようとしている時や、e コマースサイトでの販売が終了しようとしている時に使用できる、カウントダウンタイマーの作り方を学習します。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>getFullYear()</li><li>getMonth()</li><li>getDate()</li><li>Math.floor()</li><li>setInterval()</li><li>clearInterval()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-your-own-lorem-ipsum">独自のロレム・イプサム (Lorem ipsum) の作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/lorem-ipsum.png" class="kg-image" alt="lorem-ipsum" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/lorem-ipsum.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/02/lorem-ipsum.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2022/02/lorem-ipsum.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/lorem-ipsum.png 1718w" sizes="(min-width: 720px) 720px" width="1718" height="868" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=21395s">チュートリアル</a>では、独自のロレム・イプサムの作り方を学習します。</p><p>ロレム・イプサムとは、ウェブサイト用のプレースホルダーテキストとして使われるものです。この楽しいプロジェクトで、創造力を発揮して独自のテキストを作成します。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>parseInt()</li><li>Math.floor()</li><li>Math.random()</li><li>isNaN()</li><li>slice メソッド</li><li>event.preventDefault()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-grocery-list">食材リストの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/grocery-list.png" class="kg-image" alt="grocery-list" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/grocery-list.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/grocery-list.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="672" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=22703s">チュートリアル</a>では、食材リストの項目を更新または削除する方法について学習し、単純な CRUD (Create - 生成、Read - 読み取り、Update - 更新、Delete - 削除) アプリケーションを作成します。</p><p>CRUD は、フルスタックアプリケーションの開発において重要な役割を演じます。それがなければ、お気に入りのソーシャルメディアプラットフォームで、投稿を編集または削除するといったようなこともできなくなってしまいます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>DOMContentLoaded</li><li>new Date()</li><li>createAttribute()</li><li>setAttributeNode()</li><li>appendChild()</li><li>filter()</li><li>map()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-an-image-slider">画像スライダーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/image-slider-1.png" class="kg-image" alt="image-slider-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/image-slider-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/image-slider-1.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="425" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=3PHXvlpOkf4&amp;t=28874s">チュートリアル</a>では、どのウェブサイトにも追加できる、画像スライダーの作り方を学習します。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>querySelectorAll()</li><li>addEventListener()</li><li>forEach()</li><li>if/else 文</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-rock-paper-scissors-game">じゃんけんゲームの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/rock-paper-scissors.png" class="kg-image" alt="rock-paper-scissors" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/rock-paper-scissors.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/rock-paper-scissors.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="555" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=jaVNP3nIAv0">チュートリアル</a>では、じゃんけんゲームの作り方を Tenzin が教えてくれます。この楽しいプロジェクトは、より多くの DOM を扱う練習を提供してくれます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>addEventListener()</li><li>Math.floor()</li><li>Math.random()</li><li>switch 文</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-simon-game">サイモンゲームの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/simon-game.png" class="kg-image" alt="simon-game" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/simon-game.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/simon-game.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="552" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=n_ec3eowFLQ">チュートリアル</a>では、定番のサイモンゲームの作り方を Beau Carnes が教えてくれます。 これは、ゲームの背後にあるいろいろなコンポーネントと、それらの各機能を構築する方法について考えさせてくれる、優れたプロジェクトです。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>querySelector()</li><li>addEventListener()</li><li>setInterval()</li><li>clearInterval()</li><li>setTimeout()</li><li>play()</li><li>Math.floor()</li><li>Math.random()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-platformer-game">プラットフォーマーゲームの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/platformer-game.png" class="kg-image" alt="platformer-game" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/platformer-game.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/platformer-game.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="545" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=w-OKdSHRlfA">チュートリアル</a>では、Frank Poth がプラットフォーマーゲームの作り方を教えてくれます。このプロジェクトでは、オブジェクト指向プログラミング (OOP) と、Model - View - Controller &nbsp;(MVC) ソフトウエアパターンについて紹介します。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>this キーワード</li><li>for ループ</li><li>switch 文</li><li>OOP の原則</li><li>MVC パターン</li><li>Canvas API</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-doodle-jump-and-flappy-bird">Doodle Jump と Flappy Bird の作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/doodle-jump.png" class="kg-image" alt="doodle-jump" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/doodle-jump.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/doodle-jump.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="558" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=8xPsg6yv7TU&amp;t=0s">一連のビデオ</a>では、Ania Kubow が <a href="https://www.youtube.com/watch?v=8xPsg6yv7TU&amp;t=114s">Doodle Jump</a> と <a href="https://www.youtube.com/watch?v=8xPsg6yv7TU&amp;t=3102s">Flappy Bird</a> の作り方について教えてくれます。</p><p>これらのゲームを作ることで、多くのポピュラーな JavaScript のメソッドを扱いながら、JavaScript についてさらに楽しく学習できます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>createElement()</li><li>forEach()</li><li>setInterval()</li><li>clearInterval()</li><li>removeChild()</li><li>appendChild()</li><li>addEventListener()</li><li>removeEventListener()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-seven-classic-games-with-ania-kubow">Ania Kubow と作る 7 つのクラシックゲーム</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/7-js-games.png" class="kg-image" alt="7-js-games" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/7-js-games.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/7-js-games.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="559" loading="lazy"></figure><p>Ania Kubow による<a href="https://www.youtube.com/watch?v=lhNdUVh3qCc">このコース</a>の中で、楽しみながら 7 つのゲームを作成できます:</p><ol><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=115s">神経衰弱</a></li><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=699s">もぐらたたき</a></li><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=1187s">四目並べ</a></li><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=1657s">Snake (蛇) ゲーム</a></li><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=2590s">インベーダーゲーム</a></li><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=3546s">フロッガー</a></li><li><a href="https://www.youtube.com/watch?v=lhNdUVh3qCc&amp;t=4778s">テトリス</a></li></ol><p>プロジェクトで扱う重要な概念:</p><ul><li>for ループ</li><li>onclick イベント</li><li>アロー関数</li><li>sort()</li><li>pop()</li><li>unshift()</li><li>push()</li><li>indexOf()</li><li>includes()</li><li>splice()</li><li>concat()</li></ul><h2 id="react--1">React のプロジェクト</h2><p>もし React の基礎にあまり詳しくなければ、以下のプロジェクトを進める前に<a href="https://www.youtube.com/watch?v=4UZrsTqkcW4">このコース</a>の視聴をお勧めします。</p><!--kg-card-begin: html--><h3 id="how-to-build-a-tic-tac-toe-game-using-react-hooks">React のフックを用いてまるばつゲームを作る方法</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/tic-tac-game-1.png" class="kg-image" alt="tic-tac-game-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/tic-tac-game-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/tic-tac-game-1.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="569" loading="lazy"></figure><p>この <a href="https://www.freecodecamp.org/news/learn-how-to-build-tic-tac-toe-with-react-hooks/">freeCodeCamp の記事</a>の中で、Thomas Weibenfalk による Scrimba のまるばつゲームのチュートリアルについて、Per Harald Borgen が解説してくれます。Scimba の YouTube チャンネルでは、このプロジェクトの<a href="https://www.youtube.com/watch?v=Z5RbPrK4VqM">ビデオコース</a>を見ることができます。</p><p>これは React の基本に慣れ、フックを扱い始めるのにふさわしいプロジェクトです。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>useState()</li><li>import / export</li><li>JSX</li></ul><!--kg-card-begin: html--><h3 id="how-to-build-a-tetris-game-using-react-hooks">React のフックを用いてテトリスを作る方法</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/react-tetris-1.png" class="kg-image" alt="react-tetris-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/react-tetris-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/react-tetris-1.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="559" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=ZGOaCxX8HIU">チュートリアル</a>では、Thomas Weibenfalk が React のフックと styled components を用いてテトリスを作る方法を教えてくれます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>useState()</li><li>useEffect()</li><li>useRef()</li><li>useCallback()</li><li>styled components</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-birthday-reminder-app">誕生日通知アプリの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/brithday-app.png" class="kg-image" alt="brithday-app" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/brithday-app.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/brithday-app.png 892w" sizes="(min-width: 720px) 720px" width="892" height="1138" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この <a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=438s">John Smilga のコース</a>では、誕生日通知アプリの作り方を学習します。これは React の基本に慣れ、フックを扱い始めるのにふさわしいプロジェクトです。</p><p>このプロジェクト用のスタートアップファイルを準備する方法についても、<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=214s">John のビデオ</a>を見ることをお勧めします。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>useState()</li><li>import / export</li><li>JSX</li><li>map()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-tours-page">ツアーページの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/tours-page.png" class="kg-image" alt="tours-page" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/tours-page.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/tours-page.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="902" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=1181s">チュートリアル</a>では、興味のないツアーをユーザーが削除できる、ツアーページの作り方を学習します。</p><p>このプロジェクトで、React のフックと async/await パターンを練習できます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>try...catch 文</li><li>async/await パターン</li><li>useEffect()</li><li>useState()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-an-accordion-menu">アコーディオンメニューの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/accordion-react.png" class="kg-image" alt="accordion-react" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/accordion-react.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/accordion-react.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="536" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=4642s">チュートリアル</a>では、質問と解答用のアコーディオンメニューの作り方を学習します。 モダンな方法でユーザーにコンテンツを表示する際に、このメニューが役に立ちます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>React Icons</li><li>useState()</li><li>map()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-tabs-for-a-portfolio-page">ポートフォリオページ用のタブの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/tabs-portfolio-page-react.png" class="kg-image" alt="tabs-portfolio-page-react" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/tabs-portfolio-page-react.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/tabs-portfolio-page-react.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="473" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=6726s">チュートリアル</a>では、模擬のポートフォリオページ用のタブを作る方法について学習します。タブは、シングルページアプリケーション内でさまざまなコンテンツを表示する際に役に立ちます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>async/await パターン</li><li>React Icons</li><li>useEffect()</li><li>useState()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-review-slider">レビュースライダーの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/react-slider.png" class="kg-image" alt="react-slider" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/react-slider.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/react-slider.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="554" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=8020s">チュートリアル</a>では、数秒ごとに新しいレビューにスライドする、レビュースライダーの作り方を学習します。</p><p>これは e コマースサイトやポートフォリオの中に組み込める、すばらしい機能です。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>React Icons</li><li>useEffect()</li><li>useState()</li><li>map()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-color-generator">カラージェネレーターの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/react-color-generator.png" class="kg-image" alt="react-color-generator" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/react-color-generator.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/react-color-generator.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="453" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=11329s">チュートリアル</a>では、カラージェネレーターの作り方を学習します。このプロジェクトは、フックと setTimeout を扱う練習を続けるのに適しています。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>setTimeout()</li><li>clearTimeout()</li><li>useEffect()</li><li>useState()</li><li>try...catch 文</li><li>event.preventDefault()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-stripe-payment-menu-page">Stripe 風の決済メニューページの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/stripe-page.png" class="kg-image" alt="stripe-page" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/stripe-page.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/stripe-page.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="472" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=20686s">チュートリアル</a>では、Stripe 風の決済メニューページの作り方を学習します。このプロジェクトは、React のコンポーネントを用いて、プロダクトランディングページをデザインする良い練習になるでしょう。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>React Icons</li><li>useRef()</li><li>useEffect()</li><li>useState()</li><li>useContext()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-shopping-cart-page">買い物かごページの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/shopping-cart-page.png" class="kg-image" alt="shopping-cart-page" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/shopping-cart-page.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/shopping-cart-page.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="666" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=24115s">チュートリアル</a>では、買い物かごの中の商品を更新したり削除できるページの作り方について学習します。このプロジェクトは、 useReducer フックの導入にも適しています。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>map()</li><li>filter()</li><li><code>&lt;svg&gt;</code> 要素</li><li>useReducer()</li><li>useContext()</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-a-cocktail-search-page">カクテル検索ページの作り方</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/cocktails-page.png" class="kg-image" alt="cocktails-page" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/cocktails-page.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/cocktails-page.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="580" loading="lazy"></figure><p><a href="https://react-projects.netlify.app/">https://react-projects.netlify.app/</a> からのスクリーンショット</p><p>この<a href="https://www.youtube.com/watch?v=a_7Z7C_JCyo&amp;t=27597s">チュートリアル</a>では、カクテル検索ページの作り方について学習します。このプロジェクトでは React Router の使い方を紹介しています。</p><p>React Router は、ウェブサイトにナビゲーションを作成して、about (アバウト) ページや連絡先ページのような、さまざまなコンポーネントに表示を変更する機能を提供してくれます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li><code>&lt;Router&gt;</code></li><li><code>&lt;Switch&gt;</code></li><li>useCallback()</li><li>useContext()</li><li>useEffect()</li><li>useState()</li></ul><h2 id="typescript--1">TypeScript プロジェクト</h2><p>もし TypeScript にあまり詳しくなければ、以下のプロジェクトを進める前に<a href="https://www.youtube.com/watch?v=gp5H0Vw39yw">このコース</a>の視聴をお勧めします。</p><!--kg-card-begin: html--><h3 id="how-to-build-a-quiz-app-with-react-and-typescript">React と TypeScript を用いてクイズアプリを作る方法</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/quiz-app.png" class="kg-image" alt="quiz-app" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/quiz-app.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/quiz-app.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="565" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=F2JCjVSZlG0">チュートリアル</a>では、Thomas Weibenfalk が React と TypeScript を用いたクイズアプリの作り方について教えてくれます。このプロジェクトは、TypeScript の基本を練習するよい機会になってくれます。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>React.FC</li><li>styled components</li><li>dangerouslySetInnerHTML</li></ul><!--kg-card-begin: html--><h3 id="how-to-create-an-arkanoid-game-with-typescript">TypeScript を用いてアルカノイドゲームを作る方法</h3><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/akrnoid-game.png" class="kg-image" alt="akrnoid-game" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/akrnoid-game.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/akrnoid-game.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="560" loading="lazy"></figure><p>この<a href="https://www.youtube.com/watch?v=7bejSTim38A">チュートリアル</a>では、Thomas Weibenfalk が TypeScript でアルカノイドゲームを作る方法について教えてくれます。これは TypeScript の基本概念を扱う練習の場を提供してくれる、優れたプロジェクトです。</p><p>プロジェクトで扱う重要な概念:</p><ul><li>型 (Type)</li><li>クラス</li><li>モジュール</li><li>HTMLCanvasElement</li></ul><p>純粋な JavaScript、React、TypeScript を使用する 40 個のプロジェクトチュートリアルをお楽しみください。</p><p>ハッピーコーディング！</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
