събота, 10 януари 2009 г.

Историята ми, и защо се занимавам с програмиране само от 1 година

Обичам програмирането! Толкова много го обичам че се чудя защо се захванах сериозно с него чак на 17/18 вместо още от съвсем малък. Всъщност не се чудя, знам точно защо. Ще изброявам под ред:

Получих първия си компютър прекалено късно.
Първия ми компютър получих на 14, това е почти 5 години след като започнах да ходя на уроци, и почти 6-7 години след като започнах да се интересувам от компютри. Да благодаря на българските правителства от втората световна война на сам, за това че родът ми не е заможен :D

Лошо обучение.
Първия ми досег с компютър беше на 8-9, не се сещам точно. Въпреки липсата на средства по онова време и невъзможността да си купим домашно ПС, родителите ми ме пратиха на уроци. Въпреки че се занимавахме с paint и word, беше забавно, и рисувахме и правихме цветни документи със интересни шрифтове и рамки и други такива неща, не учихме програмиране от начало. Ходих на уроци доста дълго, и години на ред това беше досегът ми с компютър, това и компютърните зали разбира се, starcraft ftw!!!

След няколко години рисуване и правене на цветни документи и по късно малко photoshop, дойде ред на logo!!! Това беше началото! Лого беше перфектно, бях правилната възраст(въпреки че и сега си играя много с turtle модула на python), бях ентусиазиран, имах вече доста опит с компютъра, бях готов да се науча да програмирам. Учих лого няколко месеца на уроци и това беше.

Дойде лятото, и на следващата година когато отидох отново на уроци започнахме с pascal. Този език е супер за начинаещи, но само ако си пуснеш радиото и чуеш 80-тарска музика от него. Учих го, но така и не навлязох в големите подробности, научих какво е while цикъл и какво са променливи, написах прост калкулатор, нито лого, нито паскал не ги смятам за първите ми езици, не научих достатъчно от тях за да го направя, не знаех да програмирам, не знаех нищо!

И дойде C++!!!
Ужасен и грозен език! Същото се отнася и за С, но С има една особена красота, която има по общо с мазохизма, от колкото с естетиката. Но тук говоря за С++. Проблемът с С++ не е че има скапан синтаксис, или че е прекалено сложен(в естетическия смисъл на сложен, т.е. грозен), или че се компилира прекалено бавно, проблемът е че има прекалено много скапани С++ програмисти!!! Освен
това е скапан първи език и причината поради която го преподават в даскало е непонятна за мен.

Разгледайте следния израз:
C+++
българската образователна система+
български ученици+
български учители+
фактът че повечето програмисти изобщо си нямат и понятие от програмиране=
=български часове по информатика!

Вече споменах проблема с С++, проблемът с българската образователна система е че тя създава учебни планове и одобрява учебници без да си има понятие от материята, това не е математика!

Проблемът с учениците е че са на грешното място в грешното време, ако някой от тях си мисли че ще научи нещо в тея часове, да се огледа около себе си, всичките му съученици джъгат CS, което в случая не е съкращение от computer science :D

Проблемът с даскалите е че ако работят като преподаватели, или са супер вдъхновени и идеалисти, или са достатъчно некомпетентни, че не са си намерили истинска работа като програмисти(като се има в предвид какви идиоти има бачкат на някой места, се чудя как са успели да не си намерят работа). Но дори и да са добри, идиотските учебни планове им пречат да вършат истинска работа, за да имате истинско образование в тази област ви трябват повече от компютърни кабинети!

Следващия израз е ясен, действително повечето програмисти(в това число и аз, разбира се) са в долните 90% от програмисти, известни като "идиотите", или "некомпетентните", или комбинация от двете :D Не можем да очакваме че учениците ще успеят да получат дори и елементарни знания за област, в която дори повечето експерти са невежи.

В един форум преди време казах че C++ ме е отказал от програмирането, това не е вярно, българското даскало ме отказа от програмирането. Въпреки това С++ е ужасен език за обучение, освен ако учениците нямат опит с други езици преди това, С++ може да бъде объркващ. Най големия проблем е че ми се наложи да се самопринудя да не си задавам определени въпроси за синтаксиса, за да мога да науча езика, просто приемах нещата каквито са, и после чрез магия, компютърът правеше разни неща. В това няма нищо лошо, но магията никога не изчезна, С++ все още си е черна магия, С също, но работя по въпроса с учене на С, въпреки че не напредвам особено бързо.

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

Занимавах с с HTML през цялото това време. HTML е по подходящ за обучение от C++, въпреки това не бях особено добър, не знаех CSS и не знаех нищо относно естетиката и други подобни трикчета. Въпреки че сега не правя особено красиви страници, не са толкова зле. Ярко червен фон със сини надписи! Да живеят таблиците! Беше забавно, но не беше програмиране, за сметка на това научих колко важен е редактора и как се работи с ftp за да си качвам страничните в data.bg. Също така ми беше интересно да си изтегля готови темплети и да си ги бъзикам, да ги променям и да си играя с тях. Това беше и с HTML, след време осъзнах че не струвам, и спрях да се интересувам и да се занимавам. Дойде времето на апатия.

След кратката апатия дойде Lock On! Супер яка игра! Авио симулатор! Летях с часове на МиГ-29 и Су-27, четох много, четох всичко. Всичко от технически книги за авиацията, списания, бойна тактика, история, дори и поезия за авиацията, бях маниак! Най якото за тази игра беше че беше лесно да се правят модове. Научих се как да правя скинове за самолетите със фотошоп, научих се как да модифицирам конфигурационните файлове и да правя готини неща с играта, тези конфигурационни файлове всъщност бяха lua скриптове, но не знаех нищо за lua, просто си играех играта. Купих си джойстици, правих си джаджи за играта, гледах клипове на други играчи и си правих свои. Това беше истински откривателски дух! 2 години се занимавах с тази игра, по цял ден, само тази игра и още 2 имах на компа си, нищо друго. Само игри и фотошоп за да правя скинове, уйнамп и файърфокс.

Уйндолса се ебаваше заради многото вируси и други случайни говна които му инсталирах, имам навика да правя това :D Общо взето повечето от вас знаят как е с уйндолс, преинстал-универсално лекарство за компютри!. Писна ми, инсталирах си линукс, нетът не бачка! Мамка му! Инсталвам друго дистро, същия резултат, няма нет! при ХП само си пъхам шибания кабел и бачка! Опитвам се да
инсталма МакОСХ, шибаното ми дъно не бачка с мак, ок пак на линукс. Убунту! АААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААА
Нета бачка!!!! Нетът бачка! Нетът бачка! Най накрая мога да правя квото си искам с компа си! Следващите 2 седмици ползвах предимно убунту и се учих. Писна ми и си инсталирах кубунту! От тогава това е моята операционна система,ползвам я всеки ден, вече година и 6 месеца почти! След време започнах да се уча да програмирам на python, занимавах се с код и други такива неща, но не учих програмиране до зимната ваканция, просто четох есета и такива неща. Купих си книга за python от книжарница и започнах да я чета, за 2 седмици я преполових! Това беше мания! Така до ден днешен, вече 1 година съм официално програмист, хакер, едва ли, но съм писал хакове, не са най впечатляващи, но са вършили работа.

Това е историята ми, 17 години се лутах докато достигна до правилната среда и правилния език за да започна да уча програмиране, това е тъпо! Каква неефективност! Когато си спомням булшит детектора ми откача! Това беше и част от причината да се опитам да напиша добър български туториъл за python, искам хлапетата да се научат да програмират. Познавате ги, те са момчетата които викате да ви оправят компа, те ви правят HTML странички, те ви правят домашното по информатика и с тях цъкате CS по нощите, искам тея хлапета да не трябва да откриват сами всичко, искам да учат и да знаят!

Мисля да започна втори туториъл за python, версия 3.1415926535897931, този път идеята е различна. Ще е нещо като смесица между unix/python туториъл, ще се предполага че си имам работа с умни хлапета, може би дори по умни от мен, ще предполагам че се кефят на компютри, ще предполагам че ползват уйндолс и че се правят на разбирачи пред задръстените си приятели със знанията си по компютри. Ще предполагам също така че имат някакви познания по HTML поне, а в най добрия случай php/javascript и че са учили pascal/C++ в даскало(или поне са присъствали в часове докато учителите им са се опитвали да им преподават). Въпреки очевидната ми липса на време, мисля че го дължа на хората които са ми помагали(и продължават, защото аз съм все още в самото начало) докато уча, да помагам на други, за това блогвам, за това пиша в форума за информатика, за това присъствам в irc и за това се занимавам с програмиране, това е изкуството ми, животът ми, вдъхновението ми.

1 коментар:

  1. Не мисли, че в България някой се е научил да програмира в училище, единственото, което е необходимо, е ентусиазъм като твоя!

    Поздравления за избора на езици за програмиране- Logo, Python, Scheme/LISP, Clojure. Що се отнася до C++, и аз няма никога да го науча, ужасен и за първи, и за втори, и за последен език. Поне не си започнал с BASIC като мен :-)

    ОтговорИзтриване