10 причини да пренебрегнете дипломите по компютърни науки - CIO.bg
Специалността „Компютърни науки“ се състои от две думи – компютри и наука. Да разгледаме поотделно всяка от тях. Компютрите са донесли на човечеството огромни и многобройни ползи, като се почне от животоспасяващи медицински досиета, достъпни във всеки момент и от всяка точка, и се стигне до възможността да влезете във виртуален бар, дори когато сте на работа. Втората дума – наука, представлява интелектуално действие, базирано на познания, опит и креативност, благодарение на което днес имаме ваксина срещу полиомиелит, направили сме първите си крачки на Луната и още много други. Тогава защо комбинацията от тези думи се свежда единствено и конкретно до програмисти?
Редица компании са започнали да попълват екипите си от разработчици не със специалисти по компютърни науки, а с физици, счетоводители или математици. Техните мотиви са, че подобни експерти са много по-добре практически насочени и фокусирани да накарат машината да им даде това, което им е нужно.
Теорията разсейва и обърква
Много специалисти по компютърни науки са математици по душа и това е проникнало дълбоко в начина им на работа. Математици, цитирани от CIO, споделят, че всички математически доказателства са всъщност програми и обратно, поне в тяхното съзнание. Те не се стремят толкова да създадат код, който върши определена работа, колкото да докажат, че техният код работи.
Трудно е да се дипломираш по "Компютърни науки", без да получиш здравословна доза от NP-completeness и Turing machines – две иначе прекрасни области, които обаче създават лоши навици. Това пречи на теоретиците да предложат решение, работещо в реалния живот.
Академичните езици се използват рядко
Не е тайна, че академиците излъчват известна доза снобизъм и склонност към странни решения. Това се наблюдава във всяка област. Специалистите по информатика обаче понякога създават страшна бъркотия, особено ако са обсебени от езиците за програмиране. Ако един член на екипа обича дадена странна функция и започне да я включва в базовия код, всички останали ще трябва да я научат. Ако всеки започне да прави така, кашата ще е налице.
Затова компании като Google избрират по-лесния път. При разработването на Go те поискаха да има само няколко конструкции, така че езикът да е лесен за научаване при кратки срокове. Това опростяване се оказа полезно за всички, тъй като направи ядрото му добре разбираемо.
Много професори са математици, а не програмисти
Една от мръсните тайни на повечето факултети по компютърни науки е, че професорите не владеят програмиране. Тяхната истинска работа е да дават лекции и да печелят грантове. Те могат да разберат изискванията на инвеститорите, но за изпълнението им използват студенти. Последният път, когато професорите са се занимавали с програмиране, вероятно е било, когато самите те са били студенти.
Много от изучаваните предмети се използват рядко
„Структура на данните“ често е основен предмет във втори курс на обучението по компютърни науки. За съжаление твърде малко програмисти все още използват структури на данни. Днес обектите се поставят в хаш таблици, или в база данни, която мисли вместо нас. В допълнение повечето програмисти смятат, че е по-добре да се доверят на стандартната библиотека, вместо сами да създават структури от данни. Защото така е по-лесно да допуснат грешки.
Има и други примери на предмети от традиционната програма, които вече не са толкова важни. В днешно време единствените, които пишат компилатори например, са студенти под формата на курсови работи. Дори Apple използва продукти с отворен код, за да създаде компилатор за Swift.
Математическите модели ни водят по грешен път
Всеки, който е учил теорията за базите данни, е открил колко гениална е Boyce–Codd Nmal Form. По същество тя представлява разчупване на стуктурите на данните в малки таблици. Това е много елегантно и ефективно, докато не се наложи да чакате вечно за елементарно запитване.
Повечето екипи от разработчици бързо се научават да “денормализират“ своите бази данни в полза на производителността. С други думи те оставят настрана цялата „интелигентност“ на подхода и свързват данните в голяма таблица. Грозно и разточително, но пък доста бързо.
Веднъж като почнат да прилагат на практика наученото, специалистите по компютърни науки прекарват часове да се отучат от математическите „хитрини“ по време на обучението си.
Институциите излъчват арогантност
Всички си мислим, че сме прави, но веднъж взели дипломата в ръце, тя сякаш ни дава право да спорим с останалите с авторитет. Понякога може да сме прави, но в област, която се променя толкова бързо, е трудно да се каже къде е истината.
Специалист от CIO.com разказва, че негов колега е въвел собствени стандарти при писането на код, слизащи до незначителни подробности. Ако колега пропусне да отговори на стандартите, проектът му бива отхвърлян.
Игнорират се много съвременни умения
Много от модерните знания не се преподават в редица специалности. Ако искате да научите за Node.js, React, дизайн на игри или изчисления в облака, ще установите колко малко от това се предлага в традиционните програми по компютърни науки. Обикновено те се съсредоточават върху фундамента – неща, които ще са актуални дори след като Node.js или React вече са забравени. Това е благородна цел, но бъдещите програмисти трябва да прекарват допълнително време, за да се задълбочат върху нещата, които са актуални днес и сега.
Ето защо причина и много от факултетите по информатика подготвят мислители, които могат да разберат фундаменталните предизвикателства, без да са дори малко наясно с проблемите, с които се сблъскват обикновените програмисти в ежедневието си. Затова и компаниите предпочитат да наемат някой от лабораторията по физика, който може да използва Python, защото той ще научи тънките подробности значително по-бързо от компютърния специалист.
Академичните остриета са все още в очакване
Машинното обучение (ML) и Изкуственият интелект (АI) от известно време са на мода и мнозина експериментират с тях. Но те се изучават от десетилетия във факултетите по компютърни науки. Тогава резонно си задаваме въпроса има ли смисъл да се задълбочаваме във всички идеи, които идват от училищата или просто да изчакаме, когато са готови за въвеждане в масова експлоатация.
Авторското право води до самодоволство
Има много аргументи в полза на това университетите да са собствници на създаваното от студентите и повечето преподаватели заслужават да се възползват от подобни екстри. Проблемът е, че в бързоразвиващи се области като програмирането студентите нямат нужда от прозрения отпреди 10 години. Все пак авторското право гарантира на професорите, че ще имат последните разработки, дори самите те да са на десетилетия от добрите си времена.
Интелектуализмът рядко дава добри резултати
„Когато се похвалих на друг преподавател, че мой студент си е намерил работа благодарение на няколко лекции за Angular и React, той се усмихна и каза, че последното, което иска, е да се превърнем в търговско училище“, разказва преподавател по компютърни науки.
Това е чудесно, но не са много хората, склонни да дадат половин милион долара, за да може учените да търсят областта в човешкия мозък, отговорна за отвращението към сирене. Традицията на либералните изкуства е чудесно нещо, но води до презрение към практическите науки. Всичко опира до едни и същи вечни истини. Но когато вашата компания трябва да пусне нов продукт с краен срок тази седмица, никой няма време да размишлява върху вечните истини.