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

Кто я?

Меня зовут Адам, я из Пакистана. В настоящее время я получаю степень бакалавра компьютерных наук в Университете Харипура (UOH) и ожидаю, что она будет завершена в 2018 году. Во время моего 1-го семестра в университете я был удостоился чести стать самым молодым студентом, когда-либо участвовавшим в соревнованиях по скоростному программированию в моем университете. Хотя в то время я не знал никаких сложных концепций программирования (черт возьми, я даже не знал, что такое объектно-ориентированное программирование) и ничего не знал о структурах данных и алгоритмах, мой престижный учитель все же выбрал меня, потому что о моей страсти к программированию и моем послужном списке, так как я был очень хорош в программировании и мог легко подбирать новые концепции и решать проблемы. Что еще более удивительно, так это то, что мне удалось занять третье место для своего университета на этом конкурсе. Теперь я не знаю, были ли проблемы слишком легкими или я был слишком хорош, хотя я считаю, что это было первое, но это было очень важно для меня и вселило в меня большую уверенность. После этого я участвовал во многих соревнованиях по программированию и смог занять одну или две позиции.

Что ожидать

Я немного лучше решаю проблемы программирования, чем другие студенты в моем университете, но глядя на сайты онлайн-соревнований, такие как TopCoder, CodeForces и т. Д., И читая некоторые из формулировок проблем ACM ICPC, я понимаю, что я совсем не умею. Я как фигура среди шифров, и мне предстоит долгий путь, чтобы стать хорошим конкурентоспособным программистом.

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

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

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