Я начал свою карьеру программиста в BASIC в 9-м классе. Я немного изучил бейсик, написав простые программы для сложения, вычитания и печати. Затем я пошел в университет и взял компьютерную информацию и системную инженерию. В первый год меня учили С, и я хорошо им владею.
Затем я изучил C ++ на втором курсе. Это только научило меня некоторым знаниям ООП. Сейчас я занимаюсь PHP (вместе с HTML). Я не освоил C ++, BASIC или PHP. Сейчас я планирую перейти на мобильную разработку. Но я чувствую, что я не охватил все на изученных языках.
Это действительно имеет значение?
Если вы еще учитесь в университете, это не должно иметь значения, если вы не чувствуете, что изучили все на любом из известных вам языков. Понимание общих фундаментальных теорий, стоящих за этими языками, гораздо важнее. Как только вы поймете основы, вы сможете изучить детали других языков, когда они вам понадобятся.
источник
Я считаю, что самое важное в программировании - это понимать разные парадигмы .
В своем вопросе вы упомянули объектно-ориентированное программирование (ООП) . Если вы освоили эту тему, вы сможете объяснить ее, используя только псевдокод и, по сути, некоторое графическое представление моделирования (например, диаграммы классов UML).
Решаете ли вы использовать Java, C ++ или C # (...), решать вам или компании, в которой вы работаете, но что действительно важно, так это понимать / распознавать различные проблемы и выбирать лучшую модель для их решения . Очень важным способом решения проблем в программировании является использование шаблонов проектирования, которые вы можете найти в этом справочнике .
Что касается встроенных языков, я считаю, что важно понимать различные проблемы, связанные с такими технологиями.
В метафорическом смысле я бы сравнил это с написанием хорошей научной книги; важна теория, которую вы выставляете, проблемы, которые вам удается решить, и так далее. Пишете ли вы книгу на английском, французском или японском языках, это не так важно.
Тем не менее, также важно знать специфику конкретного языка, если вы хотите специализироваться на этой технологии, чтобы использовать ее очень эффективно.
источник
На мой взгляд, нет смысла менять язык очень часто. Вы никогда не будете на самом деле понять , какой - либо из них. Особенно такие, как C ++, где некоторые люди тратят десятилетия на написание языка и все еще имеют свой код, похожий на C.
Если вы не можете написать лучшие практики на каком-либо языке, не двигайтесь, ИМО. Это означает, что покрытие более пары займет много лет, если не десятилетий.
источник
Я думаю, что не повредит изучать много разных языков, но в то же время вы должны выучить хотя бы один или два в глубине.
источник
За свою карьеру я использовал много языков, таких как AMOS Basic, Java, C ++, PHP, VB6, Delphi и т. Д. Сегодня я использую C #, JavaScript, Ruby и некоторые Clojure на работе, а также я играл с Pyhton, Erlang, Общий Лисп и Схема.
Но этой осенью я хотел создать специальный рождественский календарь для своего блога и решил ознакомиться с конкретной проблемой на 24 дополнительных языках и решить ее. Это был отличный опыт, я многому научился и очень рекомендую делать это, когда у вас есть опыт программирования.
Мой ответ вам таков: выучите несколько языков очень хорошо (они должны быть совершенно разными), но убедитесь, что вы пробуете и знакомитесь со многими.
Сегодня важно хорошо знать как ООП, так и FP (функциональное программирование), и вам также должно быть удобно как на очень статическом, так и на очень динамичном языке.
PS: Мой блог на норвежском, но если вы хотите увидеть список языков, которые я рассмотрел, вы можете посмотреть здесь .
источник
Я изучаю то, что мне нужно выучить на определенном языке, когда мне нужно выучить что-то новое. «Триггер», который говорит мне, что мне нужно углубиться в язык, заключается в том, что определенный фрагмент кода выглядит некрасивым или неуклюжим, кажется не поддерживаемым или его сложно протестировать или прокомментировать. Часто эти триггеры указывают на мое незнание конкретной идиомы программирования, стиля, структуры данных и так далее.
источник
Изучение нескольких языков программирования является хорошей практикой и необходимо в настоящее время; столько раз вы не можете всегда использовать свой язык выбора для всего.
Преимущества видения того, как работают другие языки, помогут вам как программисту; даже если время от времени , когда вы прыгали вы делаете синтаксические ошибки (например, является проверка неравенства
!=
,~=
или<>
). Вы должны быть осторожны, чтобы выучить не только синтаксис языка, но и лучшие практики в языке, а также просто хорошие навыки разработки программного обеспечения. Вещи, если вы изучили C, а затем изучили C ++, вы должны убедиться, что при написании кода C ++ он соответствует стилю кода C ++ (а не просто C с несколькими новыми ключевыми словами. То есть у вас есть несколько классов / объектов, предпочитайте ссылки / умные указатели над необработанными указателями и т. д.источник
хорошо изучать языки как минимум из разных парадигм программирования! Процедурный, декларативный, функциональный, объектно-ориентированный, прототипный и динамический язык - каждый класс программирования предлагает свое понимание того, как организовать и решить проблему. В конце концов вы обнаружите одну или несколько парадигм, которые вам наиболее продуктивны и довольны, и используете их.
источник
Точно нет. Конечно, вы также хотите убедиться, что вы изучаете разные стили языков. Изучение как C #, так и Java не расширит ваш кругозор, но изучение Java и Haskell поможет.
Посмотрите книгу « Семь языков за семь недель» , в которой вы познакомитесь с Ruby, IO, Scala, Erlang, Prolog, Clojure и Haskell. Если вам нравятся языки, вам понравится эта книга.
источник
Ну, C и C ++ не принесут вам никакого вреда в мобильном программировании. Вы можете использовать как с Cocoa Touch, так и с Android NDK, а иногда вам нужно для производительности. Кроме того, иногда вы хотите, потому что вы хотите написать код, который работает на нескольких платформах. В этом случае, предполагая, что вы используете не только стороннюю платформу, вы можете написать свое приложение на C / C ++ и скомпилировать в платформо-зависимых оболочках для необходимых нативных элементов (например, единственный способ получить контекст OpenGL). на iPhone с использованием собственного класса CAEAGLLayer).
Так что, чем больше инструментов у вас в ящике, тем больше вариантов для выполнения работы. Вы обнаружите, что у вас есть предпочтения по определенным, поскольку вы специализируетесь на различных видах задач. Если вы занимаетесь только пользовательским интерфейсом, C не может быть вашим любимым. Я бы больше беспокоился о том, что я хотел бы сделать, а затем изучал бы любой инструмент, который мне был необходим для их выполнения.
источник
На самом деле это примерно так же полезно, как изучение небольшого количества французского, испанского, английского, арабского, хинди и китайского, но при этом вы не знаете ни одного из них.
источник
Наоборот, я думаю, что больно, когда я не могу / не могу выучить новый язык программирования. Это может быть из-за нехватки времени или некоторых других причин. Насколько я вижу, программисты / разработчики программного обеспечения любят бросать вызов языкам, предлагать лучшие вещи / продукты, и когда вы видите, что вы делаете одно и то же всегда, вы не чувствуете себя хорошо. Таким образом, вы хотите новый вызов, новый язык, что-то новое, чтобы выучить и добавить больше продуктов.
Поэтому я думаю, что это вдохновляет меня следовать новым языкам, новым библиотекам, новым подходам, новым технологиям. Но у меня нет времени, чтобы получить их все, и люди не всегда могут зайти достаточно глубоко. Так что больно не учиться больше; но не мешало бы узнать больше.
источник
Я согласен с Брайаном, FrustratedWithFormsDesign и SRKX, но я хотел бы добавить, что во время обучения в университете расширение знаний с помощью нескольких языков программирования и парадигм является желательным способом стать хорошим профессионалом.
Это действительно невероятно, что вы выходите из колледжа в качестве программиста. Программирование - трудное дело, и вам понадобятся годы работы в индустрии вместе с хорошими программистами, посещение хороших программ обучения и общественных собраний, и, в основном, вам придется столкнуться с проблемами в ремесле и много потерпеть неудачу, пока вы не научитесь владеть мастером. Это.
Изучение нескольких парадигм, нескольких языков, решение многочисленных проблем в нашей области, даст вам хорошую базу для самостоятельного изучения ремесла, работая профессионалом в своей отрасли.
Вы можете посещать класс по компиляторам, но не станете языковым дизайнером, создателем или даже разработчиком компилятора. Вы получите этапы, процессы, проблемы и основные решения, и это даст вам преимущество в адаптации этих знаний к широкому кругу проблем.
источник
Краткий ответ: Нет.
Длинный ответ: так много работы программиста, программиста или дизайнера не зависит от конкретного языка, но очень зависит от определенной методологии. Например, объектно-ориентированное программирование очень сильно зависит от того, где существуют вещи в памяти и во время выполнения, насколько они доступны и насколько они доступны для последующего использования (наследование и инкапсуляция). Реализации отличаются, например, Java имеет наследуемый класс Object верхнего уровня, нравится вам это или нет, и C ++ не имеет ничего, что вы не укажете.
Многие языки имеют общие черты (и многие расходятся). Синтаксис, конечно, отличается, и это сложнее, когда вы сравниваете совершенно разные парадигмы, такие как императив и функциональность. Но обработка строк во многом одинакова, как только вы получаете небольшие вопросы о синтаксисе, индексе и изменчивости. Любой язык со статической типизацией обычно имеет некоторый метод приведения и приведения, но как и когда вы можете это сделать, зависит от дизайнера языка.
Язык - это инструмент. Вы просто кладете больше инструментов в свой пояс. Но инструмент настолько хорош, насколько хорош мастер, владеющий им.
Теперь, сколько вы узнаете, это личный выбор. Я бы никогда не выучил язык ради изучения нового. Любой выбор изучения нового языка вызван либо требованием курса (в прошлом году нужно было подбирать js, php и R для одного класса), либо существующим требованием проекта (если 90% работы выполняется в Perl 6 до вас нанимают, как и оставшиеся 10% после) или выгода для конкретного приложения (например, Java в сочетании с некоторой примитивной библиотекой для статистического анализа).
Тем не менее, вы хотите узнать, что там и доступно. Мой колледж преподавал курс по этому предмету, языковые концепции программирования . Это был общий обзорный курс, а не строгая математика или связанный с кодированием курс, охватывающий основы того, что можно считать практической, а не теоретической информатикой. Это был отличный курс, и мне бы хотелось, чтобы это предлагалось в течение 1-2 лет, а не 3-4-го. Текст был « Концепции языков программирования» . Не сказать, что вы должны выйти и прочитать эту книгу, но это, безусловно, расширит ваши горизонты.
источник
Ну, я вижу это так, что вам не нужно изучать каждый кусочек языка. Но попробуйте изучить самые базовые функции, которые потребуются и на других языках.
Например, концепции OOPS требуются на всех языках, будь то Java , PHP или любой другой язык. Концепции
распределения памяти довольно похожи во многих языках программирования. Такие темы вы никогда не должны пропустить.
У каждого языка есть грамматика и правила, то же самое относится к языкам программирования; Сам Деннис Ричи принял этот факт. Поэтому нужно изучать грамматику этого языка.
Но я вижу, что вы должны изучить необычные факторы между двумя языками программирования. Они позволят вам определить, что за какой язык означает. C ++ - это все базовое ООП (объектно-ориентированное программирование), поэтому, как только вы изучите ООП концепции , вы изучите грамматику, которую вы увидите также в PHP и Java.
Мой учебный процесс был:
Visual Basic 5 (частичный) -> HTML 2.0 (частичный) -> C (частичный) -> CPP (частичный) -> Java (частичный),
а затем я снова выучил язык C, затем C ++, а затем JAVA ( завершить это время) затем я перешел на Android, так как я был знаком с Java и XML(частично) и выучил это за это время. Первая попытка научила меня меньше, но во второй попытайтесь научиться всему, что поможет вам в следующий раз.
источник