К настоящему времени я работаю с asp.net и C #. Я неплохо поработал и на Java. Я планирую свою карьеру таким образом, чтобы когда-нибудь стать не зависимым от языка. Какие вещи мне нужно выучить?
Во-первых, парадигмы ООП, как это говорит о дизайне класса. Есть ли другие?
Ответы:
Чтобы быть независимым от языка, вам необходимо иметь опыт работы со всеми распространенными стилями и типами языков.
Также:
Некоторые стили ввода:
Опыт сильного против слабого набора текста также полезно.
Несколько разных стилей выполнения:
Материал более низкого уровня:
Кроме того, я бы сказал, что вам нужен опыт параллельного программирования и событий . Вы, вероятно, также должны быть уверены, что знаете что-то о различных областях, таких как веб-программирование (клиент и сервер), разработка клиентских приложений / рабочий стол, игры Возможно, вы также захотите узнать о встроенном программировании или выделенном оборудовании (например, игровых приставках), и разработка мобильных приложений становится все более актуальной областью.
Другие также отметили, что стоит приобрести некоторый опыт подходов общего программирования и метапрограммирования .
Когда вы изучаете эти парадигмы, избегайте просто изучать синтаксис и писать в старом стиле. Я видел, как многие разработчики C # пишут JavaScript так, как будто он статически типизирован. Не делайте этого, попробуйте выучить языковые парадигмы и принять их.
Если вы сделаете все это, различия между языками станут в значительной степени синтаксическими, поэтому переключение станет довольно простым упражнением в изучении некоторого нового синтаксиса.
Не забывайте, однако, что современное программирование почти всегда зависит от фреймворка, поэтому знакомство с общими и популярными фреймворками для каждого языка, который вы изучаете, также крайне важно. Знание C # не имеет значения без .net.
источник
Я не думаю, что вы можете стать по-настоящему независимым от языка. Я нахожу, что я «думаю» на моем текущем языке (на данный момент C #).
Однако, сказав это, я думаю, что вы могли бы отделить дизайн от кода, пытаясь мыслить псевдокодом, а не конкретным языком, и фактически записать его в этом формате. Это может помочь вам сосредоточиться на проектных и архитектурных решениях, а не на реализации на вашем текущем языке. Недостаток этого, как указывает Саймон, заключается в том, что язык и структура, которые вы в конечном итоге используете, неизбежно будут влиять на дизайн. Поэтому, по мере развития вашего дизайна, он будет все более привязываться к языку и структуре.
источник
Читая ваш вопрос и некоторые ответы, у вас может сложиться впечатление, что вы приравниваете «языковой агностицизм» к «знанию каждой парадигмы на земле».
Я не уверен, делает ли вы знание каждой существующей парадигмы или знание разных языков, охватывающих несколько парадигм и типов языков, «языковой независимостью».
Это все равно, что сказать, что, исповедуя все религии, вы становитесь религиозно агностиком.
Я думаю, что незнакомый с языком человек в отношении языков программирования должен быть человеком, который вообще не знает, как программировать на каком-либо языке, или ему все равно, на каком языке его / ее просят программировать.
Тем не менее, некоторые люди говорят, что настоящий программист может программировать на любом языке, предоставляя доступ к документации на этом языке.
Если это то, что вы подразумеваете под «независимостью от языка», то практически любой опытный программист может программировать на любом языке, с которым он / она вынужден работать, имея доступ к языковой документации.
Может быть, вы хотите быть «языковым многобожником».
Я сам компетентен в нескольких языковых парадигмах, но я бы предпочел ООП, когда это применимо. Так что я думаю, что я не агностик.
Вы вряд ли найдете кого-то, кто не предпочитает определенную парадигму или язык, если ему предоставляется свобода выбора.
источник
Это не просто языки, в самой Java столько разных режимов, что вы могли бы потратить годы, просто изучая их все. Вы могли бы узнать:
И сто вещей, которые мне не хватает - ПРОСТО в Java.
Если вы потратите годы на охват (изучение каждого языка), у вас будут проблемы с получением глубины, чтобы эффективно работать в любом из них.
Я не говорю, что изучение нового языка когда-либо является проблемой, вы должны активно этим заниматься! Я пытаюсь выбрать свою следующую работу, основываясь на том, что я могу выучить (что я еще не сделал), но я не часто выбираю случайный язык и больше не учу его - в прошлый раз, когда я пытался это сделать, был со Scala и я осталось несколько смиренным ...
источник