Какви поуки си взехте след първия изпит?


12
Леле не е истина. Поспах си и днес погледнах задачите с бистър ум и идеята да си оправя грешките. Аз съм вариант 2.1 (6 December 2013 Evening) и имах 260 точки.
 
Ето как протече изпита за мен и какви са ми поуките:
 
Докато се свържа с bgcoder да видя условията на задачите -> Минаха си 20-30 минути.
 
После като решавах първа задача ("2-4-8") и избирах променлива - викам uint трябва да стигне. Ако ми вади грешки в bgcoder -> ще сменя на ulong. Пробвам да си пусна решението - сайта долу. Викам направо да почвам да решавам втората ("Nightmare on Code Street").
 
Докато решавах втора, успях да се свържа с кодера и си качих първата -> гледам 70/100. Що ли, си викам? Бе де да знам - в момента решавам друга. После ще я гледам. Може би даже след като реша и четвърта, че много хора я решават успешно по принцип - що да губя време за 30 точки да търся exceptions щом може 100 -> ПРИОРИТЕТИ.
 
Като реших втората, гледам че пишат в условието "текст с цифри", текст-мекст. Викам си - сигурно ще бутнат няк'ви грозни знаци между другото. Чакай да я кача пък после ще му мисля за проверки. Само ако не е 100/100. Пробвах submit -> кодера пак долу :< Време е за 4-та с лодките("Kaspichania Boats"). Може пък втората да хваща 100 точки без добавки?
 
Докато решавах четвърта, успях да се свържа с кодера и си качих втората -> гледам 70/100 (Абе тука нещо се повтаря случката). Къде ли ми е грешката? Няк'ва проверка май трябваше да направя? Остави, с'я в момента съм се развихрил с четвърта, скоро я свършвам. После ще ги гледам тия със 70 точки.
 
Направих четвърта и качвам - ей най-после не е 70, а 100 точки. Сега какво да правя? Тези първите две не са на сто, ча'й да им хвърля едно око -> нищо не се сещам на пръв поглед. Дали да хвърля второ око? Абе що не погледна малко и другите 2 задачи, вместо да си губя времето за 60 точки? Виж как добре ми се получи с 4-та. Пък и има ~3 часа още. Все ще се намери време за полурешени задачи.
 
Та гледам аз 3-та("Enigmanation"). О-о-о трябва калкулатор да правя. Много parse-ване на знаци и цифри, много нещо. Не, че е невъзможна. Просто тая бая време ще отнеме. Къде ми е bit-аджийската задача? Там ми е силата. Гледам 5-та -> ето я. Абе и тая не е много къса, ама поне съм сигурен, че ще я реша. Bit алгоритъма веднага ми се появи в съзнанието и не ми трябваше много време да реша коя от двете задачи да почна.
 
Петата ("Game of Page") ми отне повече време от предвиденото. Нещо условието ми се видя много неясно :< Разни въпроси, разни отговори, повтарящи се ситуации. Трудно се разбират тез' жени. Изведнъж си излетя времето. Дали да не си търся грешките в 1-ва и 2-ра? Ма'ни! Толкова съм близо да свърша с петата… Тестовете обаче отнемаха прекалено много време заради обемния input, въпреки че ползвах и автоматизиран input от текстов файл (piping от конзолата), така пък debugging-а беше тегав. Толкова знам с'я. Няма време да търся по-ефективни методи. Дай направо ДА НАМАЛЯ ВРЕМЕННО input-a на 3 реда вместо 16 и ДА ПРОБВАМ РЪЧНО. Там е работата, че ЗАБРАВИХ за тази "МАЛКА ПРОМЯНА" и после се чудя и се мая що за странни резултати получавам като ВКАРВАМ ВСИЧКИ 16 РЕДА! (Абе тоя абзац нещо взе да звучи другояче; да не си помислите нещо само)
 
В крайна сметка времето свърши и имах 10 минути да предавам. Направо предадох каквото бях направил -> 20/100. Ужас! Ник'во време за тестове. Няк'ви отчаяни опити направих и предадох в последната секунда. Така и си останах с 260 точки файнъл ризалтс(РЕЗИЛтс?). 20 спечелени точки за 3 часа работа. Можеби ако имах само още малко време…
 
Сега, като погледнах задачите отново, грешките ми бяха повече от ясни. Вижте шибания diff между решенията, които предадох и тези които сега барнах. Това е разликата между 260 точки и 400! Най-много ме заболя за пета задача… Diff-a ми се усмихва даже. Ще го убия!
 
Каква ми е поуката? Хубаво правех, че решавах повече задачи, вместо да вися и да си търся грешката на една задача. И без т'ва имах проблем със стабилността на нета и там задължително щях да изгубя още много време - не разчитайте да има интернет. Това което правех не както трябва - не си водех бележки докато решавам задачата. Разни хрумвания, разни тестови промени и т.н., не си ги отбелязвах, а с течение на времето лесно се забравят (особено ако не си спал скоро и прескачаш от задача в задача). Така се самопрецаках много, а нищо нямаше да ми коства поне да поставя някой друг коментар в сорса.
 
 Друго нещо -> трябва да се подготвя за по-лесни и бързи тестове next time. Дори autohotkey щеше да свърши повече полезна работа, по 5-та задача, от това с което разполагах. А дали не е казано в някоя лекция как да тестваме правилно? Явно съм пропуснал. Може би има опция във Visual Studio, като изберем конкретен проект>цъкнем RMB>Properties(Alt+Enter)>Debug>Start Options> Command line arguments" да въведем "< path\to\the\TestInputFile.txt" и да ползваме pipe-ing с debug support? Може и да има. Не съм се запознавал с нея преди изпита.
 
А, и друго  нещо - да не ви пука много много за memory limit-a на първия изпит. Карайте на сигурно.
 
Вие какви поуки си взехте след първия изпит? Къде ви беше слабото място? Подготовката, организацията, нещо друго? Смятам, че ще е полезно за хората след нас, явяващи се за пръв път. Пък и за нас.

 




Отговори



0
Моят личен извод от цялата работа е, че винаги, винаги, винаги трябва да си иша по-сложните и оплетени задачи на лисчте и като за 3-годишно :D , също и да тествам доста по-често, отколкото всъщност го правя.
На моя изпит бях решила 1-4та задачи и се захванах с петата. Не ми изглеждаше особено трудна, но вече се бях изморила и пишейки съм изпуснала някои части от условието и дори и нулевите тестове не ми се получаваха, но когато го видях вече нямах достатъчно време да я пренаписвам. Все пак реших да я пусна в БГ Кодер - можеше да има някакви тестове с нули, които да ми донесат някакви точки... иии 37 точки :)
Все още не съм сядала да я погледна, защото знам, че ще си намеря някоя глупава грешка и ще се изям от яд :)

от Tanya2013 (426 точки)


2
Извода за Мен е следният Подготовка , подготовка и пак подготовка :). За типа задачи за които се бях готвил нямах почти никакви проблеми, за останалите мъка :) Така че не жалете време за подготовка за изпити, ако се готвите старателно резултатите не закъсняват.

от mboiko (295 точки)


2

Поуката ми е че трябва да работя повече с БгКодера. Една от  задачите ми я прие на 50% и докато бях на изпита не можах да разбера защо е така. От тази гледна точка ще е добре някой ден и задачите от домашните да бъдат качени на БГКодер, хем да си проверяваме домашните веднага, което системата веднага да отчете, хем да добиваме повече опит с БГКодер като си търсиме грешките веднага. Защото явно докато решаваме домашните правиме някакви грешки, които не ги виждаме веднага и ги повтаряме на изпита. Подкрепям идеята, която предожи колегата Hristo Bakalov:  "Много е трудно домашните да се качат в BGCoder, защото за всяка задача, трябва да се измислят тестове, които да обхващат всички гадни случаи, което си е играчка. Като идея, може да бъде направено като отборна работа" т.е., на 1 отбор - 1 тема от C# I или C# II примерно, и  за 1 задача от домашното по 1  тест на човек в отборната работа /т.е. в 1 отбор може да са повече от 10 човека./              


от Opteronic (1153 точки)


1
Поука - наспете се преди изпита, защото по едно време даже не ми се четяха и условията, а се опитвах до реша една задача с принтиране по конзолата, така и неуспях да я накарам да заработи коректно, на следващия ден след 15 16 часа сън, в час по програмиране, когато отворих задачата да я покажа на даскалката, ми отне точно 10 секунди да открия че трябвало да намеря колко пъти се съдържала тройката в едно число и задачата ми щеше да е решена ...



5
Най-важните неща, които разбрах аз след изпита бяха двечки, и то безумно простички.
1) Practise makes perfect.
2) Най-лошото нещо, което можеш да направиш е да се откажеш. RageQuit-a e лошо нещо, особено в изпитна среда. :D Това, че една задача като я пуснеш в BGcoder и изгърми с 0 нула точки не означава задължително, че грешно си работил. Понякога буквално един ред от кода, най-вече този, който изкарва output-a e разковничето в задачата. И тогава ти иде да си rage quit-неш от rage quit-a. :D
И другото важно нещо е, че след няколко часа стоене на кожените столове в залите, започва да ти пари на дупето. :D
Както и да сме се представили на изпита, било то супер зле или супер добре, най-важното според ме е това, което сме научили. защото точно в напрегнати ситуации правиш или най-добрите решения или най-лошите, но и в двата случая научаваш неща, които дори да искаш, няма скоро да забравиш. Нещо като обица на ухото. :)
Поздрави, колеги, и да се стягаме, че C#2 иде!



0
Грешка... сори

от Sir_EFO (733 точки)

0
Мм дам, това с rage-quit-a ми е познато. Радвам се, че все пак не се отказах, но в един момент супер много се изнервих и като прибавим и напрежението, че времето тече и направо си забих. Тъпа работа, но пък човек така се учи :)

от IvaylaH (150 точки)


1
Изводът е да се чете условието ако ще и 100 пъти ..... В четвъртък в 13:15 имах 487 и седях до 15:55 и неможах да мръдна заради помилваните :Д

от Sir_EFO (733 точки)


3

Моята поука е, че не трябва да се притеснявам толкова, да си гледам толкова често часовника и да се губя в мислите си постоянно, което ми изигра много лоша игра. Меко казано се изложих много... Надявам се да ми е за последно smiley


от m3tr0n0m3 (660 точки)


0
Че трябва да се УЧИ!

от bstaykov (528 точки)


2

Аз бях с вариант 2.1. Реших първата, даде ми 70 точки, прекарах следващите 10 минути опитвайки се разбера защо, не можах и продължих. Втората я реших за 2 минути и тръгна от първия път. 

От тук тръгнаха проблемите, на третата отделих прекалено много време реших я правилно с Regex, но ббеше прекалено бавно и после не можах да го оптимизирам. Загубих към 2 часа. Не трябваше да го правя, но както се оказа не е имало значение. 

Четвърта я реших за 20 минути и тръгна от първия път. 

Пета задача е най-големия ми провал, изчетох условието сигурно 50 пъти, но имаше една уловка, която не успях да разпозная на време. Реално задачата беше решена на 99%, но не получих и 1 точка. Трябваше да мисля out of the box... да проверя какво ще стане ако променя малко правилата, но не го направих и си понесох последствията. После се върнах и си оправих първа задача. Третата с уравнениета, дето я реших с regex ми докара 16 точки и така на изпита изкарах 316 а наистина сериозно си мислех, че ще изкарам повече от 400.

За трета задача нямаше какво да направя, но за пета съм адски ядосан. Извода : Ако сте написали кода по спецификацията и пак не върви значи сте го написали прекалено буквално. Това е качество, което ще ви е от полза, да пишете код поискан от някого, който не знае как се пише код. Рядко някой ще дойде при вас с перфектна спецификация, която прихваща всички случай и както сам разбрах, на изпитите ще има и такива задачи.


от scarylabcat (801 точки)


1
Един ден преди изпита се релаксира ! Аз решавах задачи до 1:00 след което станах рано за изпита, но това ми изигра много лоша шега. Просто след известно време забих, а нямах копче за рестартиране :) Тази грешка ще ми остане, като обица на ухото !