Programozó 101: Tanulj meg kódolni

Mindig is szeretted volna megtanulni, hogyan kell saját magadnak szoftvert készíteni – vagy csak alkalmanként felütni egy-egy szkriptet -, de sosem tudtad, hol kezdj hozzá. Szerencsére a világháló tele van ingyenes forrásokkal, amelyekkel pillanatok alatt programozóvá válhatsz.

Újabb videó

This browser does not support the video element.

Az internet feltalálása óta a programozók használják az internetet szoftverfejlesztési technikák megvitatására, oktatóanyagok közzétételére és kódminták megosztására, hogy mások tanulhassanak belőle és online használhassák. Ha kíváncsi vagy arra, hogyan válhatsz programozóvá, rengeteg nagyszerű ingyenes webes oktatóanyag és forrás segítségével gyorsan elindulhatsz.

Mindenekelőtt: Ne akadj fenn a nyelvválasztáson

A G/O Media jutalékot kaphat

Hirdetés

A kezdők gyakori buktatója, hogy elakadnak annak kitalálásában, melyik programozási nyelvet érdemes először megtanulni. Sokféle vélemény létezik, de nincs egyetlen “legjobb” nyelv. A helyzet a következő: Végső soron a nyelv nem számít olyan sokat. Az adat- és vezérlési struktúrák és a tervezési minták megértése nagyon is sokat számít. Minden nyelv – még egy egyszerű szkriptnyelv is – tartalmaz olyan elemeket, amelyeket más nyelvekben is használni fogsz, és amelyek segítenek a tanulásban. Az informatikai diplomám megszerzéséhez felvett óráimon Pascal, Assembly és C nyelven programoztam – olyan nyelveken, amelyekért valójában soha nem kaptam fizetést, hogy hivatásszerűen programozzak. Minden nyelvet, amelyet a pályafutásom során használtam, magam tanítottam meg, újrafelhasználva a már ismert fogalmakat, és a dokumentációra és könyvekre hivatkozva tanultam meg a szintaxisát. Tehát ne akadj fenn azon, hogy melyik nyelvet kell először megtanulnod. Válassza ki, milyen fejlesztést szeretne végezni, és csak kezdje el használni azt, amelyik működik.

A szoftverfejlesztésnek számos fajtája létezik, amelyeket különböző platformokon végezhet, a webtől az asztali számítógépen át az okostelefonon át a parancssorig. Ebben a cikkben felvázoljuk néhány kedvenc kezdő oktatóprogramunkat és forrásunkat, amelyekkel megtanulhatod, hogyan kell programozni az egyes főbb platformokon. Feltételezzük, hogy Ön hozzáértő felhasználó, de kezdő, ha a kódrészletek kezeléséről van szó, ezért a dolgokat a kezdők szintjén tartjuk. Ha csak végigkövetsz egy kezdő programozási útmutatót, akkor is örömmel fogod látni, milyen messzire juthatsz.

Hirdetés

Asztali szkriptelés

A legegyszerűbb módja annak, hogy kipróbáld magad a Windows vagy Mac asztalra történő programozásban, ha egy olyan szkript- vagy makróprogrammal kezded, mint az AutoHotkey (Windows esetében) vagy az Automator (Mac esetében). Jelenleg a Lifehacker olvasóközönségének hardcore kódolói ordítanak a monitorjukba, mondván, hogy az AHK vagy az AppleScript nem “igazi” programozás. Ez igaz lehet – technikailag az ilyen típusú eszközök csak magas szintű szkriptelést végeznek. De azok számára, akik újak a programozásban, és csak be akarják vetni a lábukat, automatizálva műveleteket az asztalukon, ezek az ingyenes eszközök fantasztikus lehetőséget nyújtanak a kezdéshez – és meg fogsz lepődni, mennyi mindent megtehetsz velük.

Hirdetés

Az Adam például az AutoHotkey segítségével fejlesztette ki a mindannyiunk által ismert és kedvelt önálló Windows-alkalmazást, a Textert, így ez a szkriptnyelv jóval többre képes, mint kisebb automatizálási projektek. Az AutoHotkey használatának megkezdéséhez nézze meg Adam bemutatóját arról, hogyan lehet bármilyen műveletet billentyűparanccsá alakítani az AutoHotkey segítségével. (Ezután nézze meg a Texter forráskódját, hogy megnézze egy teljes értékű AHK-alapú Windows-alkalmazás belsejét.)

Hirdetés

Webfejlesztés

Ahelyett, hogy konkrét programozási nyelvekhez és egy adott operációs rendszer megjelenéséhez kötődne, gyilkos alkalmazását a böngészőbe helyezheti és a felhőben, webappként futtathatja. Üdvözöljük a webfejlesztés csodálatos világában.

Hirdetés

HTML és CSS: Az első dolog, amit tudnod kell bármilyen webhely létrehozásához, a HTML (a weboldalakat alkotó oldaljelölés) és a CSS (a stílusinformációk, amelyek ezt a jelölést csinossá teszik). A HTML és a CSS nem igazi programozási nyelvek – ezek csak oldalszerkezeti és stílusinformációk. Mielőtt azonban webalkalmazások készítésébe kezdene, tudnia kell egyszerű HTML-eket és CSS-eket kézzel írni, mivel a weblap minden webalkalmazás frontendje. Ez a HTML oktatóanyag jó kiindulópont.

JavaScript: Most, hogy már tudsz statikus weboldalt készíteni HTML és CSS segítségével, a dolgok szórakoztatóvá válnak – mert itt az ideje megtanulni a JavaScriptet. A JavaScript a webböngésző programozási nyelve, az a varázslat, amely az oldalon belüli dinamikus effektusokat működteti. A JavaScript a könyvjelzők, a Greasemonkey felhasználói szkriptek és az Ajax alapanyaga is, így ez a kulcsa mindenféle webes finomság elkészítésének. Kezdje el a JavaScript tanulását itt.

Hirdetés

Szerveroldali szkriptelés: Ha már jól értesz ahhoz, hogy egy weblapon belül történjenek dolgok, akkor szükséged lesz arra, hogy dinamikus szerverakciókat helyezz mögé – és ehhez át kell térned egy szerveroldali szkriptnyelvre, mint például a PHP, Python, Perl vagy Ruby. Például egy webes kapcsolatfelvételi űrlap elkészítéséhez, amely a felhasználó által megadott adatok alapján küld egy e-mailt valahová, szerveroldali szkriptre van szükség. Az olyan szkriptnyelvek, mint a PHP, a webszerverén lévő adatbázissal is tudnak beszélni, így ha olyan webhelyet szeretne készíteni, ahol a felhasználók bejelentkezhetnek és információkat tárolhatnak, akkor ez a megfelelő megoldás. A Webmonkey kiváló webfejlesztő webhely tele van a különböző webes programozási nyelvek bemutatóival. Lásd a PHP Tutorial for Beginners (PHP oktatóanyag kezdőknek) című oldalukat. Ha készen áll, nézze meg a WebMonkey PHP és MySQL oktatóanyagában, hogyan lehet a PHP segítségével adatbázissal beszélgetni. A PHP online dokumentációja és funkcióhivatkozása a legjobb az interneten. Minden egyes bejegyzés (mint például ez a strlen függvényről szóló bejegyzés) alján felhasználói megjegyzések találhatók, amelyek gyakran ugyanolyan hasznosak, mint maga a dokumentáció. (Én történetesen a PHP-t részesítem előnyben, de rengeteg más szerveroldali szkriptnyelv mellett dönthetsz helyette.)

Hirdetés

Webes keretrendszerek: Az évek során a webfejlesztőknek ugyanazokat a problémákat kellett megoldaniuk és megoldaniuk, és hasonló kódot kellett újraírniuk, hogy dinamikus weboldalakat építsenek. Annak érdekében, hogy ne kelljen mindenkinek minden új webfejlesztési projektnél újra feltalálnia a kereket, egyes programozók olyan fejlesztési keretrendszereket találtak ki, amelyek elvégzik helyetted az ismétlődő munkák egy részét. A népszerű Ruby on Rails keretrendszer például a Ruby programozási nyelvet veszi alapul, és egy webspecifikus struktúrát kínál a gyakori webalkalmazási feladatok elvégzéséhez. Valójában Adam a Rails-t használta az első komoly (és lenyűgöző!) webes alkalmazása, a MixTape.me elkészítéséhez. Íme az ő véleménye arról, hogyan lehet tapasztalat nélkül, a semmiből weboldalt építeni. További népszerű webfejlesztő keretrendszerek: CakePHP (PHP-programozóknak), Django (Python-programozóknak) és jQuery (JavaScripthez).

Hirdetés

Web API-k: Az API (Application programming interface, azaz alkalmazásprogramozási interfész) egy programozási mód arra, hogy a különböző szoftverek kommunikáljanak egymással. Ha például dinamikus térképet szeretne elhelyezni a webhelyén, ahelyett, hogy saját egyedi térképet készítene, a Google Térképet használja. A Google Maps API megkönnyíti a térkép programozott beépítését egy oldalba JavaScript segítségével. Szinte minden modern webes szolgáltatás, amelyet ismer és szeret, rendelkezik olyan API-val, amely lehetővé teszi, hogy adatait és widgetjeit beépítse az alkalmazásába, mint például a Twitter, a Facebook, a Google Docs, a Google Maps, és a lista folytatható. Más webalkalmazások integrálása a webalkalmazásodba API-kon keresztül a gazdag webfejlesztés végső határa. Minden jó, jelentős webszolgáltatási API alapos dokumentációt és valamilyen gyorsindítási útmutatót kínál a kipróbáláshoz (itt van például a Twitteré). Go crazy.

Hirdetés

Command Line Scripting

Ha olyan programot akarsz írni, amely szöveges vagy fájlbemenetet fogad és valami hasznosat ad ki, a parancssor a megfelelő hely erre. Bár a parancssor nem olyan szexi vagy jól néz ki, mint egy webapp vagy asztali alkalmazás, a folyamatokat automatizáló gyors szkriptek gyors fejlesztéséhez nem lehet jobbat találni nála.

Hirdetés

Sok olyan szkriptnyelv, amely Linux-alapú webszervereken működik, parancssorban is működik, például a Perl, a Python és a PHP – így az egyik ilyen rosszfiú megtanulása két kontextusban is jártassá tesz. Az én utam sosem vezetett túl messzire a Perl útján, de a Pythont a Dive into Python című kiváló és ingyenes online könyv segítségével tanítottam meg magamnak.

Hirdetés

Ha a programozói céljaid között szerepel, hogy Unix ninja legyél, akkor feltétlenül jónak kell lenned a shell szkriptelésben a bash segítségével. A bash a *nix környezet parancssori szkriptnyelvét jelenti, és az adatbázis és a fájlok automatikus biztonsági mentésének beállításától kezdve egy teljes értékű, felhasználói interakcióval rendelkező alkalmazás kiépítéséig mindenre képes. Anélkül, hogy bármilyen tapasztalatom lett volna bash szkriptek írásában egy tucatnyi soron túl, végül egy teljes értékű személyes teendőlista-kezelőt fejlesztettem ki bash-ben, a Todo.txt CLI-t.

Add-ons

A modern webalkalmazások és böngészők manapság bővíthetők olyan szoftverdarabokkal, amelyek rájuk csavarhatók és funkciókat adnak hozzá. A bővítményfejlesztés egyre népszerűbb, mivel egyre több fejlesztő nézi a meglévő szoftvereket, például a Firefoxot vagy a WordPress-t, és azt gondolja: “De bárcsak EZT is tudná…”

Hirdetés

A HTML, a JavaScript és a CSS elsajátításával rengeteg mindenre képes lehet bármelyik webböngészőben. A könyvjelzőket, a Greasemonkey felhasználói szkripteket és a Stylish felhasználói stílusokat ugyanazokkal a kódrészletekkel hozzák létre, amelyekkel a hagyományos weboldalak is készülnek, így akkor is érdemes megtanulni őket, ha csak egy meglévő webhelyet szeretne egy kis kódrészlettel feldobni.

A fejlettebb böngészőkiegészítők, például a Firefox-bővítmények, ennél többre is képesek. A Firefox-bővítmények fejlesztéséhez például szükség van a JavaScript és az XML (a HTML-hez hasonló, de sokkal szigorúbb formátumú jelölés) ismeretére. Még 2007-ben leírtam, hogyan kell Firefox-bővítményt készíteni, ezt a készséget azután sajátítottam el, hogy rábukkantam egy ingyenes oktatóanyagra.

Hirdetés

Sok ingyenes és közkedvelt webes alkalmazás is kínál bővítmény-keretet, például a WordPress és a MediaWiki. Mindkét alkalmazás PHP nyelven íródott, így a PHP ismerete előfeltétele a kezdésnek. Íme, hogyan írjunk bővítményt a WordPresshez. Azok a fejlesztők, akik szeretnék meglovagolni a Google Wave élvonalát, elkezdhetnek szerkentyűket és botokat írni HTML, JavaScript, Java és Python nyelven. Az első Wave-botomat ezt a gyors útmutatót követve írtam meg egy délután alatt.

Hirdetés

Webfejlesztés az asztali gépekre

A legjobb, ha egy környezetben kezdesz el programozni, az, amikor ezeket a készségeket átveheted és máshol is alkalmazhatod. Ha először a webfejlesztést tanulod meg, az nagyszerű kezdet, mert most már van mód arra, hogy ezeket a készségeket az asztali alkalmazásokban is kamatoztasd. Az Adobe AIR például egy platformokon átívelő futtatási környezet, amely lehetővé teszi, hogy az alkalmazást egyszer elkészítse, és kiadja, hogy az asztali számítógépen fusson minden olyan operációs rendszeren, amelyen az AIR fut. Az AIR-alkalmazások HTML, Flash vagy Flex nyelven íródnak, így lehetővé teszi, hogy a webes fejlesztési ismereteket asztali környezetben is alkalmazza. Az AIR nagyszerű lehetőség olyan asztali alkalmazások telepítésére, mint a 10 legjobb alkalmazásunk egyike, amelyekhez érdemes telepíteni az Adobe AIR-t.

Hirdetés

Mobilalkalmazás-fejlesztés

Az iPhone vagy Android okostelefonon futó alkalmazásokhoz hasonló mobilalkalmazások mostanában nagy divatnak számítanak, ezért talán arról álmodozik, hogy a következő gyilkos alkalmazással meggazdagszik az iTunes App Store-ban. Az új kódolók számára azonban a mobilfejlesztésbe való fejest ugrás kemény tanulási folyamatot jelenthet, mivel olyan fejlett programozási nyelvek ismeretére van szükség, mint a Java és az Objective C. Érdemes azonban megnézni, hogyan néz ki az iPhone és az Android fejlesztés. Nézze meg ezt az egyszerű iPhone alkalmazásfejlesztési példát, hogy ízelítőt kapjon az iPhone-fejlesztők munkájából. Az Android-alkalmazásokat Java nyelven írják, és itt egy barátságos videós bemutató arról, hogyan néz ki egy “Hello Android” alkalmazás munkafolyamata.

Hirdetés

Türelem, könyökzsír, próba és hiba

A jó programozók a kitartó problémamegoldók egy különleges fajtája, akik rabjai a kis győzelmeknek, amelyek a próbák és hibák hosszú útján jönnek. Programozni tanulni nagyon kifizetődő, de egyben frusztráló és magányos élmény is lehet. Ha teheted, szerezz magad mellé egy társat, aki veled dolgozik az út során. Az igazán jó programozáshoz, mint minden máshoz, ragaszkodni kell hozzá, kipróbálni dolgokat, és menet közben tapasztalatot szerezni.”

Hirdetés

Ez a cikk csak egy autodidakta programozó legfőbb ajánlásai a kezdőknek. Tapasztalt programozóknak: Mit hagytam ki? Képzettségi szinttől függetlenül írd meg gondolataidat és ajánlásaidat kezdőknek a hozzászólásokba.”

Gina Trapani, a Lifehacker alapító szerkesztője szerint a legjobb programozók autodidakta módon tanulnak. Heti cikke, a Smarterware minden szerdán megjelenik a Lifehacker oldalán. Iratkozzon fel a Smarterware tag feedre, hogy új részeket kapjon a hírolvasójába.

Hirdetés

Szólj hozzá!