Здравствуйте, Brutalix, Вы писали:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Хочу заметить, что:
1. нужно смотреть не просто на языки, а на области разработок и статус.
2. программист который может уехать в Европу чтобы там сравнить зп — выше среднего в России.
3. Зп несколько выше среднего в России с поправкой на её мизерные налоги — часто больше, чем в Европе.
4. Про себя хочу заметить, что работая в Норвегии моя покупательская способность падает где-то вдвое, относительно Питера, хотя абсолютное значение дохода (до налогов) там несколько выше. Вся надежда на переработки и то, что получится жену на работу устроить, где её зп будет хотя бы соизмерима с моей.
Нужно разобрать угил.
Re[3]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, мыщъх, Вы писали:
М>но вообще мне не понятно с какой стати язык определяет зарплату. не знаю как у вас, а у нас по приказу партии будешь делать шпагат даже если не балерина. питон я уже выучил. завтра меня или изнасилуют и заставят учить жабу или я уйду в другой тим (при этом у меня в job description программирование вообще не значится).
Это зависит от предметной области. Когда я фрилансил, или работал в аутсорсе, то да — писал на всём, что можно скомпилить и интерпретировать. Сейчас я разрабатываю систему скриптования на питоне для питона. Т.е. я в какой-то мере ограничен именно питоном, а не алгоритмами. Я могу крутить AST как мне угодно, но в итоге я должен выдать байт-код именно для питона, а не для руби.
М>быть узким программистом и писать только на языке X -- это фантастика. главное все-таки это специализация. а язык вторичен. на том же питоне можно программы для анализа ДНК писать (благо есть море библиотек). или можно API шпиона забацать (библиотеки есть). только между этими двумя задачами нет ничего общего. первое это матчасть, второе — системное программирование.
тут ты прав. Я вот пишу систему скриптования, народ пишет скрипты для анализа безопасности. Дома я варганю сервис обработки картинок. И всё это на питоне. Не так давно делал прототипы игр на cocos2d
Здравствуйте, Nikе, Вы писали:
N>4. Про себя хочу заметить, что работая в Норвегии моя покупательская способность падает где-то вдвое, относительно Питера, хотя абсолютное значение дохода (до налогов) там несколько выше. Вся надежда на переработки и то, что получится жену на работу устроить, где её зп будет хотя бы соизмерима с моей.
ХОТЯ БЫ?! Там так всё плохо?
Re[3]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, azzx, Вы писали:
N>>4. Про себя хочу заметить, что работая в Норвегии моя покупательская способность падает где-то вдвое, относительно Питера, хотя абсолютное значение дохода (до налогов) там несколько выше. Вся надежда на переработки и то, что получится жену на работу устроить, где её зп будет хотя бы соизмерима с моей.
A>ХОТЯ БЫ?! Там так всё плохо?
Тут (в Питере) её зп раз в 10 меньше моей (была, когда она работала).
Нужно разобрать угил.
Re[4]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Nuseraro, Вы писали:
N>Мб, я зашел на http://www.nettolohn.de, ввел брутто 4000, выбрал Баварию, нажал посчитать и он мне выдал 2300, и на основании этого я огорчился.
N>Расскажите пожалуйста про налоги?
Холостой и без детей? Тогда правильно посчитал.
Женатый — выбрал 3-ий налоговый класс и получил совсем другие цифры.
И да, в любом случае не забудь убрать церковный налог.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Brutalix, Вы писали:
B>немного отвлекаясь от Микрософта и Америки и начитавшись во время ночного бдения над интернетом о том что Россия (Москва) перегнала Европу и скоро перегонит Америку по зарплатам, был несколько удивлен этими веселыми картинками:
B>
B>
B>(как картинки получились читать тут, если не лень)
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Что решили-то? Сомжет С++ Сениёд Дев. зарабатывать 120к в месяц чистыми или нет?
Sic luceat lux!
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Azotix, Вы писали:
B>>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
A>Надо сравнивать чистые зарплаты.
Смысл? В России прибавь/убавь 13% и получишь нужную цифру, а за бугром считать чистые зарплаты это верх глупости, чистые деньги от одинаковой з/п для двух разных людей может отличаться на десятки процентов.
A>А еще правильней условия жизни.
Это правильнее, только боюсь Москва тогда будет позади списка, плюс все очень индивидуально. Например я сейчас наврядли соглашусь на что-нибудь кроме огромного дома за городом в максимум часе езды от работы, а другому будет достаточно студии, но в самом центре, в пешей доступности от ночных клубов и работы.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
М>а мне интересно, что так занижен в стоимости руби, когда кандидатов расхватывают как горячие пирожки, т.к. при всех недостатках руби на нем RESTful запрос реально одна строка, да и для сношения с базами данных руби очень хорошо подходит. во всяком случае пару лет назад спрос на спецов резко превышал предложение.
Посмотрел по hh.ru — да, тоска и уныние. А только-только рельсы освоил в первом приближении
М>но вообще мне не понятно с какой стати язык определяет зарплату. не знаю как у вас, а у нас по приказу партии будешь делать шпагат даже если не балерина. питон я уже выучил. завтра меня или изнасилуют и заставят учить жабу или я уйду в другой тим (при этом у меня в job description программирование вообще не значится).
Вот тут +100500. Когда меня спрашивают, на чём я пишу, я отвечаю "на компьютере". C, C++, C#, Java, Perl, python, вот теперь Ruby, ну и всякие связки вроде bash. Освоить новый язык — дело примерно суток. В отличие от какого-нибудь фреймворка вроде RoR, на который уйдёт, конечно, побольше.
Re[4]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Dair, Вы писали:
D>Посмотрел по hh.ru — да, тоска и уныние. А только-только рельсы освоил в первом приближении
не знаю как в .ru, а в us ситуация обратная. рубисты хотят получать деньги и не хотят работать. стратегия приблизительно следующая -- устраивается рубист на работу. пол-года что-то делает, а потом планирует только багфикс да мелкий допил. причем многие соискатели даже не обрабатывают ситуацию "нет файла" или "нет библиотеки", не говоря уже о том, что логгер в их понятии это функция в несколько строк и у них не возникает вопроса -- что произойдет, если скрипт будет вызыван из 2+ процессов и они оба откроют один и тот же файл на запись. понятно, что они окончили вечерние курсы по руби и на курсах вопросы синхронизации вообще не затрагивались. но даже такие перцы как-то находят работу. не знаю как, но находят.
D> Вот тут +100500. Когда меня спрашивают, на чём я пишу, я отвечаю "на компьютере".
аналогично. алгоритмы и структуры данных рулят. главное, знать о существовании вещей типа: http://morepypy.blogspot.com/2010/05/efficient-and-elegant-regular.html, а не ограничиваться тем, что есть в библиотеках.
> Освоить новый язык — дело примерно суток.
вы спринтер. азы программирования на питоне я освоил за пару выходных, провалявшись с книжкой и ноутом на диване. через месяц стал вникать во всякие итераторы, генераторы, наследование, вызов питона из жабы...
> В отличие от какого-нибудь фреймворка вроде RoR, на который уйдёт, конечно, побольше.
у фреймворков есть и другая засада. когда их больше одного, то возникает проблема выбора. и какое-то время нужно потратить на то, чтобы определиться с выбором, ведь подводных камней много. как оно себя поведет при большой нагрузке? сколько в нем багов? какова вероятность, что девы забьют на поддержку или новые версии не будут стыковаться со старыми?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[5]: Хотелось бы коментариев с мест, про зарплаты
D>>Посмотрел по hh.ru — да, тоска и уныние. А только-только рельсы освоил в первом приближении М>не знаю как в .ru, а в us ситуация обратная. рубисты хотят получать деньги и не хотят работать. стратегия приблизительно следующая -- устраивается рубист на работу. пол-года что-то делает, а потом планирует только багфикс да мелкий допил. причем многие соискатели даже не обрабатывают ситуацию "нет файла" или "нет библиотеки", не говоря уже о том, что логгер в их понятии это функция в несколько строк и у них не возникает вопроса -- что произойдет, если скрипт будет вызыван из 2+ процессов и они оба откроют один и тот же файл на запись. понятно, что они окончили вечерние курсы по руби и на курсах вопросы синхронизации вообще не затрагивались. но даже такие перцы как-то находят работу. не знаю как, но находят.
Отлично
Но как-то мне кажется, что дело не в языке.
D>> Вот тут +100500. Когда меня спрашивают, на чём я пишу, я отвечаю "на компьютере". М>аналогично. алгоритмы и структуры данных рулят. главное, знать о существовании вещей типа: http://morepypy.blogspot.com/2010/05/efficient-and-elegant-regular.html, а не ограничиваться тем, что есть в библиотеках.
Я Питон довольно поверхностно знаю, написал на нём пару оперденей под линукс, ну и для скриптинга использую обильно. НО в библиотеках есть 90%, по тем задачам, которые я встречал. Остальное есть в stackoverflow
>> Освоить новый язык — дело примерно суток. М>вы спринтер. азы программирования на питоне я освоил за пару выходных, провалявшись с книжкой и ноутом на диване. через месяц стал вникать во всякие итераторы, генераторы, наследование, вызов питона из жабы...
Меня лучше на "ты"
О, вот вызов питона из жабы — это уже фреймворк А когда понятен синтаксис — уже можно писать. Не без мануалов/гугла, но на нормальную скорость выходишь довольно быстро. Так у меня было и с C#, и с Java, и вот свежий пример — RoR, при том, что вебпрограммирование я вот тоже только что увидел.
Первыми языками давным давно уже были C, C++, perl.
>> В отличие от какого-нибудь фреймворка вроде RoR, на который уйдёт, конечно, побольше. М>у фреймворков есть и другая засада. когда их больше одного, то возникает проблема выбора. и какое-то время нужно потратить на то, чтобы определиться с выбором, ведь подводных камней много. как оно себя поведет при большой нагрузке? сколько в нем багов? какова вероятность, что девы забьют на поддержку или новые версии не будут стыковаться со старыми?
И это тоже верно. В моём случае платформа определяет сознание, ну т.е., под iOS есть Cocoa (щас пишу не на ней, но), под Android есть ээээ... Android, ну или как там называется жабный гуглофреймворк под Андроид С вебом хуже, фреймворков действительно десятки.
Re[6]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Dair, Вы писали:
D> Но как-то мне кажется, что дело не в языке.
дело не в языке, конечно. но кому-то приходится делать грязную работу в стиле "принять запрос", "дернуть базу", "мяукнуть в ответ". если архитектурно база инкапсулирована в библиотеку на руби и ее внутреннее представление может меняться, то прямые SQL-запросы, очевидно, делать смерти подобно и потому приходится юзать руби, который популярен в стартапах, которые в какой-то момент выходят на рынок и начинают расти. и кого они нанимают в первую очередь? правильно — рубистов, а их на всех не хватает (учитывая относительную молодость языка).
D> Я Питон довольно поверхностно знаю, написал на нём пару оперденей под линукс, D> ну и для скриптинга использую обильно. НО в библиотеках есть 90%, по тем задачам, D> которые я встречал. Остальное есть в stackoverflow
а когда вы используете регулярные выражения вы отдаете себе отчет, что библиотека re2 рвет стандартную re как грелка тузика? и что если нужна производительность, то ее следует искать совсем в другом месте. а если нам нужен нечеткий поиск, то это тема отдельного разговора. а если еще и семантику хочется прикрутить, то нужно знать в каком направлении рыть, иначе вообще ничего найти невозможно. уже не говоря о таких мелочах, что некоторые вещи дешевле купить в железе, чем пытаться переоткрыть колесо и построить паровой двигатель на его основе, когда нормальные люди уже летать начали.
D>Меня лучше на "ты"
ок. давай на ты
D>О, вот вызов питона из жабы — это уже фреймворк
это ты называешь громким словом фреймворк? http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html
тут чтения минут на полчаса. и тут описаны целых два фреймворка, работающие по разному принципу (вызов через скриптинг и нативный вызов с компиляцией питона в JVM), кстати, питон может вполне нативно вызывать Java.
D> А когда понятен синтаксис — уже можно писать. Не без мануалов/гугла, D> но на нормальную скорость выходишь довольно быстро. Так у меня было и с C#,
смотря насколько глубоко рыть. например, чем в питоне генератор от итератора отличается? нет, это неправильный ответ. правильный ответ искать нужно в другом месте, т.к. различия проявляются при отказе от стандартного тормозного интерпретатора. а независимые аналоги полнотой поддержки не страдают. и начинаешь себя ругать -- на кой ляд я пытался сделать "элегантно" и "красиво"?! теперь приходится все переделывать взад.
D> Первыми языками давным давно уже были C, C++, perl.
c++ мне показался слишком переусложненным и героически борющимся с проблеммами им же самим и созданным. например, отказ от макров и строгая система типов повлекла за собой потребность введения перегрузки функций. в том же питоне такой потребности нет, т.к. там достаточно уток. а перегрузка влечет за собой систему правил выбора нужной функции и в языке появляются подводные рифы.
эти же самые типы влекут за собой тепловоз, называемый полиморфизмом, потому что нельзя тупо передать функции foo объект obj, реализующий все необходимые ей методы, если obj не в той иерархии классов. и потому наследование появляется там, где оно не подкреплено никаким здравым смыслом. на питоне (и многих других языках) функции foo можно передать объект "дверь", "окно", "банка пива" и функция foo дернет метод 'открыть' и все довольны. а теперь вопрос на засыпку -- что нужно курить, чтобы построить систему классов, в которой у банки пива и двери есть общий предок?
и ведь это не надуманный пример. пусть нам по ходу дела нужно читать данные. читать их можно из чего угодно, был бы только метод read(). общих предков иметь необязательно. общие предки нужны только там, где в базовый класс можно вынести 90% функционала, а наследники реализуют вариации на тему. например, если у нас есть класс "абстрактное хранилище", которым может быть SQL, ассоциативный массив в памяти и файловая система. нужно ли им всем иметь общего предка? а зачем? ведь базовый класс будет пустышкой по сути. а вот если мы реализуем библиотеку работу со строками, то 90% функционала таки в базовом классе, а в производных -- работа с национальными кодировками, например, для сравнения символов без учета регистра.
D> С вебом хуже, фреймворков действительно десятки.
какое счастье, что от веба я далек как от луны
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[7]: Хотелось бы коментариев с мест, про зарплаты
М>дело не в языке, конечно. но кому-то приходится делать грязную работу в стиле "принять запрос", "дернуть базу", "мяукнуть в ответ".
Это 70% моей работы
M>если архитектурно база инкапсулирована в библиотеку на руби и ее внутреннее представление может меняться
Это как секс у подростков — чаще говорят, чем делают. Вот кто в здравом уме будет перепиливать всерьёз структуру боевой базы?
M>то прямые SQL-запросы, очевидно, делать смерти подобно и потому приходится юзать руби, который популярен в стартапах, которые в какой-то момент выходят на рынок и начинают расти. и кого они нанимают в первую очередь? правильно — рубистов, а их на всех не хватает (учитывая относительную молодость языка).
О, да. Я внимательно изучил модели в руби. Сделать там обычный для меня запрос
SELECT Q.CYCLE_ID AS ID, C.KEY AS TICKER, C.NAME AS NAME, Q.PRICE AS QUOTE, Q.TRADE_LIMIT AS TRADE_LIMIT, Q.NPCS_BUY AS NPCS_BUY FROM STOCK_COMPANY C LEFT OUTER JOIN STOCK_QUOTE Q ON (C.KEY = Q.COMPANY_KEY AND Q.CYCLE_ID IN (SELECT MAX(ID) FROM STOCK_CYCLE))
превращается в головную боль.
D>> которые я встречал. Остальное есть в stackoverflow М>а когда вы используете регулярные выражения вы отдаете себе отчет, что библиотека re2 рвет стандартную re как грелка тузика?
Все те полтора раза, когда мне надо было использовать регекспы, мне было искренне пофиг на производительность, ибо это был масс-парсинг сорцов.
M>и что если нужна производительность, то ее следует искать совсем в другом месте. а если нам нужен нечеткий поиск, то это тема отдельного разговора. а если еще и семантику хочется прикрутить, то нужно знать в каком направлении рыть, иначе вообще ничего найти невозможно. уже не говоря о таких мелочах, что некоторые вещи дешевле купить в железе, чем пытаться переоткрыть колесо и построить паровой двигатель на его основе, когда нормальные люди уже летать начали.
Это правда. Гугл в помощь, как обычно.
М>это ты называешь громким словом фреймворк? М>http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html М>тут чтения минут на полчаса. и тут описаны целых два фреймворка, работающие по разному принципу (вызов через скриптинг и нативный вызов с компиляцией питона в JVM), кстати, питон может вполне нативно вызывать Java.
Круто, чо, спасибо, буду знать.
Но на моей прошлой работе в Джире был один из "эпиграфов": "The very last thing you'll ever need to learn how to say in Arabic:"لا، أنا لست ياباني أنا كندي" "No, I am not Japanese. I am Canadian."
М>смотря насколько глубоко рыть. например, чем в питоне генератор от итератора отличается? нет, это неправильный ответ. правильный ответ искать нужно в другом месте, т.к. различия проявляются при отказе от стандартного тормозного интерпретатора. а независимые аналоги полнотой поддержки не страдают. и начинаешь себя ругать -- на кой ляд я пытался сделать "элегантно" и "красиво"?! теперь приходится все переделывать взад.
Опять же. Задачи у нас разные, решения, соответственно, тоже.
М>эти же самые типы влекут за собой тепловоз, называемый полиморфизмом, потому что нельзя тупо передать функции foo объект obj, реализующий все необходимые ей методы, если obj не в той иерархии классов. и потому наследование появляется там, где оно не подкреплено никаким здравым смыслом. на питоне (и многих других языках) функции foo можно передать объект "дверь", "окно", "банка пива" и функция foo дернет метод 'открыть' и все довольны. а теперь вопрос на засыпку -- что нужно курить, чтобы построить систему классов, в которой у банки пива и двери есть общий предок?
У двери, банки и Америки общих предков нет, конечно, но есть общий интерфейс IOpenable. В C++ это выражается чисто абстрактным классом с одним методом open()
М>и ведь это не надуманный пример. пусть нам по ходу дела нужно читать данные. читать их можно из чего угодно, был бы только метод read(). общих предков иметь необязательно. общие предки нужны только там, где в базовый класс можно вынести 90% функционала, а наследники реализуют вариации на тему. например, если у нас есть класс "абстрактное хранилище", которым может быть SQL, ассоциативный массив в памяти и файловая система. нужно ли им всем иметь общего предка? а зачем? ведь базовый класс будет пустышкой по сути. а вот если мы реализуем библиотеку работу со строками, то 90% функционала таки в базовом классе, а в производных -- работа с национальными кодировками, например, для сравнения символов без учета регистра.
Вопрос философский. Можно так, можно так. Одно другого вроде как ничем не хуже. Питон позволяет обойтись без общего предка? Отлично, тогда и фиг ты с ним. C#/Java/C++ не позволяет? Вот, интерфейс.
D>> С вебом хуже, фреймворков действительно десятки. М>какое счастье, что от веба я далек как от луны
Мне уже интересны твои повседневные задачи, если для тебя важна производительность регекспов в питоне, но с веб это не связано
Re[3]: Хотелось бы коментариев с мест, про зарплаты
B>>подтверждаю, что московские зарплаты точно уже лет несколько как перегнали европейские. во
D>В Европе есть как Греция, Литва и Польша, а есть Лондон. Если хочется сравнивать с Европой, то надо уточнить, с какой именно.
Когда мне говорят про зарплаты программиста в Европе, я представляю в первую очередь Германию, во вторую — Францию, в третью, наверно, Австрию.