Какви начини за учене на прогрмиране имате ?


3

Здравейте колеги 

Пускам тази тема, за да се споделя какви начини за учене имате вие и тъй като моя начин на учене не е много ефикасен. Само с писане на код няма да стане.

Благодаря.  




Отговори



8

Занимавам с програмиране от има-няма 4 месеца - много съм "нов" в това. За сега всичко ми е супер интересно и искам много бързо да натрупам много знания и най-вече разнообразни. Правя следното: 
Гледам лекции и семинари напред: Първоначално ги гледам веднъж на 1ва скорост като внимателно вниквам не толкова в имплементацията или синтаксиса, а в идеята - как и защо се прави, как ми помага, кога се използва и т.н. Така "наваксвам" донякъде и мога да съм на прилично ниво, предвид че в академията учат не толкова неопитни хора като мен (да си го кажем някои са вече програмисти).
Когато дойде време за някоя лекция я гледам на повече от 1 лектор. Тогава вече вниквам в основните детайли, синтаксис, имплементации, но най-вече слушам за "страничните неща" (малко по далечни от конкретната тема, но много полезни понякога) и съветите произлезли от опита (кое се използва повече - кога и защо).
Всичко ок, но дотук само гледане.
Правя си почти всичи домашни сам. Това е частта, която качвам в github и считам за абсолютен минимум подготовка в определен курс.
Упражнявам се над задачи от минали години, задачи, които съм срещнал "случайно" търсейки материали и неща, които ми хрумват и си пробвам сам. Не ги качвам никъде, не винаги правя целите задачи, съсредоточавам се над нещата свързани с тематата. Има задачи, които съм решавал по 4-5 пъти, но правя различни неща върху тях (примерно тествам задачи тотално несвързани с това - просто се връщам и разчитам на това, че познавам кода, да се ориентирам по бързо и да си направя упражненията). За другия трак често отварям конзолата на някой сайт и пиша js директно там: слагам/махам елементи, сменям стилове и гледам как се променя съдържанието. Всички тези упражнения за директно свързани с темата - така уча имплементации и синтаксис. 
Чета чужд код. Чета почти всички решения на домашни и се опитвам да разбера какво и как е постигнато. Това помага особено ако в кода ама проблем, който търся - така донякъде избягвам неща, които могат да се объркат и при мен.
Чета готов код на цели програми - това е най-голямото предизвикателство, защото има много непознати неща, опитвам се да разбера, чета документацията на методи и класове. Малко е като изстрели в тъмното, но има неща които просто съм видял някъде и съм ползвал "насляпо", но съм постигал резултат.
Обиновено това е цялата схема на 1 курс: Преди курса гледам всички лекции на предстоящия (дори и да съм гледал някоя от тях преди пак я гледам) - примерно вече съм изгледал всички предстоящи лекции на КПК и сега гледам JS OОP. Това не значи, че пропускам лекциите, просто отивам подготвен. Започне ли курса правя упражнения, домашни и понякога гледам лекции напред (често свързани с неща чути на лекциите). 2 седмици преди изпита най-късно започвам подготовката със задачи от минали години (решаване и гледане - в този ред). Точно преди самия изпит (1-2 дни) спирам решаването на задачи, почивам си, съсредоточавам се - това е основния период на почивка. Съответно ако изпитите са различни седмици правя 2 почивки по 1-2 дни не повече. 
Най-трудното в академията е, че изпитите са на английски. Учил съм го, гледам лекции на английски, чета на английски и все пак пропускам детали ... Когато изпита е тест падам със над 100 места надолу в класирането - просто изкарвам някакъв много нисък резултат. Но пък е полезно - всеки ходил на сериозно интервю знае, че за повечето професии има тестове на английски (IQ и други). 
Като нов в програмирането нищо не ми е познато, не мога да направя аналогия, но уча за да се науча най-вече. Резултата от изпитите не е най-важното, не се стремя да съм 1ви или топ 10 или нещо такова, но знанията които съм натрупал често ми осигуряват прилично класиране. За пръв път този курс изпаднах в ситуация с прилично количество знания изкарах малко точки (заради пропуск при превод на условието за съжаление - не толквоа от незнание :( ), но за мое щастие екипа на академията ми даде шанс (не само на мен ест - явно има и други ... като мен) с промяна на част от тестовете. Благодаря за което. Надявам се .... хммм .... ще се постарая да оправдая очакванията и да се представя по-добре на следващите изпити. 


от StoikoNeykov (2621 точки)


6
С практика и много код

от magadisho (823 точки)


3
Амфетамини 1 седмица преди изпита и без грам сън научаваш всичко! Много ефикасен начин е. През останалото време правиш каквото си искаш

от Toshe7o (309 точки)


2
Хахах ефикасен начин да станеш нарко, не и програмист! П.С. доста се забавлявах на коментара ти.

от milislavski (886 точки)

2
Това му е целта на коментара ми!

от Toshe7o (309 точки)



3
Според мен точно с писане на код,  четене и разбиране на чужд код, опитай се да решиш даден проблем по няколко начина, търси другите как са го  направили, измисляй си малки проекти и се опитай да ги  реализираш , почни стаж :) начини много само  желание е необходимо! Дерзай! 

от Mirka (1454 точки)


3
Аз след като изгледам всяка лекция си синтезирам новата информация. Всичко от презентациите, което смятам че е полезно си го записвам в мой файл (после уча и от него за изпита). Преглеждам примерните задачи и се опитвам да ги осмисля. И най-накрая сядам да пиша домашната. След това преглеждам и решенията във форума - и там се намират доста интересни неща.

от Doubleshot (429 точки)


2
Благодаря отговорати ми е много полезен. Благодаря много отново :Д 

от telerik2014 (420 точки)


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

от Tony_Nikolov (633 точки)


6

const learn = () => {

    let code = writeCode();

    if (code.works()) {

        return code;

    }

    readDocumentation();

    watchLectures();

    watchClips();

    readArticles();

    google();

    learn();

}; 


от teddyboneva (600 точки)


18

Писане на код, четене на интересни stuffs за компютри, писане на код, писане на код по време на състезания по информатика, писане на код преди състезания по информатика, писане на код след състезания по информатика (всъщност бях доста мързелив), ръчкане по операционната система, индексни дървета, AVL дървета, префиксни дървета, суфиксни дървета, други дървета, други структури от данни и алгоритмите идващи с тях, още алгоритми, математика, физика, интерес, желание, време, упоритост, практика.


от cuki (7696 точки)


4
Ти и мързелив?... Изобщо не го вярвам! :-) С мързел не се печелят медали, а ти ги имаш в изобилие. ;-) 

от david_mavrodiev (5355 точки)

2
само това ? :D

от sunshinet (90 точки)



9

Освен гореизложените от колегите дейности, помагащи ми да развивам най-вече математическата си логика, аз държа да запазя и креативната си логика, която ми помага да не зациклям твърде често, когато програмирам, а и да откривам по-бързо алтернативни решения, независимо от възрастта ми. Честно казано, от малък пиша рими и с течение на времето открих, че ритъма в тях всъщност се явява вид код (не само чисто формално, в смисъла на ударени и неударени брой срички, а и от гледна точка на логическата връзка между тези римувани думи, които в завършения си вид и подредени в дадена последователност създават определен смисъл). Ако откриеш творческото начало (без значение дали ще четеш повече книги, ще пишеш стихове, ще рисуваш картини или просто ще слушаш музика), това ще ти помогне по-лесно да развиеш асоциативното си мислене, защото ще започнеш да откриваш в ежедневието си кода, което умение от своя страна ти гарантира успешност, в качеството ти на бъдещ програмист. Аз не твърдя, че това е задължително условие, ала при мен поне по този начин се случват нещата! ;-) Ако успееш освен математическата, да развиеш и креативната си логика, това би гарантирало оригиналност на подхода ти не само в смисъла на създаване на авторски код, а и на идеята ти за бъдещ цялостен продукт, който да реализираш (както сам, така и в екип), което де факто би те отличило от останалите програмисти, залагащи само на стандартни методи за знания и умения. Това мое разбиране може да не е ефикасно, но със сигурност е ефективно, тъй като то се базира на усета ти за код, щом успееш да го откриваш навсякъде във всекидневието си. При мен точно усещането за код е тайната! :-) 

Успех ти желая в работата всеотдайна, за да успееш да откриеш твоята си тайна! :-D


от david_mavrodiev (5355 точки)


9

Хващаш си приятелка. Ходите 2 години. Тя ти изневерява. Депресираш се. Почваш да пишеш код непрестанно. Като минат 6 месеца от депресията си изписал всичкия код в домашните и изпитите от минали години в Телерик и си готов.

Като изключим шегата, всичко в живота се постига с много, много практика. Програмирането не се различава от това. Учените са установили, че да се усъвършенстваш в нещо трябва да прекараш 10 000 часа правейки го. 




4

Защо вече не се пише в тази тема?

А е толкова полезна за бъдещите курсисти, които малко да порастнем още и ще кандидатстваме в Софтуерната академия.

За това помагайте със съвети и мнения, програмисти! :-D


от valeri21 (516 точки)


3
На бъдещите курсисти на твоята възраст мога да кажа: Не сте малки.
Ако не сте натискали над Английския език - вземете го сериозно, защото си трябва. 
Не съм запознат с училищната и детската академия (може да питаш в майл), но съвсем спокойно може да започнете да си гледате лекциите в някой от траковете. Без да бързате, с много упражнения, упражнявайте се като правите сайтове свързани с интересите си или малки програмки и игрички в другия трак. Без да се съобразявате със скоростта на академията, лека полека с повече упражнения да тренирате начина на мислене. Вероятно ще ви се наложи да прочетете някои неща особено свързани с математиката, защото се учат в последствие, но има много информация в интернет. 
Колкото до самата академия - вероятно сте малки да присъствате, родителите ви може да има против особено на вечерните лекции (не смятам че има от какво да се притесняват, по скоро някой трябва да се ангажира да ви кара и връща после). Но ако това е пречка (или има друга причина - без значение каква) спокойно може да запишете онлайн, дори 1 по 1 траковете и да се явявате само на изпит. 
Това не е училище - хората са тук да се научат, а не защото трябва. Мисълта ми е: Никой не ви спира да започнете да се интересувате, да си пишете програмки и сайтчета. Имам познат програмираше от 13 годишен и на 18 беше готов системен администратор + програмист. Започна работа като старши системен администратор в малка фирма и междувременно пишеше по-малко софтуер главно на php и java, но това беше "модерно" тогава. 
На тази възраст не е толкова важно да сте мотивирани, по-скоро да ви е интересно. Много е яко да си правите разни работи да работят както искате. Изобщо не чакайте да пораствате - действайте! 



от StoikoNeykov (2621 точки)

4

Благодаря за отговора!

Аз действам и от 5 клас съм в Детската академия. Тази година бях в 6 клас и завърших Училищната академия. Ходих и редовно на лекциите от Алго академията, но не можах да отида на изпита и затова тази учебна година ще я завърша нея, надявам се успешно. Така че не стоя, а следвам пътя на братовчед ми Давид, който ви е колега в Софтуерната академия. :-)

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


от valeri21 (516 точки)