Hogyan kéne tanulnom a webfejlesztést?
Szeptemberben kezdek reál tagozaton egy gimnáziumban. Mindig is tudtam, hogy informatikai vonalon szeretnék dolgozni a jövőben, de konkrétan a webfejlesztés, mint célirány kb. 2 éve fogalmazódott meg bennem.
Autodidakta és képzés szerinti tanulás módszereit szeretném keverni. Úgy tudom, hogy több okból is fontos lenne egyetem elvégzése (ezt értem képzés alatt) (maga a „papír”, hiányosságok pótlása, és „csak belémvernek valami használhatót”, stb.). ELTE-IK és BME-VIK után kutakodtam, csak, hogy említsem, de persze ez még ráér.
Egyetem mellett mindenképp dolgoznom kéne, a kellő anyagi támogatás hiánya miatt. Ezért, használható tudás nélkül kénytelen lennék egyetem mellett valami „hulladékmunkát” vállalni, amit úgy érzem, érthető módon szeretnék elkerülni. (diákmunkázok árufeltöltőként, és ezen a pár hónapon kívül, amit a nyári szünetek alatt munkával töltök majd, nem akarom huzamosabb ideig ezt csinálni...)
És persze semmi baj nincs szerintem azzal, ha gimnázium mellett már tanulni akarom a szakmámat (sokan ezt preferálják), és nem halogatom az egyetemig, lesz legalább egy alapvető tudásom hozzá.
A kérdés: hogyan kezdjek neki? Nyilván még komolyabb matematikai/informatikai ismereteim nincsenek (8 általános), az informatika is a Word-PowerPoint-Excel szintjén cserbenhagy szakmailag. Ez gimi alatt változni fog, persze, de kérdés, hogy hogyan. Először kevésbé matematikai, informatikai háttértudást igénylő dolgokkal kéne kezdenem.
HTML, CSS, gondolom így kéne kezdeni. A HTML-ből már csipegettem. Utána? Java, PHP, stb...? Frontend vagy backend mellett még nem tettem le egyértelműen a voksomat. Milyen sorrendben? Külön-külön vagy fedve egymást tanuljam a dolgokat? Milyen programokat használjak? (Notepad...?)
Illetve, hogyan? A W3Schools-ot ajánlották tanulásra. Az elég? Szeretnék domaint és olcsó tárhelyet bérelni, ahol gyakorolhatok, szolgáltatót is ajánlhattok.
Fontos megjegyeznem, hogy a programozással egyben az angolt is tanulom, ezért a folyamat lassabb lehet... Bár járok angoltanárhoz és napi szinten foglalkoznék a webfejlesztéssel. (gimi alatt nekem már le kell nyelvvizsgáznom)
A gimnázium 3-4. évében kisebb webfejlesztő munkákat szeretnék elvállalni, junior webfejlesztőként, ha úgy tetszik, távmunkaként. Lehet elég tudásom hozzá, ha már ma elkezdek tanulni?
A válaszokon kívül minden más tanácsot, tippet, észrevételt, gondolatot szívesen fogadok, a kis tervem totális szétzúzását beleértve. Előre is köszönöm.
Eléggé kemény terv ahhoz képest, hogy milyen fiatal vagy, de ez tök jó. Kezdetnek én azt tudnám tanácsolni, hogy egy ingyenes tárhelyen csinálj portfólió oldalt, szóval egy önéletrajzi oldalt. Gondold ki hogyan nézzen ki, mit tudjon csinálni aztán addig szenvedj vele, amíg olyan nem lesz, amilyenre akarod. Ehhez HTML, CSS és JavaScript fog kelleni. Talán JavaScript nélkül is lehetne, de jó lenne, ha azzal is foglalkoznál, mert fontos. Ez azért lesz jó, mert úgy tanulsz igazán, ha elkészítesz honlapokat, ráadásul lesz mit mutatnod, ha munkát akarsz vállalni, hogy te csináltad. A HTML meg a CSS szerintem az egyszerűbb része, aztán én a JavaScript + jQuery-t erőltetném, hogy próbálj meg animálni dolgokat. Aztán ha az is megy nagyjából, utána elmerülhetnél a PHP-ben, adatbázis kezelésben. Pl. csinálj egy egyszerű regisztráció/login oldalt.
A frontend/backend irányzat meg szerintem ráér. Az alapokat tudnod kell mindkét oldalról és már pár éve szerencsére nem kellett állás után keresgélnem, de annak idején nem nagyon volt olyan hirdetés, ahol konkrétan az egyiket keresték volna. Inkább mindent akarnak, de aztán rájönnek, hogy olyan jelentkező nincs, majd a feltételeikhez legközelebb esőt válasszák.
Én még Youtube-ról kezdtem el tanulni, ami tetszett, mert érdekes is volt, nem csak tömény tanulás, szóval azt ajánlanám.
Más webfejlesztő ismerőseim is béreltek domain-t gyakorláshoz, de én azt feleslegesnek gondoltam. Vannak ingyenesek, én atw-t használtam és számomra bőven elég volt. Munkára jelentkezéskor senkit sem érdekel, hogy esetleg van egy kis reklám a tetején, mert a lényeg a kódban van.
Értem. Én is a portfólió weboldal kidolgozására gondoltam.
Hallottam róla, hogy a munkáltatók hajlamosak egy kalap alá venni a dolgokat. Igazából szeretnék mindkét területen gyakorlottá válni.
A YouTube azért lenne kevésbé jó választás, mert az audió tartalom miatt, ha nem értek valamit, nem ismerem a szót/kifejezést, nehezebb lefordítanom. A YT megszűntette a kommentárakat (feliratokat), szóval ha nem tudok valamit, rákeresni sem tudok, ha esetleg leírni sem tudom. Jobban ott kell lennj nyelvtudâs terén. Egy próbát persze megér, és ezt is lehet ötvözni az írásbeli anyagokkal.
Rákerestem a szolgáltatóra, még ma igénylek egy ingyeneset.
Köszönöm! :)
Az informatika sokszínű. :) Én szeretek tanítani/oktatni informatikát, de képességem nagyon nincs hozzá. :D Mivel sokszor olyan információkat nem magyarázok el amit kellene, mivel nem tudatosan úgy gondolom, hogy az alap dolog és tudja a hallgató. Így sokszor nem értik mit szeretnék megértetni. Ebben a fényében olvasd tovább. :D
Amúgy több szinten ellehet kezdeni a webfejlesztést tanulni. Az a legegyszerűbb, ha egy tárhelyet használsz, kiépített infrastruktúrával. Vagy az egészet magad teremted meg. Ez is egy másik út. Mit értek ezalatt? Azt, hogy: te állítod fel a szervert, konfigurálod be, telepíted fel az apache-ot, PHP-t, vagy amilyen nyelven szeretnéd. Konkrétan te húzod fel az alapzatot, amin fog futni az egész.
Választhatsz. Keményen megizzasztod magad egy teljesen 0-ról való infrastruktúra kiépítésével (ezzel együtt meg is tanulva ezt), vagy könnyebbik utat választva, bérelsz ingyen/fizetős tárhelyet.
Az informatikában az a szép, hogy ha fejleszteni akarsz és teszem azt, legálisan, jogtisztán és teljesen ingyen: Lehetséges!
Csak: Windows fizetős! Windows szerver is!
Pl. Szegedi Tudományegyetemen informatikai szakán mikor voltam legelső óráján mondták: "2 heted van megtanulni a linuxot" És a 3. órán már azon tanították a C nyelvet.
Azóta relatív szerelmes lettem a linux-ba. Mindent arra használok, kivéve persze a PC-s játékokat, amik Windows-on mennek. (lásd: dual boot)
Kicsit eltértem a témától, mivel amit mondani akartam, az az, hogy: előbb-utóbb nem fogod tudni elkerülni a linuxot. Tehát ismerkedj meg vele. 2 nagyobb család van: Redhet, és a Debian. Redhet családból a CentOS és a Fedora amit rengeteg helyen használnak szerver operációs rendszerként. Debian családból az Ubuntu a nagyon elterjedt, első sorban desktopokon. (Most laptopról írok, ezen is Ubuntu megy) Természetesen van az Ubuntu-nak szerver kiadása is.
Pl.: Ubuntu server, CentOS minimal <-- ezekben az a különleges, hogy nincs grafikus felületük. Mivel, minek foglaljon a GUI memóriát, ha úgy se helyben nézed? Kiszolgálásra van, nem desktop funkció ellátására.
Pl.: CentOS alapjáraton 120MB RAM-ot eszik meg.
Azért mondtam el mindezt, hogy tudd, mit fogsz használni, ha közvetlen nem is. Ha még is 3 út adott:
- VPS - Virtual Private Server
- Veszel egy integrált CPU-s alaplapot ~30000Ft, tápot, RAM-ot, és 7/24ben futtatod. Olyan ~20-30W-ot eszik. Nem sok. Ez simán mehet 0-24ben házi szerverként. :) (Csak figyelni kell, mert szeretik a 22-es portot támadni. Rendszeresen látom a saját házi szerver gépemen ami ki van téve netre, hogy 4-5 robot próbál belépni. IP szerint volt olyan, ami kinából, volt már koreai, orosz stb... Tehát első mozdulat az volt, hogy egy Knock szervert és ssh-guard programot telepíteni, root remote logint letiltani, iptablessel beállítani a tűzfalat és így tovább.)
- Vagy VPS-t készítesz házilag saját gépeden. Erre pl. jó program a VMware Workstation. Ami persze fizetős, de ott a torrent bolt. :D (lásd: ncore) Tanulásra tökéletes.
Persze itt még közel se vagyunk a webfejlesztéshez. Első körben fel kell telepíteni a linuxot. Ismerkedni vele. Hogyan kell konfigurálni, mi a mappa szerkezete, jogrendszere, terminált használni. Repository-t hozzáadni, ha nem rendelkezik azzal a verzióval amit te szeretnél. Avagy GitHub-ról letöltött forráskódokat telepíteni (amiket ugyebár le kell helyben fordítani, és az lehet C++ is).
Tehát fel kell telepíti:
PHP esetén: Apache2-t, PHP-t
Java esetén: Tomcat-et
Python esetén: Python-t :D
MySQL szerver adja magát, hogy MySQL-t. :)
Innentől már van egy hely ahol futhat a cucc. Ha ezt VMware-en csináltad, akkor tekinthetsz úgy rá, mint egy teljes értékű szerver gépre. Annyiban fog különbözni, hogy az erőforrást a te gépedből eszi, és nem külön vason fut, mint írtam a lehetséges utak 2. pontjában. De logikailag: annak is lesz sajét IP-je, sajét memória területe, és így tovább. Logikailag egy különálló gépnek számít.
(Ha már ide eljutsz, akkor azt jelenti, hogy betudsz lőni magadnak egy családi szerver gépet is. :D)
Nah de vissza a fő témához. Folyatom holnap, elfáradtam a gondolat menetemben, és csak összecsapnám. :) Persze ha igény van rá, csak akkor. Feleslegesen nem töröm magam. :)
A buszon nem tudtam hosszabb véleményt írni. Most nekilátok.
Hazudnék, ha azt mondanám, hogy elsőre mindent megértettem, de már világos, miről írsz. Valóban hasznos lehet megtanulnom ezeket.
Ubuntu mellett döntenék, de még jobban utána fogok olvasni.
Most a VPS tűnik a legjobb megoldásnak, mert rövidtávon olcsóbb. Dedikált szervergépre csak később lesz keret, bár több okból is jobb volna.
Házi VPS-sel nem terhelném a gépet.
Köszönöm, és várom a folytatást. :)
Akkor 2. epizód. :)
Első körben válaszolnék a te felvetésedre. Nyugodtan csinálj házi VPS-t. Egy linux gép nem eszik annyit mint gondolod. A mai gépek 6-8GB-al 4 maggal meg se érzik. Én a laptopomon használok local VPS-t, mikor abban 4GB RAM van, i3-as 2magos 4 szálas CPU és nincs 3Ghz se. :) Nem érzem meg abban a környezetben se.
Egy linuxos gépnek, bőven elég 1GB RAM (nem fogja kihasználni), és 1 szál a CPU-ból. Úgy is csak annyira fogja terhelni, amennyire szükséges. Tehát a "nem szeretném a gépem terhelni" érvényét veszti, mert egy az egyben kineveti. :)
Ez egy tartalmas térkép. Én is nem rég találkoztam vele, de jól elmagyarázza ábrában.
--- Kezdjük a BackEnd-el.
#1. csomópont:
5 irányt tárgyal. Node.js, PHP, Python, Ruby, és egyéb (Java, C#, Go, ...)
PHP mellet szól, hogy a webhostingok 90%-a PHP-t támogatja. Tehát ha más nyelvet szeretnél, akkor sajnos vagy saját gép vagy VPS bérlés. :(
Minden nyelvnek van egy "Package Manager", ami a már kész vagy szükséges elemeket tölti le. (lásd: függőség)
Megj.: Gondolom a linux deb/rpm csomagrendszer alapötletét felhasználva hozták létre, hogy ne kézzel kelljen mindent beállítani, hanem legyen egy központosított csomagkezelő.
- Láthatsz keretrendszereket, tesztereket. Csak akkor javaslom a velük való ismerkedést, ha nyelv sajátosságait magadévá tetted, különben belefogsz gabalyodni.
#2. csomópont:
Ezek olyan elméletbeli technikák, amik már nem nyelvhez kötötted, de abban kell implementálni, megvalósítani. De inkább eszközöket takarnak.
Azért az én szememnek van 1-2 kakukktojás a felsoroltakban.
- Docker <- ez egy konténer szerver (DevOps elem)
- Web Server <- ez egy szoftver ami sokminden megtudja valósítani (DevOps elem)
Többi valid (helyénvaló, elfogadható). Amivel legelőször fogsz találkozni az a RegExp, ez 100%.
#3. csomópont:
Ez a pont inkább az adattárolásra akarja megmutatni. Kár, hogy nincs megjegyzés: MySQL és a MariaDB elérése azonos! Tehát PhpMyAdmin-ról ami alapból MySQL-re lett írva, ugyanúgy működik MariaDB-vel is. Csak a MariaDB belsőleg van különbség. Tehát lényegében a MariaDB egy MySQL fork.
PostgreSQL-el sajnos még nem foglalkoztam. :( Oracle és a MSSQL jó cuccok, csak fizetősek, és inkább nagyobb gyárak, nagyvállalatok használják. Ezek óriás adatbázisok, és több TB adattal képzeld el. :)
NoSQL adatbázisokra alapesetben nem lesz szükséges, de jó azzal is ismerkedni. Redis egy inmemory adatbázis, azaz memóriában élősködik a gyors elérés miatt, ami inkább kulcs-érték párokban gondolkodik. Míg a MongoDB egy dokumentum orientált adatbázis, más szóval egy JSON formátumban tárolja az adatokat, ezzel megkönnyítve a módosíthatóságát.
#4. csomópont:
Ez már lényegében csak elméleti pontok: Design Pattern, Arc. Pattern, Tesztelési technikák.
--- DevOps (kihagyom amiket nem ismerek én se):
1. csomópont:
Operating System: Eredetileg maga az operációs rendszernek nem szabadna meghatároznia, hogy mely nyelvekben lehessen programozni, de a futtatást befolyásolhatja. Ezért sem sárga a linux. Az egy másik dolog, hogy Desktop alkalmazást írsz, vagy szerveren futó programot. C#-nak vannak linuxos alternatívái, de mindig le lesz maradva, mint a hivatalos kiadás verzió. (ilyen pl.: mono)
Cloud (felhő) szerintem nem kell magyarázni. Felhőben futó alkalmazás. Neten egy rakat leírás van.
CI/CD: Ez egy fejlesztési módszertan, amire a képen látható eszközök segítik. (nem fog kelleni neked, míg komolyan nem csinálod. Házi projekteket én se CI-ben csinálom... :D pedig lehetne)
2. csomópont:
Amiit te használni fogsz az a Web Server! Apache vagy Nginx. Választhatsz. :) Azért később jó összeismerkedni a Docker-rel. Nem kevés céget láttam, akik használják.
Love for Terminal <3 :3 :) Nah igen. Aki szereti a terminált használni (lásd linuxon), az ilyen téren előnyben van, hogy ha pl. megdöglik a grafikus felület pl.: Ubuntun az nem para, mert újra indítható. :) Ha feltelepítesz egy linux-ot, azt még a halálból is visszatudod hozni újra telepítés nélkül.
Megj.: Az ilyen embereket nagyon keresik, akik mélyen értenek a linuxhoz, mert ugye a szerverek 80%-án linux megy, és ha történik valami akkor a cég fogja szívni a fogát. Lásd: adatvesztés például. Inkább életet lehelnek a rendszerbe, mint újra húzzák. Bár van már jópofa megoldások. :)
3. csomópont inkább hálózat ismeret és szerver üzemeltetésről szól.
--- FrontEnd:
1. csomópont:
Hát igen. Ez a 3 dolgot kell ismerni. És később mélyebben is. Hát akkor:
2. csomópont:
* JavaScript-nek sok verziója van: [link]
Van egy JS alternatívája is a TypeScript, amit a Microsoft fejlesztett. Ha ismered a Java-t vagy a C#-ot akkor könnyen megtudod tanulni, de ez nem fog kelleni, ha nem akarsz vele foglalkozni. Bár: !! Angular2 vagy afelett TypeScript van.
* CSS :DDD Ez jó dolog, de van jobb is: SASS, RespWeb meg nem más mint Bootstrap-nek a responsive elemeit használva, és/vagy a CSS @media elemét. Tehát ez a CSS része. :)
Ami kellhet még:
- Webpack: szerintem ez a kép mindent elmond: [link]
Keretrendszerekre meg ráérsz. Angular, React és Vue.
Akkor még egy kicsi a cégére:
Én relatív 8 éve vagyok benne az egész szoftverfejlesztős dologban. (19 évesen kezdtem igazán)
Azóta rendszeresen találkozok mindig új dolgokkal, módszerekkel és eszközökkel. Ez egy végtelenségig tartó tanulás. Mármint az informatika. Nem olyan mint a fizika, hogy az majd változik. :)
Például, hogy JavaScript-re van Tesztelő ez is új volt nekem. Bár sokan a "Karma"-t (ez a neve) használják cégeknél (nincs a roadmap-on), így gondolom nem véletlen. Azt is meg kellene tanulni.
Jenkins-t is meg kellene tanulni. :D
és sorolhatnám.
Jah tényleg.
Egy fontos dolgot kihagytam, bár a Roadmap-on rajta van. Git. Ismerd meg a Git-et, mint verzió követőt. Elég egy text alapú szöveg a tanulásához. Van magyar videó is fent. Nincs cég aki nem használja, vagy valamely hasonló verzió követőt.
Ebben az esetben házi VPS lesz, legalább nem kell ezreket kiadni a bérlésre.
A roadmap-pel már találkoztam korábban, könyvjelzőzve is van. :) Egy ilyen ábra nagyon jól jön, köszönöm a kiegészítéseket.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!