Софтуерно Инженерство
Loading...
+ Нов въпрос
Matrix avatar Matrix 1087 Точки

Полезни съвети за изпита по C#

Много бързо ще се изтъркаля времето до изпита по C# - а той е най-важното нещо от целия курс... В общи линии, ако трябва да направим асоциация - това е големия мач за влизане в групите на Шампионската лига. Това е денят за квалификациите във Формула 1, където ще се разбере, кои ще стартират от челни позиции в голямата гранд-при надпревара на пистата СофтУни, и кои ще отпаднат... Принципно всеки изпит си е най-важният Ден, от който и да било курс. Всичко за което сте се подготвяли,  тренирали, старали през останалото време се концентрира и има значение именно в този ден! Може много да сте учили... Може и да се спечете, да нямате ден, да сте уморени и задачите да се паднат скапани и изобщо да не са ви по вкуса...Може пък да ви се паднат точно такъв тип задачи които знаете, може от раз да нацелите правилния път към решаването им, може просто да имате късмет и въпреки не добрата ви подготовка по време на курса, на самия изпит да се представите добре...


При абсолютно всички сценарии обаче важат няколко прости съвета ("правила"), които може да се каже че се явяват общи за почти всички изпити и винаги е добре да се спазват, ако човек иска да се представи добре! Ще ги систематизирам накратко тук, защото както обичаме да се шегуваме на тази тема - "Много вече плакаха, заради неспазването им":

 


1. Преди изпит си подгответе техниката (лаптопа)! Чувал съм какви ли не истории: "Компютърът ми се рестартираше/забиваше по време на изпита", "Visual Studioto ми работеше много бавно", "Ако мишката/клавиатурата ми не беше толкова скапана щях да се представя по-добре"...Еми хора, тва звучи като все едно пилот от Формула 1 да каже "Ми ако си бях напомпал гумите щях да се представя по-добре"... В смисъл това ви е най-важния момент от курса, срамота е да не отделите време да си подготвите техниката и на изпита да губите време в глупости.

 


2. Носете си карирани листа!!! Помага ви, за да си разчертавате алгоритмите, формулите, различни неща по задачите! Ако има задачи с координатни системи, тези карирани листа ще са ви направо  безценни.

 


3. По време на изпита сте под напрежение! Няма нищо общо с лежерното решаване на задачи в къщи с биричка в ръка... Преди да започнете да решавате първо прегледайте отгоре-отгоре условията на всички задачи, за да придобиете представа горе-долу какво ви очаква.

 


4. Започнете от най-лесната за вас задача! Не започвайте от най-трудната! Разпределете времето си на изпита мъдро. Не губете 3 часа в решаване на само една задача. Това е най-най-често срещаната грешка, която новаците правят - "Близо бях да я реша, аха аха да я реша, още малко, още малко...А? ми то половината ми изпит се е минал и имам само 100 точки!?" Ако виждате, че някоя задача се опъва, дълга е или пък се е закучила да не дава повече от 80 точки примерно - оставете я, не губете още 1 час, за да си докарате оставащите 20 точки... С тях и без тях - давайте към следващите задачи! После, ако ви остане време (малко вероятно, но все пак ;) ) може да се върнете обратно.

 


5. Правете си почивки. 6 часа забити с поглед към екрана си е бая време. Ако от СофтУни разрешават да се правят почивки и на открито, задължително се възползвайте - няма нищо по-добро от това да рефрешнете мозъка си, ако е забил.

 

 6. Това не е изпит по КПК (качествен програмен код) - ако задачата ви дава точките от автоматизираната система за оценяване, хич да не ви дреме, че сте я решили по дървен начин, кодът ви не е форматиран правилно и така нататък..Нали тестовете са минали в ситемата и имате 100 точки? Давайте нататък към следващата задача... Което не значи разбира се да мажете с краката си по кода и после като дебъгвате да не може да разберете за какво всъщности иде реч... Ма тая променлива "а" кво значеше и тн!?! Задължително си пишете читави имена на променливите!!!! Абе прочетете доуточнителните коментари за тази 6-та точка, които са дискутирани към поста на ZvetanIG по-долу ;)

 

7. Решавайте задачите постъпково. Една задача обикновено се състоии от няколко компонента, етапа, елемента... както искате го наречете... Т.е. трябва да направите примерно 4 неща, за да може задачата да сработи (все едно задачата се състои от други по-малки 4 подзадачки). Не се панирайте! Направете го стъпка по стъпка - рядко става наведнъж и от раз...Започнете, с това което можете да направите по нея, за тове което можете да измислите алгоритъм, имате някаква идея, логика... В хода на решаването може да ви хрумнат идеи и за остоналите компоненти от задачата как да ги натаманите.


Със сигурност има и още какво да се добави, но на първо четене, това е което се сетих като най-важно.

Успех!

 

Edit - UPDATE

dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Мога да добавя също, че едно от най - важните неща е подхода към решаването на една задача. Да си разчертаеме в главата самите стъпки, които трябва да следваме и да вникнем в това, което се иска от нас в условието. От личен опит споделям, че преди да почна да решавам дадена задача, прочитам условието няколко пъти и след което на празен лист си записвам логиката (нещо като план), която трябва да следвам (поне при мен това помага). Смятам, че човек, ако вникне в идеята и наистина разбере какво изисква конкретната задача и установи това, което се изисква от него, няма да има проблем .Споделяйте и други съвети :) Мисля че написаното по горе наистина трябва да му се обърне внимание. Успех :)

И в същата тематика мога да добавя една интересна техника за справяне с конкретни проблеми и въобще за организиране на умствения процес ->  Mind Mapping и ви поствам една статийка (ако потърсите в google ще намерите много изписани редове по тази тема). Надявам се да ви е от полза :)

Mind Mapping

6
ZvetanIG avatar ZvetanIG 925 Точки

Съветите са добри, няма спор.  Само не  съм съгласен с пренебрегването на  качествения код. 

Представете си, че програмата ви изгърми някъде или нещо куца в логиката, а това се случва почти винаги, когато човек пише програма. 

Кога ще си откриете  грешката по-бързо?  Когато сте писали безобразно или когато сте се постарали да си подредите кода по-някакви правила?

Според мен качествения код не е за пренебрегване.

3
Matrix avatar Matrix 1087 Точки

Това е така безспорно! Друго имах в предвид - като човек е под напрежение, бърза, няма време и т.н. да не се впряга, че го е написал с краката, щом е на крачка системата за оценяване да го възнагради със 100 точки или дори вече ги е взел...


Аз ако ти покажа какви верни решения съм пращал към БГ кодер и какви безумия съм писал за главата можеш да се хванеш - ама на изпит е така, бързане, напрежение... Виждаш решението пред себе си, натаманяваш там кода, колкото да му мине теста в системата за оценяване и тва е.... Няма време да го мисли човек как е най-правилно да се напише, най-качествено, тука много ентъри имало между редовете, дай да ги оправя...Ама INT ли да ползвам тука или sbyte, че така ще е по-оптимално...?!?! Излишни подробности са това на този етап... !!!


Това имах в предвид, не разбира се да мажете с краката си и после като дебъгвате да не може да разберете за какво всъщности иде реч... Ма тая променлива "а" кво значеше и тн!?! Задължително си пишете читави имена на променливите!!!!

 

Между другото се сетих нещо - много често системата за оценяване не ви дава пълния набор от 100 точки, защото примерно типа данни, който ползвате да кажем не побира всички възможни тестове... Седите и си блъскате главата какво става, а то просто примерно трябва да смените INT на long или направо на BigInteger...

 
5
ZvetanIG avatar ZvetanIG 925 Точки

Така е. Съгласен съм с теб. Но някои колеги разбират нещата твърде буквално.

Всеки трябва сам да прецени до каква степен да "омазва" кода за сметка на бързината.

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Съгласен съм за качествения код, но по принцип за да можеш да постигнеш качествен код трябва да имаш малко или много повечко практика, но наистина, ако пишеш по начин, по който сам лесно можеш да се разбереш (ако мога така да се изразя:) ), е много по лесно наистина да стигнеш до финалното решение :) 

0
TodorovH avatar TodorovH 216 Точки

Сега да ви кажа аз за качествения код! :)

Желязото се кове докато е горещо!!!

Докато се учим и нищо не е станало рутинно трябва да си налагаме да пишем по всички правила, които са ни казани от лекторите, дори в началото да ни се струва, че заради това пишем малко бавно или дори ако изпитвате досада! 

Така като минете 10-20 задачи толкова ще ви се е набило в главата правилното писане, че дори и малката разлика от правилния начин на писане ще ви се струва голяма грешка!

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

Така, че налагайте си да пишете правилно в началото и после е лесно!!!

2
Matrix avatar Matrix 1087 Точки

Абсолютно така си е!

КПК по принцип е изключително важно нещо:

 

- първо, така се избягват грешки и значително си улеснявате работата.

 

- второ, другите хора, които работят по кода ви много по-лесно се ориентират в него.

 

- трето, вие самите след време се ориентирате по-лесно какви сте ги писали :)

 

Но ако сте на изпит и задачата ви е дала 100 от 100 е безумие да се връщате отново към нея, за да губите ценно време да си форматирате перфектно кода, да триете излишните using-и или да си преименувате всички променливите по конвенции на КПК. Това имах в предвид. На изпит времето лети много бързо, всяка минута е ценна и трябва да се използва мъдро...

0
techmaniac avatar techmaniac 133 Точки

Много полезна тема !!! Относно това за кода (дали е форматиран или не) , прекрасно те разбирам.. на изпит не е все едно си на почивка вкъщи. Страхотна тема , ще е от полза на много хора .. особенно това за карираните листи :)

Поздрави

0
jabalka avatar jabalka SoftUni Team 959 Точки

Здравейте.

Опитът е показал, че поне при мен правилото за първите пет минути е златно.

Първите пет минути гледайте през прозореца, бройте хората в залата, бъркайте си в носа, каквото и да е, само не четете условията на задачите. Когато адреналинът е в повечко, възприятията куцат повече от обикновено и се стига до елементарни грешки от неправилно разбрани условия на задачите.

Едно време в гимназията от недочитане (четене на условията в първия момент) доказвах, че ъгълът, чиято големина трябва да намерим, не съществува... :):):) Хем повече труд, хем по-ниска оценка ;)

Успех на всички!

6
Matrix avatar Matrix 1087 Точки

Така е, всеки трябва да си намери начин, чрез който да постигне спокойствие и концентрация...Панирането не води до нищо хубаво... Колкото до изпита по C# - правилното разбиране на условието на задачата е МЕГА ключово и за нейното решение и затова да не си губите излишно времето в писане на неща, които нямат смисъл... Решаваш, правиш, струваш - накрая прочиташ пак условието и ти става ясно, че тва което правиш изобщо не е тва, което се иска... Не рядко се случва, условията да са така зададени, че да се налага човек сто пъти да препрочита и да пита трейнърите, какво аджеба се иска да се направи в тая задача...

0
IvanStoyanov avatar IvanStoyanov 68 Точки

Много добра тема! Евала! Важното е да не се притесняваме. Каквото ще става ще стане. Важно е да запзите самообладание и да не оставяте паниката във вас (ами сега какво ще правя) да надделее. Когато човек е спокоен по-добре се справя със ситуацията. Носете си вода, шоколад или там каквото искате. Правете си почивки, защото колкото повече забивате, толкова повече се обърквате и накрая в мозъка ви става каша. Можете да си направите вкъщи някакви помощни неща, от които да гледате.

2
Matrix avatar Matrix 1087 Точки

Като полезен съвет се сетих да добавя, когато изпращате решението си към judge.softuni.bg, и ако нещо ви гръмне в кода при тестовете, да отидете на "Details" и да видите какви грешки при Expected output и Your output ви изписва... При мен обаче системата нищо съществено не ми изписва, само ми оцветява в червено номерата на тестовете, които са се провалили... И при вас ли е така, или е само при мен ?

0
HPetrov avatar HPetrov 822 Точки

Детайли около грешката, била тя гърмене или грешен резултат трябва да ти дава само на нулевите тестове. На останалите трябва само да ти се оцвети в червено и естествено съответната иконка дали гърми или е просто грешен резултат (червен "X").

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

1