Pull to refresh
35
0

User

Send message
Я на футкорте однажды просидел около 3-х часов, делая тестовое задание для компании в которую собирался ехать вечером. Удачно.
Спокойно сидел с 15-шкой, тем кто вставал и нависал надо мной тыкая сумкой, пальтом, пакетом и прочим по крышке ноута, резко говорил что бы прекратили. Все прекращали и отодвигались подальше, либо вообще отходили в другой конец вагона
Это тоже самое что и читать книгу, просто начинаешь это делать и отрубаешься от внешнего мира, не получается… тоже самое как и с книгой, убираешь в рюкзак\сумку.
За более чем полтора года встречались лишь «заглядыватели», которые могут по полчаса пялиться что же я там делаю, особенно если я делать что-то из гуев или изометрии, быдло с не одобряющим взглядом (аля «че богатышь шоль») и всякие дядечки-тетечки которые задавали лишь пару вопросов «а что за ноутбук такой» и им подобные…

Долгое время работал так в метро, очень нравилось ~1.5 часа продуктивной работы (а иногда и больше, когда уж совсем в потоке проезжал нужную мне станцию), без растягивания резины.

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

По поводу анкет, да, в курсе зачем они (недавно поинтересовался), обычно таким любят заниматься кадровые агентства. Кстати в очередной раз убедился, что не все они такие ужасные и бюрократические.

Не каждый технический специалист может/умеет проводить интервью и не каждый из них понимает цель технической беседы. Это приходит с опытом проведения собеседований, а не с опытом работы в должности. HR для того и присутствует на интервью, чтобы отслеживать такие моменты.
Вот жаль, что многие айчеры этого тоже не понимают и, зачастую, покидают нас… а что начинается дальше уже зависит от технического специалиста. Были и такие, которые в силу неизвестных мне причин не смогли ответить на простые организационные вопросы, которые знает каждый сотрудник работающий в организации.
Изначально хотел остаться в геймдеве, даже остался, ненадолго.

Главный критерий — дальнейший профессиональный рост и деньги, сидеть на жопе ровно и ничего не делать — пока еще до этого не дошел, все таки хочется работать, желательно над чем-то серьезным, и в комфортных условиях. Деньги — ну вообще в хозяйстве вещь полезная. Дорога тоже важный фактор, тратить по три часа жизни туда-сюда не хочется, позволю максимум 2.

Сейчас — пошел ведущим ну совсем не в геймдев, достаточно серьезное и крупное банковское ПО, работы много, перспективы есть. А дальше кто его знает.

Вообще конечно было несколько клевых мест, но, не сложилось, что уж теперь жалеть
Ситуация с поиском работы вообще неоднозначная. Только недавно прошел через все это: полторы недели в ритме от офиса до офиса, от вопроса до вопроса, по два, а то и три собеседования ежедневно, большинство из которых было более чем бесполезными.

В итоге прошел около 30 компаний и очень хочется надеяться что в ближайшее время (год-полтора) мне точно не приодеться проходить все это снова.

И начать хотеться с вас, айчеров, большинство из которых не только не умеют читать резюме, но и общаться с людьми. Вот скажите, почему вам так трудно пообщаться с человеком 5-10 минут по телефону, что бы мы могли составить первое впечатление друг о друге, получить ответы на какие-то важные вопросы? Почему весь наш разговор заключается в назначении встречи, а все мои попытки разговорить вас, в основном заканчивались неудачей?

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

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

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

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

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

Были и те “специалисты” с многолетним опытом которые пытались давить интеллектом, они вообще смешные, и обижаются сильно если кто-то знает что-то лучше их.
Мне интересно вот что — есть у меня одно приложение, которое к http отношения вообще мало имеет — сокеты там всякие разные, как у вас с этим?
Этот пример не совсем про утечку, instance все таки будет иметь ссылку на созданный объект, с ним даже можно будет работать (правда насколько плодотворно — тот еще вопрос).

Если изменить в вашем примере конструктор на инициализатор:

class Leak {
static Leak instance;

{
instance = this;
throw new Error();
}
}


То получим ошибку говорящую о том, что инициализатор должен выполниться нормально.

Но, если все таки случиться такое что в инициализаторе будет брошено исключение, объект так же создаться, до него можно будет добраться, но состояние опять будет сломано или же он будет удален с ближайшей сборкой мусора.

Тем то, что сборка таких объектов производится в 2 этапа. На первой сборке выполняется finalize() и ставиться флаг, что объект финализирован, на второй — удаляется сам объект без выполнения finalize() если после его выполнения объект не стал достижим.
Не вижу ни одного преимущества. Представьте такую ситуацию, вы являетесь работодателем и делаете какой-то клевый продукт и у вас вся база кода с пятью разработчиками на яве, примерно 80% затрат — это зп сотрудникам. Теперь перед вами встает задача написать к этому продукту сервер, то вам врядли придет в голову идея найти, а главное нанять 2-х человек с зп в полтора раза большей нежели у ваших программистов что бы написать сервер, при этом половину уже реализованного кода придется переписывать на другом языке.

Это самоубийство. Сервер будет писаться силами разработчиков, это круто если кто-то из них в курсе что такое seda и может быстро на той же mina/netty поднять за недельку что-то подобное что нам нужно, а если только парочка из них в курсе что такое сокеты, а уж про конкареннси им надо в гугл ходить…
Поподробней когда он может оказаться вреден ничего сказать не могу — флаг прошел мимо меня. Но судя по поведению, у нас он был выключен — мелкие локальные объекты очень хорошо так плодились до подчистки их парньюшечкой судя по профайлеру
Возможно, но есть очень много но — например найти человека, а то и не одного который бы смог написать это + интегрировать с текущим кодом.

Ту реализацию такого сервера я видел, получилась очень простой и действительно очень быстрой при 300-500 коннектах с хоть и не частым и при этом большим объемом IO и тяжелой бизнес логикой.
Например если у меня сервер с архитектурной где на каждого клиента по потоку — там и больше может быть. Некоторые утверждают что это во первых быстрее, во вторых проще для разработчика.

Например www.mailinator.com/tymaPaulMultithreaded.pdf
Про DoEscapeAnalysis в курсе (правда пришлось освежить память что же это все таки такое). Параметр довольно интересный, но не встречал что бы его кто-то использовал кроме как для синтетических тестов — «посмотрите как оно круто работает». Может потому, что ситуации в реальной системе чуточку сложнее нежели «сейчас я тут насоздаю 100500 объектов в этом методе».

Кстати, если бы этот разговор состоялся бы около двух месяцев назад, я бы смог предоставить достаточно неплохую статистику как он может помочь\навредить в реальном приложении которое использует много-много памяти и живет месяцами.
Можно еще и с размером стека поиграться, дефолтные 512кб это много, иногда даже очень много, тут можно хорошо поиграться с параметром -Xss
Может дергать, если для этого объекта не хватает памяти, вот вам более простой пример, запускать с -XX:+PrintGCDetails -Xmx64m, сборщики можно любые как дефолтные, так и связку ParNew + ConcMarkSweepGC:

    static class Foo {

        byte[] b = new byte[32*1024*1024];
    }

    public static void main(String[] args) throws Exception {

        for(int i = 0; i < 3; i++) {
            Foo f = new Foo();
        }
    }


В логах должны быть 3 красивые записи о сборке мусора.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity