Loading...

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

MartinRusanov avatar MartinRusanov 95 Точки

Система за учене.

Здравейте на всички. 

Не си спомняма дали съм писал преди на тази тема, но става дума за много важен въпрос за мен.

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

        Тук забелязвам, че системата за учене даже в Programming basics е много различна. На лекциите, както и в учебника на Наков, който е изложен тук дават само основни концепции за езика C# които не могат сами по себе си да те подготвят за трудните домашни и особено за задачите за приемния изпит. Тва което съм забелязал още е, че повечето задачи за домашно които ни дават в курса по основи на програмирането са точно мо та мо по лекциите и са лесни (тези без звездични). След което като срещна задача за звездична или 2 звездични изведнъж летвата на трудност се покачва много на високо; някои от тези задачки с повишена друдност са били давани и на изпит. Въпросът ми е следният: може ли някой който е минал по този път да ми покаже начин или въобще механизъм на учене в програмирането тук и това как да направя преход от елементарните задачи в домашното и тези със звездичките които уж "не били задължителни", но за мен са от голямо значение да се решават и тях заради подготовка за изпита. Също така ако може някой да ми даде предпоръки след коя съботна лекция подред да започвам да се пробвам да решавам задачите от минали изпити за да се подговя за изпита (ако успявам въобще да ги реша)

Аз съм напилно начинаещ

Чувствам се доста безпомощен и ви благодаря за вниманието

10
Programming Basics 18/10/2015 11:03:25
Lamms avatar Lamms 197 Точки

Първа задача от изпита е много лесна, тя обхваща материала до conditional statements. Хубаво е да изрешиш първи задачи от минали изпити предварително, за да видиш тънкостите относно закръгляне на числата  и да схванеш работата в джъдж системата.

Когато знаеш какво е цикъл, можеш да решаваш вече и трети задачи, те са еднотипни/без на последния изпит от 30 август - аз бях на него/. В общия случай се решават по един и същи начин, гледаш видео на решена такава задача от лектори - например на Богомил видеото от курса май 2015 за задачата Magic Wand, тя е от най-сложните задачи, но той пък обяснява много добре. И започваш после сам да се упражняваш на тях.

Втора задача също не е трудна, обаче за нея трябва повечко разбиране на цикли или пък може да са включили начално разбиране на масиви. Обикновено е лесна, но трябват по-всеобхватни знания на началното ниво.

Четвърта и пета задача са по-сложни. Пета може да се реши по два начина в повечето случаи - побитово или със стрингове, четвърта пък обикновено е с масиви и иска повече развито алгоритмично мислене (по мое мнение). 

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

12
vpl2001 avatar vpl2001 54 Точки

Това е едно от най - перфектните мнения и препоръки относно изпита, което съм чел. Аз също съм напълно начинаещ и казаното от Lamms е абсолютно точен синтез на нещата! Поздрави на всички!

1
MartinRusanov avatar MartinRusanov 95 Точки

Значи искате да кажете, че за начало трябва да решавам лесните задачи без звездички, а после като мина няколко видео лекции напред от предишни курсове и след като прочета темите от книгата на Наков (тези теми които засягат подготвителното ниво) чак тогава да започна да се връщам назад към домашните от миналите седмици и да се опитвам да решавам задачите със звездички така ли ?

0
mihayloff14 avatar mihayloff14 824 Точки

Здравей,

Ще ти разкажа как аз съм учил навремето C# Basics когато бях напълно начинаещ.

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

Относно задачите за изпит които се дават като задачи за домашно, аз лично не бих ги правил. Винаги предпочитам първо да премина през целия материал и да натрупам достатъчно know how и след това да започна да решавам изпитни задачи. Причината е, че за да решаваш изпитни задачи ти трябва да изградиш определен механизъм за даден тип задача, което не е учене и се доближава до cramming-а по време на сесията при държавните университети. Аз мисля че ако започниш да решаваш изпити от рано, основния ти фокус по време на курса ще бъде да си вземеш изпита, а не да получиш максимална добавена стойност.

Като сайтове, които са полезни по време на решаване на трудните задачи са dotnetperls (доста добри туториали за начинаещи) и stackoverflow (bgmamma за програмисти).

2
18/10/2015 19:34:52
MartinRusanov avatar MartinRusanov 95 Точки

Благодаря ви много за съветите !

0
vlad.dinev avatar vlad.dinev 13 Точки

Здравей!

Поздравления за решението да се занимаваш с програмиране и поздравления за това, че не се притесняваш да потърсиш помощ. Напълно разбирам начина по който се чувстваш, дълго време и аз се чувствах така. Наистина, книгата на Наков колкото и да е добра, за напълно начинаещ може да дойде в повече. Трябва база фундаментални знания, за да може да се осмисли всичко вътре. За да я натрупаш, моят съвет е да прочетеш една-две книги за C. Чисто C. Тези от типа "Кратко ръководство за начинаещия" - 890 стр. Обещавам ти, че с всяка прочетена глава ще си отговаряш на все повече и повече фундаментални въпроси, които в момента ти се струва, че ти трябват диплома, врачка и медициниска сестра, за да разгадаеш. Очаквай да ти отнеме доста време и очаквай да са неща, които ще научиш веднъж за винаги.

Личните ми фаворити са:

Programming in C - Stephen G. Kochan

C++ Primer Plus - Stephen Prata

C Programming. A Modern Approach - K. N. King

Търси последни издания и не се плаши от обема.

Успех!

 

2
maistora_1 avatar maistora_1 23 Точки

Здравей,

къде могат да се намерят книгите за С? Хартиено копие? Електронен вариант?

Мерси предварително!

 

0
a1mbiser avatar a1mbiser 63 Точки

Колега според мен като система за учене гледането на лекциите + книгата на Наков + доста кодене са по-добър вариянт отколкото да се разсейваш с други книги/езици (да четеш книги за С/С++ докато учиш и C# ми се вижда overkill особено за човек без предишен опит в тази област) фокусирай се върху натрупване на основните знания що е то програмиране,променливи,условни конструкции колекции (масиви/списъци) тези неща са фундаментални и са общо взето еднакви при повечето езици.

Относно задачите доста от тях са решавани на подготовките за изпит от предишни курсове поразрови се и изгледай решенията може да имаш знанията но да ти липсва подхода (поне при мен беше така).

Когато забиеш на някоя задача разрови се из форума има много решения ако не намериш такова пусни тема все някой ще ти драсне решение или ще ти обясни :)

Успех.

 

3
RoYaL avatar RoYaL Trainer 6849 Точки

Здравей,

Системата за "учене" не е напълно различна. Напротив. Същата е. Ако искаш да постигнеш същите резултати, каквито си постигал в университета с медицината, а именно - да си вземеш изпитите, за да потърсиш следващия университет, тъй като предходният се е оказал fail, то системата е до сущ еднаква - зазубряш един спектър от задачки и после на изпита сглабяш решения. Подобно на зазубрнето на уроци.

Въпросът тук е: това ли е твоята крайна цел?

...

Ако отговорът ти е "не" - прочети текста надолу.

Програмирането, както и всяка друга професия (грънчар, пилот на самолет, и т.н.) се дели на основно две логически части: 1. занаятчийската част (job done) и 2. научната/изследователската част (ефикасност, производителност, поддръжка и т.н.)

Какво имам предвид под тези двете точки?

Програмистки проблем:

- Да се запише информацията (име, презиме, фамилия, телефон) за трима човека и после да се изведе на конзолата

Решение (т.1. job done):

- Правиш по четири променливи за човек и записваш информация в тях (namePersonOne, etc...). После ги принтираш.

Възможен проблем:

- Ако хората станат 1000, променливите стават 4000 и поддръжката на този код невъзможна

Решение (т.2.):

- Обект "човек" и създаване на серия от такива обекти.

-------------

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

За щастие при програмирането е много по-леснодостъпна sandbox-натата среда. Т.е. не е нужно да потрошиш редица самолети, за да стигнеш до този извод, нито е нужно да прекараш 10 години в четене на теория, за да избегнеш някакви рискове. Цената е много по-ниска. Можеш свободно да си тренираш на тепиха. Повечето хора в тази индустрия са самоуки. Възползвали са се от това, че могат тренировъчно да решат проблема с хората и техните имена и телефони по единия начин, а после плавно по прехода на научната част, да стигнат до извода, че това не е правилният начин и от занаятчии да се превърнат в developer-и.

Смятам, че този преход е естественият ход на събитията при всеки програмист. Важно е да се започне от това да се решават проблемите. А за това не ти е нужна особена подготовка. За това ти е нужен само и единствено проблем за решаване. Такива в домашните и изпитите имаш бол. Избираш някой и започваш да го гриндиш, докато не го решиш. На първо време ти трябва да развиеш problem-solving уменията си.

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

- Бос си и трябва да си обуеш обувките за да излезеш. Преди тях обаче трябва да си обуеш чорапите. Взимаш двата чорапа в ръка, отиваш до обувките и:

1. Обуваш единия чорап

2. Обуваш обувка върху него

3. Обуваш другия чорап

4. Обуваш обувка върху него

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

1. Обуваш единия чорап

2. Обуваш другия чорап

3. Обуваш едната обувка

4. Обуваш другата обувка

Надали ти е трябвал механизъм за учене за да стигнеш до този извод. Както и до извода, че трябва да обуеш лявата обувка на левия крак, а не на десния. Докато решаваш програмистките проблеми, забрави че става въпрос за програмиране, абстрахирай се от това. Състави си алгоритъма все едно решаваш real-life проблем. След което просто намери в учебниците, презентациите, книгите или просто в гугъл, какви са инструментите за постигането на този алгоритъм, в общия случай - докато научиш базовия синтаксис на езика за програмиране, може да се налага и да гугълваш най-основни неща като как се построява условна конструкция или да си пускаш клипчето от лекцията десетки пъти. После става като рефлекс.

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