#246 Айтишно-оффшорный
Для кого пишется программный код?
На тренинге в Монголии
Стоит-ли оффшорнику переезжать в Штаты
Стоит-ли учавствовать в лотерее green card
Качаем или слушаем
Для кого пишется программный код?
На тренинге в Монголии
Стоит-ли оффшорнику переезжать в Штаты
Стоит-ли учавствовать в лотерее green card
Качаем или слушаем
4k для Украины – очень много, даже для Москвы достаточно большая зарплата. Так что для среднего программиста, который получает раза в 2 меньше, переезд вполне может иметь смысл и в материальном плане.
У человека, который получает в два раза меньше будут проблемы с нахождением здесь работы – недостаточно квалификации.
Не всегда ведь деньги соответствуют квалификации. Рынок труда не очень эффективен.
С другой стороны, ехать только ради денег, конечно, не стоит – тяжело будет адаптироваться в новой культуре, если нет особого желания в ней жить.
Лучшее видео про джинсы
MK Ultra (MTV Exit: Some Things Cost More Than You Realise)
Не совсем согласен про оправдание “ковбойского кода”.
Быстродействие системы больше определяется ее дизайном/архитектурой чем мелкими оптимизациями. Premature оптимизация вредна – часто оптимизируют не то и не так.
Безусловно, даже в системе с правильным дизайном кто то может написать красивый но неэффективный код. Путем профилирования и перформанс тестинга эти места обнаруживаются очень быстро – и вот тогда оптимизация оправдана, т.к. это действительно bottle-neck и в данном случае стоит пожертвовать красотой/читабельностью кода чтобы ускорить всю систему.
Но если вся система или ядро изначально написаны в “ковбойском стиле” то 90% оптимизаций наверняка не оправданы зато поддерживаемости и расширяемости кода УЖЕ нанесен ущерб
Будам это супер подкаст.
Куча полезной информации. Такие переводы как ты сделал очень помогают изучать язык. Спасибо.
Насчет зп у меня не сходится. Если работодатель платит в Украине 4к программисту и столько же в США то зачем же он (работодатель) перенес свое производство в Украину?
Чтобы человек в Штатах получил чистыми $4К, работадателю это стоит не меньше $6К. Кроме того здесь банально не хватает своих квалифицированных программистов.
Ну у нас ведь тоже самое. Меньший налог только в случае “единого налога” а им может пользоваться только “частный предприниматель” у него не должен быть доход больше 500к грн в год. Т.е. с доходом в 4к в месяц это одиночка. Для двух таких людей уже надо создавать “частное предприятие”, а для предприятий в Украине налоги больше штатовских.
В такой ситуации работодатель из США должен платить либо меньше чем в США. Либо рисковать и связывать свою деятельность с нелегальными или “полулегальными” канторами в Украине. Но как оправдать риск? Риск оправдан только большей квалификацией “Украинского программиста за 4к” по сравнению с “Американским программистом за 4к”. (При условии что и там и там программист работает одинаковое количество часов.)
Потому у меня есть теория что работая тут за 2к можно обоснованно претендовать на 4к в США.
Будам, мне кажется ты не учитываешь того, что платишь человеку напрямую – без оффшорного посредника. Что получается: положим у тебя есть на зарплату $6000, это включая налоги $2000 и собственно перевод $4000. $4000*12=$48 000. Тебе конечно виднее, но мне кажется, что за эти деньги работника достаточной квалификации в США тяжело найти, но это ладно.
Дальше самое интересное: большинство работодателей не могут, как ты работать с удаленщиками. Они нанимают команду через оффшорную фирму, офшор – же снимает минимум половину бабла. Т.е. если ты перечисляешь за разработчика 4000, до него дойдет в лучшем случае две. Таким образом получается, что человек получающий на Украине две тысячи баксов в Америке автоматически может претендовать на четыре тысячи. Причем на столько автоматически, что если не дают четыре штуки нужно крутить пальцем у виска и заходить в дверь рядом. Это, заметь, киевский программист. Программер из какого – нибудь Донецка, может и в четыре раза увеличить свой доход. Т.е получает он штучку бакинских(а зачем платить больше), но продают – то его труд за четыре…
Короче, при всем к тебе уважении, если ты в плане работы уже вырос из детских штанишек нужно рваться за бугор изо всех сил и цепляться за страну переезда когтями и зубами просто из денежных соображений.
Плюс ко всему здесь есть затраты на безопасность. Вот собьет меня на пешеходном перекрестке машина какого – нибудь депутата под коксом и все – если останусь жив у меня трусов не хватит, чтоб расплатиться за нанесенный депутатовой машине ущерб. Во сколько можно оценить этот риск?
p.s. Под выросшим из детских штаниншек, я как ты понимаешь подразумеваю молодого и наивного программиста живущего где – нибудь на Украине.
Не считай чужие деньги, которые себе забирает оффшорная Киевская компания. Не нравится – продавай себя сам и забирай все деньги себе. Мы работаем и с частными предпринимателями из СНГ и с компаниями. Кстати, в компаниях часто работают грамотные люди, кроме того у компании и замену можно попросить если что и сисадмина правильного на пару дней…
Речь не о том, сколько зарабатывает компания и какие люди там работают, а о том что жить на Украине по сравнению с Америкой не очень выгодно. Да, компания ведет честный бизнес, да она решает много проблем. Но почему – бы не жить там, где проблем нет и решать их соответственно не нужно? Все просто: если живешь в стране, где круглый год тепло за отопление платить не надо. Соответственно если жить в Америке за то, что делает оффшорная компания не нужно платить ибо работу которую она делает уже сделало государство.
Живу в России. Страну проживания хочу поменять чисто из-за человеческих взаимоотношений, надоело. Да и ребенок у меня родился в этом году, не хочу чтобы он жил здесь. Но…я очень привязан к своим родителям здесь. Это меня очень сильно сдерживает.
Будам, а у тебя была такая проблема при переезде в Америчку? Если да, то как ты её решил?
Зря ты уж так наехал на своего комментатора по поводу кода.
Он всего лишь процитировал расхожую фразу, которую повторяли многие классики
программирования. Например, я сейчас перепроверил и цитирую тебе из книги
Д. Ван Тассел “Стиль, разработка, эффективность, отладка и испытание программ”,
Москва, “МИР”, 1985 (оригинал: Dennie Van Tassel, “Program style …”,
Prentice-Hall, Inc. Englewood Cliffs, New Jersey, 1978):
стр. 8 “Программы должны составляться таким образом, чтобы их могли прочитать в первую очередь люди, а не машины”
стр 9: “Помните: программы читаются людьми”
Спасибо за цитату из книжки. Возможно ты не знаешь, но я тоже написал несколько книжек (извини за нескромность, если можешь), и мнение другого автора вовсе не обязательно сильнее моего. При случае напиши Dennie и процитируй Будама.
Кроме того, иногда в книгах надо писать правильно звучащие вещи. Я как раз об этом писал в блоге “Я обманываю в учебнике по Java”: http://yakovfain.javadevelopersjournal.com/im_lying_in_my_java_book.htm
Про твои книжки я знаю из твоих подкастов 🙂
Но ты обрати внимание на дату издания…
Конечно, с тех пор многое изменилось.
Я думаю, в те времена, ты еще книжек не писал, а только читал.
Это еще отзвуки споров и обсуждений оператора “go to” и структурного программирования.
Да изменилось многое. Тогда на проектах не работали люди, имеющие трехмесячные курсы программирования за плечами и знающие только в какое место в данном фреймворке вписать if-statement. А сейчас, нужно исходить из того, чтобы этим читателям кода было понятно и комфортно. Welcome to the 21st century!
Книги – это конечно хорошо, но даже я за свою непродолжительную профессиональную карьеру уже понял:
1. в жизни все часто далеко не так, как написано в книгах
2. Основное мерило – конечный результат, и если он приносится в жертву ради “красивого” кода, то это не есть хорошо.
В большинстве случаев, в условиях, когда используются десятки разных фреймворков, написанных разными людьми, понятный код становится залогом “результата”, но не всегда…
Каждый свои ошибки совершает сам. Не будь я так глуп, подавал бы каждый год на GC, а не искал входы через учебу и работу в красивые, но бесперспективные страны. И учил бы правильный язык, и изучал правильное ремесло. бы бы бы… Ладно, главное правильные выводы делать и вовремя останавливаться, поворачиваться и бежать в нужном направлении.
Кстасти, начался показ цикл “Тур-де-Франс” с Познером и Ургантом. Получается прелестная вещь. Могу подсказать, где лежат легально все выпуски.
К сожалению, я не знаю контекста, в котором велась беседа о ковбойском коде, поэтому могу высказать лишь общее мнение. Как всегда, правда где-то посередине. И в отношении “ковбойского кода” и в отношении аутсорсинга.
Насчет “эффективный vs понятный”, я знаю примеры и success stories и epic fails для обоих вариантов. С одной стороны, есть пример Apple. В своем интервью в книге “Founders at work” один из создателей – Стив Возняк, рассказывает, что при создании Макинтоша им удалось достичь прекрасных результатов путем множества хаков, учитывающих мельчайшие особенности внутренних компонентов. То есть принесли в жертву понятность и гибкость, но получили отличные характеристики работы. Но есть и обратные примеры. Например, мне в ходе одного из проектов довелось поучаствовать в разработке расширения для одной из популярных коммерческих систем в области Business Intelligence. Эту систему начали писать в начале 90-х, и как раз для достижения эффективности использовали такой же подход “хаков”. Плюс система прошла через три этапа поглощения компаний, которые ее разрабатывали, более крупными, то есть в разное время ей занималась куча народа. Так вот когда мы начали разрабатывать расширение и наткнулись на баг, которому уже много лет, но который до этого не был критичным, то конечно же обратились к команде разработчиков системы с просьбой исправить. И угадайте, какой ответ мы получили. Практически дословно:”Знаете ребята, у нас не осталось ни одного человека, который участвовал в написании этого кода, а разобраться в нем просто так нереально. Так что мы вам ничем не можем помочь.” В итоге мы сами реализовали сложный и корявый workaround, работоспособность которого постоянно приходится проверять.
А насчет аутсорсинга – я сам работаю в одном из украинских девелоперских центров крупного аутсорсера. Так вот опять же, все зависит от комбинации отношения самих заказчиков, местного менеджмента аутсорсера и разработчиков. На моем текущем проекте примерно 50% того, что вы описываете – правда в том смысле, что исходные условия дают возможность “филонить”:
– куча бюрократии в организации заказчика, волокита с получением доступов и привилегий
– никто не интересуется и не контролирует результаты в краткосрочной перспективе
– члены команды со стороны заказчика панически боятся доверять нам core компоненты, потому что думают, что мы “такие же как и все индусы”, из-за чего у наc случаются частые простои, так как из разработчики просто перегружены работой.
Но, во-первых, мы с напарником понимаем, что отношение в стиле “навешать лапши и забилить много часов” не дает нам лично особых дивидендов, а вот проблем может принести много, так как одним проектом жизнь не заканчивается и нужно набираться опыта именно в разработке ПО, а не в запудривании мозгов. Во-вторых, нас жестко контролирует наш местный менджмент, потому что в случае любых проблем наш проект может уйти индусам или другим “монголам”, которые на все согласятся за втрое меньшую цену. От того, что потом эта цена вернется к исходной уже в процессе разработки индусами, а то и превысит ее, нашей компании не легче.
Кстати пункт “всегда соглашайтесь и не становитесь в позу” я сам использую, потому что путь “согласиться, но предложить свою альтернативу just in case” в большинстве случаев самый действенный. Более того, я к этому пришел давно, послушав один из ваших давних подкастов, где вы сравнивали индусов и русских разработчиков. (Кстати, из того подкаста я для себя извлек много полезных вещей, которые мне за последние два года не раз помогали, так что спасибо вам за советы “задним числом” 🙂 )
Так что, как говорится, it depends.
Яков! Спасибо за отличный подкаст. Рерих ” Чем больше
мы знаем, тем яснее наше незнание, но если мы вообще
незнаем, то даже и ощущения незнания нет. И двигаться
нечем и двигаться некуда. Тогда уже неизбежно —
кромешное царство пошлошсти. “
Имеет место недопонимание.
Конечный результат всегда является королем, я не спорю.
Вопрос – что считать конечным результатом? Первый выкаченный рабочий релиз или то что происходит потом, когда проект переходит в стадию continuous development. C бесконечными поставками, сменами команд разработчиков и т.д.
Будам, привет 🙂 Подкаст, как и всегда получился отличным! Соглашусь с тобой по-поводу переезда в США. Ведь ты говорил, что спрос на рынке (в США) на программистов велик, но проиграммистов еще больше, как же понимать твои слова, что не хватает специалистов? или же всетаки не мало важный фактор играет цена за труд, те деньги , что вы платите сотруднику из США и тому , кто работает у себя в своей стране, но на вас ? Спасибо 🙂
По поводу миграции в америку – такой вопрос. А допустим у человека нет достаточной квалификации чтобы претендовать на высокооплачиваемую работу в америке, но при этом действительно есть сильное желание мигрировать в сша. Стоит ли ему ехать в таком случае? Допустим что ему удастся найти работу в 30-40 тысяч долларов до вычета налогов. Возможно ли при такой зарплате оплачивать счета и развиваться по специальности в свободное время? Или придется жить впроголодь в бандитском районе, где велика вероятность что тебя либо подстрелят, либо подрежут? Английский, опять же, не проблема. Или все-таки если уж влачить жалкое существование, то у себя на родине?
30-40 тысяч получает, наверное, 40% работающего населения страны. Вроде-бы головы у них не прострелены и колотые раны и порезы не видны тоже. Может прячут под одеждой?
Ну наверняка при появлении последних они временно исчезают в госпиталях, или насовсем – в моргах… На всякий случай скажу – я не ищу оправдания чтобы не ехать, скорее хотел бы увериться что ехать стоит и понимаю что ваш ответ это и подразумевает.
Здравствуй Будам! Предыдущий вопрос поднял интересную тему: насколько тяжело открыть в США приехавшему свой магазин, например торговля инструментами.
Думаю, не имея достаточной квалификации как раз и стоит ехать, тем более если хочется, т.к. в этом случае у нас будешь, как ты сам сказал, влачить жалкое существование. Оффшорникам стоит подумать еще, но простому работяге у нас ничего не светит, сам знаешь. Страна нищих и олигархов, ну и еще 2% рыночных торговцев – средний класс. Это про Украину.
Будам!
Я всегда с удовольствием слушаю Ваши подкасты, и Вас очень сильно уважаю, но истина как говориться дороже.
Вообще то, что мы пишем код для людей, а не для машин, я первый раз встретил у Мартина Фаулера. Потом встречал у Роберта Мартина и у Кента Бека. Боюсь что при всем моем уважении к Вам – Вы не правы. Или Вам есть что возразить Фаулеру, Мартину и Беку?
Use common sense when you write code. IMO, code readability by junior programmers has lower priority than code efficiency. I do respect these people, which doesn’t stop me from having my own opinion on certain things.
Ну тогда, наверное, было опрометчиво говорить что это самая большая глупость, которую Вы слышали.
Как любит говорить Будам – Не боги горшки обжигают (и книги по рефакторингу пишут). У Фаулера, Мартина и Бека свое мнение, у Будама свое ))
Жжете 🙂
Горькая правда от тренинге в Монголии.
С одной стороны если работаешь с такими оффшорными исполнителями – то хочется вешаться.
С другой стороны – в подкастах BT в ответах явно пропагандируется, что програмисты ничего не должны работодателю, никакой лояльности, не засиживайся, никто не оценит, двигайся дальше пока молодой, и т.д.
Вот и получается результат, как в том тренинге.
Извини за пост не в тему.
Жена вчера рассказала про забавный факт. Оказывается: “«Киндер-сюрпризы» запрещены к продаже в США, где согласно федеральному акту 1938 года нельзя вкладывать несъедобные предметы в продукты питания.”
Киндер-сюрприз – яйцо из шоколада,внутри которого есть коробочка с сюрпризом(сборная игрушка или какая-то другая хрень).
Такие дела в Америчке. 🙂
Интересный тренинг для “монгольских” аутсорсеров. 🙂
Интересно, какие рекомендации и пожелания дадут Западные Заказчики к моему тренингу.
Итак…
Тренинг: «Взаимоотношения «Западный Заказчик – Аутсорсер» или Способы Нае…бки «Обезьян»».
Пункт первый: Вы – Западный Заказчик и Вы – центр вселенной под названием “Софт”. Что киберпапусы из Восточной Европы или Азии могут знать о тенденциях в мировой ИТ-индустрии ? Ничего!
Привейте им мысль о том, что работая с ними – аутсорсерами – Вы делаете им одолжение.
В то время, когда миллиарды людей готовы работать за тарелку рисовой похлебки, Вы тратите на них свое драгоценное время, да еще и предлагаете им свои кровные полцента в час за их низкоквалифицированную, варварскую мазню.
Пункт второй: Никогда не обращайте внимание на квалификацию команды аутсорсеров – «обезьян». Заваливайте их тасками любой сложности. Ведь если какая-то бошковитая “обезьяна-джуниор” выполнит таск заасаненный на “синьора”, вы сэкономите (нае..те их) сотню-другую. А экономия – это и есть цель всего Аутсорса.
Пункт третий: Никогда не выражайте своей удовлетворенности работой этих «мартышек». Ваше постоянное недовольство их работой будет стимулировать трудолюбие и самоотдачу этих кнопкодавов.
Всегда держите их в тонусе, намекая на то, что Вы очень любите Индию и Вьетнам их и талантливых и трудолюбивых жителей. Благодаря такой субординации, вопросы о повышении стоимости человека/часа со стороны аутсорсера не будут возникать НИКОГДА.
Успехов Вам, Господа Заказчики, в нелегком деле Аутсорса. ! 🙂
Если обезьянам не нравится жить в зоопарке, они ничего не могут сделать даже если им не нравится кров и еда, которые они получают и который лучше и гарантированнее чем на воле. В случае аутсорсинга все проще – никто насильно их не загонял в клетки и они могут жить на воле так как они хотят, где не западные хищники их будут обижать а местные шакалы.
Ага.
А так же маленькая “обезьянка” может стать большим Кинг Конгом и “подгребсти” под себя пол зоопарка. 😉
Понимаешь, в чем дело: местные “бибизянки” научились держать фигу в кармане. На рассказы, что мол я уйду в Индию, во Вьетнам со скорбным видом кивают и начинают резвее прыгать, но только то время, пока на них смотрят. Сами – же понимают, что если он мог уйти в Индию, давно ушел – бы.
Вот так вот покивают, а потом “ой, я увольняюсь”, с тобой было хорошо, но с другими лучше.
К чему такие зооэкстраполяции? Хотите быть доступнее? 🙂
Вот кстати в тему: обучающее видео для программистов, только не в Моголии, а в Сибири.
“Как не писать код.”
http://devpoint.ru/video/f/devpoint2/46778_Andrey_Aksyonov_vtoroy_doklad.html
Оно забавное, хотя немного неприличное.
Мне понравилось.
Извините за спам, если что.
У меня еще вопрос. Смотрю сериалы на английском языке, одновременно с двумя субтитрами на английском и русском. Будам как Вы считаете как лучше: смотреть без субтитров, только на английском или с двумя одновременно.
Смотря для чего. Для разговорного лучше без субтитров.
А если ставится цель понимать и читать английские книги в оригинале?
Я понимаю и читаю в оригинале. Начинал со словарем, потом постепенно мог обходится без него, сейчас только некоторые слова подсматриваю. Короткий ответ – чтобы научиться читать английские книги в оригинале, нужно читать английские книги в оригинале. В старых подкастах Будама есть несколько на эту тему, где-то в районе 60-80-х.
Со словарём вот не получается у меня, хотя я пробовал и просто искать слова, и записывать их в отдельную тетрадочку с переводом. Не помогает, выучиваю 10 новых слов, забываю 10 старых.
Да, в подкастах проскакивала рекомендация чтения литературы без словарей, просто на приблизительное понимание смысла. Но что делать, если очень много присущих среде терминов?..
Ещё вариант – видеолекции MIT смотрю в оригинале, вот с этим получше.
Интенсивность повысить, может быть? Тогда в какие рамки себя вгонять? Цифры помогли бы.
Еще один способ изучения разговорного английского, к-рый я для себя открыл – Real English, поищи на YouTube. Это короткие видео уроки, большой плюс в том, что ты слышишь одни и те же фразы от разных людей.
Если смотреть без субтитров, то как можно узнать значения новых слов?
Послушай мой подкаст #59.
Спасибо!
Последнее время, стал понимать, что другая страна – это не архитектура и не пятизвездочный отель а, прежде всего, люди, которые тебя окружают.
На днях, выбирая тур на одном из сайтов турагенств, мне пришла в голову мысль о том, что невозможно ощутить дух другого народа, взглянуть на мир их глазами, постоянно находясь в “батискафе” – в составе туристической группы из своих же сограждан.
Кто такие “неверляндцы” (Neverland) ? Чем они живут ? Какие вызовы им бросило наше Время ? На эти вопросы получаешь ответ, когда болтаешь с ними в гостинной за чашкой чая.
На мой взгляд, перемещаться из пункта А (памятника архитектуры) в пункт Б (памятник арихтектуры) – уже слишком скучное занятие.
Даешь полное погружение в Неверляндию ! 🙂
Будам спасибо за такой веселый подскаст! 🙂