QNX, игры, веб - это узкая специализация, это даже более предметная область, чем определенный язык программирования.
Квантовую механику и отдельные транзисторы сразу в лес - у меня специальность электроника, и то я с этим сталкивался последний раз 15 лет назад. Если придется микросхемы с нуля разрабатывать - то да, придется в памяти воскрешать это все, а для прикладного программирования - в лес. Вот логические элементы - оно нужно, потому что булева алгебра до сих пор живее всех живых, и лучше ее изучать на том, с чего она началась :)
А вот на чем учить разработке прикладного ПО я даже с ходу не скажу - наверно лучше всего сначала дать чистый C, а затем С++, жабу и дотнет одновременно - чтобы ни к чему из этого не привыкали, и чтобы можно было на сравнении языков тонкости всякие показывать.
Это утомление после некоторых особо остроумных комментаторов :) Основное предположение "теормина" в том, что существуют штуки, которые хоть как-то пересекаются со всеми областями, в то время как остальные штуки в разных областях с другими областями пересекаются очень слабо. Скажем, никак не пересекаться хотя бы как пользователь с базами данных невозможно, а вот с какими-нибудь хитрыми собственническими технологиями МОП-транзисторов можно. C++, на мой взгляд, полностью перекрывает Си, поэтому Си не нужен. Между Java и C# я не вижу столь значительной разницы, что Java-программистам непременно следует изучить C# и наоборот, чтобы не потерять важный и широко используемый подход.
Между С# и Java есть кардинальная разница - это подходы к инфраструктуре, типа всяких там серверов приложений, систем сборки и деплоймента и прочего. В C# это все как-то намного проще, без излишеств, в Java-проекте можно даже до программирования не добраться, угорев на полдороги во всех этих xml-конфигах, war-jar-ear-архивах и прочем.
Си желателен, поскольку является средством объединения всех этих разнородных языков и платформ, в итоге там весь низкоуровневый API на нем описан.
Это аргумент в пользу того, чтобы не изучать Java для общего образования, а только если припрет :) Изучая C++, мимо низкоуровневого API сложно пройти, хотя да, ABI я в списке указать забыл.
no subject
QNX, игры, веб - это узкая специализация, это даже более предметная область, чем определенный язык программирования.
Квантовую механику и отдельные транзисторы сразу в лес - у меня специальность электроника, и то я с этим сталкивался последний раз 15 лет назад. Если придется микросхемы с нуля разрабатывать - то да, придется в памяти воскрешать это все, а для прикладного программирования - в лес. Вот логические элементы - оно нужно, потому что булева алгебра до сих пор живее всех живых, и лучше ее изучать на том, с чего она началась :)
А вот на чем учить разработке прикладного ПО я даже с ходу не скажу - наверно лучше всего сначала дать чистый C, а затем С++, жабу и дотнет одновременно - чтобы ни к чему из этого не привыкали, и чтобы можно было на сравнении языков тонкости всякие показывать.
no subject
Основное предположение "теормина" в том, что существуют штуки, которые хоть как-то пересекаются со всеми областями, в то время как остальные штуки в разных областях с другими областями пересекаются очень слабо. Скажем, никак не пересекаться хотя бы как пользователь с базами данных невозможно, а вот с какими-нибудь хитрыми собственническими технологиями МОП-транзисторов можно.
C++, на мой взгляд, полностью перекрывает Си, поэтому Си не нужен. Между Java и C# я не вижу столь значительной разницы, что Java-программистам непременно следует изучить C# и наоборот, чтобы не потерять важный и широко используемый подход.
no subject
Си желателен, поскольку является средством объединения всех этих разнородных языков и платформ, в итоге там весь низкоуровневый API на нем описан.
no subject
Изучая C++, мимо низкоуровневого API сложно пройти, хотя да, ABI я в списке указать забыл.