Да я не для красного словца. Я жил пару лет на Драйзера. Никаких особых проблем не встречал, но пьяные компании, задирающие прохожих — это не редкость, поэтому и выбрал такое сравнение.
Ну, с английским вообще отдельный разговор. У меня в школе был французский, так что учил в основном по документации. В первой поездке было очень трудно, но если очень нужно, язык учиться быстро. Я так и не был на курсах английского, но где-то через год я не испытывал никаких проблем с бизнес/IT лексиконом, а дальше и с другими областями.
Назвать это незнанием, пожалуй нельзя, но ошибки все же допускаю иногда.
Кстати, а вам не мешает незнание русского? Наверное все-таки не «не знание», а «незнание» и не «все таки», а «все-таки» :)
Больше цифр — в следующей части.
По поводу страховки — да, это очень важный момент, который нужно уточнить, т. к. хорошая страховка стоит дорого. Я не знаю точных цифр, т. к. моя компания оплачивает 100% для всей семьи (медицинская, стоматологическая и страховка жизни), но, если я правильно понял финансовый отчет, то это около 2К в месяц.
Да я кажется такого и не говорил :)
Мне 35, у меня жена и двое детей и я трачу далеко не всю зарплату на жизнь в Нью-Йорке. Хотя, конечно это очень индивидуально. Поэтому я и решил написать эту статью. Во второй части будет много цифр и цен.
Продолжительность отпуска часто зависит от того, сколько человек работает в компании и от позиции. У меня в сумме сейчас около 4.5 недель. В отпуск никто принудительно не гонит, хотя в банках такое встречается, там процедура такая. Менеджер может поинтересоваться, почему отпуска не берут, хотя это зависит от отношений внутри команды. Чтобы пойти в отпуск достаточно сообщить менеджеру за пару дней или за неделю.
Еще одна особенность — это то что отпуск обычно берут частями, от пары дней до недели. Две недели — это уже редкость. Хотя и не исключение — я в прошлом году брал три недели для поездки в Украину.
Для американцев «тяпница» — это обычно четверг, не пятница. Пятница более семейным днем считается. Странно конечно. Особенно после корпоратива, когда половина офиса похмельем мучается.
Форматирование кода слетело. Пытался отформатировать код с тегом ’code’, видно не судьба :)
Я же обещал больше не отвечать... (вздыхает) Хорошо, самый последний раз. Внизу код на JS и Python который делает то же, вначале с синхронными вызовами, потом с асинхронными (с использоваем promises). Что я хотел показать в примере выше, это то что с использованием asyncio код на питоне почти не меняется в отличии, например, от JS.
//JS Sync try { data1 = syncCall() // do something... data2 = anotherSyncCall(data1) // do something... data3 = oneMoreSyncCall(data2) // do something... catch(err) { // handle any error resulting from any of the above calls } //JS Async asyncCall() .then(function(data1){ // do something... return anotherAsyncCall(); }) .then(function(data2){ // do something... return oneMoreAsyncCall(); }) .then(function(data3){ // the third and final async response }) .fail(function(err) { // handle any error resulting from any of the above calls }) .done(); #Python Sync try: data1 = syncCall() # do something... data2 = anotherSyncCall(data1) # do something... data3 = oneMoreSyncCall(data2) # do something... except Exception as err: # handle any error resulting from any of the above calls #Python async try: data1 = await asyncCall() # do something... data2 = await anotherAsyncCall(data1) # do something... data3 = await oneMoreAsyncCall(data2) # do something... except Exception as err: # handle any error resulting from any of the above calls
Ну я же не статью по asyncio and aiohttp писал. Спросили мое мнение о Python 3 and aiohttp, я и ответил в паре слов.
Больше ни слова в этой ветке — я в холиварах не участвую и свой выбор технологий, языков, фреймворков или библиотек никому не навязываю, но и не собираюсь объяснять.
А вы не можете допустить, что это просто пример асинхронных вызовов, а не реальный энтерпрайз-код? :)
Даже в этом простом случае асинхронность имеет значение, если мы говорим о single-thread web server (почитайте о aoihttp). Чтобы быть кратким: все IO вызовы асинхронные, но веб-сервер не просто ждет ответа, от асинхронной операции, он обслужаивает другие запросы в это время в том же потоке.
Вполне возможно. Как я уже раньше говорил, я на веб-проектах серверной частью занимаюсь и не являюсь специалистом в JS. Пришлось копаться в Ember коде недавно, там и видел эти вложенные callbacks. Promises немного упрощают код, но все равно asyncio реализация мне нравиться больше — «асинхронность» почти не заметна, например
async def foo():
a = sync_method()
b = await async_method1(a)
c = await async_method2(b)
return c
К слову, создание веб-сервера и регистрация раутов тоже может вложиться в
Постараюсь вложиться в пару слов (или хотя бы предложений).
Я работаю в основном с сервером и бек-эндом, так что о React.JS могу рассказать немного(к тому же и проект новый). React.JS легче в изучении, чем Ember и позволяет быстро строить UI. Мы также смотрели в сторону Angular, но первая и вторая версия не совместимые причем первая не будет поддерживаться, а вторая только в альфе пока.
Связка третьего питона и aiohttp мне очень понравилась. Приходиться привыкать к асинхронному коду, я раньше все потоками баловался по старинке, но в общем код выглядит очень аккуратным (привет JS nested callbacks hell), легкий в тестировании с py.test (если не терять await/yield from) и позволяет получать правильный call stack, что немаловажно для ассинхронного програмирования. Выполняется быстро, API очень простой.
Для примера, установления соеденения по веб-сокетам, подписка на канал MessageBroker (Redis в нашем случае) и пересылка сообщений из полученных из MessageBroker в браузер клиента — это примерно
Ок. Я думаю это займет пару дней как минимум. Я вот только проблизительный план накинул и уже получается, что нужно пару частей. Вот примерный план, если кого-то интересуют конкретные вопросы, пишите, постараюсь добавить.
Первые впечатления от США: Хьюстон vs Нью-Йорк
Переезд: большие хлопоты или просто виза+билет?
Рабочая атмосфера
Деньги: USD 100,000 — это много или мало?
Bare Necessities: квартира, страховка, машина,...?
Развлечения и поездки по США
Еда: в ресторан, из ресторана, или покупаем в магазине и готовим дома
Жизнь в большом городе (на примере Нью-Йорка) vs Жизнь в деревне (на примере деревни)
Общаемся с американцами: полиция, врачи, чиновники, и др.
Как влиться в общество
Философские рассуждения на тему «стоит, или не стоит переезжать»
Ну, я так скажу, автор описывает свой личный опыт. Обобщения «тут в Америке так» я думаю не годится во многих случаях. Вот несколько примеров:
— На рабочей визе в моей компании мне платили вполне конкурентную зарплату с пересмотром в сторону повышения каждый год;
— В компании, где я работаю, программисты получают фактически полную свободу в выборе технологий, фреймворков, языков программирования для проектов. Мы стартовали новый веб-проект месяц назад и сделали выбор (Python 3 + aiohttp + React.JS) коммандой из 4 человек. Дальше мы просто проинформировали CTO о нашем выборе.
— Говорить о том, что американцы мало путешествут также не совсем корректно. Мой предыдущий менеджер разговаривает фактически свободно на 7 языках (кроме английсого включая японский, китайский, русский, французкий, испанский и еще какой-то язык), а объездил он все континенты (кроме Антарктиды) и побывал во множестве стран. Конечно это нельзя обобщить как правило, подходящее для всех американцев, но многие путешествуют довольно часто.
Если будет время и желание, могу написать о моём опыте переезда в США, если кому-то интересно.
Попробую объяснить. На собеседовании с кандидатом время очень ограничено, но нужно проверить не только знания, но и применение знаний на практике а также персональные качества человека. «Хитрые» вопросы задаются, чтобы получить некоторые из ответов на эти вопросы. Сам ответ во многих случаев не важен, спрашивающий следит за следующим:
— Логика\архитектура ответа;
— Насколько быстрый ответ (супер быстрый не всегда самый лучший, хотя это тоже не правило);
— Задаются ли уточняющие вопросы (уточнение требований);
— Коммуникативные качества: правильно ли формулируются вопросы, может ли человек внятно объяснить свое решение.
— ...
Иногда могут также устраивать провокации, оспаривая правильный ответ, чтобы увидеть решительность защищать свою точку зрения, но не агрессивность.
Интерпретация ответов может отличаться в зависимости от человека, проводящего собеседование. Конечно, такие вопросы не могут дать однозначный ответ, но служат хорошим дополнением.