2009-12-07 2 views
1

Так что я инженер-аппаратчик превратился в инженера-программиста из-за недавних рабочих обязанностей. У меня очень сильное понимание процедурного программирования (в основном в сценариях «C» и «bash»), но у меня есть только знание о том, что такое ООП.Какой язык использовать для запуска обучения в ООП?

Я смотрю вокруг, и почти каждый современный язык имеет очень прочные корни в ООП (C++, java, python, ruby ​​и т. Д.). Теперь я чувствую, что готов свести свой мозг к новым концепциям, и ООП - это необходимость иметь теперь в своем поясе инструмент. Мой вопрос: с сильным фоном в «C» был бы C++ логическим следующим шагом для изучения ООП или я бы упустил из некоторых полезных конструкций, которые предлагают только другие языки, например, например java?

Спасибо всем.

+0

контратип http://stackoverflow.com/questions/1608914/so-what-is-the-best-language-to-learn-oop-on среди многих других. – 2009-12-07 19:33:20

+0

Err, я не думаю, что вы знаете, что такое функциональное программирование, поскольку C не имеет механизмов для функционального программирования. Я думаю, вы имели в виду процедурное программирование. – Ibrahim

+0

Может ли * возможно * быть более субъективной и/или аргументированной темой, чем это? Можем ли мы поставить этот вопрос из своих страданий? –

ответ

5

Лично я бы выбрал либо C#, либо Java, поскольку они заставляют вас использовать ориентированное на объект программирование, а не возможность вернуться к императивному стилю, который является бонусом к многопарадигменным языкам, таким как Python. Они также являются полезными языками с большим количеством реальных приложений (и рабочих мест) и имеют большие сообщества, которые важны при обучении.

Я также твердо убежден в том, что «учась чему-то другому, а не более того» школе мысли, когда выбираешь новый язык для изучения. Если вы искали аналогичный язык для C, C++ - очевидный выбор. Недостатком является то, что очень просто использовать C++ как немного лучше C, что не выгодно быстро схватывать объектно-ориентированные понятия (речь идет о личных знаниях).

+0

Либо один из них - отличный выбор. Мое личное предпочтение - C#, но проверенная обработка исключений Java довольно чертовски ужасна. –

+0

Просьба прокомментировать при подаче -1 – Yacoby

3

Я бы рискнул сказать, что вы не должны сразу погружаться в язык из-за того, что вы все еще можете вернуться к предыдущим знаниям программирования даже на языке OO. Возможно, было бы более полезно читать и понимать OO, прежде чем пытаться проникнуть в семантику языка.

С учетом сказанного, Smalltalk - это язык, который я нашел очень полезным, когда учась понимать концепции ОО.

1

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

Язык также широко используется и может быть утилизирован также для связанных с оборудованием проблем (например, встроенные системы). Другим моментом является то, что его производительность соответствует только c/assembly :)

+1

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

+1

C++ имеет новый новый стандарт под названием C++ 0x, он заставит язык чувствовать себя много другим со многими новыми конструктами. C++, несмотря на то, что он немного зрелый, как вы говорите, постоянно развивается, а вводимые в него концепции очень новы. С C++ очень мало вы не можете сделать. Для очень продвинутого использования языка (большинство из них - ООП, естественно) вы можете проверить www.boost.org – rmn

+0

C++ 0x - интересный лакомый кусочек, о котором я не знал. Википедия говорит, что стандарт будет опубликован к концу 2011 года, но мне интересно, будет ли у gcc предварительная поддержка до этого времени или уже есть какая-то поддержка? В конце концов, C99 вышел уже десять лет, и еще есть 6 функций, которые еще не реализованы в gcc. В любом случае, если я начну сейчас, к тому времени, когда C++ 0x станет официальным, у Ill будет лучшая оценка добавлений к языку. – SiegeX

1

C++ не имеет наибольшей объектной модели. У этого есть crappy обработка исключений, странный синтаксис и т. Д. Хотя это очень мощный и, как и большинство вещей, довольно прост в использовании, как только вы перейдетесь к кривой обучения, это не мой любимый язык.

Вам нужно решить, на какой платформе вы нацеливаетесь. Если вы хотите разработать для Интернета или рабочего стола Windows, придерживайтесь C#. Синтаксис C-based, но с некоторыми довольно милыми расширениями и замечательной объектной моделью. Кроме того, сегодня это один из самых распространенных языков в мире разработчиков. ИМХО, избегайте PHP, поскольку он просто создает плохие привычки. (Пожалуйста, не начинайте пламенную войну, ребята).

Если вы все еще сосредоточены на встроенной разработке, C++ - это единственная игра в городе, которая стоит того, если вы не идете со встроенной ОС, такой как Linux, которая предоставит некоторые другие варианты.

+0

Что касается целевой платформы, все мое развитие было в Linux, как самообучение, так и «профессионально». Я знаю свой путь вокруг gdb, который кажется большим плюсом для C++, но я не хочу, чтобы этот лакомый кусочек мешал мне разветвляться на другие языки. – SiegeX

0

Я бы порекомендовал C#. В Интернете есть много примеров для онлайн-блогов, чтобы предоставить вам отличную информацию.

Существует книга об амазонке, которая поможет. Поиск начала C# 3.0: введение в объектно-ориентированное программирование.

Корпорация Майкрософт предоставляет бесплатную версию SQL Server (экспресс-версия) и Visual Studio (express edition), чтобы дать вам что-то для начала.

Крис http://chrisbarba.wordpress.com

Смежные вопросы