Как стать автором
Обновить

Комментарии 20

спасибо! очень пригодится!

Пожалуйста )

а можете написать чем сейчас занимаетесь, как проходит процесс работы, по каким методологиям работаете? было бы очень интересно узнать

Сейчас я работаю над Windows Core OS и Windows 10x. Каких-то модных и крутых процессов у нас нет, хотя это зависит от проекта и области в которой работаешь, Microsoft большой и имеет много проектов разной направленности. У нас есть период когда работаем над новыми фичами и есть период когда фиксим баги, если не успеваешь реализовать фичу (что нежелательно), её перенесут на следующую итерацию или релиз. В приоритете не скорость, а качество. Шутникам про баги в Windows скажу, что проект операционной системы по сложности значительно отличается от всего с чем вы имели когда-либо дело.
Тут вообще много чего можно написать, на отдельную статью потянет.

здорово! а можете эту отдельную статью написать? очень были бы вам тут все благодарны! потому что описание внутренностей такого уровня проектов это наверно самое интересное!

Положу себе в список статей которые нужно написать )
Вопрос, который наверно интересует всех больше всего: пропорционально ли усилие, затраченное на подготовку и прохождение собеседований, усилиям в обычном рабочем процессе? И какой коэффициент пропорциональности?
Где-то читал, что программисты больше всего учатся когда готовятся к поиску новой работы.
Здесь надо относится к процессу подготовки не как к натаскиванию на прохождение интервью в Микрософт, а как к профессиональному росту. Стараться получать знания которые будут актуальны и после интервью, а не сдал и забыл. Я в списках указал далеко не всё что я изучал. Я бы ещё добавил в список книгу Code Complete. Все эти знания помогли быстрее адаптироваться на новом месте. Процесс подготовки напрямую связан с тем что будет происходить в рабочей обстановке. Конечно вы не будете каждый день решать задачи по программированию и писать хитрые алгоритмы. Но смысл этих задач в другом. В работе программиста достаточно много рутины и места для проявления смекалки не так много. Задачи по программированию это такой концентрат программисткой мудрости. Многие из них можно решить несколькими способами, разными по скорости и памяти. Эти задачки заставляют подумать об особых случаях — переполнение целого числа, ситуации когда алгоритм работать не будет, подсмотреть элегантные способы решения.
Вот пример задачи:

Степень числа определяется как количество преобразований числа пока оно не будет равно 1 по следующему алгоритму:
  1. Если число (x) делится на 2 — разделить на 2
  2. Иначе x = x * 3 + 1

Нужно реализовать функцию int GetKth(int low, int high, k). Она рассчитывает степени чисел от low до high включительно и сортирует их по степени в порядке возрастания. Если числа имеют одинаковые степени — расставить по порядку их значений. Функция вовзращает k-е число в этом массиве. 1 <= low <= high <= 1000.

GetKth(12, 15, 2) = 13
GetKth(1, 1, 1) = 1
GetKth(1, 1000, 777) = 570


Я знаю три решения этой задачи, решение №2 модификация решения №1. Решение №3 — очень остроумное, оно значительно сокращает время рассчёте степеней чисел.
Плюс у компаний есть свои любимые темы, в зависимости от специфики. В Windows повсюду LinkedLists, в гугле — графы и деревья.
Спасибо за статью, немного мотивирует даже) Есть пара вопросов: 1. Какой у вас был уровень английского во время первой поездки в Мюнхен и прохождения собеседования там. 2. Какой у вас был опыт работы опять же перед первой поездкой в Мюнхен на интервью.
  1. Это был мой первый опыт общения с носителями языка. Язык я учил на слух по мультикам, кино и заучивал темы которые задавали в универе. Сейчас есть много интересного контента на английском в ютубе. Над грамматикой я не заморачивался. Знать слова и выражения на слух куда важнее. Когда вы учили русский, то не начинали с грамматики. На мой взгляд языковые школы это скорее симуляция обучения. Они мне помогли только когда я готовился к TOEFL, мы разбирали тесты и к ним готовились. По итогу у меня получился высокий бал, может 98, я не помню.
  2. Я уже работал чуть меньше года программистом C#, плюс ко всему получил до подачи резюме штук 5 сертификатов по стеку технологий .Net, чтобы указать их в резюме. В свободное время очень много программировал, поэтому знал и С++ и DirectX. Всё это указал в резюме. Туда же подойдут и дипломные курсовые, опять же если они действительно стоящие. На первом курсе моей курсовой было написать на Дельфи (Pascal) игру где самолётик расстреливает летящие на него объекты, такой тип игр называется скроллер. Было достаточно нарисовать треугольнички и палочки. Я пошёл дальше и несколько месяцев всё свободное время тратил на курсовик — в итоге от моей курсовой обалдели все. Там были, 2D графика, анимации, звуки стрельбы, уровни сложности, меню. Вот её я и указал. Сейчас можно участвовать в опен-сорсах, модить. Скажем так, увлечённый программированием человек выглядит в глазах работодателя выгоднее чем просто программист.

Насколько были нужны на интервью глубокие нюансы языка C++?

На интервью могут задавать вопросы:
1. что не так с этим классом (C++)
2. В чём разница между двумерным массивом и массивом указателей.
3. Решение могут попросить реализовать на С++ и пр.

Если работа предполагает использование С++, то его надо знать хорошо. Если вы устраиваетесь на Front-End, то знать его конечно не обязательно. Но как студенту который подаёт на стажировку я думаю знать нужно, потому как не угадаете какие команды будут набирать себе стажёров в этом году.
НЛО прилетело и опубликовало эту надпись здесь
И что в этом плохого? Я вот искренне хотел бы в алгоритмы погрузиться так чтобы и по ночам снились. Вот только не хватает силы воли, а интерес недостаточно высок чтобы лень перебороть) Даже безотносительно работы в каких то там компаниях.
Купите себе Кормена на русском в бумажном виде.
Можете рассказать, почему разочаровались в мюнхенском университете, чем не понравилась учеба там?
Первый звоночек был когда предметы по программе магистратуры процентов на 70 повторяли то же что я проходил в БГУИР — теория игр, например. Окончательный звоночек прозвенел, во время предмета Software Engineering где-то на восьмой лекции. В Германии конспект писать не заставляют, там всё показывают на слайдах, которые потом можно скачать. Во время лекции дают лабораторки — с сайта скачиваешь заготовку проекта на Java, выполняешь и потом загружаешь. Задачи проверяют лаборанты, первым справившимся — желатиновые медведи ))), это была такая фишка профессора. Так вот на 8й лекции мы проходили паттерн адаптер и в скачанном проекте был комментарий типа «Вставить сюда», одна строка из слайда. Если раньше это можно было объяснить «вначале курса лёгкие примеры», то сейчас пришла мысль «какой ерундой я тут занимаюсь». И это было общее впечатление от учёбы там. У меня уже был опыт работы и я понимал что и для чего нужно, в то время как мои коллеги (в Германии нету групп и потоков) только только устраивались на свои первые работы.

Годам к 30 у меня начало складываться понимание почему так происходило и происходит. Не утверждаю что именно так всё на самом деле и есть, просто моё мнение. Университеты и школы это такой же инфобизнес как и все остальные (вспоминаем портнягина и аяза) только со своей спецификой — более уважаемы и пользуется поддержкой госудрства. В США студенты берут огромные кредиты которые потом не могут выплатить, потому что нету работы для египтолога, кроме как учить других египтологии. Поэтому у них сейчас кризис студенческих кредитов, потому что универы просекли фишку и понапридумывали «программ обучения», заманили молодёжь, которой потом расплачиваться. Америка — это другой мир, поэтому оставим её. Давайте посмотрим на социальные государства, такие как Германия, Россия (с т.зр. американцев в РФ социализм как и во Франции, Венесуэле и Беларуси).

В Германии и СНГ школы и универы получают деньги от министерства образования, которое в свою очередь откусывает их от бюджета, а бюджет в свою очередь формируется из налогов — НДС, Подоходный, ФСЗН, Пенсионный и тп. В СНГ есть ещё студенты-платники. Для универа/школы выгодно набрать побольше студентов, под них надо нанимать преподов, лаборантов, персонал. Платники платят деньги, а всех кто на бюджете можно обосновать для получения денег от мин. образования. Есть такое понятие как «освоение бюджета», это когда в конце года бюджетная организация тратит деньги не освоенные из бюджета на этот год. Они могут закупать канцелярию, делать ремонты по второму разу, покупать оборудование, выписывать премии и пр. Я уверен, что есть много бухгателрских уловок как освоить эти деньги с пользой для конкретных лиц. Если они отрапортуют, что потратили не всё, то на следующий год выделят меньше. Надо рапортовать, что еле хватило, тогда выделят на следующий год больше. Просто так попросить денег нельзя, траты надо обосновать. Поэтому для универа больше студентов, преподов, персонала, предметов, программ обучения это хорошо. А резать, сокращать, оптимизировать — это всё плохо. На мой взгляд, что именно поэтому программы обучения нашпигованы предметами разной степени нужности и полезности. Почему надо учить историю в техническом вузе? Варианты ответов:
  • Вы изучаете её углубленно — за один семестр больше чем за все годы школы
  • Задача университета воспитывать гражданина
  • Чтобы заполнить формат 5ти летней программы обучения по максимуму и получить под неё бюджет

Исходя из этого — есть университеты где действительно учат, но тем не менее принимают правила этой бюрократичейской игры. Т.е. часть времени студентов расходуется на бюрократию, и есть универы чистые игроки, которые попросту эксплуатируют эту систему. Тут можно статью писать на эту тему. Вот в Германии университеты по-своему и решают эту задачу привлечения денежных средств. Это моё мнение, могу ошибаться.
Обстоятельный ответ, спасибо!
Отличная статья! Думаю такой полезный сайт пригодится: www.fdstudy.com Можно выбрав университет подать документы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории