Dobry den,
trochu vysvetlim proc me to zajima, posledni dobou mi trochu lezou na nervy, nekteri programatori s kteryma se setkavam, pri praci (nejenom kolegu z firmy, ale i z jinych pri spolupraci na projektu). Chapu kdyz nekdo nema skousenosti nebo pracuje na castecny uvazek a k tomu studuje, a zepta se na to co nevi, pripadne se podiva na net, kazdy nejak zacinal, ale tak nejak me vytaci kdyz nekdo pouziva std::shared_ptr v podstate takovym spusobem:
std::shared_ptr<A> foo = std::make_shared<A>():
std::shared_ptr<A> *bar = &foo;
taky jsem zazil takovy zajimavy memory leek, ono tohle je urcite sprava prace s pointrama:
int foo() {
return *(new int);
}
Pripadne kdyz jaksi misto toho aby v tride byly definovany metody, ktere nastavi vnitrni promene, ktere se pak dale pouzivaji, tak se ji predaji struktury, udela se virtualni funkce getData() a pak se udela x odvozenych trid, ktere tu funkci predefinuji a prectou si z tech struktur co potrebujou. Jeste dodam ze vsechny tyhle tridy prevadely nejaka data na retezec, ktery se pouzival pro zobrazeni a stejne bylo resene i nastaveni barvy pro vykresleni. Uzasne se s tim pracuje. Kdo by taky nechtel prepisovat x uplne stejnych funkci kdyz potrebuje nastavit barvy kdyz je splnena podminka A, jine barvy kdyz je splnena podminka B. Daleko zajimavejsi je pak situace kdy zakaznik rekne ze by potreboval aby pri podmince A to vypadalo trosku jinak a dostane se do hry podmineny preklad.
-------------------------------------
Ja mam udelany gympl, stravil jsem 3 roky na vysce ale dokoncenou ji nemam. Hodne jsem se naucil sam, kdyz me neco zajimalo nebo jsem to potreboval.
Ke skusenostem programoval jsem pod windowsem i pod linuxem.
V prvni praci jsem delal ridici systemy pro tovarny. Delal jsem HMI a upravoval system na miru pri instalaci u koncoveho zakaznika.
Dale jsem psal takovy maly server, a klienty pro praci s databazi. Nebylo to nic sloziteho v podstate zobrazeni aktualnich dat a zpetne zaslani novych (nebo upravenych dat do DB), . Tohle vsecho pod windows. Po roce a pul a rozmlacene klavesnici jsem dospel k nazoru, ze windowsama nechci mit ni spolecneho.
Tedkom delam pod linuxem. Pisu GUI, plus nejake to zpracovani dat co k tomu potrebuju. Mam na starost dve aplikace, ktere maji dohromady odhadem mezi 40-50 tisic radku kodu. Obcas si ze zajimavosti pustim script ktery mi to spocita, ale nejakou dobu uz jsem to nedelal.
Jazyky:
Muj Oblibeny je C++ a posledni 3 roky pisu v podstate jenom v nem. Bavi me sablony.
Na vysce jsme meli javu, ale ta me nikdy nejak nechytla. Dal C#, python, Visual Basic, nejake to SQL. Delal jsem i jednoduchy 2D rendering v OpenGL. Chtel bych se trochu naucit s Vulkanem az bude cas. Scripty pisu v pythonu nebo v bashi. Makefile si taky napisu a momentalne se ucim se mesonem. Skousel jsem CMake par tydnu, ale po tom co jsem zjistil, ze nejuzitecnejsi prepinace, ktere jsem pouzival, jsou nedokumentovane jsem to vzdal.
Frameworky:
Pod windowsama .NET a musim rict ze ho nemam rad.
Delal jsem ve WinCC a Step7 od Siemensu pro ridici systemy.
Aktualne delam v Qt a obcas bych nekoho taky nejradsi prastil klavesnici.
IDE:
Pouzival jsem Visual Studio, NetBeans, Eclipse, Qt Creator a dvakrat jsem mel pusteny CodeBlocks a vsechny me stvaly.
Skoncil jsem na vimu s par pluginama. Ten me stve taky, ale ne tolik a ne tak casto.
Naopak me obcas neskutecne stve, kdyz nejaky jiny editor nefunguje jako vim, pripadne Thunderbird kdyz pisu mail. Obcas kdyz potrebuju dopsat nejake poznamky v dokumentu v LibreOffice tak bych vrazdil.
OS:
Windows uz par let nemam a ani ho nechci. Linux ma taky sve chyby, ale stve me daleko min.
Z Linuxovych distribuci jsem zacinal na Ubuntu, pak Fedora a aktualne Gentoo.
Jak jste na tom vy?
P.S.: Nez se do me nekdo pusti, ze ani neumim gramatiku, tak ano neumim. Nejsem novinar ani spisovatel, pouzivam zasadne anglickou klavesnici, takze diakritika jde tak nejak mimo me.