C/C++

Стоит ли начинать изучение программированию с языка C?

Начал осваивать программирование с Пайтон. Есть пара друзей, которые поступили на бюджет в факультет по программированию и каждый советует начинать обучение с более фундаментального уровня, например с С. Они советовали это для того, чтобы я понимал код более глубоко, а не программа писала все за меня. Стоит ли прислушиваться к их советам? Кстати, нигде не нахожу курс по С, только по С++ и С#. Возможно такое, что С++ это С, просто с дополнительными функциями. Если так, то может начать обучение с него?
Нет. Если начинать, то с Java или Python.
СМ
Сергей Малов
72 487
Лучший ответ
Muxammad Abdalniyazov Да ладно... а потом страдать, если понадобится перейти на нормальный язык типа си++ или go? )
Владимир Ходос Java ООП язык, будет сложен в освоении, когда вообще ничего не знаешь
Программирование стоит начать изучать не с языка, а с учебника программирования. Язык - всего лишь способ записи найденного тобой решения задачи. И никакое знание языков программирования не научит решать программистские задачи.

Но у каждого языка свой круг задач и своя целевая аудитория. И далеко не все языки подходят для новичков.

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

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

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

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

Вирт в разных редакциях своего учебника программирования использовал 3 языка собственной разработки: Pascal, Modula-2, Oberon-07 (актуальная редакция). При этом каждый следующий язык проще и мощнее предыдущего.

Из современных популярных языков наиболее подходящим для начального обучения является Go.
Kary
Kary
72 962
Muxammad Abdalniyazov "На Python можно быстро научиться кодить, но нельзя научиться программировать" - шикарная фраза, я ее у вас украду.
СИ это низкоуровневый язык (то есть больше приближенный к командам процессора, а не к обычной человеческой речи). Новичок это не потянет
Нихат Аскеров
Нихат Аскеров
63 309
Muxammad Abdalniyazov Потянет. У нас на первом курсе люди вообще не прогали никогда, и над дали сразу си. Все нормально все потянули за один сем.
Если собираешься стать программистом, то да, с С. Python - очень медленный язык очень высокого уровня для очень быстрого написания программ, быстродействие написанных на нем программ обычно в десятки раз ниже программ. написанных на С Поскольку все накладные расходы очень универсальных средств языка в нем засунуты "под ковер", программист часто не представляет себе, насколько экономен или неэкономен выбранный им вариант написания программы. А в программе на С ясно, как будет выполнять компьютер программу, во что в машинных кодах выльются принятые программистом решения.
С++, огрубляя, да, это С с дополнительными функциями, во много раз превышающими объем чистого С, благодаря которым он в десятки раз объемнее и сложнее С. Но в нем оставлены и гораздо более примитивные средства чистого С, поэтому многое можно написать в двух вариантах, на уровне средств С и на уровне гораздо более высоких по уровню средств C++, что сильно запутывает. Поэтому лучше и к С++ идти через чистый С, и, освоив его, браться за следующий уровень языка, реализованный в C++. И надо иметь в виду, что C++, в отличие от С, очень быстро развивается, его стандарт каждые три года пересматривается, при этом обычно каждый раз в язык вносится очень много нового.
С устарел, в нём нет ООП. У нас в университете обучение программированию начиналось с паскаля и изучения типизированных переменных и создание своих структур данных + алгоритмы сортировки ну и на понимание какие типы данных сколько байт памяти занимают и как при помощи этих структур описать какую то предметную модель.
Обязательно начинай с языка Си.
Тогда будешь повелителем микропроцессоров, робототехники, баз данных и всех операционных систем.


Не сразу поймёшь своё преимущество.
Но когда коснёшься реальной работы, а не пустого обсуждения, то поймёшь.
Виталий Бибиков Ну и чем ты повелеваешь? Микропроцессорами, операционными системами?
Соглашусь с высшим разумом Андреем. Потому что, если бы было всё так просто, язык Си начинали бы учить на уроках информатики в начальной...средней школе.
Aydin Salimov
Aydin Salimov
8 520
нет конечно ..нам конкуренция не нужна.