Helló Világ! Helló C#!
Az elmúlt 1,5-2 évben kisebb-nagyobb megszakításokkal egy új könyvön dolgoztam kollégámmal, ami a Helló Világ! Helló C#! címet kapta. A könyv ingyenesen olvasható lesz a http://csharptutorial.hu weboldalon 2020.05.29-én. De miért is tartott eddig a könyv megírása és mivel foglalkozik, illetve kiknek szánjuk?
A kezdetek
A könyv kezdetleges változatát még valamikor 2016-ban kezdem el írni Libre Office-ban, hasonlóan a korábbi könyveimhez. A Libre Office egy remek szoftver egyébként, de ha speciális igényei vannak az embernek, mint például egy tonna forráskód „szép” megformázása, akkor bizony előbb-utóbb oda jut, hogy saját programokat ír ahhoz, hogy a könyv ténylegesen úgy nézzen ki, ahogy ki kellene néznie. Hamarosan beláttam, hogy nem ez a szoftver lesz az, amiben a könyv elkészül.
Valamikor az év vége felé jött az ötlet, hogy csináljunk ebből egy weblapot. Így született meg a csharptutorial.hu, ahova előfizetéses modellben feltöltöttem az elkészült írásokat és a terv az volt, hogy rendszeres frissítésekkel majd befejezem. Ez nem a legjobb ötletem volt, mivel az előfizetések száma szinte konvergált a 0 felé, így eléggé demotivált lettem az írás tekintetében, valamint ekkortájt váltottam munkahelyet is, illetve lakást újítottunk, így tényleg nem sok idő jutott a könyvre.
Hosszú stagnálás után ugorjunk 2018 télére. Ekkoriban ismerkedtem meg lelkes és C# nyelv iránt legalább, ha nem jobban elhivatott kollégámmal Lábadi Henrikkel, akit sikerült berántanom a projektbe, így lett társszerző.
Egy eszköz mind felett
Mint említettem, a Libre Office nem éppen vált be ebben a projektben, így egy olyan eszközt kellett keresnünk, ami támogatja a csoportos munkát. Számunkra a legkézenfekvőbb megoldás a GIT használata volt, mint verziókezelő, mivel nap, mint nap amúgy is ezt használjuk. A dokumentáció formátumában pedig markdown-ban állapodtunk meg. A markdown lényegében egy speciális formázó karakterekkel teletűzdelt txt, ami külön eszközök nélkül is jól szerkeszthető és olvasható, nem utolsó sorban pedig veziókezelhető is. Ezen kívül pontosan technikai dokumentáció készítésére találták ki. Így nekiálltunk megírni a tartalmat ebben. Ez viszonylag jól is haladt, de akadt egy apró probléma.
Markdown-ból könnyen lehet weblapot készíteni, de kifejezetten könyv írásra szakosított eszköz csak a GitBook nevezetű, évek óta nem frissített, Node.js függőségi poklával megáldott, JavaScript alapú tragacs. Egyik nap egy kivonat generáláskor olyan szinten felmérgelt, hogy elhatároztam, ennél fényévekkel jobbat tudok és fogok írni, méghozzá C#-ban.
Valószínűleg egy előre bejáratott Static Site generátor is megtette volna a megfelelő kiegészítésekkel, de hosszú távon gondolkodva megérte saját eszközt fejleszteni, mert a saját megoldásom, a BookGen fényévekkel gyorsabb (A C# tutorial.hu tartalmának generálása képátméretezésekkel együtt kb 10 másodperc) valamint e-pub mellett a nyomtatásra szánt változatot is előgenerálja egy szövegszerkesztőbe importálható HTML doksi formátumában. Ezen kívül WordPress exportot is gyárt.
A program fejlesztése rengeteg időbe telt, de megérte. A program forráskódja a https://github.com/webmaster442/BookGen címen található. Tavaly a Szabad Szoftver Konferencián a belső lelki világáról és a motivációkról, ami miatt írtam egy előadást is tartottam (elnézést a gyenge minőségért).
Célközönség, tartalom
A könyv megírásának fő motivációja az volt, hogy nem találtunk „friss” C# könyvet magyar nyelven, ami követte volna a nyelv változásait és kifejezetten a 0-ról tanítana meg egy programozási nyelv használatára, illetve magára a programozásra.
A könyv 13 fő fejezetből áll és leginkább konzolos alkalmazás készítésére fókuszál. Nem akartuk, hogy a grafikus keretrendszerek belső lelki világa „zajként” rakódjon az amúgy is sok információra. Igyekeztünk úgy megírni a könyvet, hogy biztos alapot nyújtson a kezdőknek és minden olyan információt beleépíteni, amit elvárható egy junior fejlesztőtől egy állásinterjú során.
Reméljük, hasznosnak fogjátok találni.
A könyv borítóját Apró Alexandra kolléganőnk készítette. Twitter: https://mobile.twitter.com/alliteracio
Henrik-et a Twitteren tudjátok követni: https://twitter.com/hlabadi