[Exam] Java Basics - 21 September 2014 - впечатления, решения, резултати
Тъй като вече официално приключи и вторият изпит по Java Basics за днес, реших да отворя темата.
Първо, поздравления на успешно справилите се, а те не са малко.
Как ви се сториха задачите? По-лесни, по-трудни или на нивото, което очаквахте? Имаше ли по-кофти моменти, с които (не) сте се преборили?
По мое мнение задачите бяха на очакваното ниво; не бяха нито по-лесни, нито по-трудни от задачите, които са давани на предишните изпити. За разлика от някои спорни моменти, които установихме в предишни задачи, на днешния изпит аз поне не видях да има кой знае какви проблеми с условията или тестовете, т.е. доста по-шлифовани бяха.
Гледайки резултатите, около 20% от студентите имат 400 точки, което е съпоставимо с резултатите от изпитите по C# Basics на нашия випуск. Това означава според мен, че випуска като цяло се движи с очакваните от СофтУни темпове и се поддържа някакво постоянно ниво.
Аз бях в сутрешната група, та конкретно мога да споделя мнение за задачите от сутринта.
1-ва задача - стана ми лошо като видях името - Timespan. В Java времената са ми мъка; вярно, в Java 8 има доста по-кадърни класове за работа с такива обекти, но проблемът е, че имам малко практика с тях. Другият сериозен проблем е, че търсенето в гугъл често изкарва стари теми, в които се дават съвети с използването на остарялото и дървено java.util.Date. Неслучайно оставих тази задача и директно преминах към следващите. Без да преувеличавам, тук загубих най-много време, като накрая изтрих всичко и си реших задачата с int-ове, за щастие логиката не беше много сложна да се разпише и я направих сравнително бързо след като вдигнах ръце от разните парсвания към дати и т.н.
2-ра задача беше стандартна, омотах се малко в един момент, защото не си бях прочел старателно условието, но бързо си поправих грешките. Може би най-лесната за мен задача от изпита.
3-та задача беше по-завъртяна, ползвах два регекса, които доста облекчиха нещата. Който не е успял да научи регекс обаче сигурно е видял доста зор да си оправи входа и да го докара до думите, чиито тежести трябва да смята. Според резултатите, тук явно най-много хора са закъсали.
4-та задача - лесна за хората, които са решавали и схванали предните задачи с мапове. Вероятно непосилна за останалите. Имаше тук два по-трикови момента: 1) ядките трябваше да се принтират в реда, в който са получени на входа (т.е. TreeMap и HashMap отпадат като вариант), 2) трябваше да се взима substring преди парсването към число на количествата, за да се елиминира "kg" от входа. Третият по-важен момент е принтирането на изхода, като общо взето вариациите в този тип задачи идват основно в тази част. След последната лекция, на която бяха обяснени различните структури, подготовката, на която Асен реши задача с мап в мап, както и 1-2 самостоятелни решения, задачата я написах на един дъх, основно времето ми отиде, за да я изкодя. Няма особена вариативност в 4-тите задачи и наистина за тези, които са успели да отделят някакво време да се подготвят за нея, това е почти сигурно решена задача.
ТУК може да видите моите решения. Ще се радвам ако някой сподели по-различни начини за решения, най-вече на 1-ва задача, мисля, че на останалите няма кой знае колко място за творчество.
Ми аз съм на мнение, че май-май е по-добре ако обучението в СофтУни започва с Java и след това се минава на C#. По-лесно е да се усвоят простотиите на Java за 2-та месеца, които имат хората за подготовка в ниво 0, отколкото за 3-те седмици, които й се отделят в ниво 1. Също, Java като език е по-търсен на пазара, защото е open source, така че и интересът на кандидатите може да се повиши, защото е по-вероятно с това да си намерят работа. Разбира се, трудно е да се правят такива генерални промени в учебния план, но лично за мен щеше да е по-полезно ако сега учехме по-изпипания C#, за да се кефим как са оправили повечето глупости на Java-та.
Точно това имах предвид ФиКолев, за 2 месеца Java- та ще се усъвършенства доста добре, а след нея 3 седмици за C#, по мое мнение предостатъчни.
Наистина сега Java- та изглежда, като крайно абуригенски език, сравнение със C# и може би това е причината много от хората да се затруднят. Още повече, ако някой е гледал лекции и на Наков, където всяка трета дума е хейт към Java :D
@Filkolev, до някъде си прав, че за 2 месеца по- лесно ще се усвоят простотиите на Java, но C# е много по- лесен и по- подходящ за начинаещи. Също едва ли ще е добре за човек, който за първи път ще пише "Hello world" на конзолата да му обясняват, че трябва да мине на линкус, да си инсталира eclipse,ja... и т.н. По- добре ще е, ако се вземе от времето за html/css, така няма да има нужда от генерални промени :)