Върху коментарите работиха:
Кирил Митов, Управител, Робопартанс ООД
Любомир Чорбаджиев, Технологично училище „Електронни системи“ към ТУ – София,
Обновление на 15.10.2012 – пратени писма от БАИТ до членовете, софтуерни компании, които да дадат мнение в рамките на тази седмица.
Цел
През последните месеци министерството на образованието изгражда учебни планове за професията „Програмист“. Тази статия има за цел да популяризира непостигнатите за момента резултати, качеството на програмата и да даде възможност на фирми и специалисти от сектора публично да дадат своето становище върху предложените учебни планове.
Всички, които искат да дадат своето мнение могат да се свържат с мен на k.mitov@robopartans.com, 359 878 933094 и да включим техните коментари към статията.
Надявам се с настоящата статия специалистите от МОНМ да получат допълнителна обратна връзка точно от заинтересованите – специалистите в софтуерната индустрия.
Планове
Плановете са публично достъпни на http://mon.bg/top_menu/vocational/syllabuses/index.html с директна връзка http://mon.bg/opencms/export/sites/mon/top_menu/vocational/syllabuses/2012/481-2012.zip
За да бъде картината пълна е добре да се види и набора от предмети, които формират специалността. За целта трябва да се прегледа и следният пакет от документи: http://mon.bg/opencms/export/sites/mon/top_menu/vocational/syllabuses/2010/481_2010.zip и http://mon.bg/opencms/export/sites/mon/top_menu/vocational/syllabuses/2011/481-2011.zip
Основни проблеми
- Програмата е изграден повече върху това, с какви знания разполагат дадени преподаватели към днешна дата отколкото върху това от какво наистина имат нужда програмистите. Ясно е, че е необходимо да се търси баланс между двете, но ако един преподавателски колектив иска да подготвя специалисти с титла „Програмисти“, той трябва да има допира със специалстите, които да обучат самия него.
- Програмата ненужно конкретизира използването на определени технологии, стандарти и подходи. Съвременният програмист има нужда от доста по-обширни познания с възможност да реализира решения интегрирайки различни технологии.
- В момента няма (или поне не е публикувано) учебно съдържание по множество ключови за специалността предмети.
Конкретни коментари върху програмата
- Системи за управление на база данни (Sistemi_za_upr_ na_bazi_danni_modulno.doc)
- Изградената програма е подходяща за подготовка на Офис Асистент или Офис Менажер, но не и на програмисти.
- Разглежда се единствено една конкретна среда (MS Access) на ниво извличане и въвеждане на информация.
- Програмата трябва да включва познания за изграждане и работа на широко използвани отворени и комерсиални системи подходящи за работа в Интернет и мобилна среда.
- Абсолютна небивалица е в учебното съдържание на предмета „Системи за управление на база данни“ да не участва думата SQL.
- Технология на програмирането (Tehnologia_naP_Modul.doc)
- Цялостно този план е сбъркан. Целта на предмет като Технология на програмирането трябва да е да подготви специалистите върху процеса на разработка на софтуер, събиране на изискванията, гъвкави подходи на разработка, комуникация с клиенти, поддържане качеството на системата, тестване, билдване и др.
- Отново се разглежда единствено една конкретна среда и работа с Visual Basic.
- Включение са точки като „основните менюта и ленти с инструменти“. Това ли ще обучаваме програмистите ни – как да цъкат по менютата.
- Недопустимо е в Технология на Програмирането да не се разглеждат системи за управление на версиите.
- Интернет програмиране:
- Това е предмет, който се води в 12 клас. Поне от половината от учебното съдържание по предмета „Интернет програмиране“ е посветена на въведение в HTML и CSS. Макар че това без съмнение са задължителни знания остава да виси въпросът какво сме правили по предмета „Web дизайн“ в 11 клас?
- От учебния план е изчезнал (и/или модифициран) предмета „Операционни системи“
- – за другите предстои да дадем коментари в следващите седмици
В Българското образование отново някой се опитва да прави неща, от които не разбира.Да си програмист не е като да си шофьор на такси – много по-комплексни знания и гъвкавост изисква от това просто да можеш да караш кола.
Ако не беше тъжно щеше да е смешно …. много, много смешно. От кликането в Dreamweaver, през тоталната липса на каквито и да е задълбочени и абсолютно задължителни познания, за да можеш да разработиш едно модерно приложение до крайната простотия и загуба на време – хора, които ще правиш програмисти, да ги учиш как да чертаят електрически схеми. Лично за мен пълна загуба на време са също електротехниката и цифровата и аналогова схемотехника, които могат да се заменят с далеч по-полезни неща. Програмисти, които да могат да си намерят работа като завършат ли ще се обучават или писачи на HTML, които знаят как да мерят напрежение …
Важно е да минеш през Аналогова схемотехника или Електротехника, защото така разширяваш кръгозора си изобщо. Може да си влязъл в училището с желание да станеш програмист, но това не означава че след 3-5 години ще искаш да програмираш. Може, когато научиш повече за електротехниката, да решиш че материята ти харесва и желаеш да се занимаваш с нещо свързано с нея в бъдеще. „Ама аз не знаех, че то имало и друго!“ Ако пък до даден момент си учил само програмиране, защото така си искал и утре решиш че не желаеш това да е призванието ти, то не би имал никаква основа на която да стъпиш. В някакъв смисъл ще си крайно ограничен, ако всичко което знаеш е как да пишеш код.
Аз съм привърженик на системата в Германия – ако не знаеш какъв искаш да ставаш – стоиш си в общообразователни училища (гимназии). За тези които знаят има специализирани училища, от които излизат хора с професии.
Да, и точно това се опитват да направят – да превърнат младите кадри в роботи…
Браво. С „Основни проблеми“ има три точни попадения, право в десятката.
Добра инициатива.
Хубаво е да се повдигат тези въпроси, но е важно и значението на финансовата част на нещата. Колко плаща един български студент, за да учи програмиране? 1000 лв? По-малко? Защото един адекватен курс в Англия е вече 20,000лв+ годишно. Съответно идва и въпросът: има ли реално програмисти практици, които биха се навили да преподават на добро сърце в държавен университет и въобще да бъдат част от еду системата?
Пожелавам успех с инициативата!
Благодаря ви за коментара Калоян, но трябва да направя няколко уточнения:
Става дума за ученици, а не за студенти.
В нашето училище повечето от специализиращите дисциплини се водят от „програмисти практици“, както ги наричате вие.
Разбирам. Останал съм с грешно впечатление. До колкото съм запознат и висшето образование страда от сходни проблеми, но съм чувал и не малко оплаквания, че преподавателите не разбират практичен материал.
Дано не го въведат. Ако това трябва да учат учениците в ТУЕС, за съжаление по-добре да ходят да учат в някоя езикова гимназия, където поне малко да научат някой език вместо Access и Visual Basic. Пълна некомпетентост от страна на МОН или целенасочено искат малко по малко да затрият и едно от малкото неща, за които има хляб и в България.
Щом оплакванията са много, вероятно имат основание :)
Това би било ужасно … как може в програмата за ТП например да е предвидено само Visual Basic ? На мен като ученик би ми било адски скучно да уча само 1 език. Да може би ще е по лесно, но колко добри ще стават учениците с програмирането тогава ? Едва ли по-добри отколкото сега. Даже се радвам че имам възможността да уча толкова разнообразни и интересни неща. Тези от МОН с всяка изминала година правят все по странни неща…
Учебниците на дъщеря ми за 5ти и 6ти клас по Информационни Технологии са просто рекламни брошури на „Малък и Мек“(MicroSoft). Всъщност те не са учебници а учебни помагала. За това трябваше и да ги платим!!! (Основното образование било безплатно?!?!)
От статията разбирам, че това си е тенденция.
За да бъде един програмист способен да си върши работата му трябва:
* минимум един съвременен императивен език за програмиране с общо предназначение (C/C++, Perl, Python, Java, C#….);
* SQL задължително + практически опит с поне една често срещана система за управление на бази данни (MySQL, PostgreSQL, Oracle…);
* да ползва свободно някаква система за управление на версиите (SVN,Mercurial, Git…);
* JavaScript +HTML+CSS вървят задължително заедно особено след появата на HTML5.
Очевидно е, че ще се бълват необучени „Програмисти“.
Модулът за БД е безумен. Работя с бази вече повече от 8 години. С Access в днешно време работят колегите от бизнес отделите, завършили УНСС. Никой , уважаващ себе си ,ДБ програмист не прави бази на Access и не ползва този инструмент за справки. В тази дисциплина е по-важно да се научат учениците да изграждат правилен модел на базата. Да разберат каква е разликата между база за приложение и база за репортинг. Коя какви специфики има. Да имат повече практични задачи за конструиране на таблици и връзките между тях, за да могат да решават реални проблеми в бъдеще. Защото и в звената, в които съм работила има много теоретици, които могат да рецитират купчина определения ,свързани с БД, но при конкретно зададена задача правят безумни упражнения и пишат неразбран и ненужно сложен код. Горещо бих препоръчала на учениците от ТУЕС , когато изучават БД да прочетат нещо от Tom Kyte . Вярно, че той е доста обвързан с Oracle, но неговите best way и best practices са общовалидни, независимо на какво пишеш. Не на последно място ,като гледам тези учебни планове, се радвам, че синът ми вече завършва ТУЕС и е научил много повече неща, отколкото би научил , ако сега беше 8 клас.
В момента ТУЕС има собствени учебни планове. Това за сега ни спасява от прилагането на общият учебен план, но не е сигурно до кога ще успяваме да се измъкваме по този начин.
Това е чудесно. Дано „умните“ глави в МОНМ не понечат да променят нещо , което слабо разбират.
Не съм и очаквал нещо различно от МОН, ето моите коментари:
Тези според мен трябва изобщо да отпаднат:
* Програмиране на асемблерни езици – малко хора имат нужда от това днес и всеки нормален програмист би могъл да седна и да го научи. Ако трябва нека се спомене що е то процесор, че има инструкции и прочие, че има различни видове процесорни архитектури, че има асемблерни езици и езици от по-високо ниво и до толкова. Това са ученици, ако им трябва нещо повече след като завършат ще го научат.
* Техническо чертане
* Електротехника
* Аналогова и цифрова схемотехника
Това няма нищо общо с програмирането. Ако пък някой толкова реши да става хардуерен специалист може да учи отделно от другите, защото тази специалност изобщо не е масова.
Без да съм изчел абсолютно всички документи (защото са много) според мен липсва:
* Обучение по логика и алгоритми – това е важно за един програмист, да може да мисли. Различните езици и технологии са само инструменти за постигане на целта. Или МОН май иска учениците да спрат да мислят ?
* Въведение в различните езици за програмиране – да се каже, че има различни видове езици и различни поколения. Да може учениците да разберат разликата между тях и да знаят как да изберат правилния език/технология за техния проект. Да се наблегне на новите и „модерни“ езици като Python, Ruby, Node.js, Scala, Erlang и прочие в практическата част.
* Интернет програмиране за мен е програмиране в CLOUD. Това е бъдещето и всеки уважаващ себе си програмист трябва поне да има представа какво предлага cloud и за какво може да го използва.
* Обучението по БД трябва да наблегне на моделиране на данните и описване на релациите между тях. Плюсове и минуси на конкретен дизайн на структурата от данни (може упражнения с дискусии и задачки). Различни методи за съхранение на данните – хоризонтално, вертикално и т.н. Да се разгледат най-популярните технологии в съответния клас, като се наблегне на open source такива: MySQL (за SQL), MongoDB (за NoSQL), key/value индекси и т.н.
* Никъде не виждам да се споменава тестване и QA. Може и да е извън фокуса, но поне трябва да има някакво споменаване.
* Никъде не виждам да се споменава за open source като модел на разработка и като бизнес модел за софтуерни компании. Стига с тоя Microsoft, това е умираща компания, работа с open source и отворено мислене ще направи децата по-добри програмисти. Изобщо не засягам спецификите на open source общносттите като използване на пощенски списък, IRC, бъг тракер, пачове, код ревю и т.н.
Според мен е грешна фразата „трябва да се търси съответствие между програмите и знанията на преподавателите“. Трябва да се търсят нови преподаватели, а тези които не могат или не искат да се преквалифицират да останат без работа. Това че учителя Х или професор Y има много опит и знания в дадена област и технология, не означава, че тя се търси и е актуална в момента. Трябва да се помисли как неговия опит (защото това несъмнено е актив) да се използва от гледна точка новите и актуални технологии. Ако пък няма как, просто явно времето му е отминало, но така става с технологичните специалисти, който не опресняват знанията си.
* Предмети като компютърна графика и периферия също са излишни в училищната програма. Нека първо да имаме едни добри програмисти, които разбират само от код пък после ще задълбаваме към периферията. Това не е интересно на всеки и не се търси повсеместно.
Плановете са вързани със задължителните за инсталиране програми. Училището би трябвало и да раздаде лицензирани копия на всичките си ученици.
Освен това смятам, че се изхвърляте – това е само програма за средно образование. Тези, които останат среднисти, не желаят да вземат решения – те искат да са изпълнители: софтуерният инженер да им каже къде какво да попълват в базата данни. Какво и с кой скрипт да извличат. За да се проектира една база данни, човек трябва да е компютърен инженер или бакалавър поне .
Децата ни пишат съчинения по литература, поне по един чужд език, учат биология, химия …. Смятам, че ако проектират една база данни дори само на access, те ще знаят за какво става дума, за да си изберат професия.
А на един среднист НИКЪДЕ (освен в собствена фирма, ако си направи) няма да му бъде разрешено да проектира базата данни по някой договор с клиент. Така че не изисквайте да знаят това – не е необходимо. Докато не завършиш висше образование, си само изпълнител.
Става дума за ученици, които са избрали професия. Знанията които описвате повече приличат на специалност подобна на „Оператор на компютърни системи“, ако такава има. Когато става дума за специалност „Системно програмиране“ това да знаете как се проектира база данни е важно. Разбира се никой няма да даде на начинаещ програмист да проектира голяма база данни, но повече бази които се ползват по света не са големи.
Излиза, че на юношите, които са в най-хубавата си възраст за учене и които са искрено увлечени от компютрите и са избрали специалност, им се предлага да се учат просто за среднисти, „които не желаят да вземат решения“. Това е обидно за абсолютно всички, които посещават училище, камо ли за деца, които са луди по компютрите. По време на средното си образование човек научава най-важните неща за своята бъдеща професия и тогава в съзнанието му се появат онези идеи, които ще станат смисъл на живота му следващите десетина години. Висшето образование само допълва тези идеи и познания. Те сами сядат да учат и C++, и Java, и PHP. Те стигат сами и до неща, като архитектурата на базите данни, но тогава за какво им е това средно образование?
Минка, глупости говориш. Мога да те запозная с много хора дето са проектирали доста сериозни неща дълго преди да завършат висшето си образование. И то не един или двама души.
С две думи, за да не бъда прекалено груб – не знаеш какво говориш.
Това, което пишете изобщо не звучи професионално. Учениците в училище, в което са избрали професия , трябва да знаят много повече от базови неща за проектиране и програмиране, а не „да учат сами“ , когато му дойдело времето.
„За да се проектира една база данни, човек трябва да е компютърен инженер или бакалавър поне .“ – Не!За да се проектира добре една база данни човек трябва да има мисленето, познанията и визията за това как ще се ползва тази БД, да има понятие за best practices , някой да му е показал основни неща. Да познава предметната област, за която се отнася БД. Това трябва да научат децата в средното образование – да се научат да мислят правилно , аналитично и да търсят повече от едно решение. И да напишат поне един Select …
Napulno podkrepqm tozi post. Az sam programist w imo i nishto ot towa koeto e w programta nqma da pomogne za interviewto za rabota w seriozna kompaniq. Ako widq MS Access na CV daje izglejda po zle, poneje se wijda che kandidata ne e podgotwen s prawilnite umeniq.
Не претендирам да съм изчел всичките документи от посочените сайтове, но това което е посочено като набор от знания е абсолютно безумие. Та кой в момента пише на VB или ползва като база данни MS Access ? Ако говорим чисто технологично, дори това което е залегнало като уеб технологии и уеб програмиране е далеч от реалността. От доста време не се ползват само чист Html + Css. Нещата са доста по-комплексни, независимо на какво се пише – Java, .Net и др. Много нови frameworks се появиха и развиха, за да останат без внимание. И болшинството от тях се ползват поголовно в различни системи. Да не говорим, че наистина такива неща като Soft skills ги няма изобщо, а са важни, защото едно е само да кодиш, а друго е общуването с клиенти примерно.
Според мен е крайно време бизнеса и образованието да седнат на една маса и да почнат да си говорят, защото иначе още много време ще има подобни абсурди в образователните планове и едните ще викат „Дайте ни подготвени специалисти“, а другите ще подготвят специалисти по остарели програми и технологии.
ПС: Поздрави на целия колектив на ТУЕС и дано училището да се задържи като място, където се подготвят кадри за IT бранша в България, каквото си е от много време.
Според мен,
вместо да се прави нова учебна програма за професия „Програмист“ и да се експериментира с време и пари относно успеха и, е добре да се консултират с колегите си от вече доказалото се училище в тази сфера ТУЕС. Сякаш от МОН не знаят и не са чували за резултатите в ТУЕС?! Предполагам, че проблема е в „едни договори“, „едни консултанти“, „едни услуги“ и т.н… както стават нещата в България по „Български“.