2021. július 22., csütörtök

Top 10 ötletem programozási prodzsektre

Elég sokat gondolkodtam azon, hogy mit lenne érdemes programoznom, ami referenciaként (pl. GitHub prodzsektre mutató link formájában) megosztható lenne a CV-mben, de akár az álláskereséstől függetlenül is sikeresebbé tehetne engem. A neten is utánanéztem ennek a kérdésnek, de saját ötleteim is voltak. Korábban írtam 3 blogbejegyzést is a témában, de ezeket időközben töröltem (mert nem volt kedvem programozni). Ezek alapján most röviden összefoglalom, mi éppen a 10 legjobb ötletem programozási prodzsektre (mivel úgy látom, mégis jó lenne valamit programozni):

  • 10. Játék ötlet a gyermekkoromból: ha nincs jobb ötlet, számítógépes játékot még mindig lehet programozni. Gyermekkoromban például szerettem volna egy olyan számítógépes játékot, ami a "Super Mario" és a "Prince of Persia" keveréke lett volna: tehát, a főszereplő tudott volna ugrani úgy is, mint Mario (magasra), és úgy is, mint a Prince (távolra). Mondjuk ez az ötlet már nem izgat. Egyébként ha játékot fejlesztek, akkor újrahasznosíthatnám létező open-source játékok grafikai elemeit (hiszen ezekben sokszor a grafika elkészítése a legnehezebb). Ennek még utána lehet nézni, és annak alapján konkrétabb ötleteket megfogalmazni. Előnye a játékfejlesztésnek, hogy desktop, mobil vagy akár web alkalmazásként is megvalósíthatnám azt, és elég jól gyakorolhatnám vele a programozást. Hátránya, hogy a játékok piacán már így is nagyon nagy a kínálat, és a kisebb játékok iránt nem valami nagy a kereslet.
  • 9. Kvíz motor: ez az ötletem már elég régi, hiszen régen a freerice.com-hoz hasonló honlapra gondoltam. A kvízek persze okostelefonokon is jól működnének. Mitől lenne ez a kvíz jobb, mint mások? Szerintem a kvíz csak olyan kérdéseket tartalmazzon, amelyek a hasznos tudásra vonatkoznak (tehát, nem attól lesz valaki okos ember, hogy tudja, hogy mikor ki nyert az olimpián, vagy melyik filmben ki szerepelt). Másrészt a kvíz kérdéseinek nehézségét a kvíz motor automatikusan is mérhetné, és nem kellene előre megadni azt (mint ahogyan meg volt adva az régen a FreeRice.com-on). Előnye ennek az ötletnek, hogy a webfejlesztői vagy mobil alkalmazás fejlesztői képességeimet fejleszthetném vele. Hátránya, hogy valószínűleg szervert kellene üzemeltetni a működtetéséhez, valamint a kvíz kérdéseinek létrehozása sem lenne kis munka.
  • 8. Kártyajátékok: szívesen megvalósítottam volna a kedvenc, magyar kártyával játszható játékaimat (birge, svindli, trómfos bornyú) számítógépes játékként, de rá kellett jönnöm, hogy nincsenek fenn az Interneten a magyar kártyának olyan képei, amelyek közkincsek lennének (ez azt jelenti, hogy valószínűleg az sem közkincs, amit beszkennelhetnénk). Így max. azt tehetném meg, hogy a magyar kártyával játszható játékokat átültetem francia kártyára úgy, hogy a francia kártyának nem használom a lapjait a kettestől a hatosig. Előnye az lett volna ennek az ötletnek, hogy viszonylag környezetbarát játékokat népszerűsített volna. Hátránya, hogy francia kártyával nem az igazi.
  • 7. Sakk-variánsok: érdekesnek találnám a sakkot nagyobb táblán, pl. 10x10-es dáma táblán vagy 18x18-as gó táblán (ez utóbbit dupla annyi bábuval). Persze a hozzá szükséges mesterséges intelligenciát át kellene írni, hiszen a tábla méretének változásával a bábuk értéke is változna. Ez pedig nem nyilvánvaló, tehát valószínűleg önmagától tanuló AI-ra lenne szükségem. Az utóbbit viszont valahogyan le kellene butítani, hogy a humán játékosoknak is legyen ellene esélye. Nem könnyű feladat. Illetve, gondoltam arra is, hogy újfajta bábukat találjak ki a sakkhoz, és ezeknek az erejét összemérjem a sakk eredeti "csapatával". Nyilván ehhez is önmagától tanuló AI kellene. Előnye talán annyi lenne ennek az ötletnek, hogy a jövőbeli sakkozó ismerőseim körében talán jó eséllyel el tudnám terjeszteni a szoftvert. Hátránya, hogy a mesterséges intelligenciához valószínűleg külső szoftverre lenne szükségem, nincs kedvem a 0-ról megírni azt.
  • 6. Játék egy környezetvédő szervezet irányításáról: még korábban támadt ez az ötletem, amikor a környezetvédelemmel foglalkoztam. Ez akkor lenne érdekes játék, ha sok olyan ötletet bele tudnánk vinni, amiből tanulva a valóságban is hatékonyabbá tehető egy környezetvédő szervezet. Előnye ennek az ötletnek az etika. Hátránya, hogy a programozáson kívül is elég sok kreatív munkát igényelne egy ilyen játék létrehozása, és nem biztos, hogy elég sok jó ötletünk támadna hozzá.
  • 5. Fotókat "torzító" mobil App: rengeteg olyan mobil App-ot (alkalmazást) lehet találni a neten, amelyek a fotók szerkesztését teszik lehetővé (így pl. a selfie-ket nem kell rámásolni egy laptopra vagy PC-re, hogy átszerkesszük azokat a közösségi oldalakon való megosztás előtt), ezért elsőre nem is tűnik olyan jó ötletnek az, hogy készítsünk még egyet. De ha lenne valamilyen jó ötletünk olyan effektus(ok)ra, amit az említett programok nem tudnak, akkor akár csinálhatnánk csak ezért is egy mobil alkalmazást. Például, ha valaki szeretne a selfie-jéhez valamilyen stílusú keretet adni, vagy valamilyen formátumú szöveget adni (akár szövegbuborékban, vagy mém-szerűen), akkor azt a mi alkalmazásunkkal tehetné meg a legegyszerűbben (és az app megjegyezné, hogy a felhasználó milyen keretet szokott adni a képeihez, és milyen formátumban szokott szöveget írni hozzájuk). Esetleg a mi app-unk tudna fotókat "torzítani" úgy, ahogy más app nem (és ehhez semmilyen további inputra nem lenne szüksége magán a képen kívül). Általánosságban, a könnyen kezelhetőség érdekében minél kevesebb inputra kellene törekedni, és a lehetséges opciókat használati esetek (Use Case) alapján ajánlaná fel az alkalmazás. Persze még nem tudom, hogy mit tudnak a jelenlegi mobil alkalmazások, amelyek fotók szerkesztésére valók, de úgy gondolom, sok lehetőség elképzelhető valami olyan létrehozására, ami még nincs. Előnye ennek az ötletnek, hogy megtanulhatnám vele a manapság népszerű mobil app fejlesztést, amihez nem kell webszervert üzemeltetni (a webfejlesztéssel ellentétben). Hátránya, mint már említettem, hogy elég sok hasonló program van már a piacon, és valószínűleg nem tudnám értékesíteni a mobil alkalmazást, hacsak vállalkozó nem lennék.
  • 4. Social networking site motor: talán ez lenne a legjobb programozási ötletem, ha már gazdag lennék. Közösségi oldalt (mint a FaceBook), társkeresőt vagy levelezőtárs-keresőt is lehetne ezzel a motorral működtetni (a legjobb esetben ezt a hármat egyben). Ilyen motorról nem sokat hallani (de azért van néhány, rákerestem), különösen ami direkt ezzel a céllal készült (akik ilyen szoftvert készítenek, azok valószínűleg feltelepítik azt valahova, ahelyett, hogy motorként megosszák... egyébként talán én is ezt tenném, ha már gazdag lennék). De ahhoz, hogy elterjedjen, valamiben jobbnak kellene lennie ennek a közösségi oldalnak, mint másoknak... én úgy gondolom, hogy ez elérhető új ötletekkel (ezeket itt nem osztanám meg), valamint az ÁSZF (Általános Szerződési Feltételek) jogi feltételeinek elfogadhatóbbá tételével (pl. ha frissül az ÁSZF, addig nem engedne belépni az oldalra, amíg a felhasználó el nem fogadja az új feltételeket, így kizárva a jogi kétségeket, illetve a feltételek frissítéseinek látatlanban való elfogadását). Nálam pl. egy olyan kis dolog is fontos lehet, hogy nem írják oda, hogy "Minden jog fenntartva"... Ennek az ötletnek az előnye, hogy a webfejlesztés területén tudnék referenciát mutatni a programozói készségeimről. Hátránya, hogy nem sok hasznát tudnám venni a szoftvernek, amíg szegény vagyok (hacsak meg nem tudnám győzni egy már elég nagy látogatottsággal rendelkező website tulajdonosát, hogy cserélje le a szoftverét az enyémre)... idővel pedig talán elavulna a sosem használt motor, hiszen a webes technológiák állandóan fejlődnek.
  • 3. Tömörítő program: megpróbálhatnék írni egy jobb (gyorsabb, vagy hatékonyabban tömörítő) tömörítő programot. Megpróbálhatnék indulni egy ilyen programmal a Hutter Prize nevű pályázaton. Ezzel valóban Programtervező Matematikus lehetnék. Ennek az ötletnek az előnye, hogy sikeressége esetén pénzt és hírnevet is szerezhetnék vele. Hátránya az a szó, hogy "megpróbálhatnék"... tehát nem biztos, hogy sikerülne, és ha nem, akkor hiába dolgoznék vele (illetve, jelenleg a laptopom sem biztos, hogy elég erős lenne a feladathoz).
  • 2. Podcast előkészítő szkript: sokszor elég sok időt elvesz tőlem az, hogy hangoskönyveket vagy podcastokat töltsek le pl. RSS Feed-ről, és azokat a mobilom (nem okostelefon) memóriakártyájára másoljam... ennek megkönnyítésére írhatnék egy BASH vagy Python szkriptet. Ez több részfeladatból áll: (1) több fájl RSS Feed-ről való letöltése (ha podcast), (2) szükség esetén az RSS Feed-ről letöltött fájlok automatikus átnevezése (néha odabiggyeszt a végükre egy kérdőjellel kezdődő részt, mint pl. abc.mp3?id=1234), (3) szükség esetén a fájlok szétdarabolása 30 perces darabokba (kb. ennyi ideig tart a sétám), (4) a Linuxos ext4 és a Nokia mobilos (memóriakártyás) FAT32/vfat fájlrendszerek esetén előfordulhat, hogy összekeveri a fájlok sorrendjét (mivel az ext4 fájlrendszerben a "directory order"-t nem a fájlok létrehozási ideje, hanem valami "hash" dönti el, és ezt veszi át a vfat), ezt kijavítandó, rendezze újra betűrendbe a fájlokat a memóriakártyán (átnevezésekkel). Ennek az ötletnek az előnye, hogy talán időt spórolhat meg nekem... hátránya viszont, hogy valószínűleg nem sok más embernek van pont erre szüksége.
  • 1. Audio Visualizer: egy program, ami egy adott zenéhez annak ritmusára mozgó szép számítógépes grafikai látványt generál. Ezt használhatnák például zenei YouTube videók képanyagaként, vagy akár professzionális zenészek is használhatnák fellépésekkor a mögöttük lévő kivetítőn, esetleg valós időben is "illusztrálni" tudna egy hanganyagot. Előnye, hogy sok lehetőség van benne, tehát akkor is érdemes lehet megvalósítani, ha mások már csináltak hasonlót. Hátránya, hogy elég nagy feladat, nehéz hozzáfogni.

Ez tehát éppen tíz ötlet volt, nem is nagyon tudtam volna többet írni. Néhány egyéb ötlet található még a régebbi informatikai írásaim között, de ezek nem tűntek annyira valós lehetőségnek a számomra (pl. az UFOAI feltelepítése már nem olyan nehéz, mint régen volt, ezért nem szükséges annak Linux disztribúciót csinálni).

Nincsenek megjegyzések:

Megjegyzés küldése