Изучение C / C ++ и Java - PullRequest
       1

Изучение C / C ++ и Java

3 голосов
/ 27 марта 2011

Я парень из Java, занимаюсь в основном Android.

Я хочу заняться программированием игр для Android, и мне было интересно, есть ли смысл изучать C (очевидно, не для android, поскольку там можно писать только на C ++). Для чего люди все еще используют C? Разве это не устарело и не заполнено Java и Objective-C?

Я обязательно изучу C ++, поскольку все говорят, что он нужен вам для программирования игр. Будете ли вы изучать его одновременно с Java (я все еще учусь) или я должен сначала изучить Java?

Ответы [ 7 ]

7 голосов
/ 27 марта 2011

Несмотря на то, что C является довольно старым языком, он все еще остается одним из наиболее часто используемых языков.Согласно хорошо известному индексу языка Tiobe, он отстает только от Java: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

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

Хотя соединение Java / C ++ легендарно.Ясно, что синтаксис Java в значительной степени опирается на синтаксис C ++, но в концепциях язык на самом деле намного ближе к Objective-C.Патрик Нотон (один из первых разработчиков языка Java) недавно написал об этом: Java находился под сильным влиянием Objective-C

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

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

4 голосов
/ 27 марта 2011

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

Этого было достаточно, чтобы сделать полноценное приложение, конечно, но, оглядываясь назад, теперь было гораздо сложнее что-то делать; Я был ограничен массивами, динамическими или статическими, поэтому сложность его была ужасна.

В любом случае, это означало, что позже я смог сосредоточиться на объектно-ориентированном программировании и эффективных структурах данных, алгоритмах и так далее в C ++ и Java, не беспокоясь о программировании.

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

3 голосов
/ 27 июня 2011

C - один из самых мощных доступных языков.И, как говорится, с большой силой приходит большая ответственность.Из-за его огромной гибкости очень легко совершать ошибки и сводить программистов с ума при программировании / отладке на C. Во всяком случае, я чувствую, что для того, чтобы быть «великим» программистом, вам нужно научиться понимать, как выделяется память и указатели/ deallocated, сборка мусора .. из C, которая никогда не показывается программистам на Java.И для ваших целей в игровом программировании это определенно поможет, поскольку вы используете его для оптимизации производительности.

Я бы порекомендовал вам изучать C наряду с Java, чтобы вы лучше понимали их различия и сходства, иначе вы бы стали слишкомзависит от Java, и переход к Си становится все труднее.

Чтобы выучить любой язык, лучше всего программировать.Здесь http://cslibrary.stanford.edu/, вы получите лучшие упражнения, чтобы начать. Веселитесь!

2 голосов
/ 27 марта 2011

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

Я бы тщательно изучил Java вместе с навыками OO-проектирования и шаблонами проектирования, прежде чем переходить на C / C ++.Как только вы начинаете с C / C ++, вам приходится сталкиваться с такими проблемами, как указатели и явное управление памятью ... и языковыми спецификациями, которые говорят, что «поведение X не определено» гораздо больше.

Сложность таких языков, как C и C ++, легко усваивать навыки проектирования.

1 голос
/ 27 марта 2011

C используется для многих вещей.Большинство приложений (ПК), которые вы используете, все еще написаны на C или C ++.Вы можете прочитать подробности здесь, например ; -)

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

1 голос
/ 27 марта 2011

C используется для системного программирования, в частности, в ядре Linux.Но на самом деле, изучение языков программирования! = Изучение программирования.

Итак, вам лучше сначала изучить Java как основной язык программирования и прочитать некоторые книги, перечисленные здесь: Какая самая влиятельная книгакаждый программист должен читать?

После этого вам будет легче расширять свои знания.

1 голос
/ 27 марта 2011

Во-первых, Objective-C в основном предназначен только для разработки на технологиях Apple, поэтому он определенно не настолько мощен в аспекте совместимости / переносимости, как в отличие от C. C ++ фактически создавался как библиотека для добавления классов в C.C ++, который вы на самом деле разрабатываете в сильно обновленном C. Java не переполнила C, а предоставила другой подход к программированию.У Java нет низкого уровня мощности C (редактирование памяти ...).

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