Ki a Junior Programozó?

Ebben a témában: Alapok, Onfejlesztes

Eddig már több szemszögből megnéztük, hogy mit csinál egy programozó?, hogyan lehet megtanulni programozni egyetem nélkül. Most azt szeretném körbejárni, hogy ki is a Junior Programozó, mikor lesz valaki Junior Programozó és milyen egy átlagos felvételi interjú egy Junior programozói pozícióra.

 

 

Az informatikában Junior Programozónak nevezik a kezdő munkavállalókat. Ez lesz annak a szintnek a neve, amivel már valóban el lehet érni egy sikeres felvételit, egy Junior pozíciót. Ha ezt a szintet valaki sikeresen elérte és sikeresen megpályázott egy állást, akkor szerintem a legnehezebb részeken már túl van. Ugyanis míg tipikusan a Junior programozói szintet otthoni tanulással és gyakorlással lehet elsajátítani, addig a Senior és a magasabb szinteket már sokkal inkább a valódi munkahelyi, ipari tapasztalatokkal lehet elérni.

 

Junior szinten még nem várnak el nagyon mély technikai tudást és sok éves tapasztalatot.  Azt mondják, hogy a Junior programozói szintet akkor éri el valaki, ha kialakult a megfelelő algoritmikus gondolkodásmódja, feladatmegoldó képessége és nem csak magát a megoldást látja, hanem a kezében van az eszköz is a megoldáshoz. Egy Junior Programozóval szemben nem elvárás, hogy egy adott programozási nyelvet és az arra épülő összes technikát teljes mélységében ismerje. Legyen egy erős alapja a programozási nyelvről, legyen tisztában azzal, hogy léteznek olyan kiegészítő programok, eljárások, amik gyorsítják a munkát. Ha ezek megvannak, akkor már lehet mire építeni és egy sikeres felvételi után a következő 1-2 évben el lehet mélyíteni ezeket az ismereteket valódi munkahelyi feladatokon keresztül. Az adott programozási nyelv ismerete fontos a Junior pozícióhoz, de nem kell annak minden trükkjét fejből tudni. Legyen egy olyan tudásod belőle, amire már lehet építkezni!


(more…)

Digitális Óra – C programozás

Ebben a témában: C Programozas

A múltkori bevezető után, most nézzük meg egy kicsit részletesebben, hogy hogyan is működik a C nyelv struktúrája, alapvető nyelvi elemei.


Ez alkalommal egy Digitális Órának az implementációját fogom bemutatni. A feladat nagyon egyszerű, csinálunk egy órát, ami mutatja az eltelt időt és mindig 0 óra 0 perctől indul.

A feladatot érdemes kisebb részekre bontani:

  1. Kell egy óra algoritmus, ami másodpercenként számol és ha elérte a 60 másodpercet, akkor vált percet majd órát is.
  2. Kell egy megjelenítő algoritmus, ami kiírja a pontos időt.
  3. Kell egy futtató rendszer, ami elindítja az órát és nem is lehet leállítani.

Futtató keretrendszer

Kezdjük az utolsó ponttal, talán az a legkézenfekvőbb a múltkori feladat bemutatása után. Mint mindig, így most is lesz egy belépési pontja a programunknak ami nem tesz majd mást, mint meghívja az óra algoritmust. Lesz ugyan egy kilépési pontja is a programnak, de ha jól dolgoztunk, akkor az sosem fog meghívódni. Hogy ezt pontosan hogyan kell elképzelni, ehhez később még visszatérek.


Óra algoritmus

Hogyan működik egészen pontosan egy digitális óra? Először is van 3 része:

  1. másodperc [0..59]
  2. perc [0..59]
  3. óra [0..23]

A feladatnak megfelelően mindegyiket 0-ra állítjuk, mint kiindulási érték. A másodperc mutatót másodpercenként növeljük és ha elérte a 60-at, akkor 0-ra állítjuk és növelünk a perc részen egyet. Majd ha a perc is elérte a 60-at akkor az órán is növelünk egyet. 23:59:59-nél pedig visszaállítunk mindent 0-ba és az egész kezdődik elölről.

Egyetlen kérdés van, hogyan fogjuk pontosan másodpercenként egyszer megnövelni a másodperc mutatót? Hogyan mérjük az eltelt időt?


Nos a legegyszerűbb megoldás, ha indítunk egy ciklust, ami számol körülbelül 1 másodpercig, majd végrehajtjuk a saját kódunkat, aztán megint a ciklusban vagyunk 1 másodpercig. Ezzel a megoldással két probléma van:

  1. Nem lesz elég pontos
  2. Folyamatosan foglalja a CPU-t, pedig az csak az idő tört részében fog hasznos munkát végezni, egyébként egy ciklusban teker

Szerencsére már más is gondolt hasonló időmérésre, ezért kidolgoztak egy úgynevezett altató könyvtárat. Ennek lényege, hogy a processzorban megszakítják az aktuális program végrehajtását a megadott ideig. Amíg nem az aktuális program fut, addig a CPU tud más feladatokkal foglalkozni és a pontossága is nagyságrendekkel jobb lesz az előző megoldásnál. Sajnos azonban nem operációs rendszer független a megoldás, jelen példában a Windows-os megoldást mutatom be:

#include

Sleep(1000);


Tehát a Sleep() függvény paraméterként milliszekundumot vár és amíg a megadott idő le nem telik, addig a program futása várakozik. Majd a megadott idő után a program futása újra onnan folytatódik, ahol az altatás előtt abbamaradt.

Fontos, hogy az óra algoritmus sosem tér vissza, tehát nem lehet a programból leállítani. Ez viszonylag furcsán hangozhat, de beágyazott rendszerekben gyakran előfordul, hogy addig működik amíg van áramellátása és nincs semmilyen mód a kikapcsolásra. Ezzel a gondolattal analóg módon fog a mi óránk is működni. Lesz benne egy úgynevezett végtelen ciklus, ami másodpercenként egyszer fogja végrehajtani az óra algoritmust. A végtelen ciklus sosem fog megszakadni normál körülmények között.


A teljes algoritmus így épül fel:

ClockAlgrithm C Programozas


Megjelenítő algoritmus

(more…)

Hello World C nyelven

Ebben a témában: C Programozas, Fejleszto eszkozok

A C nyelv az egyik legismertebb programozási nyelv. Sok helyen használják, valamint több más ismert programozási nyelv fejlődött ki belőle (Java, Perl, PHP, C++). Az utasítás készlete, struktúrája és egész működési módja is sok más nyelvben köszön vissza.

 

 

A modern programozási nyelvek közül a C nyelv az egyik legidősebb, a 70-es évek elején született a B programozási nyelv alapján. Nem objektum orientált stílusú ellenben a korábban bemutatott Java nyelvvel, de a kód szeparációját hatékonyan támogatja. Ma már leginkább beágyazott környezetben használják hardver közeli programozáshoz. Előnyének mondanám, hogy nagyon gyors kódokat lehet vele írni, amiknek jól tervezhető és mérhető az erőforrásigénye. Mindezzel együtt nagyon szabadon engedi a programozó kezét, ezért nagyon nehezen karbantartható kódokat is lehet írni vele sajnos. Mivel több más nyelvnek is az alapja, ezért érdemes lehet ezzel a nyelvvel megismerkedni először. Komolyabb szinten azoknak ajánlanám, akik szeretnének hardver közeli feladatokkal foglalkozni például az autóiparban vagy úgy a beágyazott világban egyáltalán.

 

FejlesztőkörnyezetCEclipse C Programozas

Mint mindig, az első lépés most is a fejlesztőkörnyezet felállítása. Mint sok nyelvhez, úgy a C nyelvű programok fejlesztéséhez is használhatjuk az Eclipse-t. Ha még nem rendelkezel Eclipse-el, akkor kövesd a múltkori leírásomat, de most a C/C++ környezetet válaszd a Java környezet helyett.

Azok akik már rendelkeznek Eclipse-s környezettel és nem akarják azt lecserélni, azok egy Eclipse-s Plugin keretében tudják beszerezni a C-s környezetet, ezt a plugint nevezik CDT-nek. Egyébként az előbb külön telepített Eclipse is ezen a pluginon nyugszik. A CDT installálása pár lépésben megoldható:

  1. Nyissátok meg az Eclipse-t és menjetek a Help->Install New Software…
  2. Kattintsatok az Add gombra, majd írjátok be, hogy CDT, az elérési útvonalnak pedig másoljátok be ezt a linket.CDTInstall C Programozas
  3. Most csak a Main Features-t válasszátok ki, ez kezdésnek tökéletesen elegendő

 

Rendben, most már megvan a fejlesztő környezet, azonban sajnos még nem fogjuk tudni lefordítani a kódunkat, mert nincs telepítve C fordító még a gépünkre. Ez a helyzet akkor is, ha nem külön plugin-ként telepítetted a CDT-t, hanem a teljes Eclipse-s környezetet. Ha neked mégis van már telepített C fordítód, akkor ezt a lépés nyugodtan ugord át.

  1. Menj fel erre az oldalra.
  2. Töltsd le és telepítsd fel a MinGW-t. A beállításoknál válaszd ki az x84_64 architektúrát, mást nem kell külön beállítani.
  3. Az utolsó lépés az Eclipse összekötése a MinGW-vel. Ehhez az Eclipse-ben menj a Window->Preferences->C/C++/Build/EclipseMinGW C ProgramozasEnvironment-hez és add meg az elérési útvonalát a MinGW Bin mappájának, ami valahogy így néz ki, ha az alaphelyre telepítetted:
    C:\Program Files\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev2\mingw64\bin

 

Ha mindent jól csináltunk, akkor most már készen áll a fejlesztő környezetünk és el tudunk kezdeni C nyelven programozni.


(more…)