JavaRush /Java блог /Random /Кофе-брейк #49. Примеры кода, которые должен увидеть кажд...

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

Статья из группы Random

Примеры кода, которые должен увидеть каждый разработчик

Источник: Medium Иногда в свободное время я блуждаю по GitHub-репозиториям. Когда я начинаю изучать новые программы, инструменты или утилиты, я стараюсь посмотреть на них в работе. Для этого я заглядываю в их код: это помогает понять, как все работает, какие там есть модули и внешние зависимости. Погружение внутрь технологии дарит невероятные ощущения и позволяет получить новые знания.Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 1В своей статье я хотел бы поделиться наиболее впечатляющими примерами кода, которые я встретил, бродя по репозиториям.

Программа управления Аполлон-11

Аполлон-11 — космический корабль, доставивший людей на Луну. Бортовой управляющий компьютер (AGC), контролировал работу полета, имея всего 4 килобайта физической памяти. Программное обеспечение для AGC, написанное на языке ассемблера, хранилось в специальной памяти, доступной только для чтения (rope memory). Несколько лет назад сканированные бумажные копии этого исходного кода выложили в интернет. Затем кто-то переписал несколько модулей в текстовые файлы и загрузил их в GitHub-репозиторий.Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 2Команда инженеров Аполлон-11 приложила огромные усилия, чтобы добиться такого потрясающего результата. Они написали на ассемблере множество строк кода, притом, что в 1960-е годы программирование было намного сложнее, чем сейчас. В то время языки программирования имели более низкий уровень абстракции. Кроме того, из-за маломощного «железа» разработчикам приходилось писать максимально оптимизированный код.

Quake III Arena

Quake III Arena — это компьютерная игра-шутер от первого лица, созданная студией id Software. Игра появилась в 1990-х, когда индустрия 3D-игр только начиналась. Для ее разработки использовался игровой движок id Tech 3. Как и в случае с лунной программой Аполлон-11, из-за ограничений в ресурсах «железа», код для рендеринга графики сильно оптимизировали. Многие расчеты игрового программирования требуют концепции векторной нормализации, которая вызывает необходимость вычисления обратного квадратного корня. Из-за того, что разработчикам нужно было выбирать наиболее эффективные алгоритмы для компьютерной графики, в Quake III Arena использовали умный подход для быстрого вычисления обратного квадратного корня с использованием вычислений на уровне битов.Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 3Уровень оптимизации части кода, который вы видите, да и вообще всего кода, с помощью которого создавались игры в 1990-е годы, просто потрясает. Сегодня разработчики видеоигр обычно не занимаются вычислениями на таком уровне, потому что многие функции выполняются на уровне игрового движка.

GNU Compiler Collection

Язык программирования C можно назвать отцом современного программирования, потому что он очень близок к «железу», но наряду с этим предлагает хороший уровень абстракции, понятный человеку. GNU C-компилятор относится к «раскручиваемым» (bootstrapped). То есть, он написан на языке C с использованием концепции раскрутки компилятора. В коде GNU Compiler Collection на GitHub я нашел самый длинный исходный файл на языке C, который мне когда-либо доводилось видеть (могут быть файлы и подлиннее, но я нашел именно этот).Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 4

Chromium

Такие популярные браузеры как Google Chrome, Microsoft Edge и Opera созданы на базе проекта с открытым кодом Chromium. Этот проект имеет две основные зависимости: движок Blink (форк библиотеки WebCore от команды Webkit) и JavaScript-движок V8, разработанный командой проекта Chromium. Конечно, код Chromium весьма обширен и содержит множество сторонних модулей, таких как gRPC и Skia. Но разработчики Chromium сумели отлично структурировать все эти компоненты. В кодовой базе продуманно разделена логика внутренних функций и логика пользовательского интерфейса. Благодаря этому достигается хорошая поддерживаемость всего проекта.Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 5Кроме того, в коде проекта содержится исходный код Chromium Android и iOS-приложений. Структурирование высокомасштабируемых кроссплатформенных приложений может быть сложной задачей. Однако, Chromium имеет действительно впечатляющее разделение кода, касающегося Linux, Windows и Mac.

Gitk

Сейчас для управления версиями кода любая команда использует Git. Эта система контроля версий разработана Линусом Торвальдсом (создателем ядра ОС GNU/Linux). В кодовую базу Git включен исходный код Gitk. Gitk — это GUI-приложение, обеспечивающее визуальную навигацию по коммитам. Чтобы посмотреть, чем отличаются два коммита, можно воспользоваться следующей командой:

$ git diff <commit hash> <commit hash>
Но поскольку Gitk — визуальный инструмент, с его помощью мы можем увидеть разницу гораздо быстрее.Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 6Весь исходный код Gitk умещается в одном файле. Код написан на скриптовом языке Tcl с использованием Tk UI-toolkit — расширения Tcl. Вместить целое GUI-приложение в один файл — сложная задача.

Как разработчику подготовиться к собеседованию

Источник: Hackernoon Я помню свое первое собеседование. Я только что защитил диплом и устраивался на стажировку в финансовую компанию в Мадриде. Я очень нервничал, поскольку не знал, как пройдет собеседование, и не был в курсе текущих тенденций в разработке программного обеспечения. Это было после Пасхи, мне был всего 21 год, и для меня тогда более приятно было бы провести время с друзьями на пляже. Но вместо развлечений мне пришлось готовиться к интервью.Кофе-брейк #49. Примеры кода, которые должен увидеть каждый разработчик. Как нужно готовиться к собеседованию - 7Первый шаг перед каждым собеседованием — это знакомство. У вас спрашивают ​​имя, адрес, специальность и так далее. После этого вы пройдете личное собеседование, оно может быть очным или по видеосвязи. В любом случае, во время этого интервью проверят ваш опыт, знания и навыки для должности, на которую вы претендуете. Затем, вероятно, вам предложат написать код, где вы продемонстрируете свои возможности в решении проблем или задач. Дополнительно вас может ожидать собеседование с менеджером проекта или директором компании. Это зависит от должности, на которую вы претендуете. Процесс прохождения собеседования может занять много времени. Поэтому вам нужно быть терпеливым и сохранять спокойствие. Я подготовил для вас несколько советов и рекомендаций по этому поводу.

Изучите вакансию, чтобы убедиться, что она вам подходит

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

Постарайтесь быть в курсе тенденций своей карьеры

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

Во время личного интервью или видеозвонка: постарайтесь хорошо выглядеть и расслабьтесь

Ваш внешний вид так же важен, как и дизайн вашего приложения. У вас может быть идеальный бэкэнд, но если ваше приложение имеет плохой интерфейс, вам будет трудно продать свой продукт. То же самое и с вашим внешним видом: на собеседовании вы должны выглядеть если не официально, то хотя бы прилично. Так вы продемонстрируете готовность следовать корпоративным правилам. Я знаю, что некоторые здесь подумают: «Эй, да я ведь гений, почему меня должна волновать моя внешность?» Ну что ж, если ты гений и хорошо выглядишь, тогда ты точно произведешь впечатление!

Не торопитесь

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

Практикуйтесь

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

Продемонстрируйте свой опыт в очном собеседовании или в коде

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

Выспитесь за день до интервью

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

Доверяйте своим ответам

Не сомневайся в себе. Никогда.

На собеседовании вы должны излучать безопасность и уверенность для всех

Если у вас нет этого навыка, вам, вероятно, нужно поработать над ним. Уверенность — это когда вы отвечаете: «Я не знаю ответа, но я могу найти его и ответить позже». Такой вариант ответ показывает безопасность и уверенность.

Проанализируйте собеседование

Каждое собеседование индивидуально, но все они в чем-то похожие черты. Поэтому после интервью вам следует подумать о том, что в нем для вас прошло хорошо или плохо. Собеседование — хорошее время, чтобы посмотреть на себя со стороны, на свои преимущества и недостатки.
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ