SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Write a program that
prints the numbers from 1 to 100.
But for multiples of three print “Fizz” instead of the
number
and for the multiples of five print “Buzz”.
For numbers which are multiples of both three and
five print “FizzBuzz”.
Что это было?
The "Fizz-Buzz test" is an interview question designed
to help filter out the 99.5% of programming job
candidates who can't seem to program their way out
of a wet paper bag.
http://wiki.c2.com/?FizzBuzzTest
Нынче даже есть тюториалы на эту задачу, как на
HelloWorld!

Video: How to write FizzBuzz in Ruby, with Test-
Driven Development - http://youtu.be/CHTep2zQVAc
Что надо заметить по
условию задачи?
• А какая разница, до 100 или до 1000? Ведь число
100 это всего лишь символ! Что изменится, если
будем выводить от 0 до 16; от -50 до 50?
• Деление и на 3 и на 5 это отдельный случай или
он вообще не нужен?
Собеседование на
позицию Java Developer
Александра Дмитренко
Цель
Пройти собеседование,
понять свои ошибки и как
правильно себя вести
Задачи на час
посмотреть основное, что спрашивают Java
разработчиков на собеседованиях
как себя позиционировать в этот ответственный
момент
какие вопросы задать собеседующему?
а также, что отвечать американскому
таможеннику ;)
Какие мысли вас побуждают
прийти на собеседование?
Устроиться на работу (ходил бы я на «экзамены»
иначе?)
Проверить свои знания, и понять «на что я
гожусь»
Посмотреть, что нынче на рынке в цене и куда мне
надо двигаться.
Первое
Подготовим себя к
собеседованию
Тренды
• Java, C# как обычно :)
• JavaScript, Python, Scala, NodeJS, ReactJS
• БД реляционные и нет нужны всем и всегда.
• Cloud, Security, DevOps
Что не в моде
• PHP, Perl, Assembler, Flex, Flash
• manual QA
Как надо учить?
После прочтения любой информации вы должны
знать ответы на следующие вопросы:
О чем я узнал
Зачем это используется
Принцип работы (желательно попробовать)
Плюсы-минусы
Достаточно ли так учить?
Нет, поскольку такие знания дают лишь общее
понимание и возможность подумать над
специфичным вопросом. (Подумать над вопросом и
предположить что-то это разное. Чтоб думать, надо
иметь материал для размышления.)


Еще надо иметь свой конек.
Инструкция действий перед
собеседованием
1. Сядьте/встаньте широко, чтоб занять
собой побольше места, ощутите силу в
себе. Fake it ill you make it ->
Тестостерон (могущество, власть)
повысится, кортизол (боязнь) понизится.
2. Почувствуйте желание и интерес пройти
собеседование, ведь вас хотят увидеть, услышать,
узнать! И вы захотите!
Второе
Собеседование
Играем в открытую:
можно подсказывать, выкрикивать,
если очень надо, и шутить 😉 
Зачем нужна JVM?
Зачем: дает возможность выполнять
одинаковый код на любом устройстве, где
установлена. "Write once, run debug everywhere"
Принцип работы: перевести писанину дева в
байт код (свой язык) и читать его где угодно.
Плюсы/минусы: 

+ универсальность 

- надо устанавливать дополнительно

- могла бы быть быстрее
Разница между Java и C#
• C# официально работает только для Windows, а
Java для всех ОС
• С# как язык более развитый, а Java требуются
библиотеки для достижения аналогичного
синтаксиса языка
• Для Java есть много больше фреймворков и
развитая community.
ArrayList vs LinkedList
В 90% случаев используйте ArrayList.
LinkedList удобен только для вставки/удаления из
середины массива.

HashMap
• Сложность поиска может быть О(1), О(n),
O(log(n))
Exceptions
• Проверяемые - которые можно предсказать и
обработать их появление блоком try-catch или
явно пробрасывать более общим методам
(FileNotFoundException)
• Непроверяемые - могут «случайно» случится во
время выполнения программы
(NullPointerException)
Иерархия Throwable
Модель памяти Java
Деревья
Зачем: дает возможность разделить данные,
чтоб их легче было найти
Плюсы/минусы: 

+ ускоряет поиск 

- любой дополнительный алгоритм добавляет
сложность
https://www.linkedin.com/pulse/software-engineer-detained-several-hours-us-customs-given-fairchild
Что нынче спрашивают при
въезде в Штаты
Сложность алгоритмов О()
• 1 (const) - обращение к элементу массива,
вставка в HashTable
• n - проход по массиву или обращение к элементу
LinkedList()
• log(n) - древовидная структура (бинарный поиск)
• n^2 - вложенный цикл (пузырьковая сортировка)
• n^e - поиск оптимального пути на графе
Пример задачи
Написать и определить сложность алгоритма
записи слова задом наперед используя цикл.
Его величество Spring
Зачем: DI - Dependency Injection: объекты обритают
значения, заданные из-вне. Позволяет в зависимости от
настроек подставлять разные значения в те же классы.
Принцип работы: Используя конструкторы, геттеры и
сеттеры внедряются значения в классы.
Плюсы/минусы: 

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

+/- дает возможность на лету менять реализацию даже
стандрартных методов. В итоге не всегда очевидна логика.

- работает через рефлекшин, что замедляет работу
REST
Зачем: Передача запрос-ответ информации и
статуса выполнения
Принцип работы: использует т.н. глаголы
GET, POST, PUT и DELETE для передачи
действия над сопровождающей информацией.
Плюсы/минусы: 

+ легкий, быстрый, не нуждается в некой
структуре передаваемого сообщения 

- для общения только между двумя точками
SOAP
Зачем: Передача запрос-ответ информации и статуса
выполнения
Принцип работы: использует XML - строго
типизированный шаблон для передачи иформации.
Плюсы/минусы: 

+ стандартизирован, предусматривает разные варианты 

+ позволяет общатся более чем двум точкам

+ в случае ошибки сам информирует, как ее исправить

- не все любят работать с XML, может вылиться в
тяжелую логику только понимания ответа и написания
запроса.
SQL
Зачем: хранит данные
Принцип работы: имеет структуру таблиц, с
заданными ограничениями (триггерами) и позволяет
хранить процедуры обработки данных.
Плюсы/минусы: 

+ удобна для хранения консистентной информации,
особенно если пользоваться нормальными
формами.

- тратится много места бессмысленно, если
информация «блуждающаяя» (не всегда есть)
NoSQL
Зачем: хранит данные
Принцип работы: в файлах хранится только
значимая информация.
Плюсы/минусы: 

+ удобна для хранения большого количества
информации, при том, что записываются
только непустые значения, для BigData

- менее легко начать пользоваться, еще не
достаточно развит.
ORM (Hibernate)
Зачем: Репрезентирует структуру БД в коде
программы, дает возможность писать запросы
не через SQL а через общий интерфейс для
разных баз, создавать базу по структуре.
Maven
Зачем и Принцип работы: с помощью файла
pom.xml по прописанным библиотекам и структуре
проекта, мавеном может загружать бибилиотеки,
собирать проект учитывая заданные настройки,
генерировать документацию, запускать тесты…
Плюсы/минусы:

+ мавен операции дают возможность не прописывать
конкретики запустить билд, как необходимо в Ant

- не учитывает разницу между прошлой и текущей
сборкой, не имеет механизма подгрузки из кэша
сделанных задач, возможно, с других компьютеров,
как Gradle.
Должна быть гордость,
нет скромности
1. Гордость за свои достижения,
ну и достижения тоже (GitHub)
2. За скромность потом бывает
мучительно обидно, 

жалко и стыдно перед 

собой же. А ведь мог же
похвастаться!
Будет ли проблемой найти
общий язык с собеседующим?
Что собеседующего интересует
(по пирамиде Маслоу)?
1. Зарплата - не очень, не всегда (физический уровень)
2. Проблемы на вашей текущей работе (плохой начальник,
неприятный коллектив) - неа.
3. Кто вы такой, к какой соц группе принадлежите? - пожалуй,
да. Ведь он ищет человека в команду, все должно сростись!
4. В идеале ему интересно, чтоб вы подошли работе, чтоб вам
ее было в меру интересно делать и чтоб он не переживал,
что может вас потерять в любой момент.
5. Тот ли вы человек, который поможет заказчику Get Things
Done и проект состоялся?
Предлагайте себя как возможность
развития / роста проекта
Не как индус-паттерн
Пытайтесь понять, к чему ведет собеседующий,
задавая свой вопрос. Если вы догадались и сами
расскажете ответы на его будущее вопросы -
вы выиграли битву!
Зачем знать, о чем проект, если вы
заранее согласны на любой или что
спросить собеседующего?
1. Как будет выглядеть моя каждодневная работа?
2. Как производится слежка за качеством кода, пишутся ли
тесты, есть ли CI, какие метрики?
3. Как ищутся/находятся баги? Сколько их? Какой процесс
фикса?
4. Какими фреймворками пользуетесь? Сколько времени
занимает настройка среды разработки?
5. Какие у вас сроки? Is your hair always on fire?
6. Ходите ли вы на team-buildings?
Что собеседующему нравится о его
работе?
Хороший ответ
• Приятно делать мою работу
• Нам на работе весело
• Мои коллеги умные, интересные и дружелюбные
• Менеджмент уважает инженеров
Слабый ответ
Надо платить по счетам. Работа не пыльная. Сильно никто не
ругает. Особо нет напряга. Молчание.
Общие советы
• Читайте новости, будет прекрасно, если вы
расскажете собеседующему что-то «из
последнего».
• Покажите, что вы разнопланово развиты, ведь
чем больше у вас способностей, тем полезнее вы
можете быть. Но уделять достойное место
профессии все равно надо.
Кому достался
хрустальный микрофон?
Тому, кто не переживал и не стремился к
нему, кто просто был искренним и
достаточно хорошим.
Что вы ожидали, когда шли
на доклад?
Что я вас научу ответам на вопросы, которые
задают на собеседовании?
Что я хотя бы дам знания, какую информацию
нужно готовить?
Что я научу себя правильно вести?
Что вы получили от доклада?
(10 сек надо подумать)
Руководство к действиям:
• Создать аккаунт на GitHub и что-то новое
выучить, усовершенствовать имеющиеся.
• Найти перед кем и показать себя и свои знания,
быть оценённым, когда наступит момент
готовности.
• Желание быть достойным самого лучшего.
Полезные ссылки
• Соберись, «тряпка»: https://www.ted.com/playlists/352/
talks_to_watch_before_a_job_in
• Вопросы собеседующему: https://
medium.freecodecamp.com/how-to-interview-as-a-
developer-candidate-b666734f12dd
• Выбор между REST и SOAP https://blog.smartbear.com/
apis/understanding-soap-and-rest-basics/
• Коллекции: https://habrahabr.ru/post/162017/
• Ну и читайте документацию ;)
Как меня найти
• Twitter: @LadyInIT
• LinkedIn, Facebook: Olexandra Dmytrenko

Mais conteúdo relacionado

Mais procurados

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Ontico
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testingbeched
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechZlit
 
Мульти-блиц выступление на Стачка-2012
Мульти-блиц выступление на Стачка-2012Мульти-блиц выступление на Стачка-2012
Мульти-блиц выступление на Стачка-2012Alexey Mahotkin
 
Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)CleverDATA
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers DownÞorgeir Ingvarsson
 
Basics of assertions in automated testing
Basics of assertions in automated testingBasics of assertions in automated testing
Basics of assertions in automated testingÞorgeir Ingvarsson
 
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромКак писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромKirill Kovalchuk
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 
Writing a computer vision paper
Writing a computer vision paperWriting a computer vision paper
Writing a computer vision paperAnton Konushin
 
Эффективные email коммуникации
Эффективные email коммуникацииЭффективные email коммуникации
Эффективные email коммуникацииDenis Tsvettsih
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Dmytro Zharii
 
UI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" PatternUI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" PatternÞorgeir Ingvarsson
 
Про то, что (лекция для студентов об адаптации к работе)
Про то, что (лекция для студентов об адаптации к работе)Про то, что (лекция для студентов об адаптации к работе)
Про то, что (лекция для студентов об адаптации к работе)Alexey Rybak
 
Mortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation EngineersMortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation EngineersÞorgeir Ingvarsson
 

Mais procurados (20)

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit Tech
 
Мульти-блиц выступление на Стачка-2012
Мульти-блиц выступление на Стачка-2012Мульти-блиц выступление на Стачка-2012
Мульти-блиц выступление на Стачка-2012
 
JBatch
JBatchJBatch
JBatch
 
Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)
 
Генерация программы поведения игрового персонажа по естественно-языковой спец...
Генерация программы поведения игрового персонажа по естественно-языковой спец...Генерация программы поведения игрового персонажа по естественно-языковой спец...
Генерация программы поведения игрового персонажа по естественно-языковой спец...
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers Down
 
Joker2014
Joker2014Joker2014
Joker2014
 
Basics of assertions in automated testing
Basics of assertions in automated testingBasics of assertions in automated testing
Basics of assertions in automated testing
 
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромКак писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 
Writing a computer vision paper
Writing a computer vision paperWriting a computer vision paper
Writing a computer vision paper
 
Extrproj
 Extrproj Extrproj
Extrproj
 
Эффективные email коммуникации
Эффективные email коммуникацииЭффективные email коммуникации
Эффективные email коммуникации
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
 
UI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" PatternUI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" Pattern
 
Про то, что (лекция для студентов об адаптации к работе)
Про то, что (лекция для студентов об адаптации к работе)Про то, что (лекция для студентов об адаптации к работе)
Про то, что (лекция для студентов об адаптации к работе)
 
Mortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation EngineersMortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation Engineers
 

Semelhante a Собеседование на позицию Java Developer

Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HRIT-HR Club
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Презентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начатьПрезентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начатьDmitriy Polisadov
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Product discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехиProduct discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехиNikita Efimov
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияzheldak
 
MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7Alexander Levantovsky
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныRoman Dvornov
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
Интернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятияИнтернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятияnomoretears
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Sigma Software
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)Alexander Gornik
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковAlex Tumanoff
 

Semelhante a Собеседование на позицию Java Developer (20)

Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HR
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис ВоскобойникКак работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
 
Презентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начатьПрезентация: 1С-Bitrix — как начать
Презентация: 1С-Bitrix — как начать
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
2 bdw.key
2 bdw.key2 bdw.key
2 bdw.key
 
BDD
BDDBDD
BDD
 
Product discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехиProduct discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехи
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
 
MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
Интернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятияИнтернет в помощь команде разработчиков культурно массового мероприятия
Интернет в помощь команде разработчиков культурно массового мероприятия
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
 

Mais de Olexandra Dmytrenko

Mais de Olexandra Dmytrenko (9)

R2DBC - Good Enough for Production?
R2DBC - Good Enough for Production?R2DBC - Good Enough for Production?
R2DBC - Good Enough for Production?
 
Playing programming with kids and bb-8
Playing programming with kids and bb-8Playing programming with kids and bb-8
Playing programming with kids and bb-8
 
Playing Programming with Kids and BB-8
Playing Programming with Kids and BB-8Playing Programming with Kids and BB-8
Playing Programming with Kids and BB-8
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage Collector
 
Рекурсия. Поиск
Рекурсия. ПоискРекурсия. Поиск
Рекурсия. Поиск
 
HTML Tables
HTML TablesHTML Tables
HTML Tables
 
Functional Programming
Functional ProgrammingFunctional Programming
Functional Programming
 
Discovering Lambdas (Speech)
Discovering Lambdas (Speech)Discovering Lambdas (Speech)
Discovering Lambdas (Speech)
 
itake
itakeitake
itake
 

Собеседование на позицию Java Developer

  • 1. Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
  • 2. Что это было? The "Fizz-Buzz test" is an interview question designed to help filter out the 99.5% of programming job candidates who can't seem to program their way out of a wet paper bag. http://wiki.c2.com/?FizzBuzzTest Нынче даже есть тюториалы на эту задачу, как на HelloWorld!
 Video: How to write FizzBuzz in Ruby, with Test- Driven Development - http://youtu.be/CHTep2zQVAc
  • 3. Что надо заметить по условию задачи? • А какая разница, до 100 или до 1000? Ведь число 100 это всего лишь символ! Что изменится, если будем выводить от 0 до 16; от -50 до 50? • Деление и на 3 и на 5 это отдельный случай или он вообще не нужен?
  • 4. Собеседование на позицию Java Developer Александра Дмитренко
  • 5. Цель Пройти собеседование, понять свои ошибки и как правильно себя вести
  • 6. Задачи на час посмотреть основное, что спрашивают Java разработчиков на собеседованиях как себя позиционировать в этот ответственный момент какие вопросы задать собеседующему? а также, что отвечать американскому таможеннику ;)
  • 7. Какие мысли вас побуждают прийти на собеседование? Устроиться на работу (ходил бы я на «экзамены» иначе?) Проверить свои знания, и понять «на что я гожусь» Посмотреть, что нынче на рынке в цене и куда мне надо двигаться.
  • 9. Тренды • Java, C# как обычно :) • JavaScript, Python, Scala, NodeJS, ReactJS • БД реляционные и нет нужны всем и всегда. • Cloud, Security, DevOps
  • 10. Что не в моде • PHP, Perl, Assembler, Flex, Flash • manual QA
  • 11. Как надо учить? После прочтения любой информации вы должны знать ответы на следующие вопросы: О чем я узнал Зачем это используется Принцип работы (желательно попробовать) Плюсы-минусы
  • 12. Достаточно ли так учить? Нет, поскольку такие знания дают лишь общее понимание и возможность подумать над специфичным вопросом. (Подумать над вопросом и предположить что-то это разное. Чтоб думать, надо иметь материал для размышления.) 
 Еще надо иметь свой конек.
  • 13. Инструкция действий перед собеседованием 1. Сядьте/встаньте широко, чтоб занять собой побольше места, ощутите силу в себе. Fake it ill you make it -> Тестостерон (могущество, власть) повысится, кортизол (боязнь) понизится. 2. Почувствуйте желание и интерес пройти собеседование, ведь вас хотят увидеть, услышать, узнать! И вы захотите!
  • 15. Играем в открытую: можно подсказывать, выкрикивать, если очень надо, и шутить 😉 
  • 16. Зачем нужна JVM? Зачем: дает возможность выполнять одинаковый код на любом устройстве, где установлена. "Write once, run debug everywhere" Принцип работы: перевести писанину дева в байт код (свой язык) и читать его где угодно. Плюсы/минусы: 
 + универсальность 
 - надо устанавливать дополнительно
 - могла бы быть быстрее
  • 17. Разница между Java и C# • C# официально работает только для Windows, а Java для всех ОС • С# как язык более развитый, а Java требуются библиотеки для достижения аналогичного синтаксиса языка • Для Java есть много больше фреймворков и развитая community.
  • 18. ArrayList vs LinkedList В 90% случаев используйте ArrayList. LinkedList удобен только для вставки/удаления из середины массива.

  • 19. HashMap • Сложность поиска может быть О(1), О(n), O(log(n))
  • 20. Exceptions • Проверяемые - которые можно предсказать и обработать их появление блоком try-catch или явно пробрасывать более общим методам (FileNotFoundException) • Непроверяемые - могут «случайно» случится во время выполнения программы (NullPointerException)
  • 23. Деревья Зачем: дает возможность разделить данные, чтоб их легче было найти Плюсы/минусы: 
 + ускоряет поиск 
 - любой дополнительный алгоритм добавляет сложность
  • 25. Сложность алгоритмов О() • 1 (const) - обращение к элементу массива, вставка в HashTable • n - проход по массиву или обращение к элементу LinkedList() • log(n) - древовидная структура (бинарный поиск) • n^2 - вложенный цикл (пузырьковая сортировка) • n^e - поиск оптимального пути на графе
  • 26. Пример задачи Написать и определить сложность алгоритма записи слова задом наперед используя цикл.
  • 27. Его величество Spring Зачем: DI - Dependency Injection: объекты обритают значения, заданные из-вне. Позволяет в зависимости от настроек подставлять разные значения в те же классы. Принцип работы: Используя конструкторы, геттеры и сеттеры внедряются значения в классы. Плюсы/минусы: 
 + дает возможность конфигурировать проект по сути не влазя в его код, что удобно хотябы для разработки и тестирования с разными настройками 
 +/- дает возможность на лету менять реализацию даже стандрартных методов. В итоге не всегда очевидна логика.
 - работает через рефлекшин, что замедляет работу
  • 28. REST Зачем: Передача запрос-ответ информации и статуса выполнения Принцип работы: использует т.н. глаголы GET, POST, PUT и DELETE для передачи действия над сопровождающей информацией. Плюсы/минусы: 
 + легкий, быстрый, не нуждается в некой структуре передаваемого сообщения 
 - для общения только между двумя точками
  • 29. SOAP Зачем: Передача запрос-ответ информации и статуса выполнения Принцип работы: использует XML - строго типизированный шаблон для передачи иформации. Плюсы/минусы: 
 + стандартизирован, предусматривает разные варианты 
 + позволяет общатся более чем двум точкам
 + в случае ошибки сам информирует, как ее исправить
 - не все любят работать с XML, может вылиться в тяжелую логику только понимания ответа и написания запроса.
  • 30. SQL Зачем: хранит данные Принцип работы: имеет структуру таблиц, с заданными ограничениями (триггерами) и позволяет хранить процедуры обработки данных. Плюсы/минусы: 
 + удобна для хранения консистентной информации, особенно если пользоваться нормальными формами.
 - тратится много места бессмысленно, если информация «блуждающаяя» (не всегда есть)
  • 31. NoSQL Зачем: хранит данные Принцип работы: в файлах хранится только значимая информация. Плюсы/минусы: 
 + удобна для хранения большого количества информации, при том, что записываются только непустые значения, для BigData
 - менее легко начать пользоваться, еще не достаточно развит.
  • 32. ORM (Hibernate) Зачем: Репрезентирует структуру БД в коде программы, дает возможность писать запросы не через SQL а через общий интерфейс для разных баз, создавать базу по структуре.
  • 33. Maven Зачем и Принцип работы: с помощью файла pom.xml по прописанным библиотекам и структуре проекта, мавеном может загружать бибилиотеки, собирать проект учитывая заданные настройки, генерировать документацию, запускать тесты… Плюсы/минусы:
 + мавен операции дают возможность не прописывать конкретики запустить билд, как необходимо в Ant
 - не учитывает разницу между прошлой и текущей сборкой, не имеет механизма подгрузки из кэша сделанных задач, возможно, с других компьютеров, как Gradle.
  • 34. Должна быть гордость, нет скромности 1. Гордость за свои достижения, ну и достижения тоже (GitHub) 2. За скромность потом бывает мучительно обидно, 
 жалко и стыдно перед 
 собой же. А ведь мог же похвастаться!
  • 35. Будет ли проблемой найти общий язык с собеседующим?
  • 36. Что собеседующего интересует (по пирамиде Маслоу)? 1. Зарплата - не очень, не всегда (физический уровень) 2. Проблемы на вашей текущей работе (плохой начальник, неприятный коллектив) - неа. 3. Кто вы такой, к какой соц группе принадлежите? - пожалуй, да. Ведь он ищет человека в команду, все должно сростись! 4. В идеале ему интересно, чтоб вы подошли работе, чтоб вам ее было в меру интересно делать и чтоб он не переживал, что может вас потерять в любой момент. 5. Тот ли вы человек, который поможет заказчику Get Things Done и проект состоялся?
  • 37. Предлагайте себя как возможность развития / роста проекта
  • 38. Не как индус-паттерн Пытайтесь понять, к чему ведет собеседующий, задавая свой вопрос. Если вы догадались и сами расскажете ответы на его будущее вопросы - вы выиграли битву!
  • 39. Зачем знать, о чем проект, если вы заранее согласны на любой или что спросить собеседующего? 1. Как будет выглядеть моя каждодневная работа? 2. Как производится слежка за качеством кода, пишутся ли тесты, есть ли CI, какие метрики? 3. Как ищутся/находятся баги? Сколько их? Какой процесс фикса? 4. Какими фреймворками пользуетесь? Сколько времени занимает настройка среды разработки? 5. Какие у вас сроки? Is your hair always on fire? 6. Ходите ли вы на team-buildings?
  • 40. Что собеседующему нравится о его работе? Хороший ответ • Приятно делать мою работу • Нам на работе весело • Мои коллеги умные, интересные и дружелюбные • Менеджмент уважает инженеров Слабый ответ Надо платить по счетам. Работа не пыльная. Сильно никто не ругает. Особо нет напряга. Молчание.
  • 41. Общие советы • Читайте новости, будет прекрасно, если вы расскажете собеседующему что-то «из последнего». • Покажите, что вы разнопланово развиты, ведь чем больше у вас способностей, тем полезнее вы можете быть. Но уделять достойное место профессии все равно надо.
  • 42. Кому достался хрустальный микрофон? Тому, кто не переживал и не стремился к нему, кто просто был искренним и достаточно хорошим.
  • 43. Что вы ожидали, когда шли на доклад? Что я вас научу ответам на вопросы, которые задают на собеседовании? Что я хотя бы дам знания, какую информацию нужно готовить? Что я научу себя правильно вести?
  • 44. Что вы получили от доклада? (10 сек надо подумать) Руководство к действиям: • Создать аккаунт на GitHub и что-то новое выучить, усовершенствовать имеющиеся. • Найти перед кем и показать себя и свои знания, быть оценённым, когда наступит момент готовности. • Желание быть достойным самого лучшего.
  • 45. Полезные ссылки • Соберись, «тряпка»: https://www.ted.com/playlists/352/ talks_to_watch_before_a_job_in • Вопросы собеседующему: https:// medium.freecodecamp.com/how-to-interview-as-a- developer-candidate-b666734f12dd • Выбор между REST и SOAP https://blog.smartbear.com/ apis/understanding-soap-and-rest-basics/ • Коллекции: https://habrahabr.ru/post/162017/ • Ну и читайте документацию ;)
  • 46. Как меня найти • Twitter: @LadyInIT • LinkedIn, Facebook: Olexandra Dmytrenko