Широкий кругозор для профессионального программиста?
Предположим, что нужно пройти собеседование на разработчика в $super_cool_company на должность php разработчика (python/java тоже возможны).
Помимо самого языка нужно знать
1. Как устроен интерпретатор внутри (хотя бы поверхностно)
2. Как реализованы различные структуры данных
3. Разные парадигмы программирования
4. Использование разных БД
5. Способы отладки
6. Оптимизация кода, оптимизация БД
7. Сетевое взаимодействие (сокеты, TCP/UDP)
8. Блокировки (мьютексы/семафоры)
9. Многопоточное программирование, проблемы синхронизации
10. и т.д. и т.д.
Не уверен, есть ли нечто подобное в одной книге.
Посоветуйте, что почитать, чтобы расширить кругозор/вспомнить разные нюансы (не обязательно на основе PHP, подойдет C++/Java/Python)
Этакие справочники/шпаргалки как бы для подготовки к экзаменам, где можно освежить знания по многим основам всего, что так или иначе связано с программированием, чтобы не перечитывать по каждой теме тясячестраничные талмуды, потому что многое из указанного уже было прочитано/использовано/изучено, но вследствие редкого использования подзабылось.
Это не обязательно связано с трудоустройством. Хочется вспомнить/освежить в памяти многие основы. Что-то, возможно, помнится в некорректной интерпретации.
Мне доводилось писать на php/python/c/c++/js/perl (где-то больше, где-то меньше, с фреймворками и без), писать распределенные вычисления, оптимизировать код под определенные особенности платформы заниматься настройкой сетей, ip-телефонией, администрированием серверов, но часть знаний достаточно поверхностна для серьезной работы, хотя достаточна для написания работающих решений.
Этот материал нельзя изучить вне ВУЗа? Он каким-то магическим способом генерится только в стенах ИТ-ВУЗов
я уже молчу про способности более половины преподавателей донести смысл, а также сомневаюсь, что все студенты выходят с этих ваших пар, способных ответить на ПРОФЕССИОНАЛЬНЫЕ вопросы по БД, сокетам и отладке...
nioterzor дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац).
В противном случае, ваши вопросы будут удаляться по причине тег-спама.
Максим Федоров, притом, что в последнее время модно кукарекать про то, что айтишнику не нужно профильное образование и что в вузах ничему хорошему не учат. (хотя может это только в СНГ так... но много моих знакомых говорили иначе, что наших вузов все таки тоже хороших хватает).
способных ответить на ПРОФЕССИОНАЛЬНЫЕ вопросы по БД, сокетам и отладке...
Не все способны и не все должны, у хороших студентов отличный кругозор большинства актуальных технологий и самое главное, понимание - как они работают. Все же "профессиональные" вопросы, это лишь вопрос-ответ-наставление. Обьяснить какую-нибудь особенность студенту, который досканально изучал работу сокетов и обьяснить человеку, который учился по видосикам html,css,php это как небо и земля. И да, это я сужу по практике. Но если мы уже так далеко зашли, то да - есть отличные самоучки и есть плохие студенты, как правило их видно сразу, и тех и других.
Поймите простую вещь, вы идете не экзамены сдавать, на собеседование. Бессмысленно читать ночь перед собеседованием и писать шпоры. В зачет пойдет только ваш реальный опыт, а не теоретические знания.
Хотите список вопросов, на котором буксовали у меня люди на собеседовании?
- Каким редактором вы пользуетесь? Какая версия, какие плагины стоят? Какая горячая клавиша для ... (Если человек буксует, значит он мало сидит за редактором).
- Какую версию MySQL (или PostgreSQL) вы используете, в чем отличие от предыдущей версии?
- В каких ситуациях необходимо использовать интерфейсы, но категорически нельзя использовать абстрактные классы. И наоборот, в каких ситуациях необходимо использовать абстрактные классы, но недопустимы интерфейсы, или трейды?
- Даю листок бумаги и пишу длинное число 4923872788828228453. Даю задание, напишите регулярное выражение, чтобы разделить это число по три через пробел: 4 923 872 788 828 228 453. Число может быть произвольным. Если человек не в состоянии сделать это одним регулярным выражением, тогда предлагаю решить ему задачу любым другим способом, но на бумаге и без интернета. Просто интересно как он составит алгоритм. Задачки бывают разными, под рукой всегда было около пары десятков подобных примеров.
Потому вы не сможете подготовиться к собеседованию, читая книги.
Слава КПСС,
как говорится «отличный парень не профессия», и все же компании ищут максимально релевантного человека себе... др дело. что HR не могут обозначить специфику проекта
потому тесты и собеседования прогоняют обычно по многим вопросам... один/другой не знает — знает десятое/двадцатое, и на каком уровне...
Я бы на этом моменте уже развернулся и ушел.
Может вы еще и про диаметр луны спрашиваете или число волоском на брюхе утконоса спрашиваете?
Это же абсолютно бесполезная информация, для разработчика.
В моей основной ide сейчас стоит 31 плагин. Как вы представляете ответ на ваш вопрос???
Я не лажу каждый день менять их настройки - один раз поставил - настроил - забыл.
Какая горячая клавиша для ...
Ctrl+D - потому что я перебил наиболее популярную последовательность вызова комманд (в основном формат+линт) для файлов с которыми чаще всего работаю. Для всего остального есть ctrl+shift+p
2 сочетания для всего.
Вы же не стенаграфистку собеседуете.
Лучше бы про сортировку пузырьком спрашивали, даже это не было бы таким бесполезным и раздражающим.
Алексей, хм, с редактором интересно
и правда — человек, который много кодит так или иначе генерирует свое окружение софта
Слава КПСС, а регулярки и БД должен знать каждый младший инженер
дать ему пару недель, он прокачает этот скилл
как правило компании комфортно относятся к повторным собеседованиям, пусть идет и учит :) другое дело, что компания может за это время взять парня получше :)
«отличный парень не профессия»
думаю это справедливо — взять парня, который знает то, что не знает тот, которого не взяли
Слава КПСС, компания сама по себе не даст такого, нужно предварительно подготовить почву:
заранее проговорить и договориться как будет происходить собеседование
расположить собеседника
лучше всего, когда зовут ПОСЛЕ тестового задания
нужно чутко улавливать, что к чему
У меня было такое всего пару раз, бывало что звали некоторое время спустя те же компании, но я уже угасал к ним... Так как я джуниор крепкий (для некоторых я мидл, хотя это явно не так, то мои навыки растут быстрее, чем компании думают брать меня или нет)
Слава КПСС,
по поводу собеседующих у меня скоро будет книга, бзиков столько, что жесть :):):):)
и все же — чтобы претендовать куда-то зарубежом, то не раз слышал про необходимость системообразующих инженерных знаний, потому вам и писал ранее про взрослый язык :):):) мне кажется это верным, к слову..
и опять же, понятно что для php-программиста не так критично знать про память, но регулярки нужны. как и БД :):):):) ну опять же от квалификации... но я бы ставил это главным уже на уровне джуниоров
Слава КПСС, да-да, я вот из смежной, но инженерной (подъемно-транспортные машины, недоуч, но отличником был :)...
пришлось зацепить Devops, теперь сижу Linux only, разобраться с виртуалками, HTTP, веб-серверами и прочее :)
с БД еще правда разгребаюсь... но в рамках 3 номарльнйо формы делаю запросы закрытыми глазами
Слава КПСС, "на одном собеседовании ему знаешь какой вопрос задали? где хранятся статические переменные в памяти и как они хранятся там."
Не на "одном собеседовании", а возможно на собеседовании С++ программиста в ембеддет проект, где писать код нужно под конкретное железо, на котором очень мало памяти и слабый CPU. В таком случае да, нужно знать архитектуру и как выглядит потенциально откомпилированный код гораздо лучше.
Поэтому нужно не читать разные шпаргалки на все случаи жизни, а почитать описание вакансии, почитать требования, возможно освежить в памяти именно их. Но если senior c++ программист никогда не сталкивался с ембеддет, то идти на должность senior embedded c++ программист не нужно. Можно попытаться конечно.
Статик переменные хранятся в дата сегменте (инициализированные). Деаллоцировать их нельзя.
unreal движок понятно что требуется глубокое понимание во что компилируется код.
Это же популярный движок, который на предмет быстродействия нужно вылизывать по максимуму.
На С++ я прогаю на уровне ниже джуниора. По удаленке можно быть, но для этого нужно иметь нормальное прикладное портфолио.
Никто не запрещает вообще не приходить на собеседование :)
Вопросы про редакторы у меня стали возникать внезапно. Однажды пришел человек, которого я случайно спросил, а какой у него любимый редактор. Он мне сказал что-то невнятное и мне незнакомое. Я стал расспрашивать его более подробно об этом редакторе, но как выяснилось он перепутал название, и вообще только его ставил, но не работал с ним. А на вопрос в каком же редакторе вы работает чаще всего, он тоже не смог толком ответить, и выяснилось, что чаще всего он использовал обычный NotePad, который без ++. Хотя в резюме был описан многолетний опыт индивидуальных и командных разработок. Да и вообще резюме его было настолько хорошим, что очень хотелось пригласить его на собеседование.
После этого случая я часто спрашиваю у многих какой их любимый редактор, и почему они предпочитают работать именно с ним, а не с каким либо другим. Если честно, мне вообще пофиг с каким редактором он будет работать, лишь бы работал. Если нужен будет платный, значит мы купим лицензию для него.
это значит лишь то, что человек плохо владеет регулярками и дать ему пару недель
Не в регулярках дело. Далеко не каждый справляется с такой задачей, но мне интересно как он решает задачу на бумаге. Интересно посмотреть на ход его мыслей. Я многих брал из тех, кто не смог составить регулярку, но решал задачу другим способом прямо за столом на листке бумаги. К тому же всегда есть под рукой какой-нибудь другой пример. Мне не важно само решение, сколько посмотреть насколько человек быстро составляет алгоритмы.
Начиная с некоторого уровня зарплат любое собеседование строится на диалоге. И если вы не бахвалились на счет того, что кодите по 14 часов в день и обожаете настраивать свой рабочий инструмент, никто вас особо не спросит про это.
И если вы не бахвалились ... никто вас особо не спросит про это.
Эмм... ну вон Алексей выше пишет, что спрашивает.
И возмущение мое было связано прежде всего, с требованием вспомнить названия плагинов с их версиями, что имхо бесполезно и выглядит как насмешка.
Название редактора я помню )
Александр Таратин, Да я не спрашиваю знания редактора, я проверяю то, как он отвечает на вопросы.
- Какой у вас любимый редактор?
- PhpStorm
- Пользуетесь ли дополнительными плагинами?
- Нет, только дополнительно настроил проверку синтаксиса русских слов.
- Чем вас привлекает IDE?
- Тем что удобно делать рефакторинг, статистику, есть .... (не даю закончить)
- А какая клавиша для рефакторинга?
- Ctrl-Alt-F12 - я ее перенастроил.
Всё - вопрос закрыт. Я понял, что человек работает с редакторами, и знает о них не понаслышке.
Алексей я понимаю, что взять и подготовиться за одну ночь нереально.
Я программирую уже несколько лет с использованием разных технологий в зависимости от задач, но по большей части просто пользуюсь готовыми решениями, особо не вникая в то, как оно устроено. Порой для ответа на вопрос приходится лезть в код библиотеки и разбираться, а почему так, с этим проблем нет.
Вопрос скорее о том, чтобы освежить знания в разных областях.
И возмущение мое было связано прежде всего, с требованием вспомнить названия плагинов с их версиями, что имхо бесполезно и выглядит как насмешка.
Это не насмешка, если человек при разработке работал только с виндовым блокнотом (как я описал выше), то вряд ли мы с ним сработаемся. В этом случае ему действительно лучше сразу развернуться и уйти.