Програмирането не ми е интересно.
Чувал съм горните думи редица пъти. Сред всякакви мои познати – ученици, биолози, музиканти, техническа поддръжка и дори програмисти. Докато смятам, че последните трябва да се преквалифицират във водопроводчици, то думите на първите леко ме учудват. Пръв ще кажа, че програмирането изобщо не е за всеки, но понякога ми е трудно да разбера защо на хората не им е интересно.
Това което най-силно ме заинтригува в компютрите, когато бях малък, бе възможността да ги карам да правят каквото аз искам. Първоначално бе под формата на мърдане разни човечета насам-натам в компютърните игри. След това намерих изява за наченките ми на OCD във възможността да организирам всичко със стриктна конвенция за имена на файлове и директории (разпределена по петдесетина 5¼” дискети; болеше). Тази мания бързо уцели крайната си точка – първите ми сблъсъци с Pascal и в последствие – (Q)Basic. В началото се придържах към творене на безполезни малки програмки, опити за съвсем простички игри и адресници/телефонни указатели. Което беше странно – добре знаех къде живеят всичките ми приятели, но си нямах нито идея за имената на улиците, нито домашен телефон от който да звъння. С възрастта умението ми придоби по-конструктивно приложение под формата на могъщи mIRC скриптове, целящи да превърнат измъчения ми чат клиент в наполовина операционна система, наполовина в mp3 player. След това имах кратко търкане с OpenGL, което резултира в една интересна, но вече загубена някъде дипломна работа. И накрая пристигнах до текущото си призвание – да оформям световната мрежа по мой образ и подобие (да се чете: програмист, предимно web приложения).
През цялото това време имах една основна ръководеща сила – програмирането ми бе интересно и забавно. А ако при вас не е така – позволете ми да ви предложа няколко идеи – може би ще успея да ви покажа, че има нещо което да ви стане интересно. И дори да не смятате да ставате програмисти, можете да спечелите от това да разбирате поне мъничко.
Програмирането е практично
Най-важното – може да карате компютъра да прави каквото поискате. Дали ще е малка програма, която да ви държи подредени mp3 файловете или скрипт, обработващ електронната ви поща – за кратко време може да си направите интеракцията с изчислителните машини далеч по-приятна. Пък и голяма част от приложенията, които използвате – mp3 плейъри, чат клиенти и дори браузери – могат да бъдат обогатявани от скриптови езици. И далеч не ви е нужно да завършвате университет или да четете дебели книги – със сравнително малко времева инвестиция в език като Python може да се научите да правите редица неща. А веднъж като хванете основите на това да си говорите с машината, в бъдеще ще ви е много по-лесно да учите подобни неща – JavaScript да пипнете нещо в блога си или езика на mIRC, за да направите чат-клиента си по-удобен.
Програмирането е креативно
Програмирането е творческо занимание. Въпреки че не правите изкувство (или поне не винаги), създавате нещо от почесване. Това е много приятно и стимулиращо занимание – всеки път като правя нещо отнемащо повече от няколко часа, се ентусиазирам поне на два пъти – когато го видя как започва да придобива някаква форма и когато най-накрая е готово. Усещането нещо смислено да излиза изпод пръстите ти е страхотно. Всеки учител по музика ще ви каже, че свиренето на иструмент ви кара да се чувствате добре – дори да не излиза композитор от вас. Аз твърдя същото за програмирането – дори да го правите професионално или да не става въпрос за големи приложения, това че сте създали нещо само с мисъл ви кара да се чувствате страхотно.
Програмирането е предизвикателно
За разлика от съвременното блогване, програминето не е тривиална задача. Не може просто да седнете и да изкодите нещо от раз* – трябва да помислите, да пробвате различни неща и да видите кое ще сработи и кое не. Ако ви мързи да мислите едва ли ще стигнете много далеч, но ако обичате умствени предизвикателства можете да се забавлявате (да, забавлявате) бая.
* – има две изключения от правилото “не може да изкодите нещо от раз” – Мило, който просто се протяга и изважда работеща програма от пространството на безбъгав код и Чък Норис, който поглежда машината и тя почва да прави каквото той си помисли (смее ли иначе?).
Програмирането е забавно
Това е малко субективно, разбира се, но аз адски много се забавлявам когато решавам интересни проблеми в готини проекти. Забавлявах се и когато писах mIRC скриптове и TCL за IRC ботове, забавлявах се когато модифицирах софтуера с който работех, забавлявах се и когато писах малки, грозни и бъгави игри в 4-5 клас. И моите емпирични наблюдения показват че не съм единствен – имам достатъчно приятели, които са стояли будни до 2 часа през нощта пишейки код; не защото ги е притискал крайния срок, а защото им е било интересно да го правят.
Разбира се, не се и надявам това да важи за всички. Но ако някога сте си казвали, че програмирането не ви е интересно, замислете над горните неща. Може би наистина няма какво да ви грабне, а може би сте се сбълскали с нещо досадно и тегаво (C++ например) или не ви е хрумнало докъде ще се простират възможностите ви ако се научите, поне мъничко, да програмирате.
Много добра статия 🙂 Отл. (6)
П.П. C++ е върха 😉
Според мен, да се правят опити за навлизане в програмирането с цел да си облекчите ежедневието на потребител чрез писане на скриптчета, е нож с две остриета. Но при всяко положение, самият опит да се мисли от гледната точка на програмиста, подобрява многократно потребителското усещане (user experience :), заради дори малкото разбиране на логическите връзки, които следват от всяко ваше действие на потребител. С всичко останало съм съгласен 🙂
Само да кажа че дипломната с 3д-то не е съвсем изцяло загубена.
Да, програмирането може да бъде интересно…
О, ако я имаш много, много, много ще се радвам да ми дадеш едно копие. Искам да видя колко сакато съм писал код преди няколко години 🙂
Аз като тотално асоциален пън ще си изкажа истинското мнение че хората които казват че програмирането не им е интересно или а) никога не са пробвали или знаели точно какво представлява начинанието „програмиране“ и или използват фразата „не ми е интересно“ като еквивалент на „не знам“ и предлог да се смени темата, или просто са от типа хора които наистина не се интересуват от много неща извън тяхната специалност (тук според мен всичко опира до любопитство – аз лично имам интелектуални дупки в много области но рядко бих казал че нещо не ми е интересно … освен литературата като „наука“ може би:) б) знаят много добре за какво иде реч при програмирането като занимание но се е оказало маааалко по-сложно отколкото са очаквали и доста по-изискващо (дори изтискващо) откъм умствени усилия и концентрация за по-нетривиалните начинания. Уви, имам чувството че голяма част от пропълзяващите в занаята го правят не от интерес към самото занимание а от по-материални съображения и прикоткани от начина по който програмирането се представя във филмите(редене на кубчета за създаване на червей или пльосването на размазана цветна въртележка на екрана с изплуващи в готин шрифт надписи и яко тракане по клавиатурата като начин за хакване на чужд компютър). Има една игра по темата – Uplink – може да я пробвате да видите как човек може да си каже „я, то било много лесно и забавно да си хакер, дай ще се пробвам … хмм, никъде в университетите не виждам да излизат с квалификация „Хакер“, май ще взема да пробвам с „Програмист“ че звучи най-близо, то трябва да е същото“. Всъщност според мен проблема е точно в тенденцията програмирането да се представя като забавно – да, то може да е забавно но освен това може да е и адски мисловно затормозяващо, и когато хората почват да осъзнават това изведнъж се чувстват излъгани и пищят „ейй, тая Дискретна Математика не е като реденето на тетрис, това програмиране вече не ми е интересно“. Примера е за университета естествено но подозирам че същата реакция може да се очаква когато дадения човек се сблъска за пръв път със съзвездията от указатели и рекурсията – изведнъж се усеща в по-дълбоки води отколкото си е мислел че може да влезе и или се справя с това като с поредното интелектуално предизвикателство(което аз мисля че е правилния подход за един програмист), или си признава че това не е за него(няма лошо, човек не може да огрее навсякъде, просто таланта му е другаде) или почва да мрънка „блах, това не ми е интересно, дай ми да редя прозорчета с Visual Studio“ (ей такива вътрешно не мога да ги трая, ама на – мама прекалено много ме е възпитавала и си мълча)
П.С.: Съжалявам за дългия коментар, като го почвах не подозирах че имам толкова много материал за изливане:) И не – това не значи че трябва да си отворя блог, нямам време за такива неща(редовното ми оправдание;)
Забележка: мисля че „от нулата“ или „от белия лист“ ако държиш да си по-метафоричен е доста по-точен превод на „from the scratch“, не ми се сърди че се хващам за дреболии – от езикова гимназия съм:) Между другото ми прави впечатление интересния начин по който се опитваш да превеждаш някои доста често използвани чуждици, къде сравнително успешно къде не чак толкова. Аз всъщност съм от другия лагер – мисля че ако дадена мисъл е по-лесно и пълно да се изкаже с английски думи (или на какъвто и да е друг език, стига да знаеш че събеседника ти ще те разбере) е по-добре да го кажеш с тях отколкото да създаваш „информационен шум“ с не особено ясен превод, дано не се скарам и с теб заради това че няма да ми е първия случай …
Само за чуждиците да кажа нещо. Правя го съвсем съзнателно, като е горе-долу така: 80% от времето го правя като закачка, с която да придам малко цвят на текста (например е смешно да преведеш „from scratch“ като „от почесване“), докато в другите 20% се опитвам да прокарам някоя конструкция, която ми се струва че звучи добре на български и хората биха я разбрали. В останалите 5% (1.0 = 105%, разбира се) просто съм невнимателен и го правя без да искам 😀
Според мен си се разбира, че „от почесване“ е закачка, не случайно е сложено като термин с hover-че.
Колкото да въпроса, защо на някои хора не им е интересно и аз не мога да си го обясня изцяло но има поне няколко възможни причини – кофти учители, непредразполагаща към допир с компютрите среда или пък липса на генетическа предразположеност….
На някои хора просто им е по-лесно да видят чара на други занимания, отколкото „скрития блясък“ на програмирането ;p.