metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-03-24 10:28 pm

Как Остаться Программистом в 40 и Больше Лет

Все, что должен знать программист, чтобы его после 40 лет не выбросили на Помойку, Где Бомжи.

[identity profile] metaclass.livejournal.com 2011-03-26 06:51 pm (UTC)(link)
С каких пор Java стала domain-specific?

В общем, там в списке полностью отсутствует внятная иерархия "от общего к частному", в одной строке упоминаются и частные реализации чего либо и обще-теоретические вопросы.

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

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

Насчет же зарабатывания денег vs улучшение мира - это вечная тема для срачей. В общем, наилучшие результаты получаются у тех, кто эти два пункта совмещает, т.к. требование "это нужно продать" позволяет не витать в облаках, а стремление не делать говнокод спасает от деградации.

[identity profile] sharpc.livejournal.com 2011-03-26 07:15 pm (UTC)(link)
Чем знание Java помогает программисту под QNX? Гейдевелоперу? Вебдеву? Общее понимание методов и принципов разработки прикладного ПО, на мой взгляд, знакомство с дотнетом и его экосистемой вполне обеспечивает. C# полезнее Java в образовании, имхо, поскольку новее.

Да, потому что это список ориентиров, а не логическая последовательная программа для изучения, я вынес это в апдейт поста.

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

Ну так ради дискуссии этот список и был выложен :)

[identity profile] metaclass.livejournal.com 2011-03-26 07:29 pm (UTC)(link)
Гейдевелопер это что-то вроде стелс-пихоты?:)

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

Квантовую механику и отдельные транзисторы сразу в лес - у меня специальность электроника, и то я с этим сталкивался последний раз 15 лет назад. Если придется микросхемы с нуля разрабатывать - то да, придется в памяти воскрешать это все, а для прикладного программирования - в лес. Вот логические элементы - оно нужно, потому что булева алгебра до сих пор живее всех живых, и лучше ее изучать на том, с чего она началась :)

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

[identity profile] sharpc.livejournal.com 2011-03-26 07:38 pm (UTC)(link)
Это утомление после некоторых особо остроумных комментаторов :)
Основное предположение "теормина" в том, что существуют штуки, которые хоть как-то пересекаются со всеми областями, в то время как остальные штуки в разных областях с другими областями пересекаются очень слабо. Скажем, никак не пересекаться хотя бы как пользователь с базами данных невозможно, а вот с какими-нибудь хитрыми собственническими технологиями МОП-транзисторов можно.
C++, на мой взгляд, полностью перекрывает Си, поэтому Си не нужен. Между Java и C# я не вижу столь значительной разницы, что Java-программистам непременно следует изучить C# и наоборот, чтобы не потерять важный и широко используемый подход.

[identity profile] metaclass.livejournal.com 2011-03-26 07:57 pm (UTC)(link)
Между С# и Java есть кардинальная разница - это подходы к инфраструктуре, типа всяких там серверов приложений, систем сборки и деплоймента и прочего. В C# это все как-то намного проще, без излишеств, в Java-проекте можно даже до программирования не добраться, угорев на полдороги во всех этих xml-конфигах, war-jar-ear-архивах и прочем.

Си желателен, поскольку является средством объединения всех этих разнородных языков и платформ, в итоге там весь низкоуровневый API на нем описан.

[identity profile] sharpc.livejournal.com 2011-03-26 08:04 pm (UTC)(link)
Это аргумент в пользу того, чтобы не изучать Java для общего образования, а только если припрет :)
Изучая C++, мимо низкоуровневого API сложно пройти, хотя да, ABI я в списке указать забыл.

[identity profile] pete-by.livejournal.com 2011-03-27 10:53 am (UTC)(link)
А RTSJ вам о чем-нибудь говорит? А про JamaicaVM знаете, что она имеет непосредственное отношение к QNX?

А про веб-сервера на Java, GWT тоже не слышали? Или у вас вебдев это страничка на пхп?

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

[identity profile] sharpc.livejournal.com 2011-03-27 03:39 pm (UTC)(link)
Слышал, это костыли.
Слышал, это "о" малое.
Смейтесь на здоровье.