Привет всем! Если вы следили за мной в течение достаточно долгого времени, вы хорошо нагрузили свои мозги. Теперь мы поднимемся!

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

Когда я впервые начал заниматься соревновательным программированием, все мои опытные друзья посоветовали мне одну и ту же книгу Cracking the Coding Interview. Если вы чувствуете, что изучили все основы, эта книга идеально подходит для того, чтобы сделать шаг вперед. В первых главах книги основное внимание уделяется тому, как следует подготовиться к собеседованию по программированию. В книге подробно рассказывается о каждом аспекте процесса собеседования, например о том, что надеть для конкретной компании или чего интервьюер ожидает от кандидата. Когда вы закончите читать о том, как подготовиться к собеседованию, наступит настоящая проблема, как подготовиться к вопросам интервью. Для меня эта глава бесценна. Глава разделена на основные темы кодирования, такие как массивы, графы, динамическое программирование и т. д. В каждой теме сначала вводятся основы, затем показаны более сложные способы использования, советы и приемы. Прежде чем войти в раздел вопросов темы, вместе с книгой вы решаете вопрос, который очень полезен, поскольку вы получаете хорошее представление о том, как конкретно подойти к теме вопроса. После этого вы готовы войти в раздел вопросов и решить их самостоятельно. Некоторые из них просты, некоторые сложны, но в целом у каждого вопроса есть цель, и вы вынуждены думать о разных стратегиях, решая их. Если вы новичок в соревновательном программировании, эта книга отлично подойдет в качестве руководства.

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

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

В последнее время я думаю об участии в конкурсах CodeForces. CodeForces также является еще одной платформой для конкурентоспособных программистов, как и LeetCode. Однако вопросы несколько отличаются от LeetCode. Описания длиннее и имеют предысторию. Приятно видеть, как они пытаются совместить проблемы с программированием с реальными проблемами. Помимо вопросов, еще одним важным отличием являются конкурсы. Наверное, именно поэтому мне так нравится CodeForces, ведь он дает столько возможностей посоревноваться с другими. Сейчас единственная проблема, которую я пытаюсь решить, это найти время для конкурсов, так как они занимают у вас 2 часа.

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

Некоторые почетные упоминания: HackerRank, GeeksForGeek, TopCoder, FakeCoder, ShakeThatCoder, MakeMeCoder, CodeMeRightNow, HitTheCodeJack, CodeBusters, BreakingCode, CodeWho, CodeLock, GameOfCodes, MrCode, TheCodePlace, HotCodesWanted, How I met your Coder, GossipCode, PeakyCoders, CodyBlinders, C( ode)SI, The Last Code Bender, La Co De Papel.