Merre, hogyan tovább?
Sziasztok! Hadd kezdjem azzal, hogy pozitív, építő jellegű tanácsokra lenne szükségem, jó magam is tudom, hogy elk*urtam, nem kicsit... nagyon.
Szóval több éve fejlesztgetek, de a több éves fejlesztgetés után is megmaradtam junior szinten, 'hobbi programozónak'. Az okokkal tisztábban vagyok, de ez a tényeken azok már nem változtatnak.
Most végre eljutottam arra a pontra, hogy nagyon vágyom arra, hogy újat tanuljak és, hogy jó szakember legyek. Ismereteim vannak PHP/MySQL/HTML/CSS és némi javascript (jQuery) területén, de mint mondtam, nem magas szinten. OOP-t, MVC-t ismerem, de nem vagyunk nagy barátok.
Amiben jónak érzem magam az az algoritmikus gondolkozás, feladatok, 'rejtvények' megoldása, mert ezek izgalmasak számomra. De tudom, hogy egy fejlesztő munkája jórészt nem ilyen típusú feladatokból áll.
Ennek ellenére szeretnék a jövőben ezen a területen dolgozni és ezért szeretném az elkövetkező félévben leledző a szabadidőmet a tanulásnak szentelni (munka és gyerek mellett) és ősszel állásokat megpályázni.
És akkor most jönnének a kérdések:
- kezdjek el foglalkozni a manapság egyre népszerűbb javascript keretrendszerekkel front-end oldalon (pl. Angular) vagy ássam magam bele a node.js rejtelmeibe?
- vagy maradjak a PHP-nál és itt ismerkedjek meg keretrendszerekkel (pl. Laravel)
- vagy inkább technológiákkal/architektúrákkal foglalkozzak: microservice, REST
- vagy mi az amibe manapság érdemes munkát fektetni, mert keresett a piacon?
A megtisztelő véleményeket, tanácsokat előre is köszönöm!!!
■ Szóval több éve fejlesztgetek, de a több éves fejlesztgetés után is megmaradtam junior szinten, 'hobbi programozónak'. Az okokkal tisztábban vagyok, de ez a tényeken azok már nem változtatnak.
Most végre eljutottam arra a pontra, hogy nagyon vágyom arra, hogy újat tanuljak és, hogy jó szakember legyek. Ismereteim vannak PHP/MySQL/HTML/CSS és némi javascript (jQuery) területén, de mint mondtam, nem magas szinten. OOP-t, MVC-t ismerem, de nem vagyunk nagy barátok.
Amiben jónak érzem magam az az algoritmikus gondolkozás, feladatok, 'rejtvények' megoldása, mert ezek izgalmasak számomra. De tudom, hogy egy fejlesztő munkája jórészt nem ilyen típusú feladatokból áll.
Ennek ellenére szeretnék a jövőben ezen a területen dolgozni és ezért szeretném az elkövetkező félévben leledző a szabadidőmet a tanulásnak szentelni (munka és gyerek mellett) és ősszel állásokat megpályázni.
És akkor most jönnének a kérdések:
- kezdjek el foglalkozni a manapság egyre népszerűbb javascript keretrendszerekkel front-end oldalon (pl. Angular) vagy ássam magam bele a node.js rejtelmeibe?
- vagy maradjak a PHP-nál és itt ismerkedjek meg keretrendszerekkel (pl. Laravel)
- vagy inkább technológiákkal/architektúrákkal foglalkozzak: microservice, REST
- vagy mi az amibe manapság érdemes munkát fektetni, mert keresett a piacon?
A megtisztelő véleményeket, tanácsokat előre is köszönöm!!!
Uj nyelvek
Továbblépés
Ezek szerint látod a logikus következő lépéseket, mi az oka, hogy nem mentél tovább ebbe az irányba? Első PHPs éveimben a technológia fejlődésemet elsősorban a célszerűség motiválta; az OOP hamar előkerült, mint megoldás a soksok duplikált / nehezen módosítható kód elkerülésére. Ugyanígy az MVC is vonzó ötletekett hozott a korábban összedrótozott modell és prezentáció menedzselsésére (bár sose jutottam el tisztán MVC produktumig).
A külső motiváció (jobb állás / szintlépés lehetősége) fontos, de kevés üzemanyagot ad napról-napra. Keress egy projektet amihez felhasználhatod a tault eszközt (mondjuk Laravelt); jó esetben fizet ez eltöltött óráidért és ellát valódi feladatokkal, amik segítenek reálisabban látni az eszközt.
Az OOP elengedhetetlen azt én
Hogy miért alakult így? Egyik ok a kényelem, nehéz beismerni, de ez van. Másrészt pedig akitől tanulhattam, ő egy nagyon szorgalmas ember, de anno, ő is a pályája kezdetén volt és saját maga fejlesztése képen egy saját CMS-t kreált és fejlesztett folyamatosan. Én ezt nem szerettem, mert nem volt hozzá doksi, folyamatosan változott, stb. Így egy kicsit elment ettől a kedvem...
Most olyan munkát keresek, ahol van lehetőség tanulni, kvázi juniorként próbálok elhelyezkedni, de a junior pozíciókból azért nincs olyan sok. Pedig úgy érzem, hogy nagyon motivált vagyok, de itthon család és munka mellett nehéz tanulni. Bár most más utat nem látok.
Kérdés, hogy mit tanuljak? Tényleg jó lenne egy konkrét feladat, kis projekt, ami egy konkrét célt adna. No, de arról meg ki mondja meg, hogy jól csináltam-e meg vagy sem.
Valami mentor program is jó lenne, de el sem tudom képzelni, hogy ott milyen fizetést adnának, pedig a család az már itt van...
egy lehetséges út
Közben jó eséllyel futsz majd kisebb-nagyobb problémákba, és akarva-akaratlanul (remélem, inkább akarva) is fogsz szakmai tartalmakat olvasni. Ez jó esetben nem kizárólag a stackoverflow.com-ot fogja jelenteni. :) Más szóval, mire a projekted végére érsz, már jóval többet fogsz tudni, mint az elején.
Mire idáig jutsz, azt is látni fogod, hogy sok mindent megcsinálhattál volna szebben, sok helyen lehetne javítani a felhasználói élményen stb.
Szóval jöhet is a refaktorálás (extrém esetben újraírás), aminek során ismét sokat fogsz tanulni.
Miközben ilyen módon képzed magad, a fél szemedet azért tartsd a munkáltatói elvárásokon és a jellemzően használt eszközökkel (pl. Git) szerezz legalább minimális tapasztalatot.
Igen, valószínűleg ez egy jó
Nem a tanulással van a gondom, sőt, hanem azzal, hogy ha egyedül csinálom, akkor biztos vagyok benne, hogy nem jó irányba haladnék.
Na ez konkrét kérés,
Azt nem tudom, hogy pontosan mennyi szabadidőm lesz a következő fél évben, de amennyit tudok, szívesen segítek pl e-mailben, néha Skype on.
Tetszik az, hogy JÓ tudást akarsz szerezni, és szeretnél minél több jó tapasztalatot.
Abban van igaza bamegakapa, hogy kell lennie saját véleményednek is, de a kételyed, hogy "egyedül nem jó irányba mennék" nekem nagyon tetszik, mert olyasmi (szerintem egészséges) önkritikát mutat, ami nekem is van, és sokszor hozott lényegesen jobb eredményt, mint az "egyedül eldönteni".
Szóval hajrá, szerintem menni fog!
két cent
Addig is amellett, hogy képzed magad legalább egy adott nyelven (érdemes olyat, amit azért már ismersz, rá fogsz jönni, hogy semmit nem tudsz még róla), ásd bele magad az OOP, fenntartható kód, SOLID, KISS, stb. témákba. Valaki említette a Gitet, az is nagyon hasznos, és az elején igen nehéz ráérezni. Találj ki magadnak feladatokat, amikből nem kell, hogy nyilvános oldal legyen, de készítsd úgy. Szánd rá az időt, ne arra menj, hogy kész legyen, hanem hogy minél minőségibb kódot írj. Keresd, hogy lehetne jobbá tenni, és ne ragaszkodj ahhoz, ami már kész van. Hiába olvasol könyveket, ha nem tudod ültetni a gyakorlatba, üres elméleti tudás lesz. Rá kell jönnöd, az adott technika miben segít, mitől teszi hatékonyabbá a munkádat. Szerencsére ehhez rengeted anyag áll rendelkezésre.
A mentoroktól jellemzően ne várd, hogy irányítsanak, felügyeljenek. Inkább a megfelelő irányba állítanak, ha elakadsz, segítenek, időnként rádnéznek, elmondják, mit lehetne jobban. Ami ennél több, azért már fizetni kell. Hagyd, hogy a saját lelkesedésed, érdeklődésed vigyen előre, és annak mentén igyekezz minél több új dolgot tanulni, minél több addigi beidegződést, technikát megkérdőjelezni.
Köszönöm a válaszod! Remélem
Remélem találok valami hasonló lehetőséget...
Van valamid, ami szerintem jó
Ez így tök jó, nekem azt tükrözi, hogy az a hozzáállás, ami egy jövőbeni jó fejlesztőt eredményez, meg van. :)
Szerintem azt el kéne döntened, hogy inkább "melyik oldal" érdekel, Frontend vs Backend. Itt hangsúlyozom, hogy "érdekel".
Keress meg légyszi privátban, írj magadról még pár szót: hol élsz, jelenleg mit csinálsz, mik a céljaid.
Ígérni előre nem tudok többet, mint hogy megkérdezem a management - fejlesztő vagyok, nem HR. :) ;)
De az határozott véleményem (az eddigi szakmai kérdéseid alapján is), hogy a jó hozzáállásod meg van ahhoz, hogy jó fejlesztő legyél.
Kérdések
Egyáltalán nem világos, hogy eddig egyedül dolgoztál-e vagy csapatban, mert nem mindegy, valamint az sem, hogy ez így megfelelt-e számodra, vagy pedig változtatnál (csoportban vagy egyedül folytatnád)?. Azt sem osztottad meg, hogy mi a probléma a jelenlegi státuszoddal, valamint mik az elérendő céljaid. Eddig csak hobbiprojekteken csiszoltad a tudásod a webfejlesztésben vagy profi munkákban vettél részt?
Milyen hátrányok értek eddig az állítólagos juniorságod miatt?
Én szeretem meghallgatni
Egy kis csapatban dolgoztam, és szerettem így dolgozni. Szeretem, ha tudok valakihez fordulni, ha kérdésem van, mert szerintem ez egyáltalán nem szégyen. Persze azért a kérdést jól kell feltenni :).
A jelenlegi munkámban elértem a 'csúcsra', ami csak egy kisebb dombocskát jelent. Nagyon-nagyon rutinszerűvé vált, mellőzve bármiféle újdonságot, kihívást a szakmai pályafutásomban. A fejlesztés pedig nem ilyen. Egyrészt van mit pótolnom, másrészt mire valamit megtanulok, mellette újabb dolgok jelennek meg. Persze mindenhez nem szeretnék érteni, de a cél, hogy legalább 1-2 területre azt tudjam mondani: 'Ez egész jól megy, ismerem!'.
Biztos vagyok benne, hogy mi is csak a 'konyítok hozzá, de nem biztos hogy, úgy csinálom, ahogy kellene' kategóriát erősítettük a barátommal. Mondom ezt az ő nevében is, mivel ma már ő is látja, hogy anno elég amatőr módon oldottuk meg a feladatokat. Szerencsére ő már tovább fejlődött és meg itt vagyok és keresem az utat a továbblépéshez.
Kérdések
Vegyük például az adatok megjelenítését: tipikusan az történik mindenhol, hogy bejön egy kérés, amit feldolgozol, és előbb összeállítasz egy válasz "objektumot", amiben ott van minden adat, például a fejlécben a felhasználó neve, a bal oldalon az aktuális menü, középen pedig a tartalom. Ebből az adattömbből aztán valamilyen módon HTML-t kell generálni – és erre a transzformációra a funkcionális programozás sokkal hatékonyabb, mint a procedurális vagy az OOP.
Aztán érdemes feltenni a kérdést, hogy csak az OOP alkalmas a nehezen módosítható/duplikált kód kezelésére? Procedurálisan ez nem oldható meg? Jó példa erre a GCC nevű fordító, amely a 4.7-ig tisztán C-ben íródott, ami nem egy OOP nyelv, a forráskódja pedig több mint kétszáz megabájt – de sok ilyet lehet még találni.
Vagy vegyük mondjuk ezt a kódot: az IPv4-ben a 62., az IPv6-ban a 144. sorban kezdődik a setAddress metódus. Ha összevetjük őket, majdnem teljesen megegyeznek, a legnagyobb különbség az IPv6 147.-164. soráig tartó feltétel, azon felül van egy reguláris kifejezés ellenőrzés, utána az IPv4-ben egy értékellenőrzés, majd a végén a privát adattagok írása. A közös függvények csak paraméterben térnek el (például a reguláris kifejezésben), de a kód megegyezik.
A kód OOP, de tele van duplikációval, tehát az OOP önmagában nem megoldás a duplikált kód elkerülésére.
Ez az egész kiváltható a következővel:
közös1();
ha (IPv6) { ... }
közös2(paraméter1);
ha (IPv4) { ... }
közös3(paraméter2);
}
Ebben a procedurális pszeudokódban egy darab duplikáció sincs, azaz a duplikált kód elkerülésére a procedurális megközelítés is megfelel.
Kérdések, kérdések, kérdések. És mindent ki kell próbálni, hogy a válaszokat megkapd, tapasztalatokat gyűjts. A tapasztalat azt jelenti, hogy van az, amit mások állítanak vagy amit te vársz, meg van az igazság. És ezzel nem azt állítom, hogy mások nem mondanak igazat, hanem azt, hogy a világ egy sokismeretlenes egyenlet, amiből mindenki csak pár változót ismer.
Hát, nagyon köszönöm
Az a jó, hogy egyes tanácsok közelebbről, mások pedig távolabbról közelítették meg a problémámat, de úgy gondolom mindegyik közelebb visz ahhoz, hogy jó útra kerüljek...
Ne haragudj, hogy ezt mondom,
Szóval én így látom.
Nem haragszom :) Egyrészt
Egyrészt azért sem, mert építő jellegű a hozzászólásod, másrészt pedig egyet is értek veled.
Azért kérdeztem rá konkrét "szerszámokra", mert manapság, ha valaki megnézi az álláshirdetéseket, akkor nem előny, hanem elvárás 1-2 említett technológia ismerete. Természetesen a biztos alapok nélkülözhetetlenek.
És én sem vagyok idő-milliómos, sőt, nem jut sok idő az önálló tanulásra, de azt a keveset igyekszem kihasználni.
Ha alkalmazott akarsz lenni,
Igen, most pályázgatok
Sok sikert!
Köszönöm!!! ...kedden