<?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[ програмування - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/ukrainian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ програмування - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/ukrainian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 19:54:42 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/ukrainian/news/tag/prohramuvannya/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Думай як програміст: уроки розв’язання проблем ]]>
                </title>
                <description>
                    <![CDATA[ Автор: Річард Рейс Якщо ви зацікавлені в програмуванні, то, можливо, вже бачили цю цитату: > «Кожен повинен навчитися програмувати, тому що це вчить мислити», — Стів Джобс Ви, мабуть, також замислювалися, що саме означає «мислити, як програміст»? І як  це робити?? Суть полягає в ефективнішому способі розв’язання проблем. Мета ]]>
                </description>
                <link>https://www.freecodecamp.org/ukrainian/news/dumay-yak-prohramist-uroky-rozv-yazannya-problem/</link>
                <guid isPermaLink="false">66794b63d8f5d103efff98ac</guid>
                
                    <category>
                        <![CDATA[ програмування ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Anastasiia Buievych ]]>
                </dc:creator>
                <pubDate>Wed, 26 Jun 2024 08:06:43 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/ukrainian/news/content/images/2024/06/1-HTRqXgr7CVtRBsyTxurQew.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Оригінальна публікація:</strong> <a href="https://www.freecodecamp.org/news/how-to-think-like-a-programmer-lessons-in-problem-solving-d1d8bf1de7d2/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to think like a programmer — lessons in problem solving</a>
      </p><p>Автор: Річард Рейс</p><p>Якщо ви зацікавлені в програмуванні, то, можливо, вже бачили цю цитату:</p><blockquote>«Кожен повинен навчитися програмувати, тому що це вчить мислити», — Стів Джобс</blockquote><p>Ви, мабуть, також замислювалися, що саме означає «мислити, як програміст»? І <em>як</em> це робити??</p><p>Суть полягає в <strong>ефективнішому способі розв’язання проблем</strong>.</p><p>Мета цієї статті — навчити вас цього способу.</p><p>Наприкінці ви точно знатимете, які кроки потрібно зробити, щоб краще розв’язувати проблеми.</p><h4 id="-"><strong>Чому це важливо?</strong></h4><p>Розв’язання проблем — це метанавичка.</p><p>У нас всіх є проблеми: в когось більші, в когось менші. Деколи ми справляємось з ними дуже… непродумано.</p><p>Якщо у вас немає системи, то ви, ймовірно, «розв’язуєте» проблеми наступним чином (я також так робив, коли починав програмувати):</p><ol><li>знаходите розв’язок;</li><li>якщо він не працює, знаходите інший розв’язок;</li><li>якщо він теж не працює, повторюєте крок №2, доки не пощастить.</li></ol><p>Дивіться, іноді може пощастити. Але це найгірший спосіб розв’язання проблем! І це просто величезна трата часу.</p><p>Найкращий спосіб включає а) наявність системи та б) <strong>її використання</strong>.</p><blockquote>«Майже всі роботодавці в першу чергу надають перевагу навичкам розв’язання проблем.</blockquote><blockquote>Навички розв’язання проблем майже одностайно вважаються найважливішою характеристикою, яку шукають роботодавці... Навіть важливішою, ніж знання мов програмування, налагодження та проєктування систем.</blockquote><blockquote>Обчислювальне мислення та здатність розбивати великі, складні проблеми так само цінні (якщо не більше), як базові технічні навички, необхідні для роботи», — Hacker Rank (<a href="https://www.hackerrank.com/research/developer-skills/2018/">звіт про навички розробників за 2018 рік</a>)</blockquote><h4 id="--1"><strong>Дотримуйтесь системи</strong></h4><p>Щоб знайти правильну систему, я скористався порадою з книги Тіма Ферріса «<a href="https://www.amazon.com/dp/0547884591/?tag=richardreeze-20">Шеф-кухар за 4 години</a>».</p><p>Це привело мене до інтерв’ю з двома справді дивовижними людьми: <a href="https://www.linkedin.com/in/cjordanball/">С. Джорданом Баллом</a> (займає 1-ше або 2-ге місце серед 65 000+ користувачів на <a href="https://coderbyte.com">Coderbyte</a>) і <a href="http://vantonspraul.com/">В. Антоном Спраулом</a> (автор книги «<a href="https://www.amazon.com/dp/1593274246/?tag=richardreeze-20">Думай як програміст: вступ до творчого розв’язання проблем</a>»).</p><p>Я поставив їм однакові запитання, і знаєте що? Їхні відповіді були досить схожими!</p><p>Зовсім скоро ви також дізнаєтесь про них.</p><p>Примітка: це не означає, що вони все робили однаково. Усі ми різні. Ви також відрізняєтесь. Але якщо ви почнете з принципів, з якими ми всі згодні, ваші досягнення будуть швидшими.</p><blockquote>«Найбільша помилка, яку роблять початківці, — вони фокусуються на вивченні синтаксису замість того, як розв’язувати проблеми», — В. Антон Спраул</blockquote><p>Отже, що робити, коли стикнулись з новою проблемою?</p><p>Ось покрокова інструкція:</p><h4 id="1-"><strong>1. Зрозумійте проблему</strong></h4><p>Точно зрозумійте, що від вас вимагається. Більшість важких проблем важкі через те, що їх не розуміють (саме тому це перший крок).</p><p>Як зрозуміти, що ви зрозуміли проблему? Ви можете пояснити її простими словами.</p><p>Пам’ятаєте, як застрягли на якійсь проблемі, почали її пояснювати і миттєво побачили прогалини в логіці, яких не помічали раніше?</p><p>Більшості програмістів знайоме це відчуття.</p><p>Ось чому варто записати свою проблему, намалювати діаграму або розповісти про неї іншій людині (або предмету… Дехто використовує <a href="https://uk.wikipedia.org/wiki/Метод_каченяти">метод каченяти</a>).</p><blockquote>«Якщо ви не можете пояснити щось простими словами, ви цього не розумієте», — Річард Фейнман</blockquote><h4 id="2-"><strong>2. Складіть план</strong></h4><p>Не кидайтеся одразу розв’язувати проблему без плану (і сподіватись, що зможете впоратись). Складіть план розв’язку!</p><p>Вам ніщо не допоможе, якщо ви не можете записати точні кроки.</p><p>У програмуванні це означає не починати одразу писати код. Дайте своєму мозку час проаналізувати проблему та обробити інформацію.</p><p>Щоб скласти хороший план, дайте відповідь на це запитання:</p><p>«Маючи вхідні дані X, які кроки необхідно виконати, щоб отримати вихідні дані Y?»</p><p>Примітка: програмісти мають чудовий інструмент, який допоможе з цим… Коментарі!</p><h4 id="3-"><strong>3. Поділіть проблему</strong></h4><p>Зверніть увагу. Це найважливіший крок.</p><p>Не намагайтеся розв’язати одну велику проблему. Ви будете плакати.</p><p>Натомість розбийте її на менші проблеми. Ці проблемки набагато простіше розв’язати.</p><p>Потім розв’яжіть ці проблемки по черзі. Почніть з найпростішої. «Найпростіша» означає, що ви знаєте відповідь (або близькі до неї).</p><p>Розв’язок наступних «найпростіших» проблемок не залежить від інших.</p><p>Як тільки розв’яжете всі проблемки, з’єднайте точки.</p><p>Об’єднавши розв’язки всіх проблемок, ви знайдете розв’язок початкової проблеми. Мої вітання!</p><p>Ця техніка — основа розв’язання проблем. Запам’ятайте її (якщо потрібно, прочитайте цей крок ще раз).</p><blockquote>«Якби я міг навчити кожного програміста-початківця одній навичці розв’язання проблем, це була б «техніка зменшення проблеми».</blockquote><blockquote>Припустимо, ви програміст-початківець, і вам доручили написати програму, яка читає десять чисел і визначає, яке з них є третім за величиною. Для зовсім початківця це може бути складне завдання, навіть якщо воно вимагає лише базового синтаксису.</blockquote><blockquote>Якщо ви застрягли, потрібно зменшити проблему до чогось простішого. Замість того, щоб знаходити третє за величиною число, як щодо того, щоб знайти найбільше загалом? Все одно складно? А якщо знайти найбільше з трьох чисел? Або більше з двох?</blockquote><blockquote>Зменшуйте проблему до того моменту, коли знаєте, як її розв’язати, і напишіть розв’язок. Потім трохи розширте проблему та відповідно перепишіть розв’язок, і продовжуйте, поки не повернетеся до початкового завдання», — В. Антон Спраул</blockquote><h4 id="4-"><strong>4. Застрягли?</strong></h4><p>Ви вже, мабуть, думаєте: «Ей, Річарде... Це все класно, але що робити, якщо я застряг(-ла) і навіть не можу розв’язати проблемку??»</p><p>По-перше, глибоко вдихніть. По-друге, це справедливо.</p><p>Але не переживайте, друзі. Так буває!</p><p>Різниця в тому, що хороші програмісти цікавляться помилками, а не дратуються через них.</p><p>Ось що можна спробувати, якщо натрапите на труднощі:</p><ul><li>Виконайте налагодження: уважно перегляньте свій розв’язок, намагаючись знайти помилку. Програмісти називають це <em>налагодженням</em> (власне, це все, що робить налагоджувач).</li></ul><blockquote>«Мистецтво налагодження полягає в тому, щоб зрозуміти, що ви насправді наказали робити програмі, а не те, що думали», — Ендрю Сінгер</blockquote><ul><li>Проведіть переоцінку: зробіть крок назад. Подивіться на проблему з іншого боку. Чи є щось, що можна абстрагувати до більш загального підходу?</li></ul><blockquote>«Іноді ми настільки заглиблюємося в деталі проблеми, що не помічаємо загальних принципів, які розв’язують проблему на більш загальному рівні. [...]</blockquote><blockquote>Класичний приклад цього, звісно, це сума довгого списку послідовних цілих чисел, 1 + 2 + 3 + ... + n, яку дуже молодий Гаусс швидко розпізнав як просто n(n+1)/2, тим самим уникаючи необхідності виконувати додавання», — <a href="https://www.linkedin.com/in/cjordanball/">С. Джордан Балл</a></blockquote><p>Примітка: ще один спосіб провести переоцінку — почати спочатку. Видаліть усе і почніть на свіжу голову. Я серйозно. Ви будете здивовані, наскільки це ефективно.</p><ul><li>Займіться дослідженням: ах, старий добрий Google. Ви правильно прочитали. Незалежно від того, яка у вас проблема, хтось, ймовірно, вже її розв’язав. Знайдіть цю людину/розв’язок. Робіть це навіть якщо ви вже розв’язали проблему! (Ви можете багато чому навчитися з розв’язків інших людей).</li></ul><p>Застереження: не шукайте розв’язки великої проблеми. Шукайте лише розв’язки проблемок. Чому? Якщо ви не будете боротися (навіть трохи), ви нічого не навчитеся. А якщо ви нічого не навчитеся, ви даремно витратите час.</p><h4 id="--2"><strong>Практикуйтесь</strong></h4><p>Не очікуйте, що будете професіоналом за один тиждень. Якщо ви хочете добре розв’язувати проблеми, розв’язуйте багато проблем!</p><p>Практика. Практика. Практика. Пройде зовсім небагато часу, і ви почнете розуміти, що «цю проблему можна легко розв’язати за допомогою &lt;вставте сюди якесь поняття&gt;».</p><p>Як практикуватися? Варіантів повно!</p><p>Шахи, математичні задачі, судоку, го, монополія, відеоігри, CryptoKitties, бла... бла... бла....</p><p>Насправді загальна риса серед успішних людей — їхня звичка практикувати розв’язок мікропроблем. Наприклад, Пітер Тіль грає в шахи, а Ілон Маск грає у відеоігри.</p><blockquote>«Байрон Рівз сказав: «Якщо ви хочете побачити, як може виглядати бізнес-лідерство через три-п’ять років, подивіться, що відбувається в онлайн-іграх.»</blockquote><blockquote>Перенесемося до сьогодення. Ілон [Маск], Рейд [Гоффман], Марк Цукерберг та багато інших кажуть, що ігри стали основою їхнього успіху у побудові своїх компаній», — Мері Мікер (<a href="https://www.recode.net/2017/5/31/15693686/mary-meeker-kleiner-perkins-kpcb-slides-internet-trends-code-2017">звіт про інтернет-тенденції за 2017 рік</a>)</blockquote><p>Чи означає це, що вам потрібно просто грати у відеоігри? Зовсім ні.</p><p>Але яка мета відеоігор? Правильно, розв’язок проблем!</p><p>Тому потрібно знайти спосіб практики. Щось, що дозволяє розв’язувати багато мікропроблем (бажано, щоб вам це подобалося).</p><p>Наприклад, мені подобаються завдання з програмування. Кожного дня я намагаюся виконати хоча б одне завдання (зазвичай на <a href="https://coderbyte.com">Coderbyte</a>).</p><p>Як я вже сказав, усі проблеми мають схожі шаблони.</p><h4 id="--3"><strong>Висновок</strong></h4><p>Це все, друзі!</p><p>Тепер ви краще розумієте, що означає «мислити, як програміст».</p><p>Ви також знаєте, що розв’язок проблем — це неймовірна навичка, яку варто розвивати (метанавичка).</p><p>А якщо цього недостатньо, то ви також знаєте, як практикувати навички розв’язку проблем!</p><p><em>Фух</em>... Досить круто, правда?</p><p>Зрештою, я бажаю вам стикатися з багатьма проблемами.</p><p>Ви правильно прочитали. Принаймні тепер ви знаєте, як їх розв’язувати! (і пам’ятайте, що з кожним розв’язком ви стаєте кращими).</p><blockquote>«Як тільки ви думаєте, що успішно пройшли одну перешкоду, з’являється інша. Але саме це робить життя цікавим. [...]</blockquote><blockquote>Життя — це процес подолання перешкод; це укріплені рубежі, через які ми повинні прорватися.</blockquote><blockquote>Кожен раз ви чогось навчаєтесь.</blockquote><blockquote>Кожен раз ви розвиваєте силу, мудрість і перспективу.</blockquote><blockquote>Кожен раз відступає частина конкуренції, допоки залишитесь лише ви: найкраща версія себе», — Раян Голідей («<a href="https://www.amazon.com/dp/1591846358/?tag=richardreeze-20">Перешкода як шлях</a>»)</blockquote><p>А тепер до розв’язку проблем!</p><p>Бажаю удачі?</p><p><strong>Окрема подяка</strong> <a href="https://www.linkedin.com/in/cjordanball/">С. Джордану Баллу</a> та <a href="http://vantonspraul.com/">В. Антону Спраулу</a>. Усі корисні поради — від них.</p><p>Дякую, що прочитали! Якщо вам сподобалося, спробуйте, скільки разів ви зможете натиснути на кнопку миші за 5 секунд. Це чудове кардіо для пальців ТА допоможе іншим побачити цю історію.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Що таке програмування? Довідник початківця ]]>
                </title>
                <description>
                    <![CDATA[ Вітаємо у чудовому світі програмування! Це одна з найкорисніших та найсильніших навичок, якої ви можете навчитись та використовувати для того, щоб втілити свої ідеї в реальність. У цьому довіднику ми розглянемо, чому програмування важливе, його застосування, основні поняття та навички, необхідні успішному розробнику. Ви дізнаєтесь:  * Що таке програмування ]]>
                </description>
                <link>https://www.freecodecamp.org/ukrainian/news/shcho-take-prohramuvannya-dovidnyk-pochatkivtsya/</link>
                <guid isPermaLink="false">639cd21698f60806c34ec81a</guid>
                
                    <category>
                        <![CDATA[ програмування ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Anastasiia Buievych ]]>
                </dc:creator>
                <pubDate>Fri, 23 Dec 2022 13:27:08 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/ukrainian/news/content/images/2022/12/what-is-programming.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Оригінальна публікація:</strong> <a href="https://www.freecodecamp.org/news/what-is-programming-tutorial-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">What is Programming? A Handbook for Beginners</a>
      </p><p><strong>Вітаємо у чудовому світі програмування!</strong> Це одна з найкорисніших та найсильніших навичок, якої ви можете навчитись та використовувати для того, щоб втілити свої ідеї в реальність.</p><p>У цьому довіднику ми розглянемо, чому програмування важливе, його застосування, основні поняття та навички, необхідні успішному розробнику.</p><h3 id="-"><strong>Ви дізнаєтесь:</strong></h3><ul><li><a href="#що-таке-програмування-та-чому-воно-важливе">Що таке програмування та чому воно важливе</a></li><li><a href="#що-таке-мова-програмування-та-чому-вона-важлива">Що таке мова програмування та чому вона важлива</a></li><li><a href="#як-програмування-відноситься-до-бінарних-чисел">Як програмування відноситься до бінарних чисел</a></li><li><a href="#реальне-застосування-програмування">Реальне застосування програмування</a></li><li><a href="#навички-успішного-розробника">Навички успішного розробника</a></li><li><a href="#корисні-поради-для-навчання">Корисні поради для навчання</a></li><li><a href="#типи-мов-програмування">Типи мов програмування</a></li><li><a href="#як-зробити-внесок-до-проєктів-з-відкритим-кодом">Як зробити внесок до проєктів з відкритим кодом</a></li><li>Та багато іншого...</li></ul><p>Готові? Тоді розпочнемо! ✨</p><!--kg-card-begin: html--><h2 id="що-таке-програмування-та-чому-воно-важливе">🔹 Що таке програмування?</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/main-image.png" class="kg-image" alt="main-image" width="600" height="400" loading="lazy"><figcaption>Програмування є невід’ємною частиною нашого повсякденного життя.</figcaption></figure><p>Ви знали, що комп’ютерне програмування тепер є фундаментальною частиною нашого повсякденного життя? Розглянемо причини. Я впевнена, що ви будете здивовані.</p><p>Кожного разу, коли ви вмикаєте смартфон, ноутбук, комп’ютер, планшет, телевізор, чи інший пристрій, ви запускаєте код, який спланували, розробили та написали розробники. Цей код створює кінцевий та інтерактивний результат, який ви бачите на екрані.</p><p>Це і називається <strong>програмуванням</strong>. Це процес написання коду, щоб розв’язати певну проблему або виконати певне завдання.</p><p>Програмування дозволяє комп’ютеру запускати ваші щоденні програми, а смартфону — ваші улюблені застосунки. Це невід’ємна частина нашого світу.</p><p>Коли ви перевіряєте календар, відвідуєте віртуальні конференції, переглядаєте вебсторінки чи редагуєте документ, ви використовуєте код, написаний розробниками.</p><p>Звідси виникає питання: «Що таке код?»</p><p><strong>Код</strong> — це перелік інструкцій, які вказують пристрою необхідні до виконання дії.</p><p>Пристрій не знає, як обробити певну ситуацію або як виконати завдання. Тому розробники відповідають за аналіз ситуації та написання точних інструкцій, щоб виконати те, що вимагається.</p><p>Для цього вони дотримуються певного синтаксису (правила написання коду).</p><p><strong>Розробник</strong> (або програміст) — це людина, яка аналізує проблему та розв’язує її у коді.</p><p>Звучить чудово, правда? Це сильний навик і <strong>ви</strong> також можете стати частинкою цього світу, навчившись програмувати.</p><h3 id="--1"><strong>Ви у ролі розробника.</strong></h3><p>Уявіть себе на місці розробника. Ви створюєте один з тих мобільних застосунків, який вже є на вашому смартфоні.</p><p>Що б ви зробили в першу чергу?</p><p>Задумайтесь.</p><p>Відповідь…</p><p>Проаналізували проблему. Що ви намагаєтесь створити?</p><p>Як розробник, ви б почали з дизайну макету, принципу роботи, функцій та інших дрібних деталей, які можуть зробити ваш застосунок корисним для користувачів з кожного куточку світу.</p><p>Лише після того, як все продумано, можна писати код. Для цього потрібно обрати <strong>мову програмування</strong>, з якою ви будете працювати. Розглянемо, що таке мова програмування та чому вона надзвичайно важлива.</p><!--kg-card-begin: html--><h2 id="що-таке-мова-програмування-та-чому-вона-важлива">🔸 Що таке мова програмування?</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/what-is-a-programming-language.png" class="kg-image" alt="what-is-a-programming-language" width="600" height="400" loading="lazy"><figcaption>Логотипи популярних мов програмування.</figcaption></figure><p><strong>Мова програмування</strong> — це мова, яку розуміють комп’ютери.</p><p>Ми не можемо просто написати:</p><blockquote>«Комп’ютере, розв’яжи це завдання!»</blockquote><p>і надіятись, що комп’ютер нас зрозуміє. Нам потрібно дотримуватись певних правил, щоб написати інструкції.</p><p>Кожна мова програмування має власні правила, які вирішують, чи рядок коду дійсний. Через це коди різними мовами програмування можуть відрізнятись.</p><p>💡<strong> Важливо:</strong> деякі мови програмування складніші, але більшість з них поділяють основні поняття. Тому якщо ви вивчили одну мову програмування, вивчити іншу мову буде швидше та простіше.</p><p>Перед тим, як ви почнете писати свої неймовірні програми та застосунки, потрібно вивчити базові правила обраної мови програмування.</p><p>💡 <strong>Важливо:</strong> <strong>програма</strong> — це набір інструкцій, написаних мовою програмування, які повинен виконати комп’ютер. Зазвичай код для програми пишуть в одному або декількох файлах.</p><p>Наприклад, цей рядок коду в Python (популярній мові програмування) показує повідомлення <code>«Hello, World!»</code>:</p><pre><code class="language-python">print(«Hello, World!»)</code></pre><p>А якщо написати такий самий рядок у JavaScript (мова програмування, яка здебільшого використовується для веброзробки), ми отримаємо помилку, оскільки він недійсний.</p><p>Щоб зробити щось схоже у JavaScript, ми б написали цей рядок коду:</p><pre><code>console.log(«Hello, World!»);</code></pre><p>Візуально вони відрізняються. Це через те, що Python та JavaScript мають різний синтаксис та різний набір <strong>вбудованих функцій</strong>.</p><p>💡<strong> Важливо</strong>: <strong>вбудованими функціями</strong> називають завдання, які вже визначені у мові програмування. Це дозволяє напряму використовувати їх у коді, написавши їхню назву та вказавши потрібні значення.</p><p>У наших прикладах <code>print()</code><strong> </strong>є вбудованою функцією у<strong> </strong>Python, а <code>console.log()</code> є функцією, яку ми можемо використати у JavaScript для того, щоб побачити повідомлення на консолі (інтерактивний інструмент), якщо ми запустимо наш код у браузері.</p><p>Приклади мов програмування: Python, JavaScript, TypeScript, Java, C, C#, C++, PHP, Go, Swift, SQL та R. Існує безліч мов програмування, та кожна з них корисна для різної мети.</p><p>💡 <strong>Важливо<strong>: </strong></strong>за результатами <a href="https://survey.stackoverflow.co/2022/#most-popular-technologies-language">опитування розробників Stack Overflow 2022</a>, це були найпопулярніші мови програмування:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-02-at-9.06.50-PM.png" class="kg-image" alt="Screen-Shot-2022-12-02-at-9.06.50-PM" width="600" height="400" loading="lazy"><figcaption>14 найпопулярніших мов програмування за результатами опитування розробників <a href="https://survey.stackoverflow.co/2022/#most-popular-technologies-language">Stack Overflow 2022</a>. Це щорічне опитування, яке збирає інформацію щодо популярних технологій та трендів у спільноті розробників.</figcaption></figure><p>Існує і багато інших мов програмування (тисячі і навіть сотні), але зазвичай вивчають та працюють з найпопулярнішими. Деякі з них мають ширше застосування, як-от Python та JavaScript, а інші (наприклад, R) мають певні цілі.</p><p>Звучить дуже цікаво, правда? І ми лише починаємо говорити про мови програмування. Про них можна багато чого вивчити, і я обіцяю, що це вартує ваших сил та часу.</p><p>Чудово! Тепер ви знаєте, що таке програмування та мови програмування. Розглянемо, як програмування відноситься до бінарних чисел.</p><!--kg-card-begin: html--><h2 id="як-програмування-відноситься-до-бінарних-чисел">🔹 Програмування та бінарні числа</h2><!--kg-card-end: html--><p>Мабуть, при слові «програмування» найпершим на думку спадає зображення нижче. Перелік нулів та одиниць на комп’ютері.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/binary.png" class="kg-image" alt="binary" width="600" height="400" loading="lazy"><figcaption>Бінарними числами є 0 та 1.</figcaption></figure><p>Програмування дійсно пов’язане з бінарними числами (<code>0</code> &nbsp;та <code>1</code>), але не напряму. Розробники не пишуть коди одиницями та нулями.</p><p>Ми зазвичай пишемо програми мовами програмування високого рівня, тобто мовами з синтаксисом, який розрізняє певні слова (ключові слова), символи та значення різних типів даних.</p><p>Простими словами: ми пишемо код, який можуть розуміти люди.</p><p>Наприклад, ці ключові слова можна використати у Python:</p><figure class="kg-card kg-code-card"><pre><code class="language-python">False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not </code></pre><figcaption>Список ключових слів Python.</figcaption></figure><p>Кожна мова програмування має набір ключових слів (слова, написані англійською). Ці ключові слова є частиною синтаксису та головною функціональністю мови програмування.</p><p>Але ключові слова є звичайними англійськими словами. Майже такими, якими пишуть книжки.</p><p>Це призводить до двох важливих запитань:</p><ul><li>Як комп’ютер розуміє та інтерпретує те, що ми намагаємось сказати?</li><li>Як це пов’язано з двійковою системою числення?</li></ul><p>Комп’ютер <strong>не</strong> розуміє ці слова, символи чи значення напряму.</p><p>Коли програма запускається, то код, написаний мовою програмування високого рівня, який можуть розуміти люди, автоматично перетворюється у бінарний код, який розуміє комп’ютер.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/11---binary-diagram.png" class="kg-image" alt="11---binary-diagram" width="600" height="400" loading="lazy"><figcaption>Процес перетворення програми у бінарний код.</figcaption></figure><p>Перетворення початкового коду, який розуміють люди, у бінарний код, який розуміє комп’ютер, називається <strong>компіляцією</strong>.</p><p><a href="https://www.britannica.com/technology/compiler">Britannica</a> визначає <strong>компілятор</strong> як:</p><blockquote>Комп’ютерне програмне забезпечення, яке перекладає (компілює) вихідний код, написаний мовою високого рівня (наприклад, C++), у набір інструкцій машинної мови, які може зрозуміти центральний процесор цифрового комп’ютера.</blockquote><p>Britannica також згадує:</p><blockquote>Термін «компілятор» був введений американською науковицею в галузі комп’ютерних наук <a href="https://www.britannica.com/biography/Grace-Hopper">Ґрейс Гоппер</a>, яка розробила один із перших компіляторів на початку 1950-х років.</blockquote><p>Деякі мови програмування можна класифікувати на <strong>компільовані</strong> або <strong>інтерпретовані</strong>, залежно від того, як вони перетворюються на інструкції машинної мови. </p><p>Однак усі вони мають пройти через процес, який перетворює їх на інструкції, зрозумілі комп’ютеру.</p><p>Чудово. Тепер ви знаєте, чому бінарний код такий важливий для комп’ютерних наук. Без нього програмування в основному не існувало б, оскільки комп’ютери не змогли б зрозуміти наші інструкції.</p><p>Тепер зануримося в реальне застосування програмування та різні сфери, які ви можете досліджувати.</p><!--kg-card-begin: html--><h2 id="реальне-застосування-програмування">🔸 Реальне застосування програмування</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/applications.png" class="kg-image" alt="applications" width="600" height="400" loading="lazy"><figcaption>Програмування використовують практично у кожній сфері.</figcaption></figure><p>Програмування використовують у різних сферах. Це просто чудово, оскільки ви можете застосувати свої знання практично в будь-якій галузі, яка вас цікавить.</p><p>Від інженерії до сільського господарства, від розробки ігор до фізики. Можливості безмежні, якщо ви навчитеся програмувати.</p><p>Розглянемо декілька з них. (Обіцяю. Вони неймовірні! ⭐) .</p><h3 id="-front-end"><strong>Веброзробка front-end</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/1---frontend.png" class="kg-image" alt="1---frontend" width="600" height="400" loading="lazy"><figcaption>Розробники front-end розробляють частини вебсайтів і вебзастосунків, які користувачі можуть бачити та використовувати.</figcaption></figure><p>Якщо ви навчитеся програмувати, ви зможете використовувати свої навички програмування для проєктування та розробки вебсайтів і онлайн-платформ. Розробники front-end створюють частини вебсайтів, які користувачі можуть бачити та використовувати.</p><p>Наприклад, зараз ви читаєте публікацію від <a href="https://www.freecodecamp.org/">freeCodeCamp</a>. Публікація має такий вигляд та працює завдяки коду, який писали розробники front-end.</p><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> якщо вивчите front-end, зможете зробити так само.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-02-at-9.56.43-PM.png" class="kg-image" alt="Screen-Shot-2022-12-02-at-9.56.43-PM" width="600" height="400" loading="lazy"><figcaption>Код HTML та CSS для домашньої сторінки freeCodeCamp (це попередній перегляд коду в інструментах розробки Chrome).</figcaption></figure><p>Розробники front-end використовують HTML та CSS, щоб створити структуру вебсайту (це мови розмітки, які використовуються для представлення інформації), а також JavaScript, щоб додати функціональність та інтерактивність.</p><p>Якщо ви зацікавлені у розробці front-end, ви можете вивчити HTML та CSS завдяки цим безоплатним курсам на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=mU6anWqZJcc">Learn HTML5 and CSS3 From Scratch - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=a_iQb1lnAEQ">Learn HTML &amp; CSS – Full Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=zJSY8tbf_ys">Frontend Web Development Bootcamp Course (JavaScript, HTML, CSS)</a></li><li><a href="https://www.youtube.com/watch?v=srvUrASNj0s">Introduction To Responsive Web Design - HTML &amp; CSS Tutorial</a></li></ul><p>Ви також можете вивчити JavaScript:</p><ul><li><a href="https://www.youtube.com/watch?v=PkZNo7MFNFg">Learn JavaScript - Full Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=jS4aFq5-91M">JavaScript Programming - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=5fb2aPlgoys">JavaScript DOM Manipulation – Full Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=ec8vSKJuZTk">Learn JavaScript by Building 7 Games - Full Course</a></li></ul><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> ви також можете здобути сертифікацію «<a href="https://www.freecodecamp.org/ukrainian/learn/2022/responsive-web-design/">Адаптивний вебдизайн</a>», навчаючись за допомогою інтерактивних вправ на freeCodeCamp.</p><h3 id="-back-end"><strong>Веброзробка back-end</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/2---backend.png" class="kg-image" alt="2---backend" width="600" height="400" loading="lazy"><figcaption>Розробники back-end розробляють сервери та бази даних для обробки всього, що працює за лаштунками, щоб складніші вебпрограми працювали правильно.</figcaption></figure><p>Складнішим вебзастосункам, які працюють з даними користувача, потрібен <strong>сервер</strong>. Це комп’ютерна програма, яка отримує запити та надсилає відповідну відповідь. Їм також потрібна <strong>база даних</strong> — колекція значень, що зберігаються структуровано.</p><p>Розробники back-end відповідають за розробку коду для серверів. Вони вирішують, як обробляти запити, надсилати відповідні ресурси та роблять так, щоб все працювало правильно.</p><p>Реальний приклад розробки back-end: ви створюєте обліковий запис на freeCodeCamp та проходите завдання. Ваша інформація зберігається у базі даних та ви можете отримати до неї доступ тоді, коли намагаєтесь увійти за допомогою емейлу та пароля.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-02-at-10.07.41-PM.png" class="kg-image" alt="Screen-Shot-2022-12-02-at-10.07.41-PM" width="600" height="400" loading="lazy"><figcaption>Інтерактивне завдання від freeCodeCamp.</figcaption></figure><p>Цю дивовижну інтерактивну функцію реалізували розробники back-end.</p><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> розробники full-stack відповідають за розробку front-end та back-end. Вони мають спеціальні знання в обох сферах.</p><p>Усі складні платформи, якими ви користуєтеся щодня, як-от соціальні мережі, онлайн-шопінг і освітні платформи, використовують сервери та розробку back-end, щоб забезпечити свої функції.</p><p>Для цього використовують потужну мову програмування Python. Це одна з найпопулярніших мов програмування, і її популярність продовжує зростати з кожним роком. Частково це пояснюється тим, що вона проста і її легко вивчити, але водночас досить потужна і універсальна, щоб її використовували в реальних програмах.</p><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> якщо ви зацікавлені у реальному застосуванні Python, я написала <a href="https://www.freecodecamp.org/news/what-is-python-used-for-10-coding-uses-for-the-python-programming-language/">публікацію на цю тему</a>.</p><p>JavaScript також можна використовувати для розробки back-end завдяки Node.js.</p><p>Для розробки вебсерверів використовують й інші мови програмування: PHP, Ruby, C# та Java.</p><p>Якщо ви зацікавлені у розробці back-end, ось безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=jBzwzrDvZ18">Python Backend Web Development Course (with Django)</a></li><li><a href="https://www.youtube.com/watch?v=Oe421EPjeBE">Node.js and Express.js - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=nu_pCVPKzTk">Full Stack Web Development for Beginners (Full Course on HTML, CSS, JavaScript, Node.js, MongoDB)</a></li><li><a href="https://www.youtube.com/watch?v=qwfE7fSVaZM">Node.js / Express Course - Build 4 Projects</a></li></ul><p>💡 <strong>Важливо<strong>:</strong></strong> freeCodeCamp також має сертифікацію «<a href="https://www.freecodecamp.org/ukrainian/learn/back-end-development-and-apis/">Розробка Back End та API</a>».</p><h3 id="--2"><strong>Розробка мобільних застосунків</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/3---mobile-apps.png" class="kg-image" alt="3---mobile-apps" width="600" height="400" loading="lazy"><figcaption>Розробники мобільних застосунків створюють застосунки, якими ми користуємося кожного дня.</figcaption></figure><p>Мобільні застосунки стали частиною нашого повсякденного життя. Я впевнена, що ви не можете уявити життя без них.</p><p>Подумайте про свій улюблений мобільний застосунок. За що ви його любите?</p><p>Наші улюблені застосунки допомагають із щоденними завданнями, розважають нас, вирішують проблеми та допомагають досягти цілей. Вони завжди поруч.</p><p>В цьому сила мобільних застосунків, і ви теж можете стати частиною дивовижного світу, якщо навчитеся розробляти їх.</p><p>Розробники, які займаються розробкою мобільних застосунків, відповідають за планування, дизайн та розробку інтерфейсу користувача, а також функціональності. Вони виявляють прогалини в наявних застосунках і намагаються створити робочий продукт, щоб покращити життя людей.</p><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> незалежно від обраної галузі, вашою головною метою завжди має бути покращення життя людей. Програми — це не просто програми, вони можуть змінити життя. Ви завжди повинні пам’ятати про це, коли плануєте свої проєкти. Ваш код може зробити чиєсь життя кращим, і це величезна відповідальність.</p><p>Розробники мобільних застосунків використовують JavaScript, Java, Swift, Kotlin та Dart. Такі фреймворки, як <a href="https://flutter.dev/">Flutter</a> та <a href="https://reactnative.dev/">React Native</a>, надзвичайно корисні для створення кросплатформних мобільних застосунків (тобто застосунків, які безперебійно працюють у різних операційних системах, як-от Android та iOS).</p><p>Згідно з офіційною документацією <a href="https://flutter.dev/">Flutter</a>:</p><blockquote>Flutter — це фреймворк із відкритим вихідним кодом від Google для створення красивих, скомпільованих мультиплатформенних застосунків із єдиної кодової бази.</blockquote><p>Якщо ви зацікавлені в розробці мобільних застосунків, ви можете пройти ці безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.freecodecamp.org/news/p/98a1b5a8-101b-4993-8a76-e70d833bd91e/Flutter%20Course%20for%20Beginners%20%E2%80%93%2037-hour%20Cross%20Platform%20App%20Development%20Tutorial">Flutter Course for Beginners – 37-hour Cross Platform App Development Tutorial</a></li><li><a href="https://www.youtube.com/watch?v=pTJJsmejUOQ">Flutter Course - Full Tutorial for Beginners (Build iOS and Android Apps)</a></li><li><a href="https://www.youtube.com/watch?v=frvXANSaSec">React Native - Intro Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=wEVjaXK4sYQ">Learn React Native Gestures and Animations - Tutorial</a></li></ul><h3 id="--3"><strong>Розробка ігор</strong></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/4---games.png" class="kg-image" alt="4---games" width="600" height="400" loading="lazy"></figure><p>Ігри створюють спогади. Я впевнена, що ви пам’ятаєте свої улюблені ігри і те, чому ви їх так любите (або любили). Бути розробником ігор означає мати можливість приносити радість гравцям у всьому світі.</p><p>Розробники ігор передбачають, проєктують, планують і впроваджують функціональні можливості гри. Їм також потрібно знайти або створити персонажів, перешкоди, фони, музику, звукові ефекти тощо.</p><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> якщо ви навчитеся програмувати, ви зможете створювати власні ігри. Уявіть, що ви створили гру, яка подобається користувачам у всьому світі. Це те, що мені особисто подобається в програмуванні. Вам потрібен лише комп’ютер, знання та деякі основні інструменти, щоб створити щось дивовижне.</p><p>До популярних мов програмування для розробки ігор входять JavaScript, C++, Python та C#.</p><p>Якщо ви зацікавлені в розробці ігор, ви можете пройти ці безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=GFO_txvwK_c">JavaScript Game Development Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=ec8vSKJuZTk">Learn JavaScript by Building 7 Games - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=gB1F9G0JXOo">Learn Unity - Beginner's Game Development Tutorial</a></li><li><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc">Learn Python by Building Five Games - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=7BHs1BzA4fs">Code a 2D Game Using JavaScript, HTML, and CSS (w/ Free Game Assets) – Tutorial</a></li><li><a href="https://www.youtube.com/watch?v=iHF5fwsqu4I">2D Game Development with GDevelop - Crash Course</a></li><li><a href="https://www.youtube.com/watch?v=gx_qorHxBpI">Pokémon Coding Tutorial - CS50's Intro to Game Development</a></li></ul><h3 id="--4"><strong>Біологія, фізика та хімія</strong></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/5---biology-and-science.png" class="kg-image" alt="5---biology-and-science" width="600" height="400" loading="lazy"></figure><p>Програмування можна застосувати в будь-якій науковій галузі, включно з біологією, фізикою, хімією та навіть астрономією. Саме так! Вчені постійно використовують програмування для збору та аналізу даних. Вони навіть можуть запускати симуляції для перевірки гіпотез.</p><h4 id="--5"><strong>Біологія</strong></h4><p>Комп’ютерні програми у біології можуть симулювати популяційну генетику та динаміку. Існує навіть ціла галузь під назвою <strong>біоінформатика</strong>.</p><p>Згідно зі <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1122955/#:~:text=Bioinformatics%20is%20defined%20as%20the,1).">статтею</a> «Біоінформатика» Ардершира Баята, члена Центру інтегрованих геномних медичних досліджень Манчестерського університету:</p><blockquote>Біоінформатика визначається як застосування інструментів обчислення та аналізу для збору та інтерпретації біологічних даних.</blockquote><p>Доктор Баят згадує, що біоінформатику можна використовувати для секвенування геному. Він також згадує, що його відкриття можуть призвести до відкриття ліків та індивідуальної терапії.</p><p>У біоінформатиці часто використовують Python, R, PHP, PERL та Java.</p><p>💡 <strong>Важливо<strong>:</strong></strong> R — це «мова програмування та середовище для статистичних обчислень і графіки» (<a href="https://www.r-project.org/about.html">джерело</a>).</p><p>Для біології науковці можуть використовувати <a href="https://biopython.org/wiki/Documentation">Biopython</a>. Це фреймворк Python із «доступними інструментами для біологічних обчислень».</p><p>Якщо ви хочете дізнатися більше про те, як можна застосувати свої навички програмування в науці, ось безкоштовні курси, які ви можете пройти на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=jBlTQjcKuaY">Python for Bioinformatics - Drug Discovery Using Machine Learning and Data Analysis</a></li><li><a href="https://www.youtube.com/watch?v=_V8eKsto3Ug">R Programming Tutorial - Learn the Basics of Statistical Computing</a></li><li><a href="https://www.youtube.com/watch?v=rfscVS0vtbw">Learn Python - Full Course for Beginners [Tutorial]</a></li></ul><h4 id="--6"><strong>Фізика</strong></h4><p>Фізика вимагає виконання багатьох симуляцій, і програмування ідеально для цього підходить. За допомогою програмування вчені можуть програмувати та запускати симуляції на основі конкретних сценаріїв, які було б важко відтворити в реальному житті. Це набагато ефективніше.</p><p>Мови програмування, які зазвичай використовуються для симуляцій у фізиці: C, Java, Python, MATLAB та JavaScript.</p><h4 id="--7"><strong>Хімія</strong></h4><p>Хімія також залежить від симуляцій та аналізу даних, тому програмування у цій галузі теж корисне.</p><p>У <a href="https://onlinelibrary.wiley.com/doi/abs/10.1002/anie.197901111">науковій статті</a> доктора Івара Угі та його колег з Інституту органічної хімії Мюнхенського технічного університету зазначено:</p><blockquote>Розробка абсолютно нових синтезів, а також класифікація та документація структур, підструктур і реакцій є прикладами нових застосувань комп’ютерів у хімії.</blockquote><p>Наукові експерименти також дають детальні дані та результати, які можна аналізувати за допомогою комп’ютерних програм, розроблених вченими.</p><p>Подумайте про це: написання програми для створення прямокутної діаграми, діаграми розсіювання чи будь-якого іншого типу діаграми для візуалізації тенденцій у тисячах вимірюваннях може заощадити багато часу та зусиль дослідників. Це дозволяє їм зосередитися на найважливішій частині роботи — аналізі результатів.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-04-at-10.40.43-AM.png" class="kg-image" alt="Screen-Shot-2022-12-04-at-10.40.43-AM" width="600" height="400" loading="lazy"><figcaption>Приклади візуалізації даних, які можна створити за допомогою <a href="https://seaborn.pydata.org/#">Seaborn</a> — бібліотеки візуалізації даних Python. Корисно для аналізу даних, чи не так?</figcaption></figure><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> якщо хочете глибше зануритися, ось <a href="https://www.acs.org/education/students/highschool/chemistryclubs/activities/simulations.html">список хімічних симуляцій</a> від Американського хімічного товариства. Ці симуляції були створені розробниками, і допомагають тисячам студентам та вчителям у всьому світі.</p><p>Лише подумайте... Ви можете побудувати наступну визначну симуляцію. Якщо вас цікавить наукова галузь, варто навчитись програмувати. Ваша робота стане продуктивнішою, а результати буде простіше аналізувати.</p><p>Якщо ви зацікавлені в навчанні програмуванню у наукових цілях, ось безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=jBlTQjcKuaY">Python for Bioinformatics - Drug Discovery Using Machine Learning and Data Analysis</a></li><li><a href="https://www.youtube.com/watch?v=LHBE6Q9XlzI">Python for Data Science - Course for Beginners (Learn Python, Pandas, NumPy, Matplotlib)</a></li></ul><h3 id="--8"><strong>Наука про дані та інженерія</strong></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/6---engineering-2.png" class="kg-image" alt="6---engineering-2" width="600" height="400" loading="lazy"></figure><p>Говорячи про дані… Програмування надзвичайно важливе для <strong>науки про дані</strong>. Якщо вам цікаво відповідати на запитання за допомогою даних і статистики, ця галузь може бути саме тим, що ви шукаєте, а навички програмування допоможуть вам досягти цілей.</p><p>Фахівці, що спеціалізуються на науці про дані, збирають та аналізують дані, щоб відповісти на запитання в багатьох різних сферах. Відповідно до UC Berkeley у статті «<a href="https://ischoolonline.berkeley.edu/data-science/what-is-data-science/">Що таке наука про дані?</a>»: </p><blockquote>Спеціалісти з науки про дані здатні визначати релевантні питання, збирати дані з різних джерел даних, систематизувати інформацію, перетворювати результати в рішення та повідомляти свої висновки таким чином, щоб це позитивно вплинуло на бізнес-рішення.</blockquote><p>Існує багато потужних мов програмування для аналізу та візуалізації даних, але, мабуть, найчастіше використовують Python.</p><p>Це приклад візуалізації даних, створених за допомогою Python. Вони дуже корисні для візуального аналізу даних, і ви можете налаштувати їх відповідно до своїх потреб.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/image-6.png" class="kg-image" alt="image-6" width="600" height="400" loading="lazy"><figcaption>Зразки візуалізації даних із галерей <a href="https://matplotlib.org">Matplotlib</a> та <a href="https://seaborn.pydata.org/examples/index.html">Seaborn</a></figcaption></figure><p>Якщо ви зацікавлені в навчанні програмуванню для науки про дані, ось безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=ua-CiDNNj30">Learn Data Science Tutorial - Full Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=N6BghzuFLIg">Intro to Data Science - Crash Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=LHBE6Q9XlzI">Python for Data Science - Course for Beginners (Learn Python, Pandas, NumPy, Matplotlib)</a></li><li><a href="https://www.youtube.com/watch?v=JwSS70SZdyM">Build 12 Data Science Apps with Python and Streamlit - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=r-uOLxNrNk8">Data Analysis with Python - Full Course for Beginners (Numpy, Pandas, Matplotlib, Seaborn)</a></li></ul><p>💡 <strong>Важливо<strong>: </strong></strong>ви можете здобути безоплатні сертифікації на freeCodeCamp:</p><ul><li><a href="https://www.freecodecamp.org/ukrainian/learn/data-visualization/">Візуалізація даних</a></li><li><a href="https://www.freecodecamp.org/ukrainian/learn/data-analysis-with-python/">Аналіз даних з Python</a></li></ul><h3 id="--9"><strong>Інженерія</strong></h3><p>Інженерія — ще одна галузь, де програмування може допомогти досягти успіху. Можливість писати власні комп’ютерні програми може зробити вашу роботу набагато ефективнішою.</p><p>Існує багато інструментів, створених спеціально для інженерів. Наприклад, мова програмування R спеціалізується на статистичних програмах. Python також дуже популярний у цій галузі.</p><p>Ще одним чудовим інструментом для інженерії є <a href="https://www.mathworks.com/products/matlab.html">MATLAB</a>. Як повідомляє офіційний вебсайт:</p><blockquote>MATLAB — це платформа програмування та числових обчислень, яка використовується мільйонами інженерів і вчених для аналізу даних, розробки алгоритмів і створення моделей.</blockquote><p>Можливості безмежні.</p><p>Ви можете вивчити MATLAB завдяки <a href="https://www.freecodecamp.org/news/learn-matlab-with-this-crash-course/">цьому швидкому курсі на ютубі freeCodeCamp</a>.</p><p>Якщо ви зацікавлені у вивченні інженерних інструментів, пов’язаних із програмуванням, ось безоплатний курс на ютубі freeCodeCamp, який охоплює AutoCAD — програмне забезпечення для автоматизованого проєктування 2D і 3D, яке використовують інженери:</p><ul><li><a href="https://www.youtube.com/watch?v=VtLXKU1PpRU">AutoCAD for Beginners - Full University Course</a></li></ul><h3 id="--10"><strong>Медицина та фармакологія</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/7---medicine-an-pharmachology.png" class="kg-image" alt="7---medicine-an-pharmachology" width="600" height="400" loading="lazy"><figcaption>Програмування допомогло вченим розробити нові медичні методи та пристрої.</figcaption></figure><p>Медицина та фармакологія постійно розвиваються, знаходячи нові методи лікування. Розглянемо, як можна застосувати свої навички програмування в цих сферах.</p><h4 id="--11"><strong>Медицина</strong></h4><p>Програмування дійсно всюди. Якщо ви цікавитеся сферою медицини, навчитись програмувати теж буде корисно. Навіть якщо ви хочете зосередитися на інформатиці та розробці програмного забезпечення, ви можете застосувати свої знання в обох сферах.</p><p>Спеціалізовані розробники відповідають за розробку та написання коду, який живить і контролює пристрої та машини, які використовуються в сучасній медицині.</p><p>Задумайтесь... Усі машини та пристрої керуються програмним забезпеченням, і хтось має написати це програмне забезпечення. Медичні записи також зберігаються та відстежуються спеціалізованими системами, створеними розробниками. Це можете бути ви, якщо вирішите піти цим шляхом. Звучить захоплююче, правда?</p><p>У науковій статті «<a href="https://www.sciencedirect.com/science/article/abs/pii/S0377123717310651">Застосування комп’ютерної техніки в медицині</a>» згадується:</p><blockquote>Здебільшого комп’ютери у медицині використовують для медичної інформаційної системи, аналізу даних, медичної візуалізації, комп’ютеризованого прийняття рішень, догляду за критично хворими пацієнтами, комп’ютерної терапії тощо.</blockquote><h4 id="--12"><strong>Фармакологія</strong></h4><p>Програмування та інформатику можна застосувати і для розробки нових ліків у галузі фармакології.</p><p>Чудовий приклад того, чого можна досягти в цій галузі, навчившись програмувати, представлено <a href="https://news.mit.edu/2019/kristy-carpenter-student-medicine-1018">в статті</a> від MIT News. У ній описується, як студентка Массачусетського технологічного інституту Крісті Карпентер у 2019 році використовувала інформатику для розробки «нових, більш доступних ліків». Крісті згадує:</p><blockquote>Штучний інтелект, який може допомогти обчислити комбінації сполук, які були б кращими для конкретного препарату, може зберегти час та прискорити процес розробки нових ліків.</blockquote><p>Інший приклад реального застосування програмування у фармакології пов’язаний з Python (так, Python має багато застосувань!). Серед <a href="https://www.python.org/success-stories/">історій успіху</a> ми знайдемо те, що AstraZeneca вибрала Python для розробки методів і програм, які можуть допомогти вченим відкривати нові ліки швидше та ефективніше.</p><p><a href="https://www.python.org/success-stories/python-for-collaborative-drug-discovery/">Документація</a> пояснює:</p><blockquote>Щоб зберегти час і гроші на лабораторній роботі, хіміки-експериментатори використовують обчислювальні моделі, щоб звузити коло хороших кандидатів на ліки, а також перевірити, що кандидати, які будуть тестуватися, не є простими варіаціями основної хімічної структури один одного.</blockquote><p>Якщо ви зацікавлені у навчанні програмування для медицини чи іншої галузі, пов’язаної зі здоров’ям, ось безоплатний курс на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=M3ZWfamWrBM">PyTorch and Monai for AI Healthcare Imaging - Python Machine Learning Course</a></li></ul><h3 id="--13"><strong>Освіта</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/8---education.png" class="kg-image" alt="8---education" width="600" height="400" loading="lazy"><figcaption>Програмування можна використовувати для створення інструментів, які допоможуть викладачам і учням отримати продуктивний і цікавий досвід навчання. Навчання учнів програмуванню також розвиває їхні навички вирішення проблем.</figcaption></figure><p>Ви думали про те, що програмування може бути корисним для навчання? Що ж, дозвольте мені сказати вам, що це так, і це дуже важливо. Чому? Тому що цифрові засоби навчання, якими сьогодні користуються учні та вчителі, програмуються розробниками.</p><p>Завдяки програмуванню учні можуть використовувати освітні застосунки, переглядати освітні платформи (наприклад, freeCodeCamp), писати на цифровій дошці або відвідувати уроки через платформу онлайн-конференцій.</p><p>Як розробник або вчитель, який вміє програмувати, ви можете створити наступну чудову програму, яка покращить навчальний досвід учнів у всьому світі.</p><p>Можливо, це буде застосунок для нотаток, платформа для навчання, застосунок для презентацій, навчальна гра чи будь-яка інша програма, яка може бути корисною для учнів.</p><p>Важливо створити це з урахуванням студентів, якщо ваша мета — зробити щось дивовижне, що залишить спогади надовго.</p><p>Якщо ви це уявляєте, ви можете створити це за допомогою коду.</p><p>Вчителі також можуть навчити своїх учнів програмувати, щоб розвинути їхні навички вирішення проблем і навчити їх важливим навичкам для майбутнього.</p><p>💡 <strong>Важливо<strong>: </strong></strong>якщо ви навчаєте учнів програмувати, <strong>Scratch</strong> — це чудова мова програмування, щоб вивчити основи програмування. Вона особливо зосереджена на навчанні дітей в інтерактивному режимі.</p><p>Згідно з офіційним вебсайтом <a href="https://scratch.mit.edu/about">Scratch</a>:</p><blockquote>Scratch — це найбільша у світі спільнота розробників для дітей і мова програмування з простим візуальним інтерфейсом, який дозволяє молодим людям створювати цифрові історії, ігри та анімації.</blockquote><p>Якщо ви зацікавлені у навчанні програмування з освітньою метою, ось безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=x14G4DCk4nY">Scratch Tutorial for Beginners - Make a Flappy Bird Game</a></li><li><a href="https://www.youtube.com/watch?v=F0WoVEr0-44">Computational Thinking &amp; Scratch - Intro to Computer Science - Harvard's CS50 (2018)</a></li><li><a href="https://www.youtube.com/watch?v=fis26HvvDII">Android Development for Beginners - Full Course</a></li><li><a href="https://www.youtube.com/watch?v=VPvVD8t02U8">Flutter Course for Beginners – 37-hour Cross Platform App Development Tutorial</a></li><li><a href="https://www.youtube.com/watch?v=gB1F9G0JXOo">Learn Unity - Beginner's Game Development Tutorial</a></li></ul><h3 id="--14"><strong>Машинне навчання, штучний інтелект та робототехніка</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/9---robotics.png" class="kg-image" alt="9---robotics" width="600" height="400" loading="lazy"><figcaption>Машинне навчання та штучний інтелект сьогодні дуже популярні, оскільки платформи можуть дізнаватися, як користувачі взаємодіють із їхнім контентом, щоб пропонувати їм відповідну інформацію та продукти.</figcaption></figure><p>Деякими з найдивовижніших галузей, які пов’язані з програмуванням, є машинне навчання, штучний інтелект і робототехніка. Подивимося чому.</p><p><a href="https://www.britannica.com/technology/artificial-intelligence">Britannica</a> визначає <strong>штучний інтелект</strong> як:</p><blockquote>Проєкт розробки систем, наділених інтелектуальними процесами, характерними для людей, як-от здатність міркувати, відкривати значення, узагальнювати або вчитися на минулому досвіді.</blockquote><p><strong>Машинне навчання</strong> — це галузь або підмножина галузі штучного інтелекту, у якій системи можуть навчатися самостійно на основі даних. Метою цього навчального процесу є прогнозування очікуваного результату. Ці моделі постійно вчаться «думати» та аналізувати ситуації на основі свого попереднього навчання.</p><p>Найпоширеніші мови програмування у цій галузі: Python, C, C#, C++ та MATLAB.</p><p>Штучний інтелект і машинне навчання використовують у різних галузях, наприклад:</p><ul><li>Виявляння об’єктів.</li><li>Складання прогнозів на основі закономірностей.</li><li>Розпізнавання тексту.</li><li>Системи рекомендацій (наприклад, коли платформа онлайн-шопінгу показує продукти, які можуть сподобатися, або коли ютуб показує відео, які можуть сподобатися).</li><li>Фільтрування електронної пошти</li><li>Виявляння шахрайств.</li><li>Такі функції соціальних мереж, як персоналізовані стрічки новин.</li><li>Багато іншого... існують мільйони програм в кожній галузі.</li></ul><p>Якщо ви зацікавлені в тому, щоб навчитися програмувати для штучного інтелекту та машинного навчання, ось безоплатні курси на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=i_LwzRVP7bg">Machine Learning for Everybody – Full Course</a></li><li><a href="https://www.youtube.com/watch?v=NWONeJKn6kc">Machine Learning Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=V_xro1bcAuA">PyTorch for Deep Learning &amp; Machine Learning – Full Course</a></li><li><a href="https://www.youtube.com/watch?v=tPYj3fFJGjk">TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial</a></li><li><a href="https://www.youtube.com/watch?v=Rs_rAxEsAvI">Self-Driving Car with JavaScript Course – Neural Networks and Machine Learning</a></li><li><a href="https://www.youtube.com/watch?v=VtRLrQ3Ev-U">Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial</a></li><li><a href="https://www.youtube.com/watch?v=0oyCUWLL_fU">Practical Deep Learning for Coders - Full Course from fast.ai and Jeremy Howard</a></li><li><a href="https://www.youtube.com/watch?v=VyWAvY2CF9c">Deep Learning Crash Course for Beginners</a></li><li><a href="https://www.youtube.com/watch?v=01sAkU_NvOY">Advanced Computer Vision with Python - Full Course</a></li></ul><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> ви також можете здобути сертифікацію «<a href="https://www.freecodecamp.org/ukrainian/learn/machine-learning-with-python/">Машинне навчання з Python</a>» на freeCodeCamp.</p><h3 id="--15"><strong>Робототехніка</strong></h3><p>Програмування дуже важливе для робототехніки. Так, роботи теж програмуються!</p><p><a href="https://www.britannica.com/technology/robotics">Britannica</a> надає таке визначення робототехніки:</p><blockquote>Проєктування, конструювання та використання машин (роботів) для виконання завдань, які традиційно виконують люди.</blockquote><p>Роботи такі ж, як комп’ютери. Вони не знають, що робити, поки ви не напишете інструкції у програмі. Якщо ви навчитесь програмувати, ви зможете програмувати роботів та промислове обладнання на виробничих підприємствах.</p><p>Якщо вам цікаво навчитися програмувати для робототехніки, електроніки та суміжних галузей, ось безоплатний курс по Arduino на ютубі freeCodeCamp:</p><ul><li><a href="https://www.youtube.com/watch?v=zJ-LqeX_fLU">Arduino Course for Beginners - Open-Source Electronics Platform</a></li></ul><h3 id="--16"><strong>Інші застосування</strong></h3><p>Існує багато інших захоплюючих застосувань програмування майже в кожній галузі. Ось деякі:</p><ul><li><strong>Сільське господарство<strong>: </strong></strong><a href="https://news.mit.edu/2015/mitx-mooc-helps-farmer-develop-autonomous-tractor-app-1201">у статті</a> MIT News розповідається, що фермер розробив застосунок для автономного трактора після того, як навчився програмувати.</li><li><strong>Самокеровані автомобілі<strong>:</strong></strong> автономні автомобілі покладаються на програмне забезпечення для аналізу оточення та прийняття швидких і точних рішень на дорозі. Якщо ви зацікавлені в цій галузі, <a href="https://www.youtube.com/watch?v=Rs_rAxEsAvI">ось курс</a> на цю тему на ютубі freeCodeCamp.</li><li><strong>Фінанси<strong>: </strong></strong>програмування також може бути корисним для розробки програм і моделей, які передбачають фінансові показники та тенденції. Наприклад, ось <a href="https://www.youtube.com/watch?v=xfzGZB4HhEE">курс з алгоритмічної торгівлі</a> на ютубі freeCodeCamp.</li></ul><p>Можливості безмежні. Я сподіваюся, що цей розділ дасть вам уявлення про те, чому навчання програмуванню є таким важливим для теперішнього та майбутнього. Це буде цінною навичкою у будь-якій галузі, яку ви оберете.</p><p>Чудово. Тепер перейдемо до навичок успішного розробника.</p><!--kg-card-begin: html--><h2 id="навички-успішного-розробника">🔹 Навички успішного розробника</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/skills.png" class="kg-image" alt="skills" width="600" height="400" loading="lazy"></figure><p>Ознайомившись із різноманітними застосуваннями програмування, вам, мабуть, цікаво дізнатися, які навички потрібні, щоб досягти успіху в цій галузі.</p><h3 id="--17"><strong>Допитливість</strong></h3><p>Розробник повинен бути допитливим. Незалежно від того, чи ви тільки починаєте вчитись, чи вже маєте 20 років досвіду, проєкти завжди будуть приносити нові виклики та можливості. Якщо ви приймете ці можливості, ви будете безперервно вдосконалюватись та досягати нових вершин.</p><h3 id="--18"><strong>Ентузіазм</strong></h3><p>Ключовою рисою успішного розробника є ентузіазм, але це стосується і будь-якої іншої сфери. Завдяки ентузіазму ви будете щасливими та допитливими стосовно того, що розробляєте та вивчаєте.</p><p>💡<strong> Важливо</strong>: якщо вам здається, що ви втрачаєте ентузіазм, значить час знайти щось нове, що знову запалить іскру та принесе надію і мрії.</p><h3 id="--19"><strong>Терпіння</strong></h3><p>Розробник повинен бути терпеливим, оскільки реалізація ідеї може зайняти час та сили. Терпіння фокусуватиме вас на кінцевій меті.</p><h3 id="--20"><strong>Стійкість</strong></h3><p>Програмування може бути важким. Це правда. Але важлива не кількість проблем, а ваше вміння їх розв’язати. Якщо ви досягаєте успіхів попри проблеми, ви будете кращим розробником та можете створити те, що змінить світ.</p><h3 id="--21"><strong>Креативність</strong></h3><p>Розробники повинні бути креативними. Хоча мови програмування і мають свої правила, програмування схоже до Лего. У вас є блоки, але ви самі обираєте, що і як побудувати. Процес написання коду вимагає креативності, яка супроводжується найкращими практиками.</p><h3 id="--22"><strong>Вирішення проблем та аналіз</strong></h3><p>По суті, програмування — це аналіз та вирішення проблем за допомогою коду. Залежно від вашої сфери, ці проблеми будуть простішими або важчими, але вони всі вимагатимуть уміння вирішити проблему та проаналізувати ситуацію.</p><p>Такі питання є частиною повсякденної рутини розробника:</p><ul><li>Що побудувати?</li><li>Як побудувати?</li><li>Як найкраще побудувати?</li></ul><h3 id="--23"><strong>Вміння фокусуватись на довгий період часу</strong></h3><p>Коли ви працюєте над проєктом, потрібно буде фокусуватись на завданні на довгий період часу. Ви витрачатимете багато годин на певне завдання, від створення дизайну до планування і написання коду, тестування та виправлення помилок. Тому важливо вміти фокусуватись та пам’ятати про кінцевий результат.</p><h3 id="--24"><strong>Вміння робити детальні нотатки</strong></h3><p>Ця навичка надзвичайно важлива для розробників, особливо для початківців. Нотатки можуть допомогти зрозуміти і запам’ятати поняття та інструменти. Це стосується і досвідчених розробників, оскільки програмування вивчають протягом життя.</p><h3 id="--25"><strong>Комунікація</strong></h3><p>Можливо, ви думаєте, що програмування — це відособлена активність, а розробник проводить сотні годин за робочим столом наодинці.</p><p>Насправді комунікація надзвичайно важлива, щоб скоординувати завдання з іншими членами команди та обмінятись думками.</p><h3 id="--26"><strong>Будьте відкритими до фідбеку</strong></h3><p>Зазвичай існує більше ніж один спосіб, щоб втілити якусь функцію. Альтернативи працюють схоже, але деякі можуть бути простішими для прочитання та ефективнішими в плані часу та споживання ресурсів.</p><p>При вивченні програмування ви завжди повинні сприймати конструктивну критику як інструмент для навчання. У командній роботі сприймайте фідбек позитивно та намагайтесь покращитись.</p><h3 id="--27"><strong>Вічне навчання</strong></h3><p>Програмування — це навчання, яке триває ціле життя. Якщо ви зацікавлені у програмуванні, ви повинні знати, що завжди вивчатимете нові речі, оскільки з’являються нові технології та оновлюються вже наявні. Задумайтесь над цим… Це чудово, оскільки завжди є щось нове та цікаве для вивчення!</p><h3 id="--28"><strong>Будьте відкритими до нового</strong></h3><p>Успішний розробник відкритий до нових речей. Вийдіть із своєї комфортної зони та будьте відкритими до нових технологій і продуктів. У технологічній індустрії все змінюється надзвичайно швидко, тому важливо вміти адаптовуватись до змін.</p><!--kg-card-begin: html--><h2 id="корисні-поради-для-навчання">🔸 Корисні поради для навчання</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/tips.png" class="kg-image" alt="tips" width="600" height="400" loading="lazy"></figure><p>Тепер ви знаєте більше про програмування, мови програмування та навички успішного розробника. Розберемо декілька порад, корисних при вивченні кодування.</p><p>💡<strong> Важливо: </strong>ці поради базуються на моєму особистому досвіді та думці.</p><ul><li><strong>Оберіть одну мову програмування для вивчення.</strong> Коли ви вчитесь програмувати, дуже легко загубитись серед величезної кількості доступних шляхів. Я би порадила сфокусуватись на розумінні основних понять та одній мові програмування. Найкраще розпочати з Python та JavaScript.</li><li><strong>Робіть детальні нотатки.</strong> Важливо мати навички нотування, щоб записувати та аналізувати вивчені теми. Ви можете додавати власні коментарі та анотації для пояснення вивченого матеріалу.</li><li><strong>Постійно практикуйтесь<strong>.</strong></strong> Ви можете вдосконалити свої навички вирішення проблем, практикуючись і вивчаючи нові техніки та інструменти. Намагайтеся займатися кожен день.</li></ul><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> існує челендж <a href="https://www.100daysofcode.com/">#100DaysOfCode</a>, до якого ви можете доєднатись для щоденної практики.</p><ul><li><strong>Завжди пробуйте ще раз<strong>.</strong></strong> Якщо ви не можете вирішити проблему з першої спроби, зробіть перерву та повертайтеся знову і знову, поки не вирішите її. Це єдиний спосіб навчитися. Вчіться на своїх помилках і вивчайте нові підходи.</li><li><strong>Навчіться досліджувати та шукати відповіді<strong>.</strong></strong> Мови програмування, бібліотеки та фрейворки зазвичай мають офіційну документацію, 
яка пояснює їхні вбудовані елементи й інструменти та пояснює, як їх можна використовувати. Це цінний ресурс, до якого варто звернутися.</li><li><strong>Переглядайте<strong> <a href="https://stackoverflow.com/">Stack Overflow</a>.</strong></strong> Це чудова платформа. Це як онлайн-енциклопедія відповідей на поширені питання з програмування. Ви можете знайти відповіді на наявні запитання та поставити нові, щоб отримати допомогу від спільноти.</li><li><strong>Ставте цілі<strong>.</strong></strong> Мотивація є одним з найважливіших факторів успіху. Встановлення цілей дуже важливе, щоб залишатися зосередженими та вмотивованими. Досягнувши своїх цілей, поставте нові, які вам здадуться складними та захоплюючими.</li><li><strong>Створюйте проєкти<strong>. </strong></strong>Коли ви вчитеся програмувати, важливо застосовувати свої навички, щоб розшити знання та краще запам’ятовувати. Створення проєктів — це ідеальний спосіб практикуватися та створити портфоліо, яке можна показати потенційним роботодавцям.</li></ul><h2 id="--29"><strong>🔹 Базові поняття програмування</strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/basic-concepts.png" class="kg-image" alt="basic-concepts" width="600" height="400" loading="lazy"></figure><p>Чудово. Якщо під час прочитання цієї публікації ви переконались, що хочете навчитись програмувати, зробимо перші кроки.</p><p>Ось базові поняття програмування, які потрібно знати:</p><ul><li><strong>Змінна </strong>— це<strong> </strong>назва, яку ми присвоюємо до значення у комп’ютерній програмі. Коли ми визначаємо змінну, ми присвоюємо значення до назви та розподіляємо місце у пам’яті, щоб зберегти це значення. Значення змінної можна оновити протягом програми.</li><li><strong>Константа</strong> схожа до змінної. Вона зберігає значення, але його не можна змінити. Як тільки ви присвоїли значення до константи, його більше не можна змінити.</li><li><strong>Умова</strong> — це структура, яка дозволяє розробнику обрати, що повинен виконувати комп’ютер. Якщо умова «true», щось відбудеться; якщо «false», відбудеться щось інше.</li><li><strong>Цикл</strong> — це структура, яка дозволяє запустити блок коду (послідовність інструкцій) декілька разів. Цикл надзвичайно корисний, щоб уникнути повторення коду або реалізацію важчої функціональності.</li><li><strong>Функція</strong> дозволяє уникнути повторення коду та повторно використати наш код. Це ніби блок коду, до якого ми присвоюємо назву, але він має і деякі спеціальні характеристики. Ми можемо написати назву функції, щоб запустити цю послідовність інструкцій, не писавши їх знову.</li></ul><p>💡<strong> Важливо:</strong> функції можуть комунікувати з головними програмами і головні програми можуть комунікувати з функціями через <strong>параметри</strong>, <strong>аргументи</strong> та<strong> інструкції повернення</strong>.</p><ul><li><strong>Клас</strong> використовують для визначення характеристик та функціональних можливостей об’єкта. Об’єкти в програмах існують так само, як і в реальному житті.</li><li><strong>Баг</strong> — це помилка в логіці або реалізації програми, яка призводить до неочікуваного чи неправильного результату.</li><li><strong>Налагодження</strong> — процес знаходження та усунення багів у програмі.</li><li><strong>ІСР</strong>, абревіатура для інтегрованого середовища розробки. Це середовище розробки програмного забезпечення, яке містить інструменти, необхідні для написання комп’ютерних програм (наприклад, редактор файлів, провідник, термінал і корисні параметри меню).</li></ul><p>💡 <strong>Важливо<strong>:</strong></strong> широко використовують безоплатне ІСР <a href="https://code.visualstudio.com/">Visual Studio Code</a>, створене Microsoft.</p><p>Чудово! Тепер ви знаєте основні поняття програмування. Як ви вже зрозуміли, кожна мова програмування має різний синтаксис, але вони поділяють більшість програмних структур та понять.</p><!--kg-card-begin: html--><h2 id="типи-мов-програмування">🔸 Типи мов програмування</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/12/types-of-programming-languages.png" class="kg-image" alt="types-of-programming-languages" width="600" height="400" loading="lazy"></figure><p>Мови програмування можна класифікувати за різними критеріями. Якщо ви хочете навчитися програмувати, важливо вивчити основні класифікації:</p><h3 id="--30"><strong>За складністю</strong></h3><ul><li><strong>Мови програмування високого рівня<strong>:</strong></strong> вони призначені для розуміння людьми, і їх потрібно перетворити на машинний код, перш ніж комп’ютер зможе їх зрозуміти. Це мови, якими найчастіше користуються. Наприклад: JavaScript, Python, Java, C#, C++ та Kotlin.</li><li><strong>Мови програмування низького рівня<strong>:</strong></strong> їх важко зрозуміти, оскільки вони не призначені для розуміння людьми. Вони призначені для розуміння та обробки машинами.</li></ul><h3 id="--31"><strong>За перетворенням в машинний код</strong></h3><ul><li><strong>Компільовані мови програмування<strong>:</strong></strong> програми, написані таким типом мови програмування, перетворюються в машинний код компілятором. Сюди входять C, C++, Haskell та Go.</li><li><strong>Інтерпретовані мови програмування<strong>:</strong></strong> програми, написані таким типом мови програмування, перетворюються в машинний код завдяки іншій програмі під назвою <strong>інтерпретатор</strong>, який відповідає за виконання коду рядок за рядком. Сюди входять Python, JavaScript, PHP та Ruby.</li></ul><p><strong><strong>💡 </strong>Важливо<strong>:</strong></strong> згідно із <a href="https://www.freecodecamp.org/news/compiled-versus-interpreted-languages/">публікацією</a> від freeCodeCamp:</p><blockquote>Більшість мов програмування можуть мати як скомпільовані, так і інтерпретовані реалізації — сама мова не обов’язково компільована чи інтерпретована. Однак для простоти їх зазвичай називають саме так.</blockquote><p>Існують й інші типи мов програмування, залежно від інших критеріїв:</p><ul><li>процедурні мови програмування</li><li>функціональні мови програмування</li><li>об’єктноорієнтовані мови програмування</li><li>скриптові мови</li><li>логічні мови програмування</li></ul><p>І список типів мов програмування продовжується. Це дуже цікаво, оскільки можна аналізувати характеристики мови програмування, щоб обрати придатну для свого проєкту.</p><!--kg-card-begin: html--><h2 id="як-зробити-внесок-до-проєктів-з-відкритим-кодом">🔹 Як зробити внесок до проєктів з відкритим кодом</h2><!--kg-card-end: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-04-at-4.53.42-PM.png" class="kg-image" alt="Screen-Shot-2022-12-04-at-4.53.42-PM" width="600" height="400" loading="lazy"><figcaption>Домашня сторінка GitHub.</figcaption></figure><p>Ви можете думати, що програмування передбачає багатогодинне сидіння за столом і розглядання коду без жодної взаємодії з людьми. Але це не так. Ви можете стати частиною навчальної спільноти або спільноти розробників.</p><p>Спочатку, коли ви вчитеся програмувати, ви можете взяти участь у навчальній спільноті, як-от freeCodeCamp. Таким чином ви поділитеся своєю подорожжю з іншими, хто також вчиться програмувати.</p><p>Потім, коли ви матимете достатньо навичок і впевненості у своїх знаннях, ви зможете практикуватися, беручи участь у проєктах з відкритим кодом і приєднуючись до спільнот розробників.</p><p><a href="https://opensource.com/resources/what-open-source">Opensource.com</a> визначає програмне забезпечення з відкритим кодом як:</p><blockquote>Програмне забезпечення з вихідним кодом, який будь-хто може перевірити, змінити та вдосконалити.</blockquote><p><strong><strong><a href="https://github.com/">GitHub</a></strong></strong> — це онлайн-платформа для розміщення проєктів із контролем версій. Там ви можете знайти багато проєктів з відкритим кодом (наприклад, <a href="https://github.com/freeCodeCamp/freeCodeCamp">freeCodeCamp</a>), до яких ви можете зробити свій внесок і попрактикувати навички.</p><p>💡 <strong>Важливо<strong>:</strong></strong> багато проєктів з відкритим кодом вітають внески будь-якого рівня. Це чудова можливість практикувати свої навички та робити внески у реальні проєкти.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-04-at-5.01.58-PM.png" class="kg-image" alt="Screen-Shot-2022-12-04-at-5.01.58-PM" width="600" height="400" loading="lazy"><figcaption>Репозиторій freeCodeCamp на GitHub.</figcaption></figure><p>Внесок до проєктів з відкритим вихідним кодом на GitHub — це чудова можливість отримати новий досвід роботи та спілкування з іншими розробниками. Це ще один важливий навик для пошуку роботи в цій сфері.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/12/Screen-Shot-2022-12-04-at-5.06.54-PM.png" class="kg-image" alt="Screen-Shot-2022-12-04-at-5.06.54-PM" width="600" height="400" loading="lazy"><figcaption>GitHub відстежує ваші <a href="https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile">внески</a> та показує їх у вашому профілі. Вони показані у вигляді інтерактивних сірих і зелених квадратів, які представляють дні поточного року. Темніший відтінок зеленого означає, що цього дня було зроблено більше внесків. Зображення взято з <a href="https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile">цієї статті GitHub</a>.</figcaption></figure><p>Робота в команді — це чудовий досвід. Я рекомендую долучитись до команди, як тільки ви відчуєте себе достатньо комфортно зі своїми навичками та знаннями.</p><p>Що ж! Ви досягли кінця публікації. Чудова робота. Тепер ви знаєте, що таке програмування. Підіб’ємо підсумки.</p><h2 id="--32"><strong>🔸 Висновок</strong></h2><ul><li>Програмування — це надзвичайно корисна навичка. Якщо ви навчитеся програмувати, ви зможете реалізувати свої ідеї.</li><li>Програмування застосовують у багатьох різних галузях. Ви можете знайти застосування для програмування практично в будь-якій галузі, яку виберете.</li><li>Мови програмування можна класифікувати за різними критеріями, і вони мають спільні основні поняття, як-от змінні, умови, цикли та функції.</li><li>Завжди ставте цілі та робіть детальні нотатки. Щоб досягти успіху як розробник, вам потрібно бути послідовним ентузіастом.</li></ul><p><strong>Щиро дякую, що прочитали мою публікацію<strong>.</strong></strong> Сподіваюсь, вона була корисною. Тепер ви знаєте, чому потрібно навчитись програмувати.</p><p>🔅 Запрошую вас підписатись на мене у твіттері (<a href="https://twitter.com/EstefaniaCassN">@EstefaniaCassN</a>) та ютубі (<a href="https://www.youtube.com/codingwithestefania">Coding with Estefania</a>).</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML vs Body: як встановити ширину та висоту для повного розміру сторінки ]]>
                </title>
                <description>
                    <![CDATA[ CSS складний, але на це можна закрити очі. Саме ця поблажливість дозволяє нам додавати стилі до CSS абияк. Наша сторінка досі завантажується. Немає ніякого «краху». Якщо мова йде про ширину та висоту сторінки, чи знаєте ви, що потрібно встановити для елемента HTML? А для елемента body? Ви просто накидуєте стилі ]]>
                </description>
                <link>https://www.freecodecamp.org/ukrainian/news/html-vs-body-yak-vstanovyty-shyrynu-ta-vysotu-dlya-povnoho-rozmiru-storinky/</link>
                <guid isPermaLink="false">63190aa8e16faf078a4c3f9a</guid>
                
                    <category>
                        <![CDATA[ програмування ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ rustamdocstranslator ]]>
                </dc:creator>
                <pubDate>Tue, 04 Oct 2022 11:56:18 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/ukrainian/news/content/images/2022/09/1F8831BD-7EEA-4FF7-91D5-637FD330BB80.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Оригінальна публікація:</strong> <a href="https://www.freecodecamp.org/news/html-page-width-height/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML vs Body: How to Set Width and Height for Full Page Size</a>
      </p><p>CSS складний, але на це можна закрити очі. Саме ця поблажливість дозволяє нам додавати стилі до CSS абияк.</p><p>Наша сторінка досі завантажується. Немає ніякого «краху».</p><p>Якщо мова йде про ширину та висоту сторінки, чи знаєте ви, що потрібно встановити для елемента HTML? А для елемента body?</p><p>Ви просто накидуєте стилі на обидва елементи і сподіваєтесь на краще?</p><p>Якщо так, ви не один.</p><p>Зазвичай над відповіддю навіть не задумуються.</p><p>Я визнаю свою провину в застосуванні стилів до обох елементів у минулому, не врахувавши, яку саме властивість потрібно застосувати до них. 🤦‍♂️</p><p>Нерідко можна побачити властивості CSS, застосовані до HTML та body, у такий спосіб:</p><pre><code>html, body {
     min-height: 100%;
}
</code></pre><h2 id="-">Це важливо?</h2><p>Так, важливо.</p><p>Наведене вище визначення створює проблему:</p><p>Встановлення min-height на 100% для обох елементів не дозволяє елементу body заповнювати сторінку так, як ви очікували. Якщо ви перевірите обчислені значення в інструментах, побачите, що висота елемента body дорівнює нулю.</p><p>При цьому елемент HTML має висоту, що дорівнює видимій частині сторінки в браузері.</p><p>Подивіться на наступний знімок екрана з Chrome Dev Tools:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/02/empty_body.png" class="kg-image" alt="empty_body" width="600" height="400" loading="lazy"><figcaption>Елемент body має поле за замовчуванням у 8 пікселів, позначене смугою вгорі. Значення висоти дорівнює 0.</figcaption></figure><h2 id="--1">Чому це відбувається?</h2><p>Використання відсотка як значення розміру вимагає, щоб елемент посилався на батьківського елемента, щоб базувати цей відсоток на ньому.</p><p>Елемент HTML посилається на вікно перегляду, значення висоти якого дорівнює висоті видимого вікна перегляду. Однак для елемента HTML ми встановлюємо лише min-height... НЕ значення властивості висоти.</p><p>Таким чином, елемент body не має батьківського значення висоти, на яке можна посилатися під час визначення, чому дорівнюють 100%.</p><h2 id="--2">Проблема може бути прихованою</h2><p>Якщо ви почали з достатньою кількістю вмісту для заповнення тіла сторінки, ви могли не помітити цю проблему.</p><p>Це ще важче помітити, якщо ви встановите background-color для обох елементів, або навіть лише для одного з них, і вікно перегляду буде заповнене цим кольором. Це створює враження, що елемент body такий же високий, як вікно перегляду.</p><p>Але він досі на нулі.</p><p>Зображення вище взято зі сторінки з таким CSS:</p><pre><code>html, body {
    min-height: 100%;
}
body { background-color: dodgerblue; }
</code></pre><h3 id="--3">Зворотне успадкування?</h3><p>Дивним чином елемент HTML припускає background-color елемента body, якщо ви не встановите окремий background-color для елемента html.</p><h2 id="--4">Яке ідеальне налаштування висоти для повністю адаптивної сторінки?</h2><p>Роками відповідь була така:</p><pre><code>html {
    height: 100%;
}
body {
    min-height: 100%;
}
</code></pre><p>Це дозволяє елементу HTML посилатися на батьківське вікно перегляду та мати значення висоти, що дорівнює 100% значення вікна перегляду.</p><p>Коли елемент HTML отримує значення висоти, то значення min-height, призначене елементу body, дає йому початкову висоту, яка відповідає елементу HTML.</p><p>Це також дозволяє body рости вище, якщо вміст переростає видиму сторінку.</p><p>Єдиним недоліком є те, що елемент HTML не виростає за висоту видимого вікна перегляду. Однак дозволити елементу body переростати елемент HTML визнали прийнятним.</p><h2 id="--5">Сучасне спрощене рішення</h2><pre><code>body { min-height: 100vh; }
</code></pre><p>У цьому прикладі використовуються одиниці <code>vh</code> (viewport height; висота вікна перегляду), щоб дозволити тілу встановити мінімальне значення висоти на основі повної висоти вікна перегляду.</p><p>Подібно до обговорюваного раніше background-color, якщо ми не встановимо значення висоти для елемента HTML, він прийме те саме значення для висоти, що надано елементу body.</p><p>Тому це рішення уникає переповнення елемента HTML, присутнього в попередньому рішенні, і обидва елементи ростуть разом із вашим вмістом!</p><p>Раніше використання одиниць <code>vh</code> справді спричиняло деякі проблеми в мобільних браузерах, але зараз Chrome і Safari сумісні з ними.</p><h2 id="--6">Висота сторінки може спричинити горизонтальну смугу прокрутки</h2><p>Зачекайте, що?</p><p>Хіба тут не має писати «Ширина сторінки»?</p><p>Ні.</p><p>В іншому дивному випадку висота вашої сторінки може активувати горизонтальну смугу прокрутки у вашому браузері.</p><p>Коли вміст вашої сторінки стає вищим за висоту вікна перегляду, активується вертикальна смуга прокручування праворуч. Це може призвести до того, що ваша сторінка моментально матиме ще горизонтальну смугу прокрутки.</p><h2 id="--7">Що з цим робити?</h2><p>Ви будете спати краще, знаючи, що це починається з налаштування ширини сторінки.</p><p>Ця проблема виникає, коли будь-який елемент — а не лише елемент HTML або body — встановлено на 100vw.</p><p>Одиниці вікна перегляду не враховують приблизно 10 пікселів, які займає вертикальна смуга прокручування.</p><p>Таким чином, коли активується вертикальна смуга прокручування, ви також отримуєте горизонтальну смугу.</p><h2 id="--8">Як встановити сторінку на повну ширину</h2><p>Можливо, просто не варто цього робити.</p><p>Якщо не встановити ширину для елементів HTML та body, то за замовчуванням буде використовуватися повний розмір екрана. Якщо ви встановили значення ширини, відмінне від auto, подумайте про скидання CSS.</p><p>Пам’ятайте, що елемент body має поле 8px з усіх боків за замовчуванням.</p><p>Скидання CSS видаляє їх. В іншому випадку встановлення ширини на 100% перед видаленням полів призведе до переповнення елемента body. Ось скидання CSS, яке я використовую:</p><pre><code>* { 
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
</code></pre><h2 id="--9">Як встановити ширину на свій вибір</h2><p>Хоча не завжди потрібно встановлювати ширину, я зазвичай це роблю.</p><p>Це може бути проста звичка.</p><p>Якщо ви встановите ширину на 100% для елемента body, ви матимете ширину повної сторінки. По суті, це еквівалентно невстановленню значення ширини та дозволу за замовчуванням.</p><p>Якщо ви хочете використовувати елемент body як менший контейнер і дозволити елементу HTML заповнити сторінку, ви можете встановити значення max-width для body.</p><p>Ось приклад:</p><pre><code>html { background-color: #000; } 
body {
    min-height: 100vh;
    max-width: 400px;
    background-color: papayawhip; 
    margin: 0 auto;
}</code></pre><h2 id="--10">Висновок</h2><p>Якщо для елемента HTML не надано значення висоти, то встановлення висоти та/або min-height елемента body на 100% призведе до відсутності висоти (перед додаванням вмісту).</p><p>Однак, якщо для елемента HTML не надано значення ширини, то встановлення ширини елемента body на 100% призведе до ширини повної сторінки.</p><p>Це може бути суперечливим і заплутаним.</p><p>Для адаптивної висоти повної сторінки встановіть min-height елемента body на 100vh.</p><p>Якщо ви встановлюєте ширину сторінки, виберіть 100% замість 100vw, щоб уникнути несподіваних горизонтальних смуг прокрутки.</p><p>Чи є у вас інший спосіб налаштування CSS ширини та висоти, якому ви віддаєте перевагу?</p><p>Поділіться своїм методом!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
