interesanti

Programmētājs 101: iemāciet sevi kodēt

Jūs vienmēr esat vēlējies iemācīties pats izveidot programmatūru vai vienkārši sakodīt gadījuma rakstura skriptu, bet nekad nezināt, kur sākt. Par laimi, tīmeklī ir pilns ar bezmaksas resursiem, kas var ātri jūs pārvērst par programmētāju.

Kopš interneta izgudrošanas programmētāji to izmanto, lai apspriestu programmatūras izstrādes paņēmienus, publicētu konsultācijas un dalītos ar kodu paraugiem, lai citi varētu mācīties no un izmantot tiešsaistē. Ja vēlaties uzzināt, kā kļūt par programmētāju, varat sākt darbu, izmantojot ļoti daudz lielisku bezmaksas tiešsaistes mācību materiālu un resursu.

Pirmās lietas: nedomājieties par valodas izvēli

Iesācējiem bieži pietrūkst, lai noskaidrotu, kuru programmēšanas valodu vislabāk iemācīties vispirms. Tur ir daudz viedokļu, bet nav nevienas “labākās” valodas. Lūk, lieta: beigu beigās valodai nav tik liela nozīme. Izpratne par datu un kontroles struktūrām un projektēšanas modeļiem ir ļoti svarīga. Katrā valodā - pat vienkāršā skriptu valodā - būs elementi, kurus izmantosit arī citās valodās un kas palīdzēs jums mācīties. Nodarbībās, kuras es ieguvu, lai iegūtu grādu datorzinātnēs, es programmēju Paskāla, montāžas un C valodās, un es nekad profesionāli nesaņēmu samaksu par programmu. Es iemācīju sev katru valodu, ko esmu izmantojis savā karjerā, izmantojot jau zināmos jēdzienus un atsaucoties uz dokumentāciju un grāmatām, lai apgūtu tās sintakse. Tāpēc nekaunieties par to, kuru valodu vispirms iemācīties. Izvēlieties, kādu attīstību vēlaties veikt, un vienkārši sāciet izmantot tādu, kas darbojas.

Ir vairāki dažādi programmatūras izstrādes veidi, kurus varat veikt dažādām platformām, sākot no tīmekļa līdz darbvirsmai līdz viedtālrunim un beidzot ar komandrindu. Šajā rakstā mēs aprakstīsim dažus no mūsu iecienītākajiem apmācības sākšanas materiāliem un resursiem, lai iemācītu sevi programmēt katrai galvenajai platformai. Mēs uzskatīsim, ka esat lietpratīgs lietotājs, bet, ja vēlaties izjaukt koda fragmentus, jūs esat jauniesācējs, tāpēc lietas tiks saglabātas iesācēju līmenī. Pat tikai sekojot iesācēju programmēšanas apmācībai, jūs ar prieku redzēsit, cik tālu varat nokļūt.

Darbvirsmas skriptu veidošana

Vienkāršākais veids, kā izmēģināt savu roku Windows vai Mac darbvirsmas programmēšanā, ir sākt ar skriptu vai makro programmu, piemēram, AutoHotkey (operētājsistēmai Windows) vai Automator (Mac). Šobrīd hardcore kodētāji visā Goldavelez.com lasītāju grupā uz monitoriem kliedz, sakot, ka AHK vai AppleScript nav "īsta" programmēšana. Tā var būt taisnība - tehniski šāda veida rīki vienkārši veic augsta līmeņa skriptus. Tiem, kas ir tikuši programmēšanas jaunieguvumi un kuri vēlas tikai samierināties, automatizējot darbības uz darbvirsmas, šie bezmaksas rīki ir fantastisks sākšanas veids - un jūs būsit pārsteigts, cik daudz jūs varat ar viņiem paveikt.

Piemēram, Ādams izstrādāja atsevišķu Windows lietojumprogrammu, kuru mēs visi zinām un mīlam, Texter, izmantojot AutoHotkey, tāpēc šī skriptu valoda ir spējīga daudz vairāk nekā tikai maza mēroga automatizācijas projekti. Lai sāktu darbu ar AutoHotkey, iepazīstieties ar Adam apmācību, kā pārvērst jebkuru darbību īsinājumtaustiņā, izmantojot AutoHotkey. (Pēc tam pārbaudiet Texter avota kodu, lai redzētu pilnvērtīgas AHK balstītas Windows lietojumprogrammas ienaidniekus.)

Web izstrāde

Tā vietā, lai saistītos ar noteiktām programmēšanas valodām un konkrētas operētājsistēmas izskatu un izskatu, jūs varat ievietot slepkavas lietojumprogrammu pārlūkprogrammā un palaist to mākonī kā tīmekļa lietotni. Laipni lūdzam brīnišķīgajā tīmekļa attīstības pasaulē.

HTML un CSS: pirmā lieta, kas jums jāzina, lai izveidotu jebkuru vietni, ir HTML (lapas marķējums, kas veido tīmekļa lapas) un CSS (stila informācija, kas padara šo marķējumu izskatīgu). HTML un CSS nav īstas programmēšanas valodas - tās ir tikai lapas struktūras un stila informācija. Tomēr, pirms sākat veidot tīmekļa lietojumprogrammas, jums vajadzētu būt iespējai viegli autorēt vienkāršu HTML un CSS ar roku, jo Web lapa ir katra tīmekļa vietnes lietojumprogramma. Šī HTML apmācība ir piemērota vieta, kur sākt.

JavaScript: Tagad, kad jūs varat izvietot statisku tīmekļa lapu ar HTML un CSS, viss kļūst jautri, jo ir pienācis laiks apgūt JavaScript. JavaScript ir tīmekļa pārlūkprogrammas programmēšanas valoda, un tas ir burvju spēks, kas padara dinamiskus lappuses efektus. JavaScript ir arī grāmatzīmju, Greasemonkey lietotāju skriptu un Ajax sīkumi, tāpēc tas ir galvenais visu veidu tīmekļa labumu veidošanā. Sāciet mācīties JavaScript šeit.

Servera puses skriptēšana: tiklīdz jūs spējat panākt, lai lietas notiktu tīmekļa lapā, jums būs jāievieto dažas dinamiskas servera darbības aiz tā - un tam jums būs jāpāriet uz servera puses skriptiem. valoda, piemēram, PHP, Python, Perl vai Ruby. Piemēram, lai izveidotu tīmekļa kontaktu formu, kas kaut kur sūta e-pastu, pamatojoties uz lietotāja ievadīto, ir nepieciešams servera puses skripts. Skriptu valodas, piemēram, PHP, var sarunāties arī ar datu bāzi jūsu tīmekļa serverī, tāpēc, ja vēlaties izveidot vietni, kurā lietotāji var pieteikties un saglabāt informāciju, tas ir tas ceļš. Lieliska tīmekļa attīstības vietne Webmonkey ir pilna ar pamācībām dažādām tīmekļa programmēšanas valodām. Skatiet viņu PHP apmācību iesācējiem. Kad esat gatavs, pārbaudiet, kā izmantot PHP, lai sarunātos ar datu bāzi WebMonkey PHP un MySQL apmācībā. PHP tiešsaistes dokumentācija un funkcijas ir vislabākās tīmeklī. Katra ieraksta (tāpat kā šī ir funkcija strlen) apakšā ir lietotāju komentāri, kas bieži ir tikpat noderīgi kā pati dokumentācija. (Es PHP izmantoju daļēji, bet ir daudz citu servera puses skriptu valodu, kuras jūs varētu nolemt izmantot.)

Tīmekļa ietvari: gadu gaitā tīmekļa izstrādātājiem bija jāatrisina un jāatrisina tās pašas problēmas un jāpārraksta līdzīgs kods, lai izveidotu dinamiskas tīmekļa vietnes. Lai neļautu visiem izgudrot riteni katram jaunam tīmekļa izstrādes projektam, daži programmētāji ir izstrādājuši attīstības ietvarus, kas jūsu labā atkārtojas. Piemēram, populārajā Ruby on Rails ietvarā tiek izmantota Ruby programmēšanas valoda un tiek piedāvāta specifiska tīmekļa struktūra, lai veiktu kopīgus tīmekļa lietojumprogrammu uzdevumus. Faktiski Ādams izmantoja Rails, lai izveidotu savu pirmo nopietno (un iespaidīgo!) Tīmekļa lietojumprogrammu MixTape.me. Viņš uzzinās par to, kā izveidot vietni no nulles bez pieredzes. Citas populāras tīmekļa attīstības ietvari ietver CakePHP (PHP programmētājiem), Django (Python programmētājiem) un jQuery (JavaScript).

Web API: API (lietojumprogrammu programmēšanas saskarne) ir programmēts veids, kā dažādas programmatūras var sarunāties savā starpā. Piemēram, ja vēlaties ievietot dinamisku karti savā vietnē, vēlaties izmantot Google karti, nevis izveidot savu pielāgoto karti. Google Maps API ļauj viegli programmētiski iekļaut karti lapā ar JavaScript. Gandrīz katram mūsdienu pazīstamam un iecienītam tīmekļa pakalpojumam ir API, kas ļauj lietotnē iekļaut datus un logrīkus, piemēram, Twitter, Facebook, Google Docs, Google Maps, un saraksts turpinās. Citu tīmekļa lietojumprogrammu integrēšana tīmekļa lietojumprogrammā, izmantojot API, ir bagātīgas tīmekļa attīstības pēdējā robeža. Ikviens labs, nozīmīgs tīmekļa pakalpojuma API piedāvā rūpīgu dokumentāciju un sava veida ātru darba sākšanas rokasgrāmatu, lai to izmēģinātu (piemēram, šeit ir Twitter). Sajukt prātā.

Komandrindas skriptēšana

Ja vēlaties rakstīt programmu, kas ņem tekstuālu vai faila ievadi un izvada kaut ko noderīgu, komandrinda ir īstā vieta, kur to darīt. Lai arī komandrinda nav tik seksīga vai izskatīga kā tīmekļa lietotne vai darbvirsmas lietotne, lai ātri automatizētu procesus automatizējošus skriptus, jūs to nevarat pārspēt.

Vairākas skriptu valodas, kas darbojas uz Linux balstītā tīmekļa serverī, darbojas arī komandrindā, piemēram, Perl, Python un PHP - tāpēc, iemācoties vienu no šiem sliktajiem, jūs esat sarunāts divos kontekstos. Mans ceļš nekad mani neaizveda pārāk tālu pa Perlas ceļu, bet es iemācīju Python, izmantojot izcilo un bezmaksas tiešsaistes grāmatu.

Ja kļūšana par Unix ninju ir viens no jūsu programmētāja mērķiem, jums noteikti jāprot čaulas skriptēšana ar bash. Bašs ir * nix vides komandrindas skriptu valoda, un tas var darīt visu, sākot no palīdzības iestatīšanas automatizētās datu bāzes un failu dublējumos, līdz pilntiesīgas lietojumprogrammas izveidošanai ar lietotāja mijiedarbību. Bez pieredzes, rakstot bash skriptus, kas pārsniedz divpadsmit rindiņas, es izstrādāju pilnīgu personīgo uzdevumu sarakstu pārvaldnieku bashā, Todo.txt CLI.

Papildinājumi

Mūsdienās modernās lietotnes un pārlūkprogrammas ir paplašināmas, izmantojot programmatūras bitus, kas piestiprina tos un pievieno funkcijas. Papildinājumu izstrāde kļūst arvien populārāka, jo arvien vairāk izstrādātāju apskata esošo programmatūru, piemēram, Firefox vai WordPress, un domā: "Bet ja nu vienīgi tas varētu to izdarīt ..."

Jebkurā tīmekļa pārlūkprogrammā jūs varat izdarīt daudz, vienkārši apgūstot HTML, JavaScript un CSS. Grāmatzīmes, Greasemonkey lietotāju skripti un Stilīgi lietotāja stili tiek veidoti ar tiem pašiem koda bitiem, kas veido regulāras tīmekļa lapas, tāpēc tos ir vērts uzzināt, pat ja jūs vienkārši vēlaties iekniebt esošo vietni ar nelielu koda fragmentu.

Modernāki pārlūka papildinājumi, piemēram, Firefox paplašinājumi, ļauj jums darīt vairāk. Piemēram, lai izstrādātu Firefox paplašinājumus, jums ir jāpārzina JavaScript un XML (marķējums ir līdzīgs HTML, bet formātā ir stingrāks). Jau 2007. gadā es iemācījos izveidot Firefox paplašinājumu - prasmi, ko ieguvu pēc tam, kad paklupu uz bezmaksas apmācību.

Daudzas bezmaksas un iecienītas tīmekļa lietojumprogrammas piedāvā arī paplašinājuma ietvaru, piemēram, WordPress un MediaWiki. Abas šīs lietotnes ir uzrakstītas PHP, tāpēc ērtums ar PHP ir priekšnoteikums darba sākšanai. Lūk, kā uzrakstīt WordPress spraudni. Izstrādātāji, kuri vēlas izmantot Google Wave visprogresīvāko versiju, var sākt rakstīt sīkrīkus un robotprogrammatūras HTML, JavaScript, Java un Python. Es uzrakstīju savu pirmo Wave bot pēc šīs ātras darbības apmācības vienā pēcpusdienā.

Darbvirsmas tīmekļa izstrāde

Programmēšanas sākšana vienā kontekstā vislabāk ir tad, ja jūs varat izmantot šīs prasmes un pielietot tās citur. Tīmekļa attīstības apgūšana vispirms ir lielisks veids, kā sākt, jo tagad ir veidi, kā šīs prasmes izmantot arī darbvirsmas lietojumprogrammās. Piemēram, Adobe AIR ir starpplatformu darbības laika vide, kas ļauj vienreiz izveidot lietotni un atbrīvot to darbam uz darbvirsmas, kurā darbojas katra AIR sistēma. AIR lietotnes ir rakstītas HTML, Flash vai Flex formātā, tāpēc tas ļauj Web prasmes izmantot darbvirsmas kontekstā. AIR ir lieliska opcija tādu darbvirsmas lietotņu izvietošanai kā viena no mūsu desmit populārākajām lietotnēm, kuras vērts instalēt vietnē Adobe AIR.

Mobilo lietotņu izstrāde

Mobilās lietojumprogrammas, piemēram, tās, kuras palaižat savā iPhone vai Android viedtālrunī, šobrīd ir visas dusmas, tāpēc jums, iespējams, ir sapņi par to bagātīgi izmantot iTunes App Store ar nākamo killer lietotni. Tomēr jaunajam kodētājam galvas dalīšana mobilo ierīču attīstībā var būt aptuvena mācīšanās līkne, jo tas prasa komfortu, izmantojot uzlabotas programmēšanas valodas, piemēram, Java un Objective C. Tomēr ir vērts pārbaudīt, kā izskatās iPhone un Android izstrāde. Iepazīstieties ar šo vienkāršo iPhone lietojumprogrammu izstrādes piemēru, lai uzzinātu, ko dara iPhone izstrādātāji. Android lietotnes ir rakstītas Java, un šeit ir draudzīga video apmācība par to, kā izskatās lietojumprogrammas "Hello Android" darbplūsmas veidošana.

Pacietība, elkoņa smērēšana, izmēģinājums un kļūda

Labi kodētāji ir īpaša neatlaidīgu problēmu risinātāju šķirne, kas ir atkarīga no mazajām uzvarām, kas nonāk ilgā izmēģinājumu un kļūdu takā. Iemācīties programmēt ir ļoti izdevīgi, taču tā var būt arī nomākta un vientuļa. Ja jūs varat, dabūjiet draugu, kas strādātu kopā ar jums. Patiesi labi plānojot, tāpat kā jebko citu, ir jāturas pie tā, jāizmēģina lietas un jāgūst pieredze.

Šis raksts ir tikai viens pašmācības pilna programmētāja ieteikums iesācējiem. Pieredzējuši programmētāji: Ko man pietrūka? Neatkarīgi no jūsu prasmju līmeņa, komentāriem pievienojiet savas domas un ieteikumus iesācējiem.