@fasfer

Что лучше для новичка в программировании C или C++?

Возможно хочу стать системным программистом. Слышал, что нужно знать C, C++, Asembler.
Про Си говорят, что он не трудный, но устаревший. Про C++ говорят, что для новичков он трудный. Я решил это проверить. Прочитал 130 страниц книги Страуструпа, было тяжело и скучно, хотя я всё понял. Может лучше попробовать си, несмотря на то, что говорят, что он старый? Заранее спасибо.
  • Вопрос задан
  • 1533 просмотра
Решения вопроса 4
saboteur_kiev
@saboteur_kiev Куратор тега C++
software engineer
Ассемблер - для новичка нужен не он, а базовое понимание что такое машинные коды, чтобы иметь представление чем отличаются платформы на аппаратном уровне. Будет полезно понимание регистров и разрядности. Понимать размерность и архитектуру памяти.

Учить Си - сейчас не нужно. Во-первых на чистом С вам, как новичку, писать не придется, а как опытному программисту - выучите потом.

Учить С++ - полезно, чтобы вы могли написать что-то. Популярный язык для embedded.

Но еще важнее для системного программиста - технологии.
Возьмите ардуино и сделайте свое устройство, например простейшую управляемую розетку. Чтобы работала по usb, затем добавьте по wifi, придумайте веб-морду с API, вот уже и системно-запрограммированный готовый продукт, а вы будет знакомы с технологиями.
Ответ написан
Ivanq
@Ivanq
Знаю php, js, html, css
Думаю, для новичков проще C++. C в основном используют для программирования всяких микроконтроллеров, где мало памяти. Но обычно главное - чтобы код был читаемым.
Главное в C++ - не переусердствовать. Например, лучше сначала подробно разобрать float/int/unsigned, потом string/vector/deque/stack, затем перейти к чему-нибудь посложнее. Я начинал так же.

Пример:
C++: 7 строк кода, и можно примерно понять, что происходит.
#include <iostream> // загружаем библиотеку для IO (input/output)
int main() { // определяем функцию main
    string a, b; // a и b - строки
    cin >> a >> b; // вводим a и b
    cout << a + b; // складываем a и b и выводим их
    return 0; // возвращаем 0 - символ того, что все прошло успешно
}

C: 8 строк, где спотыкаешься на каждой строке, если не понимаешь в деталях.
#include <stdio.h> // загружаем библиотеку для IO (input/output)
int main() { // определяем функцию main
    char a[], b[]; // a и b - массивы символов
    sscanf("%s%s", &a, &b); // вводим a и b как строки
    strcat(a, b); // дописываем к a строку b
    printf("%s", a); // выводим a как строку
    return 0; // возвращаем 0 - символ того, что все прошло успешно
}
Ответ написан
liefasm
@liefasm
Инженер
К вышеперечисленным ответам прошу Вас заострить внимание на следующем. Самая большая ошибка (которая была на моих началах) - неправильный подход к обучению. Необходимо моментально закреплять полученную информацию (из книг, видео) на практическом уровне. Обязательно чтобы вашу работу проверил более опытный человек. Это касается всего.

Прочитал 130 страниц книги Страуструпа, было тяжело и скучно, хотя я всё понял.

Естественно будет скучно. Техническая документация на то и техническая (она не является Библией или поэзией).
Ответ написан
Комментировать
@dmfun
Изучить язык дело достаточно быстрое. А вот знание железа, протоколов, технологий как раз то, что требуется и для того, чтобы писать системное ПО и чтобы его настраивать. Лучше начать с изучения технологий, в книгах, где они описаны будут примеры. Вот на них и научитесь...

Поставьте себе реальные цели - изучение языка слишком абстрактно.. ну знаешь, ну и что? а зачем? что умеешь?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Учите плюсы, а Си подтянется, т.к. синтаксис один и тот же только без классов и шаблонов (и других штучек из последних стандартов). А нюансы можно оставить на потом.
Си нужен, т.к. на нем огромное количество кода написано. Так или иначе, а системщику придется читать чужой код. То же ядро линукс, например, и т.п.
Ответ написан
Комментировать
GavriKos
@GavriKos
Если ваш уровень в программировании - ноль, то НЕ начинайте ни с с, ни с с++.
Вопросы "с какого языка начинать" подинмались на тостере - гуглите.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы