Loading...
Yulia avatar Yulia 1346 Точки

[Exam] JS OOP - Впечатления от изпита

Кръстих темата банално, но не искам това да бъде просто поредната тема за впечатления от изпита, а по-скоро чрез дискусия да открием къде са проблемите за постоянно понижаващите се общи резултати (по мои наблюдения, дано греша). Това не е тема, в която да обсъждаме кои тестове не са ни минали и защо, а цялостното ни представяне и организация.

- Защо се случва така?
- Как оценявате представянето си на изпита? Вярно, че автоматизираното тестване е едва 50% от оценката, но е странно да има толкова много хора с нулев резултат.
- Споделете как се подготвяхте за този изпит, учехте ли изобщо?
- Какво ви помага най-много: лекции, домашни или подготовките за изпита?
- Какви бяха очакванията ви, оправдаха ли се? 

Въпросите са към всички, независимо дали имате максимум точки или не. Просто наистина се изненадвам от това, което виждам в judge-а като резултати.

Според мен този изпит беше лесен - почти всичко беше същото по аналогия от подготовките. Останалото беше валидации и съвсем малко мислене. Тук по-скоро времето изтича много бързо и не е достатъчно, за да помислиш за най-забутаните тествоте какви може да са. Явих се още в сряда на изпита и по-скоро се надявах на знанията си по JavaScript, а не на ООП като принципи. Мотивация не ми липсваше - от JavaScript Basics недоволството си имам fuel още...

Както обичайно - не отделях време за гледане на лекциите, но някак си в тези 3 седмици дойде разбирането за някои наистина важни концепции. Преди не знаех как точно става разделянето на модули, но успях да го упражня с домашните. На моменти много се ядосвах, че правим безсмислени неща (моля, стига сте давали shapes за упражнение по ооп!!! x.x това е най-скучната задача евър), но чрез ООП като цяло разбрах как работят някои патърни, как може да си напишем собствена библиотека, по-лесно ми е да разбера backbonе и knockout сега. Дори като пиша нещо друго на JavaScript, се хващам, че пиша класове, докато преди не го правех. 

И в тази посока мога да добавя, че който не харесва JavaScript, следващите 2 курса за него ще са голяма мъка... как ще се справите с това? :) Каква е мотивацията ви занапред?

15
JavaScript Advanced 17/11/2014 14:07:53
Ventsislav avatar Ventsislav 343 Точки

Здравей Юли, аз мисля че на мен не ми стигна времето понеже не започнах добре. Направих голяма глупост от началото не си бях вързал js файлът към html файлът и се чудех какво става и така захубих бая време. След това успях да си създам класовете и видях че toStringa трябва доста да се пипа започнах със датите издокарах ги по-едно време бях изключително близко до outputa беше ми останало да принтирам Destinations и хоп вече времето беше минало, та не успях да си ги издокарам като хората но взех 20 точки.

Напълно те подкрепям за следното изречение : "Все пак пропуснахме цял курс за работа с DOM и UI, a домашните бяха точно такива, заради което човек трябва да инвестира много време, за да разбере как да го направи това, а не да научи самото ООП."Аз не се бях занимавал много с DOM и домашните меко казано ми се струваха доста неполезни за изучаването на самото ООП.По-добре да бяхме минали такъв курс и там да имахме тези домашни ...

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

Изпита не беше много труден, но все пак се чувствам задължен да кажа че подготовките ми се сториха по-лесни. Какво искам да кажа ? Ами там нямаше такива заигравки с toString и пак се решаваха за 2 часа и половина или 3 ...
Edit: не съм забелязъл функцията fortmatDate ... 


Полезно за изпита беше :
Самите подготовки за изпита реших ги по 2 пъти задачите.
Изключтелно много ми помогна скрипта на Valleri за генериране на клас за което много му благодаря че го сподели с нас.

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

 

5
16/11/2014 20:29:16
Karlie avatar Karlie 438 Точки

Този пост е по-скоро въпрос, отколкото коментар, така че ще се радвам на отговорите ви.

Става въпрос за скритите тестове в judge-a. Тъй като нямам никаква практика и наблюдения върху работата по един софтуерен проект в реална фирма, интересува ме - често ли се срещат в реалната работа ситуации, в които нямаш възможност да видиш входните данни, които ти гръмват кода? Подозирам ,че отговорът е "не", но знам ли... На мен лично ми беше особено полезен фактът, че на този изпит (първата дата, в сряда) до последно ми гърмеше по някой от zero тестовете и можех да видя какво реално липсва в решението ми. Та не е ли по-полезно да имаме достъп до входните данни на всички тестове, и като видиш какво бъркаш, да се научиш как се поправя грешката, а не да губиш сума ти време в препрочитане на условието и почесване на главата? Вярно, че това може да го направи всеки пост-фактум, когато изпита се пусне отворено в системата, но съм сигурна, че не много хора имат едновременно и  времето, и желанието да си доразчоплят задачата.

Та да внеса нотка положителност в коментарите за изпита - поне по мое наблюдение, този път входните тестове към заданието бяха много добре нагласени, за да покрият условията на задачата и бях приятно изненадана от тях, добутаха ме до 10 теста от 11. А не както ми се е случвало няколко пъти преди на изпит в СофтУни: трите zero теста минават перфектно и въпреки това - 50 точки от judge-а. Иди разбери после какво липсва...

Идеята за това със скритите тестове вероятно е някакво упражнение по "Състави си сам Unit Test", но все имам чувството, че в другия вариант (да виждаш входа) също има немалка полза.

 

0
16/11/2014 22:17:09
petrovaliev95 avatar petrovaliev95 358 Точки

Здравей, Колега

 

Най вероятно в функцията която извиква командата "filter" не връщаш като резултат готовата за това функция в енджина. А сега иди разбери какво трябва да връщаш като резултат когато никаде не ти пише какво трябва да връща функцията и когато няма резултат какво да връща и на всичкото отгоре нямаше нулев тест който да хване този случай. Лично аз много се разочаровах. Веднага след изпита като се прибрах разбрах каква ми е грешката, като имах повече време да разгледам кода и да разбера, че са ни написали готова функция която да върши това. Пробвай с нея и ще качиш точките до 90 (поне аз така бях). Аз писах до екипа на софтуни ще се радвам ако ми обърнат внимание и обърнат на това повече внимание в бъдеще. Този изпит нямаше нищо общо с предния по ООП там тестовете бяха направени повече от добре.

 

Поздрави, Даниел

1
Yulia avatar Yulia 1346 Точки

Дани, Karlie беше в сряда на изпита : ) Иначе тогава тестовете си бяха много добре направени наиситина, особено нулевите. А 8-ми тест дори и след изпита дълго се чудех защо не ми е минал. Писах в тази тема за самата задача. Тук не мисля, че е мястото да се обсъждат технически детайли :)

И да се опитам да отговоря все пак на въпроса: нужно ли е да има такива крайни тестове, които ни отнемат часове главоблъскане, като в практиката можем да видим какво се случва: отговорът е по-скоро "да". Нужно е. Въпроса не беше формулиран така, но и не е зададен съвсем правилно.

Реално може да се следят чрез логове всички тези неща и при нещо извънредно да се оправи, но това не трябва да се случва. Един бъг/грешка колкото по-рано е поправена, толкова по-добре. Не можеш да пуснеш проект в production и после да си го тестваш "дай да видим юзърите какво ще правят тук". Ти си developer-а и ти трябва да си пишеш тестовете. И тези изпити ни учат да мислим по този начин - да помислим какво би могло да не работи. Може да ни е отнело часове, но когато се сблъскаме с това, ще се сетим моментално какво и защо. А и тук проверяваме за съвсем реални ситуации, като проверката за тип - знаем, че в JavaScript няма невъзможни неща, та се налага лично да ограничаваме някои от тях ;)

2
16/11/2014 22:20:27
petrovaliev95 avatar petrovaliev95 358 Точки

Извинявам се мислех, че е била в събота. Иначе да никаде в 3-те нулеви теста нямаше вариянт в който командата "filter" не открива нищо и връща "No results.", но това го разбрах чак едва когато пуснаха тестовете. След 6-ти натам всички ми гърмяха.

0
orb_77 avatar orb_77 10 Точки

Лично на мен проблема в този изпит ми беше това,че не беше написано в условието как трябва да се имплементира  "toString()" метода. Самото оoп го написах за около 40-50 минути. A останалото време трябваше да си изпращам решението в "judge" и да си го проверявам с "diff checker".  На всичкото отгоре се появяваха и някакви грешки които също трябваше да ги гледам от "judge". Като краен резултат получих 10 точки и много нерви. И явно според този изпит не знам "JavaScript", понеже трябва да знам от някъде как да го напиша този "toString()" еми "sorry" баце ама не съм ванга !!!.

4
16/11/2014 22:28:45
RoYaL avatar RoYaL Trainer 6849 Точки

Трите входни теста които са ни дадени покриват мисля 100% от случаите на toString()-а. Кое точно те затрудни? На изпита в събота беше нещо от сорта на - името на пропъртито, знак за равенство и стойността, разделени със запетайка всички пропъртита. Така написано и пуснато в джъджа ще излезнат тънкостите - че цената трябва да е 2 символа след десетичната запетая например. diff checker-а ен ещо нормално, предполагам всеки един от нас на изпита го е ползвал :)

1
16/11/2014 23:38:38
arsoman avatar arsoman 419 Точки

Здравейте, реших и аз малко да се включа в дискусията. Относно мнението на колегата orb_77, наистина не е дадено как да е "toString()" метода, но не мисля, че е нужно! Все пак доста пъти сме го правили, като видиш output-a трябва да ти стане ясно, аз например там нямах никакви проблеми, освен датата на JS, толкова се издразних, че накрая се преборих с месеците чрез външен мой метод, който просто ползва switch! Това си е мой проблем, в нета търсих, но не видях точно функция, която връща месеца като трибуквен стринг, затова си го написах, но работи 100%. Това ме забави над 30 мин, иначе допълнителната команда не беше трудна, само че трябваше да се съобрази, че ползваш formatQuery /или както там беше/ както на другите методи! Тоест просто гледаш изхода на подобен метод и си го правиш същия, но с твоя логика за филтър и сорт. Сорта може би ми беше не съвсем добре, защото като краен резултат имам само 60/100, пък други грешки почти не видях. Последното нещо беше валидацията, явно там някъде ми гърмеше, не можах да се оправя с израза "не е задължителен, на ако го има, да не е празен стринг", също и на третия тест късно разбрах, че НЕ ТРЯБВА да махам дестинация към екскурзия, просто защото тя не е била закачена преди, пък аз я махам, но това също си е мой проблем. Времето не стигна, може би още 10-15 мин, но все пак не бях ставаа от стола....Като цяло съм доволен, извадих си изводи занапред, желая успех на всички колеги и ГОРЕ ГЛАВИТЕ!

PS: Наистина съм объркал сортирането, сега видях от решението, малко ме е яд, защото го бях учил, но явно толкова съм го запомнил...

2
17/11/2014 11:10:55
mzografski avatar mzografski 189 Точки

Според мен имаше още един момент, който не беше упоменат в условието, но в тестовете го има, стига да се сетиш какво да гледаш.  Сега виждам, че и авторското решение го имплементира както и се очаква, но изходът е коректен въпреки код-а. Имам в предвид startDock пропъртито на Cruise класа. 
Ето имплементирания в авторското решение toString за този клас:


Cruise.prototype.toString = function() {
return Excursion.prototype.toString.call(this) +
(this.getStartDock() ? ",start-dock=" + this.getStartDock() : "");
}

Гледайки го,  стигам до  заключението, че ако е извикан то изходът му ще представлява нещо като:
вход:
insert(type=cruise;name=Kruiz;price=500;start-date=11-Sep-2014;end-date=23-Sep-2014;start-dock=Varna)
list

изход:
* Cruise: name=Kruiz,start-date=11-Sep-2014,end-date=23-Sep-2014,price=500.00,transport=cruise liner
** Destinations: -,start-dock=Varna

Но не би... Кажете ми аз ли не довиждам нещо?

ДОБАВКА:

След проверка на записания Cruise с показаната по-горе команда,  излиза че ( изход на console.log(travels); поставен на ред 418 в авторското решение):

[Cruise, extends: function]
0: Cruise_destinations:Array[0]
_endDate: Tue Sep 23 2014 00:00:00 GMT+0300 (FLE Daylight Time)
_name: "Kruiz"_price: 500
_startDate: Thu Sep 11 2014 00:00:00 GMT+0300 (FLE Daylight Time)
_startDock: undefined
_transport: "cruise liner"

Изглежда и авторското решение има пропуск.

ДОБАВКА2:

Гешката в авторското решение е в конструктора на Cruise класа:


function Cruise(name, startDate, endDate, price, transport, startDock) {

Cruise класа не би следвало да приема транспорт като параметър, тъй като по условие този параметър винаги е "cruise liner".
Правилния конструктор би бил:

function Cruise(name, startDate, endDate, price, startDock) {<br><br>

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

Cruise created. * Cruise: name=Kruiz,start-date=11-Sep-2014,end-date=23-Sep-2014,price=500.00,transport=cruise liner ** Destinations: -,start-dock=Varna

Поздрави!

3
17/11/2014 14:09:34
RoYaL avatar RoYaL Trainer 6849 Точки

В темата с решението беше обсъдено това. Друг колега посочи, че авторското решение има своите грешки. Не съм го тествал, но предполагам, че то не вади 100 точки така написано. Както казах и там - аз в Cruise не съм имплементирал toString, и имам 100 точки.

0
mzografski avatar mzografski 189 Точки

Да, не толкова подробно, но да.

А ти как разбра, че не ти трябва?

За да го дебъгнеш ти трябва поне две качвания в judge. Или 20 минути да console.log() в браузър. Това е принципен въпрос, бъпреки че съм използвал конкретен пример за да го поставя. Това е впечатлението ми от изпита.

0
17/11/2014 14:22:03
RoYaL avatar RoYaL Trainer 6849 Точки

Въобще не го дебъгвах. Има го на първия примерен тест :)

Това е примерния аутпут на 1вия нулев:

 * Excursion: name=Tibet,start-date=17-Dec-2014,end-date=28-Dec-2014,price=1250.50,transport=bus
 ** Destinations: -
 * Cruise: name=Transatlantic cruise,start-date=2-Jan-2015,end-date=16-Jan-2015,price=1778.00,transport=cruise liner
 ** Destinations: -

 

От тук ми стана ясно, че Круиз и Екскурзия са едно към едно. И след като Круиз наследява Екскурзия, не ми трябва туСтринг, като базовия върши абсолютно същата работа.

 

 

2
yavor2000 avatar yavor2000 114 Точки

Днес седнах да разбера къде ми гърми рашението, което смятах че е на 100% вярно, но ми даваше само 40т :(
Не съм гледал още авторското решение и тестовете, но си намерих грешките.
Задачата от към ООП не беше по-трудна от подготовките. Направих си и валидациите и се оказва че са ми правилни.

Оказаха само две леймърски грешки, чак не мога да повярвам (само да посоча че съм доста добър в дебъгването и съм си разучил подробно IDE-то с което работя WebStorm - shortcut-и, snipet-и и т.н.):

грешка 1 - за форматиране на команда list правилно се сетих да ползвам готовата функция formatTravelsQuery и тя си работеше коректно, с изключение на това че съм добавял един излишен нов ред при повече от един travel, когато travel-а има и destinations. А това се оправя с един прост if

грешка 2 - сортирането на масива _travels го направих с travel instanceof classOfInterest, което при classOfInterest = Excursion, връща не само инстанциите на Excursion, а и на Cruise, защото последния е наследник на Excursion. Едно правилното решение е да вземем конструктора на обекта чрез object.constructor.name

Всичко на всичко 3-реда код за коригиране и задачата заспа на 100т.

Срам! Това са толкова елементарни грешки, че нямам думи. Все пак да не забравяме че писането на ООП си иска време, както и дебъгването. При повече време всички щяхме да имаме повече точки, но deadline-а си е deadline.

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

4
RoYaL avatar RoYaL Trainer 6849 Точки

Аз в този ред на мисли, да попитам, дали е грешно ако в класовете сме си добавяли някакви наши методи, които не са описани в клас диаграмата

0
yavor2000 avatar yavor2000 114 Точки

Не виждам причина да не можем да си добавяме наши методи. Ето един възможен вариант да си добавим наше поле:

Както знаем в Node.JS и chrome сортирането е нестабилно. В JavaScript няма сортираща функция която да е гарантирано стабилна, следователно или трябва сами да си напишем сортираща функция (да не се бърка с comparator функция!) като например MergeSort, или да си добавяме едно поле брояч, на всяка инстанция от класа. Така всяка инстанция ще има пореден номер отговарящ на последователността на създаването й - нещо като индекс.

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

0
17/11/2014 15:21:58
a_rusenov avatar a_rusenov 1103 Точки

Здравейте,

Във връзка с липсата на "No results." в условието на задачата от събота, изтрихме всички случаи от тестовете, където има такъв изход. Като резултат всеки който има коректно филтриране е получил поне +10 точки (никой не е загубил нищо от ретестването).

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

4
17/11/2014 17:27:01
petrovaliev95 avatar petrovaliev95 358 Точки

Радвам се за бързото отреагиране. Ще се радваме ако за в бъдеще няма такива пропуски в нулевите тестове и условията. :)

3
arsoman avatar arsoman 419 Точки

Страхотна новина, тъкмо се чудех защо имам толкова малко точки, при коректно филтриране на нещата! Благодаря за поправката, която дойде доста навреме, но наистина се надяваме да няма подобни случаи занапред! Успех!

3
zontak avatar zontak 457 Точки

Преди да започне да се решава подобен тип задача е ясно, че трябва кода да се прочете.. Това, че нещо не е написано в условието не значи, че е некоректно.. Този метод в кода не е писан за красота, нали трябва да има и уловки.. Глупаво е хората, които си гледат кода да не бъдат компенсирани и по двата начина.. Това ли беше начина да блъснете онези 100 човека с 0ли да си вземат изпита или само така на мен ми се струва? Наистина е жалка гледката но нали целта на софтуни е да изкара кадърни кадри.. а хора, които не могат да направят 4 класа с 1 метод за 4 часа не ми се струват едни от най-кадърните. Наков е прав, че хората сядат преди изпит да учат и е хубаво, че сега ще вкарвате " лабове ".. но има поправки ( които и без това правите елементарни, за да може пак слабите да ги изкарат с 300-400/400 ) и този елементарен изпит може да се вземе и там с 100/100..С тези 10 точки дето им давате да продължат напред, не им помагате.. а им вредите ;)

 

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

1
17/11/2014 23:57:08
milen8204 avatar milen8204 296 Точки

Моето мнение от този изпит (15.11.2014 г.) е, че най - големия препъни камък беше връщането на класовете в ретърна на Models... това беше показвано само на JavaScript шаблони за дизайн и тази практика я нямаше в другите клипчета или в домашните.

В същото време енджина ползваше вече дефинираните класове, които не бяха "публични" (ретурнати от Moduls) пру дебъгване тук хвърляше "undefined is not a function", което е доста често срещана грешка и може да се случи поради много причини и не можеш да се сетиш интуитивно веднага, а още по - малко като на 2-рия час от изпита имаш 0 точки. :)

 

0
RoYaL avatar RoYaL Trainer 6849 Точки

Въпреки грубия коментар на Зонтак в отговора по-горе, има огромно право в идеята, която се крие зад него.

СофтУни трябва да се грижи за комфорта на студентите, но това трябва да става предварително. Всички взети мерки по време на курса водят до прецедентни ситуации и респективно до удовлетворяване на едни и недоволство у други.

Нека изложа моята гледна точка малко по-конкретно.

Вече почти една календарна година учим в СофтУни. Минахме БЕЙСИКС курсовете по голяма част от най-използваните езици в съвремението, което според СофтУни е основата на програмирането и би трябвало след тези курсове, да сме развили мисленето, нужно ни да бъдем програмисти.

От тук нататък следва да ни развиват като програмисти, с мисленето което сме развили ние самите, обучавайки се в ниво 0 и ниво 1.

Нямам нищо против някой, който на C# Basics е изкарал 100 точки, да продължи в Java basics. Аз самият на C# Basics изкарах 320 точки. Реших първите 3 задачи за нула време и останалите 2 не можах да напиша и ред код, който да ми даде точки. Освен Console.WriteLine(0) което ми даде по 10 точки на задача. Какво разбрах от този изпит - че въпреки, че имам някакъв опит в програмирането ми куцат алгоритмичните задачи (с вложените цикли) и побитовите операции. Седнах вкъщи, заинатих се, поучих, пописах - и на Java Basics изкарах 380 от 400.

Та, да се върнем на човекът който е минал нулевото ниво на абсолютния праг за допускане. 100 точки е една задача и да речем това е първата. Т.е. студентът е научил стрингове, но не е научил цикли, вложени цикли, битове и т.н.

До изпита по Джава би трябвало да седне и да ги поучи и да изкара поне 200 точки. Т.е. още една материя отгоре. Обаче не би - този студент изкарва 100 точки отново. В най-лошия случай - на същата материя - задачата със стрингове.

Материалът се усложнява, започваме да учим колекции и т.н. Дошли са вече отборните проекти. Разпределен е в отбор по Джава и може би там ще научи нещо, което ако не на изпита, то в следващия курс ще му е полезно.

Идва JS Basics. На изпита точките на студента пак се въртят около 100. Отново отборен проект преди това, отново изпит, отново нов курс - РНР и системата се повтаря - точките са около 100 или между 100 и 200.

С предаването на домашни, проверката, точките които е извлачил от отборния проект, на който са го носили на гръб е изкарал оценка Добър или Много добър и продължана напред - на ООП.

Студентът не знае основата в програмирането, защото е покрил само 25% от нея - стринговете. Не е наясно с циклите, с базовите колекции и масиви, но се сблъсква с ООП.

Съвсем нормално и по пътя на логиката изкарва 0 точки на C# ООП. И съвсем тенденциозно, както сме забелязали от предните изпити, точките се въртят според това какво е изкарал на предния изпит, т.е. какво знае до момента, а по ООП то е едно огромно нищо и естествения ход на събитията е на JS OOP да изкара същия брой точки, а именно - НУЛА.

Та нека обобщим. Имаме студент, който на 4 изпита без да броя ХТМЛ, където е много вероятно да има отличен - има ~150 точки и на още два има 0.

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

Да ме извинява, ако някой се е познал в описанието ми, но когато отворя резултатите от изпитите срещам не малко хора, които отговарят на профила, който описах.

Нямам нищо против тези хора, но те изнемогват, не им е тук мястото и единственото което се случва е - те да не са в комфортната си зона, и същевременно да са вписват в отборни проекти и прочие с други хора, които трябва или да ги носят на гръб, или да ги изключват от отбора си. Всмисъл такъв, яко ще е, ако имаше как да ги научи някой от отбора, но щом СофтУни не е успял до момента, студентите ли ще успеят да го направят?

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

Та, помислете как да научите хората, които имат огромни пропуски (и като цяло хората, които се нуждаят/нуждаем да бъдат/ем научени), вместо да ги бутате напред.

 

10
Karlie avatar Karlie 438 Точки

Роял, по принцип си прав. Давам ти плюсче на мнението и да, и аз искам СофтУни да държи ниво, да стане име, а не да се превърне в поредния държавен университет, където който не е влязъл, той не е завършил.

Но този конкретен изпит (за датата в събота говоря) е доста съмнителен. Не съм присъствала на място, не знам как е било, но като отворих първоначалните резултати от любопитство, не можах да повярвам като четях кои колеги по колко точки са изкарали. Хайде, да не ги цитирам имената, но но може масово хора, които непрекъснато си пускат решенията на домашните тук във форума, отговарят на въпроси и помагат на закъсалите като мен, да изкарват по 20 -30 точки на изпита. Да, ти си такъв човек, и имаш 100 точки, но знаеш ли колко други "известни" колеги нямат? А другото е, че като махнаха това "No results", на много хора резултатите са скочили с по 40-50 точки. Това е огромна разлика, като за "прочети по-внимателно zero тестовете и напечатай един стринг".

2
18/11/2014 12:33:14
RoYaL avatar RoYaL Trainer 6849 Точки

Карли,

Позволи ми да не се съглася за изпита.

Функциите, които са ни дадени на готово са за да ги ползваме, а не за да си имплементираме свои.

Нали пише avoid code-duplication. Според моето скромно мнение, който не е ползвал formatTravelsQuery функцията, предоставена от енджина, не само не трябва да получи допълнителни точки, ами трябва и да не получи такива от ръчната проверка, заради code-duplication.

Няма нищо съмнително в изпита на 15ти. Имаше две неща, които трябваше да се ползват в енджина - formatDate() и formatTravelsQuery()

Нали това е една от идеите на изпита - да се ориентираме в чужд код. Иначе да бяхме изтрили целия енджин и да си го бяхме написали наново?

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

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

Ще ти дам един пример, в първата фирма, в която работих. Там през няколко месеца се пускат ивенти в игрите. По някой път ивентите са еднотипни, но с различни награди (item-и). Горе долу какво представляваше кода който управляваше това:

switch (event.getName()) {

    case "easter":

        event.addItem(6);

        event.addItem(8);

        break;

    case "christmas":

       event.addItem(12);

       event.addItem(13);

       event.addItem(18);

       break;

    default:

       break;

}

 

Съответно на мен ми се наложи да имплементирам halloween ивент. Там item-ите не бяха 2 или 3, а бяха 10тина. И какво направих:

 

var halloweenItems = [19, 24, 28, 29, 30, 32, 36, 37, 38, 40];

и в switch-a:

 

case "halloween":

    halloweenItems.forEach(function(item) {

        event.addItem(item);

    });

    break;

 

И познай какво - скараха ми се. Казаха ми, че не пиша по начина, по който е написано във файла. Било добра идея, ама вече имало установен принцип. Или да пренапиша кода за всеки ивент по същия начин, или да пиша както предните два ивента.

И сега да се върна на изпита. Понеже на изпита нямаме право да пренапишем вече написания код - ни остава само единия от двата изхода. Да пишем така, както виждаме, че е писано.

2
18/11/2014 12:57:50
Vacheva avatar Vacheva 154 Точки

@Royal, аз съм от тези, за които говориш, неуспелите, и минаващи с по 100 точки. Аз съм начинаещ, без да се извинявам с това. И съм тук, за да се науча. И ми се иска да кажа на всички напреднали, колко ви се възхищават такива като мен, защото когато и да си дадете мнението - винаги има какво ново да се научи. Но сега, по тази тема, гледате от върха на планината.

По спомени, такива като мен, след приключването на това ниво, би трябвало да го повторят - по правилата на СофтУни. И аз въпреки, че психически се подготвям за този момент, все още продължавам да не се отказвам да се уча (нивото не е приключило)!

Ще изложа няколко свои наблюдения. Смятах, че съм единствената затънала, преуморена от интензивното обучение, от бързата смяна и редуване на един език с друг. Какво започна да се случва във форума?! Ами той замря! Може да се види по категориите, че от ООП насам, въпросите във форума намаляват. Колегите, които пускаха домашни започнаха да се оплакват, че им преписват домашните, и някои спряха да ги качват, а други да пускат нееднозначни коментари за преписвачите. Материалът за курса е тежък.

Какво ми липсваше, на мен, ще пиша за последния курс: ясни примери в код, ясен подход към задача като за изпит - какво да погледнем, как да се ориентираме, какво можем да ползваме, варианти на задачи. 

Домашни: Не успях с домашните, защото каквото и да приложа от лекцията, домашното не тръгва. Задачите по-рано бяха градивни спрямо лекциите, може би няма достатъчно материал. Спрях да качвам домашни. Единствената сверка е кода на колегите от форума, а на тях не им е приятно (нищо че продължават да ги споделят?!?). Няма и да оценявам, защото нямам капацитета да дам адекватна оценка, и защото се иска градивна критика, но нямам база за това (до сега не съм си позволила да давам коментар от рода на "Кода ти е готин. Успех.").

Как се готвих: освен лекциите на СофУни, ползвах и лекции на Плурълсайт. Писах домашни, след срока за предаване. Гледах задачите на колегите от Академията. Готвя се през цялото време, на всеки курс, и смятам че идеята с Lab-овете е страхотна и ще бъде от полза за всички!

Защо ви споделям всичко това?! За да знаете че има и друга страна на монетата.

No hate, no whimper! That's our community! (@zontac, you are still young but that's no an excuse)

Нещо трябва да се промени, и се радвам че организаторите на обученията се опитват да направят подобрения! Защото аз не искам да се отказвам, а да се науча! И съм тук, за да ми помогнат да се науча.

 

8
18/11/2014 18:47:46
presian avatar presian 223 Точки

Като начало ще кажа, че бях на изпит в събота и мисля, че липста на изрично описан аутпут не беше толкова голям проблем имеше достатъчно лесен вариянт за проверка с HTML-конзолката и в последствие дифчекера. За ретърнването на класовете от модула и мен ме сбърка първоначално, но след дебъг (който първите два пъти ме обърка още повече) разбрах какъв е проблема. За използването на готовите функции -> все пак трябва да се види как работи кода има функции които за да ви изкарат аутпута в HTML-а ги ползват, не мисля, че бяха трудни за откриване. Аз лично най-много време загубих докато рабера при филтера защо нищо не се случва -> оказа се че получвам обект, а не три стойности -> след половин час дебъгване (ще ме извинявате ама дебъгването на JS не е като на C# -> променливите имат 200 протота и не знам си какво още, докато видиш това което на теб ти трябва си е филм(поне за мен)) го разбрах с consol.log() и от там всичко заспа, оказа се, че единствената валидация която бях оставил за по-късно гърми (датата). Но намерих готова в нета и всичко заспа. 

Няколко извода за изпита от мен:

1. За първи път на изпит на който аз се явявам нулевите тестове бяха достатъчно разностранни и показваха в общи линии всички комбинации, които може да има като аутпут. Само адмирации за това.

2. ХТМЛ конзолката - просто нямам думи работи супер.

3.  arsoman аз също съм начинаещ, но от изпитите до сега се научих да "чета между редовете" в случея буквално.

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

5. Скалиране на резултатите е правено и на предишни изпити, така че няма защо да го обсъждаме след като има някакво неизяснено условие отразяващо се негативно на голяма част от студентите то трябва да се вземе предвид, но тябва и да се даде бонусче на хората справили се въпреки проблема ->.

 

И няколко извода за обучението и защо спадат резултатите:

Ако не ме лъже паметта това е първия път в който имахме два варианта за подготовка (изключвам C# Basics) и то първата подготовка беше проведена доста рано -> това много добре. Защо обаче за задачите в домашните трябваше да учим DOM при положение, че няма да го имаме на изпита(ясно че е важно да го знаем, но не в този момент и в този курс), аз лично за всяко от домашните губих по един ден за да търся как да манипулирам ДОМ-а. ДОМ ни беше "из*ра*" в карая на JSBasics три дни преди изпита и никой не го научи (или почти никой). Основния проблем не е слаба мотивация на студентите, а прекомерния темп, който се налага в обучението и препускането през материала - до сега нa всички курсове без JSOOP последната лекция е на не повече от 3-4 дни от изпита, като в този период влиза и защита на отборните проекти. Сметнете на онлайнърите колко време им остава да научат последния материал за курса, при положение, че те могат да видят лекцията най-рано след обед на следващия ден. Това с лаб-овете е супер идея, но нашия випуск вече е изпуснал много от материал в опит да настигне влака и според мен нещата ще се задълбочават все повече.

За мен лично най-болната тема е видеото и материалите от курса в петък -> ясно, че в 22 в петък никой няма да ги качи, но поне в събота да са качени, но това се е случил един път (може и да греша), трябва да чакаме до понеделник и събота и неделя, когато хората са по-свободни да си бъркаме в носовете. А все пак в събота се провеждат курсове, значи има някой в SoftUni и може да я свърши тази работа. 

 

 

4
18/11/2014 16:19:13
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.