Мне вот еще что интересно: как автопилоты будут «выжимать» нахалов, вклинивающихся с тротуаров в пробке. Скорее всего, они просто будут пропускать таковых вперед. Ну и, безусловно, какие такие авто будут строить маршруты по нашим несовершенным дорогам — если наивно и прямолинейно — мне жаль подвеску и ваш комфорт, если нет (а это и выезд за сплошную чтобы объехать аварии и ямы), то каким образом будет проводиться граница между дозволенным нарушением правил и недозволенным.
Ну и проезд всяких там нерегулируемых перекрестков, когда сломался светофор и каждый из 6 входящих в перекресток дорог пытается вклинится
Делал такое для исследовательского центра в Киеве. Сделал за 3.5 дня (был отпуск + интересно). Отослал, позвали на беседу с ПМ-ом.
В итоге предложили денег сильно меньше чем я получал на тот момент в EPAM (запрашивал у них такую же зп, просто хотел заниматься чем-то интересным). Еще и ПМ сказал что у них постоянно авралы и вообще он ни за кем из соискателей гоняться не будет.
Адекватно объяснить почему запрашиваемую ЗП дать не может тоже не смог (видимо, просто был ограничен в бюджете и искал подешевле людей). Я впоследствии общался с одногруппниками из Самсунга — сказали, что для старта это очень высокая ЗП (был февраль 2012).
Должность была — Lead Engineer (у корейцев это как в простых компаниях Senior). К слову, в EPAM у меня была должность Software Engineer (для оценки зп)
Ну и да, на вопрос «как много людей проходит собеседование + такое тестовое задание» ответил «1 из 10».
Это, скорее, будет чем-то вроде альманаха полезных советов для будущих абитуриентов. Мне чего-то подобного в своё время очень не хватало.
Прежде всего молодой человек должен определиться со своей целью на жизнь. Да, я отдаю себе отчет в том, что спланировать (а тем более воплотить весь план) на долгую дистанцию невозможно. Но можно, по крайней мере, прислушаться к себе и понять: амбициозен ли ты по жизни, любишь фарс или предпочитаешь скромно знать больше остальных. Перечислить все факторы у меня тут точно не получится. Потому перед тем как решать куда поступать, постарайтесь с холодной головой и не оголяя шашек понять чего бы вам хотелось в жизни.
Если ваша конечная цель — зарабатывать денег больше, чем средняя заработная плата по стране и нет абсолютно никакого желания «сушить» мозги математикой — IT — хороший выбор. Для вас всегда найдется работа. И в этом нет абсолютно ничего зазорного. Более того, вам по прошествию лет никто и претензию предъявить не сможет: у вас будет такое же количество юридических регалий (читай диплом, корочка), как и у других ваших сверстников.
Если ваша цель — попытаться сделать мир лучше, участвовать в создании ослепляющего своей сложностью проекта (роботы, датамайнинг, высоконагруженные проекты), то готовьтесь к тому, что вам придется серьезно попотеть все эти годы в университете. И отдавайте себе отчет в том, что блеск от только что спущенного робота куда приятнее чем годы рутинной работы над бумагой и отлавливание непонятных ошибок компилятора gcc. Это необходимая плата и это стоит заранее учитывать.
Теперь более предметно про украинское образование. Я не знаю как обстоят дела в других городах (но думаю что не менее плачевно), могу лишь сказать про Киев и Симферополь. Если вам повезло и вы планируете учиться в одном из этих городов, то вот те крупицы информации, что я понял, закончив уже университет.
1. Если вы планируете жить в общежитии, то я бы советовал больше времени проводить в библиотеке — там тихо (для меня это было очень важно), мног книги, библиотекари всегда рядом и, что самое важное — нет отвлекающих/соблазняющих факторов в виде выпивающего/играющего однокомнатника.
2. Я уверен что должного состава преподавателей и курсов у вас наверняка не будет (т.е. может быть сильный алгоритмист, но полное отсутствие дискретки или матана и наборот). Потому тут 2 варианта: или предварительно договориться с преподавателем на соседней кафедре/факультете, или учиться самому, прорешивая задачники самостоятельно.
3. Если ваша конечная цель — программирование, не пренебрегайте ACM (это такие специальные студенческие соревнования на скорость реализации и придумывания алгоритмов. Относитесь к этому как к процессу прорешивания сборника задач Сканави.).
Это очень важно, его значение сложно переоценить. Желательно предварительно узнать есть ли в вашем будущем вузе преподаватели и команды, которые этим занимаются.
Будь я на 6 лет младше, я бы отдал предпочтение тому вузу, чья команда на протяжении нескольких лет стабильно выступает лучше.
4. Не спешите учить много языков программирования сразу, выберите один рабочий (я бы советовал начинать с java/C#, но выбор за вами). Не гонитесь за технологиями. Жизнь — штука и короткая, и длинная одновременно. Выучить технологии на полученной в ACM базе будет куда проще и (главное!) осознаннее.
5. Если вы таки попали в ACM-команду, у вас хороший тренер и преподаватели дискретки, матана и ангема, то не спешите идти на работу. Не нужно форсировать события, учитесь. В конечном счете вы заработаете больше денег, чем успеете «нахватать» за эти пару лет совмещенки.
6. Касательно Симферополя. В ТНУ на матфаке есть Александр Иванович Козлов. На нем держится все движение алгоритмистов. Из года в год он выступае со своими командами на финалах чемпионата мира. Ребята действительно подкованы.
7. В Киеве в КНУ есть Медведев Михаил Геннадиевич. mi.unicyb.kiev.ua/ru/page/medvedev-mihail-gennadievich-rus
Он является оплотом киевского движения :)
Может показаться, что я слишком много уделяю внимания персоналиям. Но я понял, что пользы от одного-двух заинтересованных людей может быть гораздо больше, чем прислушиваться к рейтингам ЮНЕСКО, вспоминать историю ВУЗа или его престиж.
Александр, раз уж зашла речь (и у меня нет оснований вам не верить), где именно в Киеве можно получить столь нужное классическое информатико — математическое образование?
Ну чтобы и курс алгоритмов, и лабораторные хотя бы приблизительно о реальных вещах, и преподаватели достойные?
Чтобы матан читался не впопыхах и на понимание, а не ради галочки?
Интересует вплоть до кафедры.
Я закончил ФИВТ КПИ. Мнение превратнейшее осталось.
UPD: я не рассматриваю ШАД, ибо он классикой не является :)
Если честно, я немного устал от спора :)
Уверен, вы поняли, что я хотел сказать. Возможно, бездумная замена библиотеки поможет в каком-то одном конкретном случае, но это лишь частность. И в идеале нужно понимать процессы максимально глубоко и задолго заранее появления проблемы, чтобы избежать лишней траты времени на обучение и поиск ошибки в продакшене.
Безусловно, кто-то специалист в вебе, кто-то в криптографии, кто-то в компиляторах, но базу нужно знать всем. И чем больше эта база у программиста — тем лучше.
Спасибо за дискуссию :)
Методом тыка, может, и получится, но не всегда и не везде.
А когда место станет узким, не будет достаточно времени разобраться в причинах и решением будет костыль, найденный на форуме. Было бы понимание изначально — костыль бы не появился.
Наверное, с фейсбуком получился неудачный пример (пример ближе скорее к 5 пункту).
Давайте рассмотрим несколько иную ситуацию. Скажем, есть некая кеширующая библиотека, которая является для вас черным ящиком. И вы совсем ничего не знаете о том, как именно внутри она работает. Более того, скажем, вы не знаете что такое хеш-таблица в принципе и как асимптотически растет время доступа к элементам с одинаковыми хешами. В такой ситуации очень вероятно, что рано или поздно ваше приложение начнет довольно сильно «подвисать». Вы запустите профайлер и обнаружите узкое место. Находите исходники библиотеки и читаете про коллизии. А дальше-то что? Вся ваша архитектура завязана на использование данной библиотеки. Переписывать приложение заново? Вставлять костыли? Искать новую библиотеку, которая использует деревья поиска? Мне кажется, если понимать изначально что и как работает на каком слое, то подобных проблем можно избежать. Безусловно невозможно знать всё, но ведь статья говорит о том, к чему надо стремиться.
Как минимум тем, что это быстрее. И тем, что вы вряд ли будете запусать отладчик во время написания сложного метода, а вот вывод в консоль состояния памяти оставить не так сложно. Также стоит добавить, что отсутствие отладчика дисциплинирует (мы не ищем легких путей). Если программист знает, что у него нет под рукой отладчика, чтобы понять «что этот странный кусок кода делает», то он приложит максимум усилий, чтобы по-настоящему хорошо разобраться в нем используя консольный вывод и здравую логику.
Как результат — он лучше сможет представить сценарий работы отдельно взятого метода, а в долгосрочной перспективе — всего проекта в целом.
Ага, вот написали фейсбук на PHP, потом запустили профайлер и поняли, что именно надо оптимизировать. До сих пор ищут способ «разогнать» интерпретатор.
КМК, отладчик отучает думать. Программист пытается разобраться с проблемой постфактум, уже написав код, а не изучая тонкие места в процессе написания (assert, cout).
Я думаю вы согласитесь, что «тонкие» места программы проще держать в памяти во время написания кода, а не после его релиза. В этом плане assert и cout являются чем-то вроде юнит-тестов, только для меньших участков кода.
Не понимать, что пишут на форумах — полбеды (не все, кто там пишут, сами понимают что именно им нужно). Куда страшнее когда не понимаешь и не имеешь желания вникать как работают фундаментальные вещи вроде хеш-таблиц и сортировок — в этом случае уже никак не вырастешь в профессионала.
Ну и проезд всяких там нерегулируемых перекрестков, когда сломался светофор и каждый из 6 входящих в перекресток дорог пытается вклинится
В итоге предложили денег сильно меньше чем я получал на тот момент в EPAM (запрашивал у них такую же зп, просто хотел заниматься чем-то интересным). Еще и ПМ сказал что у них постоянно авралы и вообще он ни за кем из соискателей гоняться не будет.
Адекватно объяснить почему запрашиваемую ЗП дать не может тоже не смог (видимо, просто был ограничен в бюджете и искал подешевле людей). Я впоследствии общался с одногруппниками из Самсунга — сказали, что для старта это очень высокая ЗП (был февраль 2012).
Должность была — Lead Engineer (у корейцев это как в простых компаниях Senior). К слову, в EPAM у меня была должность Software Engineer (для оценки зп)
Ну и да, на вопрос «как много людей проходит собеседование + такое тестовое задание» ответил «1 из 10».
Россия тоже делает попытки, вот весенняя статья например:
www.pravda.ru/science/eureka/inventions/21-03-2012/1111934-sverhprovodimost-0/#
Это, скорее, будет чем-то вроде альманаха полезных советов для будущих абитуриентов. Мне чего-то подобного в своё время очень не хватало.
Прежде всего молодой человек должен определиться со своей целью на жизнь. Да, я отдаю себе отчет в том, что спланировать (а тем более воплотить весь план) на долгую дистанцию невозможно. Но можно, по крайней мере, прислушаться к себе и понять: амбициозен ли ты по жизни, любишь фарс или предпочитаешь скромно знать больше остальных. Перечислить все факторы у меня тут точно не получится. Потому перед тем как решать куда поступать, постарайтесь с холодной головой и не оголяя шашек понять чего бы вам хотелось в жизни.
Если ваша конечная цель — зарабатывать денег больше, чем средняя заработная плата по стране и нет абсолютно никакого желания «сушить» мозги математикой — IT — хороший выбор. Для вас всегда найдется работа. И в этом нет абсолютно ничего зазорного. Более того, вам по прошествию лет никто и претензию предъявить не сможет: у вас будет такое же количество юридических регалий (читай диплом, корочка), как и у других ваших сверстников.
Если ваша цель — попытаться сделать мир лучше, участвовать в создании ослепляющего своей сложностью проекта (роботы, датамайнинг, высоконагруженные проекты), то готовьтесь к тому, что вам придется серьезно попотеть все эти годы в университете. И отдавайте себе отчет в том, что блеск от только что спущенного робота куда приятнее чем годы рутинной работы над бумагой и отлавливание непонятных ошибок компилятора gcc. Это необходимая плата и это стоит заранее учитывать.
Теперь более предметно про украинское образование. Я не знаю как обстоят дела в других городах (но думаю что не менее плачевно), могу лишь сказать про Киев и Симферополь. Если вам повезло и вы планируете учиться в одном из этих городов, то вот те крупицы информации, что я понял, закончив уже университет.
1. Если вы планируете жить в общежитии, то я бы советовал больше времени проводить в библиотеке — там тихо (для меня это было очень важно), мног книги, библиотекари всегда рядом и, что самое важное — нет отвлекающих/соблазняющих факторов в виде выпивающего/играющего однокомнатника.
2. Я уверен что должного состава преподавателей и курсов у вас наверняка не будет (т.е. может быть сильный алгоритмист, но полное отсутствие дискретки или матана и наборот). Потому тут 2 варианта: или предварительно договориться с преподавателем на соседней кафедре/факультете, или учиться самому, прорешивая задачники самостоятельно.
3. Если ваша конечная цель — программирование, не пренебрегайте ACM (это такие специальные студенческие соревнования на скорость реализации и придумывания алгоритмов. Относитесь к этому как к процессу прорешивания сборника задач Сканави.).
Это очень важно, его значение сложно переоценить. Желательно предварительно узнать есть ли в вашем будущем вузе преподаватели и команды, которые этим занимаются.
Будь я на 6 лет младше, я бы отдал предпочтение тому вузу, чья команда на протяжении нескольких лет стабильно выступает лучше.
4. Не спешите учить много языков программирования сразу, выберите один рабочий (я бы советовал начинать с java/C#, но выбор за вами). Не гонитесь за технологиями. Жизнь — штука и короткая, и длинная одновременно. Выучить технологии на полученной в ACM базе будет куда проще и (главное!) осознаннее.
5. Если вы таки попали в ACM-команду, у вас хороший тренер и преподаватели дискретки, матана и ангема, то не спешите идти на работу. Не нужно форсировать события, учитесь. В конечном счете вы заработаете больше денег, чем успеете «нахватать» за эти пару лет совмещенки.
6. Касательно Симферополя. В ТНУ на матфаке есть Александр Иванович Козлов. На нем держится все движение алгоритмистов. Из года в год он выступае со своими командами на финалах чемпионата мира. Ребята действительно подкованы.
7. В Киеве в КНУ есть Медведев Михаил Геннадиевич.
mi.unicyb.kiev.ua/ru/page/medvedev-mihail-gennadievich-rus
Он является оплотом киевского движения :)
Может показаться, что я слишком много уделяю внимания персоналиям. Но я понял, что пользы от одного-двух заинтересованных людей может быть гораздо больше, чем прислушиваться к рейтингам ЮНЕСКО, вспоминать историю ВУЗа или его престиж.
Ну чтобы и курс алгоритмов, и лабораторные хотя бы приблизительно о реальных вещах, и преподаватели достойные?
Чтобы матан читался не впопыхах и на понимание, а не ради галочки?
Интересует вплоть до кафедры.
Я закончил ФИВТ КПИ. Мнение превратнейшее осталось.
UPD: я не рассматриваю ШАД, ибо он классикой не является :)
Уверен, вы поняли, что я хотел сказать. Возможно, бездумная замена библиотеки поможет в каком-то одном конкретном случае, но это лишь частность. И в идеале нужно понимать процессы максимально глубоко и задолго заранее появления проблемы, чтобы избежать лишней траты времени на обучение и поиск ошибки в продакшене.
Безусловно, кто-то специалист в вебе, кто-то в криптографии, кто-то в компиляторах, но базу нужно знать всем. И чем больше эта база у программиста — тем лучше.
Спасибо за дискуссию :)
А когда место станет узким, не будет достаточно времени разобраться в причинах и решением будет костыль, найденный на форуме. Было бы понимание изначально — костыль бы не появился.
Давайте рассмотрим несколько иную ситуацию. Скажем, есть некая кеширующая библиотека, которая является для вас черным ящиком. И вы совсем ничего не знаете о том, как именно внутри она работает. Более того, скажем, вы не знаете что такое хеш-таблица в принципе и как асимптотически растет время доступа к элементам с одинаковыми хешами. В такой ситуации очень вероятно, что рано или поздно ваше приложение начнет довольно сильно «подвисать». Вы запустите профайлер и обнаружите узкое место. Находите исходники библиотеки и читаете про коллизии. А дальше-то что? Вся ваша архитектура завязана на использование данной библиотеки. Переписывать приложение заново? Вставлять костыли? Искать новую библиотеку, которая использует деревья поиска? Мне кажется, если понимать изначально что и как работает на каком слое, то подобных проблем можно избежать. Безусловно невозможно знать всё, но ведь статья говорит о том, к чему надо стремиться.
Как результат — он лучше сможет представить сценарий работы отдельно взятого метода, а в долгосрочной перспективе — всего проекта в целом.
Я думаю вы согласитесь, что «тонкие» места программы проще держать в памяти во время написания кода, а не после его релиза. В этом плане assert и cout являются чем-то вроде юнит-тестов, только для меньших участков кода.