Как я попал в Tencent?

интервью задняя часть
Как я попал в Tencent?

Привет, ребята, это программист cxuan. Добро пожаловать в мою последнюю статью. Сегодняшняя статья основана на личном опыте моего преданного читателя. В этой статье написана серия его работ от первого курса до поступления в Tencent. Ощущения и выводы, я надеюсь чтобы помочь вам.

Приключения овощной курицы

Я начал подавать свое резюме в конце февраля, и когда я получил предложение в апреле, мой весенний набор закончился!

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

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

Жаль, что в период, когда первый год подходил к концу, средний балл был настолько низким, что я не могла поднять голову, я осознала и постепенно приняла, что могу действительно плохо сдавать экзамены (в конце концов, Я до сих пор оправдываюсь) , Даже если я много работал на первом курсе, мой средний балл был все еще очень низким, что постепенно заставляло меня сомневаться в своих способностях.

Сейчас кажется, что средний балл важен, но то, что он может доказать, на самом деле относительно ограничено (по крайней мере, в области вычислительной техники), если только он действительно не первоклассный, на самом деле многие курсы в университете понимают. . Я не хочу критиковать здесь университетское образование, я просто надеюсь, что средний балл не станет единственным показателем количественной оценки способностей студентов и причиной высокомерия и предубеждения по отношению к другим.

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

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

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

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

Что вы думаете об осени 2019 года?

Что вы думаете о Ragnarok in the Red Sea от Algorithm Gang?

. . .

Всех 985 мастеров-возвращенцев, высшие бумаги, высшие конкурсные балабалы, действительно уговорили уволиться. Дипломная математика меня не интересовала, я в итоге забросил, либо разработка мне больше подходит.

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

В начале 2000-х я окончательно определился и решил в будущем учиться в области Java back-end.Сейчас кажется, что этот выбор не обязательно лучший, но, по крайней мере, не плохой. , я также ушла из исследовательской группы своего тьютора.Я не продолжила это делать, но все равно благодарю своего наставника от всей души, потому что во время конкурса помощь наставника для нас, можно сказать, очень важна. действительно мое время в колледже, чтобы встретить наставника, который готов приложить так много усилий для студентов.Большая честь.

Блуждая, начиная с "Java Core Technology Volume I", постепенно углубляясь и постепенно начав завершать какие-то небольшие проекты, путь вперед постепенно проясняется.

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

Вступая в 2021 год как говорится золото три а серебро четыре, а весенний набор постепенно приближается.С конца февраля уже больше пол месяца учусь туда-сюда.Наконец-то мне очень повезло получить предложение о летней стажировке от Tencent, которое можно сравнить со многими старшими братьями.

Как человек, только что закончивший весенний набор 2021 года, позвольте мне рассказать о моей утопии в начале и финальной реальности. Tencent и Али были моими первыми выбранными целями (потому что школа находится в Ханчжоу, а мой дом в Шэньчжэне). заранее одобрили собеседование.Все три отдела тоже прошли,но в итоге только один отдел может быть выбран для внутреннего процесса продвижения.С одной стороны все было очень гладко и оценка очень хорошая,но после того как меня повесили за почти месяц я странным образом вешался, а потом меня взяли на работу в отдел.С одной стороны оценка с другой стороны тоже была хорошая, а потом прождав более полу месяца, я повесил трубку( опыт собеседования далек от гусиной фабрики, процесс хаотичен, и явление ограбления людей в отделе тоже очень серьезное), и висит сторона байта (худшее исполнение).Один тур собеседований), Tencent прошла четыре раунда технических собеседований + одно собеседование с HR, а Hikvision прошла один раунд технических собеседований. Получив предложение от Goose Factory, он вздохнул и, кстати, отложил последующие интервью.

Я давно завел публичный аккаунт и личный блог.В блоге только изредка пишутся технические статьи.Возможно из-за занятости (точнее ленивой).Ни разу не вводил в действие.Надеюсь, что могу положиться на собственном незначительном опыте. , поделитесь своим ментальным путешествием и следите за обновлением настроения :)

Структуры данных и алгоритмы

Определенный момент заключается в том, что независимо от того, какая это техническая должность, требования к стеку технологий могут быть не особенно высокими для набора в школу, но гибкость мышления и учет способности кодирования очень причудливы.Я лично думаю, что Подготовка алгоритма должна начаться как можно скорее. Лучше всего выработать привычку каждый день проверять один вопрос. С начала 2020 года я начал свое путешествие по изучению алгоритма в LeetCode, и я также отмахнулся от 500 вопросов и д. Хотя уровень намного меньше, чем у акмера, он достаточно солидный, чтобы справиться с тестом алгоритма крупных производителей.

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

Прилагаются некоторые неполные пункты личного резюме:

  • Основные идеи сортировки (быстрая сортировка, сортировка кучей, слияние, пузырек, Хилл, выделение и т. д.) Сложность по времени Стабильность Лучше всего уметь писать от руки
  • DFS, BFS, алгоритм поиска с возвратом
  • Монотонный стек
  • как дела
  • DP (например, проблема с рюкзаком и т. д.)
  • LRU (двухсвязный список + HashMap)
  • Проблема topN (найти N-е по величине данные из массивных данных)
  • Частота слов в статистике больших файлов (дерево словарей)
  • битовая операция
  • двойной указатель
  • связанный список
  • бинарное дерево
  • рекурсия запоминания
  • бинарный поиск
  • Куча (например, большая/маленькая корневая куча)
  • Граф (ориентированный и неориентированный граф, Дейкстра, алгоритм Флойда и др.)
  • и проверить
  • Раздвижное окно
  • красно-черное дерево
  • AVL
  • BT-дерево, B+дерево

Прикрепим еще несколько популярных книг по изучению алгоритмов и адреса github:

  • Меч относится к предложению (очень классическое, почти покрывающее общие вопросы алгоритма собеседования)
  • Введение в алгоритмы (это может быть сложно, но эта книга также является библией мира алгоритмов)
  • шпаргалка по алгоритму Лабуладонга:GitHub.com/лабрадор/…

компьютерная сеть

Важность сети также самоочевидна.

  • Что нового в HTTP 1.1, 2.0 и 3.0
  • Общие коды состояния HTTP и их значения
  • HTTPS (рукопожатие, ЦС, проблема решена, симметричное и асимметричное шифрование и т. д.)
  • Значение общих методов HTTP-запроса
  • Как оптимизировать HTTP/HTTPS
  • Разница между семью уровнями OSI и четырьмя уровнями TCP/IP и их значение
  • Трехстороннее рукопожатие TCP (что, почему)
  • ПТС махнул четыре раза (что, зачем)
  • Статус TCP TIME_WAIT CLOSE_WAIT
  • TCP длинные и короткие соединения
  • Характеристики и структура сообщений TCP
  • Как TCP гарантирует надежную передачу
  • Механизм повторной передачи TCP
  • Управление потоком TCP и контроль перегрузки
  • Скользящее окно TCP
  • Возможности UDP, сценарии использования, структура пакетов
  • Разрешение DNS и его процесс
  • Разница между IPv4 и IPv6
  • Классификация IP-адресов
  • Значение маски подсети
  • DHCP-протокол
  • Протокол ICMP (команда ping)
  • Значение MAC-адреса
  • Разница между коммутатором и маршрутизатором
  • ARP-протокол
  • Что происходит, когда браузер вводит URL

Дживану нечего сказать, основы в основах, завсегдатаи в интервью, Се Сижэнь из всех слоев общества грызет черную книгу сверху донизу, и все кончено~

Операционная система

Некоторые неполные пункты из моего личного резюме:

  • Четыре характеристики операционной системы
  • Пользовательский режим и режим ядра (что и почему)
  • переключатель контекста
  • IPC-связь
  • Как синхронизировать потоки
  • Разница между процессом, потоком и сопрограммой
  • модель процесса с тремя состояниями
  • Алгоритмы планирования процессов
  • Четыре условия взаимоблокировки
  • Предотвращение взаимоблокировок
  • Как решить мертвые замки
  • Модель ввода-вывода Linux (блокирующий ввод-вывод, неблокирующий ввод-вывод, мультиплексирование ввода-вывода, управляемый сигналом ввод-вывод, асинхронный ввод-вывод)
  • Модель реактора
  • нулевая копия
  • Виртуальная память
  • Пагинация Сегментация Различия и значения сегментированных страниц
  • алгоритм замены страницы
  • Алгоритм планирования дисков
  • Состав файловой системы Linux
  • жесткие и мягкие ссылки

Основы Java

Некоторые неполные пункты из моего личного резюме:

  • Спросите о плохих HashMap, HashTable, ConcurrentHashMap
  • Некоторые общие классы коллекций (TreeMap ArrayList LinkedList ArrayDeque и т.п.)
  • равно и hashCode
  • == и равно
  • Как понять объектную ориентацию (инкапсуляция полиморфизма абстрактного наследования)
  • Классификация исключений Java
  • глубокая копия против поверхностной копии
  • Семь основных типов (класс синтаксической оболочки сахара)
  • Какой метод имеет класс Object?
  • StringBuilder и StringBuffer
  • Строковый метод intern()
  • Почему String неизменяем
  • Новые функции jdk (8 лямбда Необязательная 9 строка изменена на хранилище byte[] и т.п.)
  • Java BIO NIO AIO
  • Обобщения и стирание типов

Рекомендуемые книги: "Java Core Technology Volume I/II", продвинутый пункт, чтобы увидеть "Effective Java" "Thinking in Java"

Лично я не рекомендую смотреть здесь видео, с точки зрения получения знаний я предпочитаю исследовать и впитывать самостоятельно, а не учиться "кормлением".

JVM

Некоторые неполные пункты из моего личного резюме:

  • Модель памяти Java, область данных времени выполнения
  • Процесс создания объекта Java
  • Состав объектов Java
  • процесс загрузки класса
  • Модель загрузчика классов и родительского делегирования (что, зачем, как активно уничтожать, преимущества и недостатки, как реализовать)
  • Стратегия выделения памяти в куче
  • Отличие и значение четырех ссылочных типов
  • Как узнать, мертв ли ​​объект
  • Анализ утечки памяти
  • Общие алгоритмы GC
  • Распространенные сборщики мусора (CMS, G1 и т.д.)
  • Java передается по значению или по ссылке?
  • Полный GC причины и устранение неполадок
  • Общие инструменты мониторинга JVM (такие как jmap jstack и т. д.)
  • Общие параметры JVM (такие как Xms Xmx SurvivoRratio и т. д.)

"Глубокое понимание виртуальной машины Java" г-на Чжоу Чжимина только что закончено, и полученные знания также в некоторой степени связаны с операционной системой.Для изучения Java не останавливайтесь, чтобы показать грамматику, делайте это руками. -на практике, и не смотрите на мастеров.

Многопоточность

Некоторые неполные пункты из моего личного резюме:

  • Пул потоков (инфраструктура Executor, почему руководство по разработке Java Alibaba не позволяет использовать Executors для создания пулов потоков, преимущества, как его использовать, как настраивать параметры) Вы можете прочитать это:Принцип реализации пула потоков Java и его практика в бизнесе Meituan»)
  • Принцип AQS
  • Общие классы инструментов JUC (CountDownLatch, CyclicBarrier, Semaphore, атомный класс Atmoic)
  • синхронизированное ключевое слово
  • ReentrantLock блокировка повторного входа
  • Спинлок/мьютекс
  • оптимистическая блокировка / пессимистическая блокировка
  • Справедливая блокировка / Несправедливая блокировка
  • Блокировка чтения-записи
  • Процесс обновления блокировки Java (без блокировки, предвзятая блокировка, облегченная блокировка, усиленная блокировка)
  • ThreadLocal (принцип сценариев использования)
  • ключевое слово volatile (что есть, что делается, переупорядочивание инструкций запрещено, принцип согласованности кеша, принцип «происходит до»)
  • Состояние потока Java (NEW RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED)
  • Функция метода Object.wait Thread.sleep Thread.join Thread.yield

Рекомендуемые книги: "Java Concurrent Programming in Practice" и "The Art of Java Concurrent Programming" - все это классика.

Весенний фреймворк

Некоторые неполные пункты из моего личного резюме:

  • Идеи Spring IoC, характеристики, принципы
  • Весенние транзакции
  • Весенние круговые зависимости
  • Принцип Spring AOP (динамический прокси-сервер JDK Proxy CGLib AspectJ, механизм отражения Java и т. д.)
  • Принцип Spring MVC
  • Принцип автопроводки SpringBoot
  • Общие модули Spring (аспекты ioc aop jdbc jms orm веб-тест)
  • Механизм распространения транзакций Spring
  • Шаблоны проектирования, используемые Spring
  • Жизненный цикл Spring Bean

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

MySQL

Некоторые неполные пункты из моего личного резюме:

  • Три парадигмы проектирования баз данных
  • Общие механизмы хранения MySQL (Архив InnoDB MyISAM и т. д.)
  • Блокировка строки innoDB в тупике (блокировка пробела X S)
  • Механизм MVCC (принцип и реализация просмотра согласованности журнала отмены)
  • КИСЛОТНЫЕ свойства вещей
  • Уровень изоляции вещей
  • грязное чтение фантомное чтение повторяемое чтение
  • Процесс выполнения оператора SQL (binlog redolog)
  • Индекс (кластерный индекс, вспомогательный индекс, совместный индекс, принцип)
  • Анализ операторов SQL
  • Медленный анализ запросов
  • Оптимизация операторов SQL
  • Разделение чтения-записи Подтаблица подбиблиотеки (горизонтальное и вертикальное разделение)

Рекомендуемые книги: «MySQL должен знать и знать» и «Основной учебник по SQL».

«45 лекций по практическим боям с MySQL» учителя Geek Time от Ding Qi также хорошо приняты и настоятельно рекомендованы!

Свяжитесь с другими операторами SQL, вы можете разобрать вопросы SQL в интервью, а также оптимизировать и анализировать SQL в проекте.

Redis

Некоторые неполные пункты из моего личного резюме:

  • Пять типов данных (строка, список, хэш, набор, zset)
  • Другие типы данных (BitMap Geospatial hyperloglog и т. д.)
  • Однопоточная модель Redis (почему она эффективна? Почему бы не использовать многопоточность? Цель многопоточности Redis6.0?)
  • Механизм мультиплексирования Redis IO (выбор, опрос, epoll, модель Reactor)
  • Механизм сохраняемости (моментальный снимок, AOF)
  • Механизм устранения памяти Redis
  • Как определить срок действия данных?
  • Redis-транзакции
  • Прогрессивная перефразировка Redis
  • Кластер Redis (репликация master-slave, дозорный, кластерный кластер)
  • Как обеспечить согласованность кеша базы данных?

Распределенная корреляция

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

Неполная суть:

  • Принцип CAP и теория BASE
  • Распределенная согласованность (ZooKeeper, протокол Paxos, протокол ZAB и т. д.)
  • NoSQL (Redis, MongoDB, memocached и т. д.)
  • SpringCloud (обнаружение и регистрация сервисов, балансировка нагрузки, шлюз)
  • Фреймворк RPC (например, Dubbo, протокол сериализации protobuf)
  • Очередь сообщений (наиболее используемая Kafka в отрасли, Ali RocketMQ, RabbitMQ)
  • Распределенные транзакции, распределенные блокировки

Инструменты программирования

  • Git
  • Docker
  • Команды Linux

Доставка и выбор

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

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

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

С точки зрения доставки, постарайтесь как можно чаще работать в крупной компании, одобрение крупной компании сделает вашу карьеру более гладкой и гладкой.

немного мягкой силы

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

Например, в разработке вопроса речь некоторых людей звучит очень многослойно и комфортно, в том числе общение с интервьюером (или болтовня по пустякам), человек легкий и веселый, не скромный и не заносчивый, хорошо говорит. кому не нравится?

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

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

проблема менталитета

«Меньше жалуйтесь, действие — лучший способ избавиться от беспокойства»

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

  • Будьте бдительны к новостям о продаже беспокойства вокруг вас и помните об этом.
  • Делай все возможное, чтобы в будущем ты не пожалел об этом.

Я действительно рекомендую всем выработать привычку заниматься спортом.

Тридцать минут физической активности три раза в неделю имеют такой же эффект, как и самые сильные психоактивные препараты.

Польза от настойчивых упражнений на самом деле незаметна: физическая форма, психика, внешний вид и личность постепенно улучшатся, а ночью вы будете лучше спать.

Кажется, что беспорядочные мысли и заботы все утекли потом, во сне ничего не произошло, а качество сна улучшилось, что само по себе может снять тревогу. Упражнения могут заставить организм вырабатывать эндорфины, которые могут значительно снизить уровень беспокойства.Вообще говоря, после бега, хотя тело и устает, дух, очевидно, значительно освежается.

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

сказать в конце

Держите ноги на земле и оставайтесь скромными.

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

Немного скромное мнение, но и надеюсь, что нести со мной!

Кроме того,У меня самого было шесть PDF-файлов, и вся сеть распространилась более чем на 10w +. После поиска «programmer cxuan» в WeChat и после официального аккаунта я ответил cxuan в фоновом режиме и получил все PDF-файлы.Эти PDF-файлы следующие

Получите шесть бесплатных PDF-файлов