Як почати конкурентне програмування? [зачинено]


17

Я займаюся кодуванням деякий час, але проблема полягає в тому, що мені потрібно багато часу, щоб написати рішення проблем. Я хочу запитати, чи може конкурентне програмування допомогти мені покращити це.

Якщо так, то як мені почати і з яких веб-сайтів я можу користуватися (як TopCoder )? Я, очевидно, зараз не зможу вирішити дуже важкі проблеми. Що я повинен зробити?

Якщо ні, то що мені ще робити?

У мене також є ще одна проблема, що я хочу навчитися кодування, але річ у тому, що я відчуваю, що я не дуже добре в цьому. Що я повинен зробити? Це все одно, що нудить мене зсередини.

Я знаю, що деякі люди можуть не вважати це питання інформативним, але, будь ласка, дозвольте мені отримати відповідь.


1
Не варто також недооцінювати значення спільного програмування. Ми спостерігали деякі проблеми в нашій команді через надмірну конкурентоспроможність - через інженерні / міжособистісні проблеми. Таким чином, конкурентне програмування може допомогти вам, але так би могло брати участь у проекті з відкритим кодом або розробляти проект з однодумцями.
Гевін Хауда

Відповіді:


19

[може] конкурентне програмування допоможе мені в покращенні [швидкості]?

Так, це може, і, приділивши достатній час, це, безумовно, буде. Однак швидкість - не найважливіший навик, який ви збираєтеся вдосконалювати. З мого досвіду участі з TopCoder протягом 10+ років, найважливіший навик, який ви збираєтеся взяти за допомогою конкурентного програмування, - це вміння вперше правильно писати прості фрагменти коду, не використовуючи відладчик.

Як слід почати і з якого сайту, як TopCoder?

Використовуйте практичні кабінети для відділу 2. Рівень 1 Div 2, як правило, "набирає змагання", в тому сенсі, що ви відразу ж знайдете рішення, тож ваше завдання стане кодувати його якомога швидше. Більшість завдань у реальному житті є такими. Ви швидко зрозумієте, що налагоджувач - це найбільший "злив часу", тож ви, природно, спробуєте завершити свій код, не налагоджуючи його. Це буде неприємно на початку, але з часом воно покращиться. Потрібно буде кілька сотень проблем першого рівня, щоб виправитись, тому не здавайтесь.

Налагодження у вашій голові - це вміння, яке допоможе вам у вашій реальній роботі: хоча швидкість кодування не важлива, вміння писати правильні фрагменти коду без налагодження допоможе вам перейти від хорошого до видатного.


Спасибі багато @dasblinkenlight!
Вайбхав Агарвал

10

Як початківець програміст, ви повинні набагато більше турбуватися про якість свого коду, ніж про швидкість його написання. Ви повинні самостійно працювати над проектами, щоб розширити свої навички. Ви можете слідкувати за цим, переглядаючи проекти з відкритим кодом, щоб побачити, як інші пишуть код, і, можливо, почати внести внесок у проект з відкритим кодом.

За свої 25 років розробки коду на різних платформах та бізнес-сферах я жодного разу не знайшов жодного випадку, коли швидкість написання коду була важливішою, ніж якість та стабільність мого коду.


Але коли ви берете участь у конкурсі, скажімо, якийсь конкурс кодування чи інтерв'ю, тоді швидкість має значення? І це занадто багато я відчуваю.
Вайбхав Агарвал

@cdkMoose це добре, але чи можете ви також запропонувати мені, як почати конкурентне програмування, значить, з чого почати?
Вайбхав Агарвал

@VaibhavAgarwal Project Euler Проблеми від 1 до 50: хоча він не є конкурентоспроможним (якщо ви не намагаєтесь бути одним із перших, хто вирішив останню проблему), це складне завдання та тип питання, який можна очікувати у змаганні з кодування. або процес співбесіди.

@Vaibhav, я б розпочав змагальне програмування так, як я би розпочав будь-який інший конкурс: практика, практика, практика.
cdkMoose

1
@Vaibhav: Ви написали, що хочете навчитися програмуванню. Якщо на цьому етапі ви перебуваєте, я особисто не думаю, що вам взагалі слід займатися конкурентним програмуванням. Це може статися після того, як ви розвинете свої навички. Що стосується інтерв'ю, я не прошу своїх кандидатів на співбесіду писати повні програми. Мене більше хвилює їх розуміння та мислення. Я намагаюся розвинути впевненість у тому, що вони могли б вирішити проблему, а не в тому, що вони вирішать її в рекордні терміни.
cdkMoose
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.