Наконец-то эта минута наступила! Начинаем программировать. Внутри нашей папки pset1 создаем файл под названием hello.c (расширение обязательно), открываем в новой вкладке (думаем, вы помните, как это делать из предыдущего параграфа). 

ВАЖНО! Буквы должны быть строчными, Linux чувствителен к регистру. Hello.c и hello.c — разные файлы. 

Виртуальная лаборатория CS50 CS50 IDE
Кликаем по файлу дважды. Открывается редактор кода gedit (также gedit можно вызвать из командной строки терминала просто набрав слово gedit). В поле справа набираем текст. В правой части окна CS50 IDE набираем точь-в-точь такой текст, как вы видите ниже. Да, его можно скопировать, но полезнее — набрать. 
#include &ltstdio.h>
int main(void)
{
    printf("hello, world\n");
}

Буквы разного цвета потому, что в Gedit и CS50 IDE работает подсветка синтаксиса. Она выделяет цветом блоки текста для лучшей читаемости. В самом файле цвета не сохраняются, они видны только в IDE или специальном редакторе кода. То есть, если текст разноцветный, то, скорее всего, IDE и редактор понимают язык Cи, а о том, что это именно Cи, вы сообщили в расширении файла (*.c). Если бы вы назвали этот же файл hello.txt, текст был бы одноцветный. 

Убедитесь, что вы напечатали всё ровно так, как в примере, иначе поймаете первый баг=). Снова обращаем ваше внимание на разницу между строчными и прописными буквами. Символ \n переводит курсор на следующую строку, и введенный следом текст не слипнется с выведенным программой. Ах да, и о точке с запятой (;) не забывайте. Это важный разделитель операторов программы, Cи без них работать не захочет. 

Нажмите File > Save (или комбинацию command- или Ctrl-s). Заметили, что звездочка (или красный круг в CS50 IDE) перед названием файла исчезли? Если да, значит изменения сохранились. Кликните в любом месте по терминальному окну под вашим кодом и убедитесь, что вы внутри ~/Dropbox/pset1 (или ~/workspace/pset1).

Убедимся, что файл hello.c находится ровно там, где должен. Набираем

ls

и жмем Enter. Вы видите hello.c? Если нет, вернитесь на пару шагов назад и создайте файл в нужной директории еще раз. … Теперь наступает торжественный момент: скрещиваем пальцы и… печатаем в терминальной строке gedit или в CS50 IDE: 

make hello

и скрещенными же пальцами жмем Enter. Именно hello, не hello.c. Если всё, что вы после этого действа перед собой увидели — вторая активная строка, которая выглядит точь-в-точь, как предыдущая, значит, получилось! Ваш исходный код был переведен в машинный или объектный код (то есть, в последовательности 0 и 1). Теперь этот код можно выполнить (то есть запустить программу!). Для этого печатаем: 

./hello

в командной строке, жмем Enter. Если вы не меняли текст заключенный в кавычки, ниже вы увидите:

hello, world

Если вы теперь наберете команду 

ls

и нажмете Enter, вы увидите новый файл hello, наряду с hello.c и hello.txt. У первого hello, должна быть звездочка после имени, которая сигнализирует о том, что это исполняемый файл, то есть такой, с помощью которого вы запускаете программу. 

Баги?

Если после попытки выполнить команду make, вы увидели ошибки, пришло время первой отладки! Надписи вроде «expected declaration» означают, что вы где-то допустили опечатку. Сверьте код с приведенным выше еще раз, только будьте очень внимательны ко всем деталям. 

Внимание! Описания ошибок выдаются на английском. Если непонятно, воспользуйтесь поисковиком, Google Translate или задайте вопрос в комментарии.

Как только вы исправили ошибки, не забудьте сохранить ваш код с помощью File > Save (или command- или Ctrl-s), снова щелкнете по внутренней части терминального окна и наберите 

make hello

(Только предварительно убедитесь, что вы находитесь в внутри директории pset1). Если больше ошибок нет, запускайте программу, набирая команду 

./hello

По идее перед вами должна возникнуть заветная фраза, заключенная в кавычки оператора printf, который командует «напечатай». 

Если окно терминала кажется вам слишком маленьким, кликните по иконке заключенного в окружности плюса (+), расположенной рядом с hello.c.