Как выбрать язык программирования для алгоритмического собеседования?
На кодинг интервью в FAANG и другие компании, которые проводят кодинг собеседовая похожим образом, вы можете выбрать сами, на каком языке программирования писать код. Но это должен быть настоящий и востребованный язык программирования. Писать на псевдокоде нельзя. Также не стоит выбирать мертвые, редкие, специализированные, учебные или эзотерические языки программирования. Не стоит писать на брейнфаке, паскале, бейсике, аде, ассемблере или коболе. Наиболее частые варианты это Python, Java, JavaScript, C/C++, C#, Kotlin, Rust, Go, Objective C, Swift. Если вы собеседуетесь на мобильного разработчика, то стоит выбрать Java, Kotlin, Objective C, Swift. Если на frontend или full-stack, то подойдет и JavaScript. Если на back-end/infra, то Java, C#, C/C++, Rust, Kotlin, Python. Если на ML, то python.
Главное выбрать язык программирования, который вы знаете лучше всего и на нем же практиковались решать алгоритмические задачи.
Очень часто кандидаты выбирают python, несмотря на то, что это не язык, который они знают лучше всего. Они думают, что на нем лучше/легче решать такие задачи. Имхо это заблуждение и большая ошибка. Я очень часто наблюдаю на собеседованиях, как люди, которые пишут на python не знают элементарного синтаксиса, стандартных функций и того как они работают. Это приводит к смешным конструкциям в коде (ака "индуский код"), а также к неспособности правильно оценить временную сложность и сложность по памяти, т.к. кандидаты не знают как в реальности работают те или иные стандартные функции. Также, те кто пишет на python не знают как правильно сравнивать обьекты в python и это приводит к неправильным решениям или дополнительным предположениям, которые нужно накладывать на входные данные. По числу строк решения на python, не будут сильно короче, иногда они получаются даже длиннее, если человек начинает изобретать велосипеды по незнанию. Обьявления переменных будет короче и это единственный реальный выиграш в длине.
Поэтому я рекомендую использовать язык программирования, который вы знаете лучше всего и на нем же практикуйтесь решать алгоритмические задачи.
Post #253
2.57K
- 👍 29