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

Что такое вклады с открытым исходным кодом?

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

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

Я бы сказал, что самый эффективный способ узнать, какой язык программирования нас интересует, — это пройти стажировку и принять участие в проектах с открытым исходным кодом. Это позволяет людям тесно сотрудничать с интересующей их технологией. Однако основным недостатком стажировок является то, что стажировку трудно получить, поскольку многие компании нанимают только опытных кандидатов, что затрудняет работу новичка. мир технологий. Именно здесь проекты с открытым исходным кодом играют решающую роль, позволяя людям исследовать свои интересы, обучаясь и внося свой вклад в реальные проекты, что помогает создавать портфолио и приобретать реальный опыт. На GitHub представлено множество реальных проектов, которые вы можете изучить и найти тот, который подходит вам лучше всего.

Что такое соревновательное программирование (CP)?

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

Алгоритмы. Это пошаговый процесс (или) набор правил, помогающий человеку найти оптимальное решение данной проблемы.

Соревновательное программирование (CP) помогает людям,

  1. Управление временем и преодоление давления.Поскольку задачи CP ограничены по времени, позволяя людям выполнить задачу в заданные сроки, это позволяет людям справляться с давлением и находить оптимальные решения при работе над реальными проектами, где время ограничено.
  2. Алгоритмическое решение задач:CP улучшает алгоритмическое мышление и навыки решения проблем человека. Это можно напрямую использовать на технических собеседованиях, где человека могут попросить решить сложные задачи по программированию.
  3. Логическое мышление:CP поощряет людей мыслить логически и аналитически, что является важным навыком на любой технической должности. Способность разбивать сложные проблемы на управляемые шаги имеет решающее значение в разработке программного обеспечения.
  4. Проведение собеседований. Многие технические компании используют в процессе собеседований задачи в стиле CP. Если вы хорошо разбираетесь в CP, у вас может быть преимущество во время технических собеседований.

Что более полезно: OSC (или) CP?

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

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

Знание предметной области: его можно назвать опытом (или) отраслевыми знаниями в определенном предмете (или) области.

Заключение

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

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