Сайт о телевидении

Сайт о телевидении

» » Обучение языку c с нуля. Программирование с нуля: с чего начать? Как начать изучать программирование с нуля на языке Java

Обучение языку c с нуля. Программирование с нуля: с чего начать? Как начать изучать программирование с нуля на языке Java

Кто бы не хотел научится создавать сайты и всякие программы для души и может бить и для профессионального роста.

Да каждый!

И я в том числе не прочь подучится таких новшеств о которых слышал но полностью не владею. Поступать в учебное заведение уже как то неохота… и работа хорошая имеется. Так как быть?

Думаю что обучение через интернет самое то!

В сети существует достаточно бесплатных курсов, которые помогут сделать это достаточно легко и быстро. Все представленные ниже ресурсы предоставляют простые, понятные интерактивные уроки по HTML, CSS, PHP, Ruby, в течение которых вы будете получать не только теоритические знания, но и выполнять практические задания.

Начну с русскоязычных ресурсов:

И так программирование бесплатно…

http://htmlacademy.ru/
Вы научитесь создавать современные веб-интерфейсы, работать с живым кодом, использовать новейшие технологии.
Минимум скучной теории и максимум практических упражнений, решение реальных задач и настоящие испытания.

Интересные, наглядные и затягивающие курсы, интерактивные интерфейсы, достижения - все для обучения с удовольствием.

http://hexlet.org/

Хекслет – свободный онлайн-университет. Мы проводим бесплатные курсы по программированию и смежным дисциплинам.

Видео-лекции (их можно смотреть на сайте или через iTunes), тесты, упражнения, домашние задания и активное сообщество студентов – все это наш с вами Хекслет.

Особенности Хекслета: активное участие преподавателей, живое общение со студентами и концентрация на практических занятиях.

Представленные ниже ресурсы на английском, для информации…. в программирование без английского не как!

ФАКТ!

Codecademy

http://www.codecademy.com

Codecademy, бесспорно, самый известный сайт для изучения программирования.

Обучение начинается буквально с главной страницы сайта, где в интерактивной консоли вы можете узнать принцип обучения на этих курсах. Затем можно выбрать один из языков, в котором вы хотите преуспеть и начать его освоение.

Code Avengers

http://www.codeavengers.com/

Code Avengers создан для тех людей, которые боятся программирования, думая, что это бесконечно скучное и сложное занятие.

Здесь вы можете изучать HTML5, CSS3 и JavaScript и каждый из курсов тщательно разработан, чтобы по-настоящему увлечь вас и заинтересовать.

В конце каждого урока вам предлагается небольшая мини-игра, которая позволяет применить свои знания на практике.

Code School

http://www.codeschool.com/

Если вы закончили курсы Codecademy или Code Avengers и готовы к дальнейшему расширению своих знаний, то вам непременно надо обратить внимание на Code School.

В отличие от большинства интерактивных обучающих сайтов, Code School предлагает более углубленные курсы по подготовке и превратит вас из зеленого новичка в эксперта в выбранной области.

В отличие от других сайтов в этой подборке, которые полностью бесплатны, здесь доступ к некоторым разделам придется оплачивать из расчета 25$ в месяц.

Treehouse

http://teamtreehouse.com/

Эти курсы являются значительно более практически ориентированными, чем другие, обучающие просто одному из языков программирования.

Это значит, что перед вами ставится конкретная задача, например создание простого сайта или интерактивного веб-приложения, или даже WordPress темы и даются все необходимые знания, которые вам могут понадобиться.

Поэтому этот ресурс отлично подходит для начинающих программистов, перед которыми стоит какая-то конкретная практическая задача.

LearnStreet

Начать обучение на этом сайте можно нажатием всего одной кнопки, а вот закончить так быстро не получится - ведь учебных материалов по JavaScript, Python и Ruby здесь огромное количество.

Есть и лекции для самых начинающих, и практические задачи, и примеры решения реальных проектов.

Сравнительная таблица

И в заключение замечательный ролик, в котором лучшие люди нашего времени расскажут вам о необходимости изучения программирования. Надеюсь, он придаст вам сил, уверенности и смелости прямо сейчас приступить к делу.

Удачи вам и много самостоятельно написанных программ!

Подборка для тех, кто привык воспринимать информацию в визуализированной форме: лучшие видео- и онлайн-курсы по С++ для разработчиков разных уровней от Библиотеки Программиста.

Видеокурсы

Изучение С++ с нуля

Видеокурс по основам языка, его основным принципам и структурам. Типы данных, динамическое управление памятью, работа с файлами, ссылки и указатели, шаблоны и основы ООП.

Программирование на С и С++

Фундаментальный курс по языку С и его тонкостям: структуры, функции, работа с памятью, потоки ввода-вывода, компиляция и сборка проекта. Три последние лекции посвящены ООП в С++.

Алгоритмы, структуры данных и программирование в С++

Подборка из десяти коротких лекций, дающих понимание основ алгоритмизации и структурирования задач, а также эффективной реализации практических приемов их решения.

Практическое решение задач на С++

Курс посвящен разбору реальных математических, алгоритмических, логических и оптимизационных задач. Данная серия ориентирована на людей, имеющих некоторый опыт и глубокое понимание алгоритмов, поэтому может быть несколько сложной для новичков.

Создание простых игр на С++

Кто из нас в детстве не мечтал делать игры? Данный курс состоит из 16 одно-/двухминутных видео, в каждом из которых под легкую музыку демонстрируется написание кода для классических игр вроде змейки, арканоида и Doodle Jump.

Программирование простых игр на С++ за 10 минут

В целом подборка аналогична предыдущей, за исключением, пожалуй, того, что демонстрируемый код содержит больше комментариев и в общем более понятен интуитивно. Каждое десятиминутное видео научит, как написать простую игру: шашки, сапера, тетрис и др.

Углубленный С++

Серия для уверенных знатоков С++, которая позволит углубить и расширить свои знания техник, методик и фич языка. Из этого курса вы узнаете о различиях между логической и физической константностью, виртуальных функциях, функциях, генерируемых компилятором, и многом другом.

Онлайн-курсы

CPA: Programming Essentials in C++

Англоязычный курс от поможет приобрести базовые навыки написания программ на языке C++, усвоить принципы объектно-ориентированного программирования, а также универсальные концепции разработки программного обеспечения. Курс подходит для подготовки к экзамену на получение сертификата CPA от C++ Institute.

Программирование на языке С++

Данный базовый курс, входящий в онлайн-программы по основам программирования и анализу данных , дает представление об основных средствах языка C++. Особое внимание уделяется обсуждению базовых принципов работы программ, а также процессу их компиляции.

(Code-Live)

Этот самоучитель создан для тех, кто хочет освоить основы программирования на C++. Уроки рассчитаны, в первую очередь на новичков, но будут полезны и тем, кто уже имеет небольшой опыт в программировании.

Введение в программирование (С++) (Яндекс)

Курс рассчитан на школьников, интересующихся программированием. Для его освоения достаточно знания программы 8 класса. Слушатели начнут изучать C++ с нуля, напишут множество небольших программ и познакомятся с основными конструкциями языка. Полученные знания станут отличной основой для продолжения обучения программированию в вузе.

Эти обучающие уроки предназначены для всех, независимо от того, новичок вы в программировании или у вас уже есть обширный опыт программирования на других языках! Данный материал для тех, кто хочет изучить языки С/С++ от самых его основ до сложнейших конструкций.

C++ является языком программирования, знание этого языка программирования позволит вам управлять вашим компьютером на высшем уровне. В идеале вы сможете заставить компьютер сделать всё, что сами захотите. Наш сайт поможет вам в освоении языка программирования C++.

Установка /IDE

Самое первое, что вы должны сделать, прежде чем приступить к изучении C++, это убедиться, что у вас есть IDE — интегрированная среда разработки (программа в которой вы будете программировать). Если у вас нет IDE, тогда вам сюда . Когда определитесь с выбором IDE, установите её и потренируйтесь создавать простые проекты.

Введение в язык C++

Язык C++ представляет собой набор команд, которые говорят компьютеру, что необходимо сделать. Этот набор команд, обычно называется исходный код или просто код. Командами являются или «функции» или «ключевые слова». Ключевые слова(зарезервированные слова С/С++) являются основными строительными блоками языка. Функции являются сложными строительными блоками, так как записаны они в терминах более простых функций — вы это увидите в нашей самой первой программе, которая показана ниже. Такая структура функций напоминает содержание книги. Содержание может показывать главы книги, каждая глава в книге может иметь своё собственное содержание, состоящее из пунктов, каждый пункт может иметь свои подпункты. Хотя C++ предоставляет много общих функций и зарезервированных слов, которые вы можете использовать, все-таки возникает потребность в написании своих собственных функций.

В какой же части программы начало? Каждая программа в C++ имеет одну функцию, её называют главная или main-функция, выполнение программы начинается именно с этой функции. Из главной функции, вы также можете вызывать любые другие функции, неважно, являются ли они написанными нами, или, как упоминалось ранее, предоставляются компилятором.

Так как же получить доступ к этим Стандартным функциям? Чтобы получить доступ к стандартным функциям, которые поставляются с компилятором, необходимо подключить заголовочный файл используя препроцессорную директиву — #include . Почему это эффективно? Давайте посмотрим на примере рабочей программы:

#include << "Моя первая программа на С++\n"; cin.get(); }

Рассмотрим подробно элементы программы. #include это директива «препроцессору», которая сообщает компилятору поместить код из заголовочного файла iostream в нашу программу перед тем как создать исполняемый файл. Подключив к программе заголовочный файл вы получаете доступ к множеству различных функций, которые можете использовать в своей программе. Например, оператору сout требуется iostream . Строка using namespace std; сообщает компилятору, что нужно использовать группу функций, которые являются частью стандартной библиотеки std . В том числе эта строка позволяет программе использовать операторы, такие как cout . Точка с запятой является частью синтаксиса C++. Она сообщает компилятору, что это конец команды. Чуть позже вы увидите, что точка с запятой используется для завершения большинства команд в C++.

Следующая важная строка программы int main() . Эта строка сообщает компилятору, что есть функция с именем main , и что функция возвращает целое число типа int . Фигурные скобки { и } сигнализируют о начале { и конце } функции. Фигурные скобки используются и в других блоках кода, но обозначают всегда одно — начало и конец блока, соответственно.

В C++ объект cout используется для отображения текста (произносится как «Cи аут»). Он использует символы << , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

Следующая команда cin.get() . Это еще один вызов функции, которая считывает данные из входного потока данных и ожидает нажатия клавиши ENTER. Эта команда сохраняет консольное окно от закрытия, до тех пор пока не будет нажата клавиша ENTER. Это даёт вам время для того, чтобы посмотреть результат выполнения программы.

По достижении конца главной функции (закрывающая фигурная скобка), наша программа вернёт значение 0 для операционной системы. Это возвращаемое значение является важным, поскольку, проанализировав его, ОС может судить о том, успешно завершилась наша программа или нет. Возвращаемое значение 0 означает успех и возвращается автоматически (но только для типа данных int , другие функции, требуют вручную возвращать значение), но если бы мы хотели вернуть что-то другое, например 1, мы должны были бы сделать это вручную.

#include using namespace std; int main() { cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Для закрепления материала, наберите код программы в своей IDE и запустите его. После того, как программа запустилась, и вы увидели результат работы, поэкспериментируйте немного с оператором cout . Это поможет вам привыкнуть к языку.

Обязательно комментируйте свои программы!

Добавляйте комментарии к коду, чтобы сделать его понятнее не только для себя но и для других. Компилятор игнорирует комментарии при выполнении кода, что позволяет использовать любое количество комментариев, чтобы описать реальный код. Чтобы создать комментарий используйте или // , который сообщает компилятору, что остальная часть строки является комментарием или /* и затем */ . Когда вы учитесь программировать, полезно иметь возможность комментировать некоторые участки кода, для того, чтобы увидеть, как изменяется результат работы программы. Подробно прочитать о технике комментирования, вы можете .

Что делать со всеми этими типами переменных?

Иногда это может сбить с толку — иметь несколько типов переменных, когда кажется, что некоторые типы переменных являются избыточными. Очень важно использовать правильный тип переменной, так как некоторым переменным, требуется больше памяти, чем другим. Кроме того, из-за способа хранения в памяти, числа с плавающей точкой, типы данных float и double являются «неточным», и не должны использоваться, когда необходимо сохранить точное целое значение.

Объявление переменных в C++

Чтобы объявить переменную используется синтаксис тип <имя>; . Вот некоторые примеры объявления переменных:

Int num; char character; float num_float;

Допустимо объявление нескольких переменных одного и того же типа в одной строке, для этого каждая из них должна быть отделена запятой.

Int x, y, z, d;

Если вы смотрели внимательно, вы, возможно, видели, что объявление переменной всегда сопровождается точкой с запятой. Подробнее о соглашении — «об именовании переменных», можно .

Распространенные ошибки при объявлении переменных в C++

Если вы попытаетесь использовать переменную, которую не объявили, ваша программа не будет скомпилирована, и вы получите сообщение об ошибке. В C++, все ключевые слова языка, все функции и все переменные чувствительны к регистру.

Использование переменных

Итак, теперь вы знаете, как объявить переменную. Вот пример программы, демонстрирующий использование переменной:

#include using namespace std; int main() { int number; cout << "Введите число: "; cin >> number; cin.ignore(); cout << "Вы ввели: "<< number <<"\n"; cin.get(); }

Давайте рассмотрим эту программу и изучим её код, строку за строкой. Ключевое слово int говорит о том, что number — целое число. Функция cin >> считывает значение в number , пользователь должен нажать ввод после введенного числа. cin.ignore () — функция, которая считывает символ и игнорирует его. Мы организовали свой ввод в программу, после ввода числа, мы нажимаем клавишу ENTER, символ который также передаётся в поток ввода. Нам это не нужно, поэтому мы его отбрасываем. Имейте в виду, что переменная была объявлена целого типа, если пользователь попытается ввести десятичное число, то оно будет обрезано (то есть десятичная часть числа будет игнорироваться). Попробуйте ввести десятичное число или последовательность символов, когда вы запустите пример программы, ответ будет зависеть от входного значения.

Обратите внимание, что при печати из переменной кавычки не используются. Отсутствие кавычек сообщает компилятору , что есть переменная, и, следовательно, о том, что программа должна проверять значение переменной для того, чтобы заменить имя переменной на её значение при выполнении. Несколько операторов сдвига в одной строке вполне приемлемо и вывод будет выполняться в том же порядке. Вы должны разделять строковые литералы (строки, заключенные в кавычки) и переменные, давая каждому свой оператор сдвига << . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Изменение и сравнение величин

Конечно, независимо от того, какой тип данных вы используете, переменные не представляют особого интереса без возможности изменения их значения. Далее показаны некоторые операторы, используемые совместно с переменными:

  • * умножение,
  • - вычитание,
  • + сложение,
  • / деление,
  • = присвоение,
  • == равенство,
  • > больше,
  • < меньше.
  • != неравно
  • >= больше или равно
  • <= меньше или равно

Операторы, которые выполняют математические функции , должны быть использованы справа от знака присвоения, для того, чтобы присвоить результат переменной слева.

Вот несколько примеров:

A = 4 * 6; // использование строчного комментария и точки с запятой, a равно 24 a = a + 5; // равно сумме исходного значения и пяти a == 5 // не присваивается пять, выполняется проверка, а равно 5 или нет

Вы часто будете использовать == в таких конструкциях, как условные операторы и циклы.

A < 5 // Проверка, a менее пяти? a > 5 // Проверка, a больше пяти? a == 5 // Проверка, a равно пяти? a != 5 // Проверка, а неравно пяти? a >= 5 // Проверка, a больше или равно пяти? a <= 5 // Проверка, a меньше или равно пяти?

Данные примеры не очень наглядно показывают использование знаков сравнения, но когда мы начнём изучать операторы выбора , вы поймете, зачем это надо.

/ С++ программирование / Уроки C++

С++ - это компилируемый, высокоуровневый язык программирования. Может использоваться в большинстве сфер применения. Предназначающаяся для разработки разнообразных приложений. На сегодня – это один из популярнейших и известнейших языков.

Видео урок:

С++ берёт основу в языке Си, активно разрабатываемом ещё в 1969-1973 годах. За разработку отвечала компания Bell Labs во главе с главным разработчиком Dennis Ritchie. Через 10 лет программист из Дании Bjarne Stroustrup, в своё время являвшийся разработчиком Си, выпускает расширенную версию языка под названием С++. Вначале своего пути C++ являлся всего лишь расширением, неким дополнением к Си, которое расширяло возможности ООП. Сам Страуструп изначально рассматривал язык всего лишь как «Си с классами ».

Дата рождения C++ приходится на 1983 год. Хоть он и не являлся полноценным языком, а лишь ответвлением Си, но всё же имел ряд полезных функций. За счёт них программистам удавалось быстрее и проще разрабатывать приложения. С выходом C++ в мире появилось ряд, ныне общераспространённых, понятий:

  • Инициация классов с объектами в ООП;
  • Принцип наследования;
  • Выгрузка или удаление функций из памяти;
  • Виртуальная работа функциями;
  • Система исключений и многое другое.

Будет интересно: Си по сей день сохраняет популярность даже несмотря на развитие C++ и доминирующее положение последнего языка в сфере функциональности. Почему старый и менее развитый язык даже сегодня популярен? Всё просто - переносить программы на новый язык - довольно затратное и долгое дело. Часть компаний просто плывут по течению и продолжают поддерживать свои программы на Си.

В сети очень многие специалисты дают советы, что начать изучение С-подобных языков лучше с Си. Они говорят, что только так можно лучше понять суть С++. В реальности - это неправильное мнение. Если начать изучение с С++, в арсенале разработчика появятся знания о более новых и современных возможностях языка. Если когда-то появится необходимость перейти на Си, это не потребует много времени и сил. Даже сам факт необходимости перехода на довольно старый Си уже вызывает большие сомнения.

Но если вы все же хотите изучить Си перед языком C++, то предлагаем вам ознакомиться с большим видео уроком, в котором вы сможете познакомиться с этим языком:

В скорости после выпуска С++ язык начал завоёвывать различные сферы программирования. Постепенно в него внедряли всё новые функции, что всё больше отдаляло его от роли дополнения к Си. Годами позже его перестали рассматривать продолжением или расширением и пришло время полностью отделиться от Си, тогда-то язык и назвали С++. С тех пор путь языков разошёлся, они стали независимыми (насколько это возможно ).

Сегодня С++ - это функциональный и мощный язык, который получил в наследство от Си массу ключевых возможностей по управлению памятью. По этой причине он активно применяется в системном программировании.

Несколько сфер использования:

  • Разработка операционных систем. Даже сама Windows преимущественно базируется на С++;
  • Создание драйверов;
  • Написание программ с нуля;
  • Разработка и поддержка антивирусных приложений и прочего.

С++ ушёл далеко за пределы исключительно системного программирования. Он может участвовать в создании приложений всех уровней, в которых стоит акцент на быстродействии и работе под высокими нагрузками. Применяется для формирования графических редакторов и прикладных приложений.

Весьма много игровых движков, предназначенных для визуализации огромного игрового мира, основываются на С++. За последние года всё больше мобильных приложений используют данный язык. Даже в сфере веба нашлось место этому языку. Всевозможные веб-приложения активно используют С++, не обязательно в качестве основы, может просто для реализации вспомогательных функций, но факт остаётся фактом. Если подытожить: сложнее найти сферы, в которых С++ не может применяться, чем там, где используется этот язык.

С++ относится к компилируемым языкам, то есть компилятор изменяет код C++, преображая его в машинный с помощью предустановленных инструкций. Все платформы отличаются некоторыми особенностями, из-за чего нельзя взять и перенести программу с одной на другую платформу. Точнее, перенести можно, но она там не запустится. При этом исходный код приложения преимущественно переносится. Единственное исключение - использование специфических возможностей конкретной ОС.

У С++ есть компиляторы и инструменты для работы с кодом на большинстве известных платформ. Это позволяет скомпилировать исходники под любую платформу.

С++ поддерживает написание программ в стиле ООП, чего не умеет Си. В этом случае приложение становится лишь набором классов, объектов, которые способны взаимодействовать с другими элементами кода. Это помогает в разработке крупных приложений.

Как поэтапно развивался С++?

Шаги развития С++:

  • 1979-1980 - С++ появился и позиционировался, как язык Си с дополнительными классами;
  • 1983 - язык начал называться, как все мы привыкли С++;
  • 1985 - релиз коммерческого варианта С++. В этот же год появилась первая бумажная книга «Языка программирования C++ », она включала описание функций, возможностей и правил использования языка;
  • 1989 - выпущена вторая версия языка с расширенными возможностями;
  • С 1990 до 2011 - медленное развитие и добавление функционала. Также стоит упомянуть, что в 1998 году впервые попытались стандартизировать язык. Тот стандарт впоследствии назвали ISO/IEC 14882:1998 , сегодня - С++98. В 2003 году появилась следующий вариант стандарта C++03;
  • 2011 - издание стандарта C++11, в нём появилось действительно много нововведений. Обновление обогатило язык обилием полезных возможностей;
  • 2014 - выпуск относительно малого добавления к предыдущей версии стандарта. Его прозвали C++14;
  • 2017 - последний крупный релиз языка.

Среды программирования, компиляторы

Для написания программы на C++ обязателен компилятор, который преображает изначальный код в подходящий к исполнению в файле. Сегодня компиляторов неисчислимое количество. Они различаются по массе параметров, в том числе по способу реализации стандартов. На этапе выбора компилятора лучше выбирать те, что постоянно поддерживаются и обновляются.

Для работы с C++ необходимо установить среду разработки. Вы можете установить любую удобную для вас среду или же вовсе воспользоваться онлайн компилятором . Среди самых популярных сред разработки можно отметить такие, как.

Язык Си был разработан Деннисом Ритчи и Брайаном Керниганом в 1969–1973 годах. Си задумывался для реализации операционной сети UNIX, но впоследствии он нашел себе более широкое применение.

На сегодняшний момент Си занимает стабильное второе место .

Зачем нужен Си?

Мы уже о важности языка Си, поэтому пробежимся по основным пунктам.

Начнем с того, что большая часть системного программного обеспечения пишется на языке Си. Ядро популярнейшей open source ОС Linux было написано на Си.

Огромным плюсом Си является то, что каждая инструкция языка транслируется в машинный код прямым и понятным образом. Исполняется ровно тот код, который программист видит на экране. Впрочем, в современных компиляторах, конечно, могут применяться , но в меньшинстве случаев.

Стоит также отметить, что наиболее популярные языки программирования тем или иным образом связаны с Си. Так, например, Java и C# имеют так называемый Си-подобный синтаксис, а C++ и Objective-C в том или ином роде являются расширениями Си.

Если вы пишете код на каком-нибудь динамическом языке программирования, будь то PHP, JavaScript или Python, то его интерпретатор, среда исполнения и большинство библиотек в основном написаны на Си. Следовательно, чтобы понять особенности поведения того или иного языка, нужно знать особенности языка Си. А если вы вышли за рамки возможностей своего языка программирования, то не успеете оглянуться, как начнёте писать новое расширение на Си.

К тому же, знание Си позволяет программисту по-настоящему оценить все прелести высокоуровневых языков программирования, а также и ограничения, которые возникают при их использовании.

И это доводы в пользу изучения Си.

Что дальше?

Теперь, когда мы разобрались, зачем нам нужен Си, возникает логичный вопрос: «А как его выучить?».

Книга «Язык программирования Си»

Никто не расскажет вам о Си лучше, чем создатели этого языка программирования. Поэтому книга «Язык программирования Си» , написанная Деннисом Ритчи и Брайаном Керниганом, является must-have для каждого, кто хоть как-то решил связать свою жизнь с Си.

Курс «The Complete C Developer Course - Build 7 Exciting Projects»

Курс покрывает как начальные аспекты языка, так и более продвинутые: программирование графики, модели памяти и многое другое. В процессе прохождения курса вы создадите 7 захватывающих проектов, таких как систему по управлению базами данных и свой собственный компьютерный вирус.

Курс платный, но он однозначно стоит своих денег. Дальше предлагаем бесплатные материалы.

Знаменитый гарвардский курс «CS50»

Теперь он языке. Прежде всего CS50 научит вас думать. Некоторые из тем, которые вы пройдете в течение курса: абстракция, алгоритмы, структуры данных, инкапсуляция, управление ресурсами, безопасность, разработка программного обеспечения и веб-разработка. Языки, которые вы будете использовать: C, Python, SQL и JavaScript вместе с HTML и CSS. И что немаловажно, курс бесплатный.

Бесплатный курс «C Tutorial for Beginners»

С этой программой вы изучите основы языка Си, разберётесь с указателями, структурами и объединениями, а также научитесь писать простые программы.

Бесплатные онлайн-курсы по Си от двух ведущих финских университетов

Включает в себя комплексные материалы и множество упражнений по программированию, а также автоматическую систему тестирования.

Над курсом совместно работали университет Аалто и университет Хельсинки (тот самый, где когда-то обучался Линус Торвальдс), а объясняемый в нем материал полностью дублирует курсы по Си, преподаваемые в этих университетах.

Книга «Learn C The Hard Way»

Книга обучит вас тому Си, который применяется в реальной жизни для создания реальных проектов, а не абстрактным механизмам и педантичной теории. Вы также изучите несколько важных тем, таких как алгоритмы и структуры данных и автоматизированное тестирование. Желающие могут найти ее перевод на русский язык. Tproger тоже часто рекомендует хорошие книги по программированию, так что загляните в