"C/C++" állások - avagy szezon meg a fazon

 ( leho | 2017. június 10., szombat - 14:58 )

Lehet, hogy csak engem idegesít a vérbe ez a "C/C++ fejlesztőt keresünk" jellegű megfogalmazás, amit általában mindenütt látok, de nem értem, miért nem képesek a toborzók megtanulni végre a két nyelv közötti különbséget.

Kedves toborzók, managerek, akárki, akinek a tudatlansága / szakmai hozzá nem értése hasonló jellegű baromságokat szül, íme pár gondolat és tudásmorzsa, amit a HUP-ot olvasók nagy része már nyilván tud, de ezek után senki sem hivatkozzon arra, hogy nem tudja, hol találhat információt róla:

- Olyan nyelv, hogy C/C++, na olyan NINCS. Van C meg van C++. De ezek is inkább nyelvcsaládok.

- C: Dennis Ritchie és Brian Kernighan által, valamikor 72 körül megalkotott eljárásorientált nyelv, ma főleg rendszerprogramozásra, illetve beágyazott környeztben használják.

- C++: Bjarne Stroutstup által fejlesztett objektumorientált nyelv, melynek első verzióját valamikor a 80-as évek elején adták ki. Jelenleg is sokfelé használják, ahol cél a nagy sebesség, de viszonylag komplex feladatokat kell megoldani, így szükség van az objektumorientált megközelítés nyújtotta magasabb absztakciós szintre. Erőforrásigényesebb desktop alkalmazásoknál, játékoknál, autóipari környezetben a HMI-k fejlesztésére használják.

Tehát, mielőtt kitesztek egy újabb álláshirdetést, legyetek szívesek előbb tájékozódni (lásd fent), hogy valójában melyik nyelvet is használja az ügyfél az adott feladatra. Ha pedig - mert előfordulhat - tényleg vannak C és C++ nyelvű taskok is a hirdetésben megjelölt pozíciónál, akkor legalább a leírásban hivatkozzatok rá úgy, hogy "szoftverfejlesztés C és C++ nyelvEKen", ne pedig úgy, hogy "C/C++ fejlesztés".

Köszönet és örök hála!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

ennyi

"szoftverfejlesztés C és C++ nyelvEKen", ne pedig úgy, hogy "C/C++ fejlesztés".

lehet én vagyok elrontva, de nekem ez a kettő ugyanazt jelenti.

Aha, ok. Láttál már "Java/JavaScript fejlesztőt keresünk" hirdetést?

Amúgy való igen, írtam is, hogy lehet hogy csak nekem szúrja a szemem, de nekem úgy tűnik, hogy valahol az emberek tudatában ez a két nyelv összemosódik.

Jó, lehet, mikor a tökmindegymelyik előző munkahelyemen egy "szenior" fejlesztő arra a kérdésre, hogy az adott belső szoftvert miben fejlesztik, úgy felelt, hogy "hát, olyan cécépluszplusz nyelven" az okozott maradandó agykárosodást bennem, de erre azóta is triggerelődöm.

Én már sajnos láttam ilyen kombót is. Az egyik korábbi melóhelyemen a HR-es követte el.

Rossz példa, mert a C++ a C supersetje (az edge case-eken ne nyissunk vitát, gyakorlati szempontból így van, ez a C++ egyik tervezési szempontja volt), egy nyelvcsaládba tartoznak. A Java és a JavaScript esetében ez nincs így, ott a névválasztás marketing trükk volt (és nagyon jól be is jött nekik...sajnos).

Én is írtam már C/C++ -t álláshirdetésbe (sőt C/C++/ObjC-t is), és elhiheted, hogy tudom, mi a különbség a kettő között. Egyszerűen C és C++-t jelent, kevesebb karakterrel, tehát lehet, hogy C-t kell írnod, lehet, hogy C++-t, de valószínű, hogy mindkettőt.

A K&R C-t pedig ne vegyük már egy kalap alá a mai C-vel (C11, C99), ég és föld a kettő. Nyilván nem a K&R C tudásodra lesz a munkaadó kiváncsi, hanem (a környezet lehetőségeihez mérten) a legmodernebb eszközökkel, leghatékonyabb módon kell a kódot írni.

én is így gondolom. Annál is inkább mivel egy egyszerű program általában lefordul gcc-vel és g++-szal is.

--
GPLv3-as hozzászólás.

tl;dr -- Nem: http://c-faq.com/misc/cplusplus.html

Nem, attól, hogy Stroustrup azt állítja a C++ könyvében, attól még nem lesz igaz. Főleg, hogy valójában szerinte sem: http://www.stroustrup.com/bs_faq.html#C-is-subset
Amíg egy olyan C konstrukció is van, ami C++ módban nem fordítható, addig nem igaz a "superset" állítás.
Ez ilyen fordított finnugor elmélet :)

Ezek az edge case-ek, amikről írtam, hogy ne nyissunk vitát. :)

"edge case" :D

Szerintem ilyen esetekben az a kérdés, hogy a "C/C++" azt jelenti, hogy objektum orientáltan C++-ban dolgozunk nagyrészt, és néha lesz előtted pár C-s lib (de C++-ként kezeljük a kódbázist), vagy lesz "tisztán C-s" feladatod is.

Minap olyat láttam, hogy J2EE stack (...., NodeJs).

Jo kezdes a jovo hethez :D

Igaz, a C és C++ tök egyforma, hiszen mindegyik nyelv és C betűvel kezdődik. A C és C++ egymás mellet olyan, mint a Windows és linux expert. Ezek is operációs rendszerek, tehát mindegy.
Viszont a gyakorlatban hasonló hirdetések vannak. A C és C++ nyelvet homlokegyenest más rendszereken és más környezetben használják. Dolgozom olyan kollégával, aki C#, C++ és java expert, de a C forrással - saját bevallása szerint - hadilábon áll.
Ugyanez elmondható az embedded rendszer és a mikrokontroller viszonylatáról is.
Ha idáig érted, akkor itt a példamondat:
Windows/linux expert, C/C++ gyakorlattal, embedded/mikrokontroller tapasztalatokkal, IT development...
Ez már egy tipikus álláshirdetés, ahol mindenhez is kell érteni. Ilyen esetben két kérdést tennék fel:
- Mit kell csinálni.
- Hány ember fizetését fogom kapni.

A C procedurális, a C++ ojjektum orientált. Innentől nem is kéne tovább magyarázni...

Pl: "A motor meg a motorcsónak az ugyanaz, hisz mindkettőben van motor, meg kormány, és pedálok." -- Na, ilyen amikor a C-t hasonlitod a C++ -hoz.

lehet én vagyok elrontva, de nekem ez a kettő ugyanazt jelenti

Akkor valószínűleg egyikhez sem értesz igazán. A C++-hoz mondjuk garantáltan, különben emlékeznél a sok szívásra :D

C != C++
C/C++ == C es C++

Egyebkent amikor nekem C/C++ allasom volt, kellett mind a ketto az alsobb/mas nyelvu libek miatt (meg egy kis Java es Lua is).

--
A strange game. The only winning move is not to play. How about a nice game of chess? - Wargames

+1

A C++ dev sokszor C libet kell behivjon es kezeljen. Aki ennyire OCD szindromas, nyugodtan kicserelheti a "C/C++ dev-et" "C++ dev"-re, de tok jogos mindkettot odairni.

Ha C/C++ fejlesztot keresnek, akkor ne ijedj meg a C libektol, de tobbnyire a C++ eszkozkeszletet hasznalhatod, kiveve amikor nem.

Es igen: volt mar hogy majdnem kiirtam allast, amihez Swift+Obj C mellett magabiztos C es C++ tudas sem artott volna.

Nálunk ugyanez, csak még ARM(64) ASM + x86(64) ASM + LLVM is kellene :)

"A C++ dev sokszor C libet kell behivjon es kezeljen. "

Nem ez idegesít, ez rendben van.

Viszont ahol ilyen hirdetéssel találkoztam, arról eddig nagy százalékban az derült ki, hogy valójában C kódert keresnek (sőt, inkább "scriptelőt"), csak valahogy tuningolni akarták a hirdetést.

Azert az ne legyen mar nagy bun, hogy azt akarjak, hogy a C++ dev is beadja a C-s melora a CV-jet. Majd kerdez az elso interjuforduloban/elotte.

A munkaltato egy C-s melora nem nagyon jar rosszul egy C++ devvel. Foleg ha nem tul sok szemelyes a projekt, leven irni biztosan tud a C++ coder C kodot, max olvasni nem :P De ez nagy tapasztalatu Perl koderek Perl kodjaval meg jobban igy van :P

rendben, ezzel egyetértek.

Végülis nem bűn pótos teherautósofőrt sem keresni nagyvárosi taxisnak, bár az eredetileg taxis az első időkben tuti hatékonyabb lenne. De végülis nem jár rosszul a cég a teherautósofőrrel, hiszen az még teherautóvezetéshez is ért.

Ennek fényében a szomszéd topic hirdetése átfogalmazva:

Teherautó/Személyautó sofőrt keresünk partnercégünk számára járművezetési feladatokra.

Feladatok:
A megbízó által elvárt szállítási feladatok elvégzése, főleg városi környezetben. Útvonaltervezés az ügyfél igényeinek, a forgalomnak, az útvonal sajátosságainak és a tankolási / pihenési lehetőségek figyelembe vételével. Időtartam és fogyasztás kalkuláció. Kapcsolattartás az utasokkal, az ügyféllel és a megbízóval.

Elvárások:
- B-s / D-s jogosítvány
- Minimum 3 éves tapasztalat gépjárművezetésben.
- Motiváció személyszállítási feladatok elvégzésére
- Személyszállítási tapasztalat (akár hobbi szintű, haveri társaságok furikázásában szerzett is)
- Jó tájékozódási készség
- Kreativitás a váratlan forgalmi helyzetek megoldásában
- Angol / Német nyelvtudás

És csodálkoznak, hogy a jelentkezőszám [0..1] közötti, és végül azzal sem jön össze az üzlet, mert többet kér, mint amennyit akartak adni a B-s munkára.

Bűnnek nem bűn, csak majd csodálkoznak, miért jeletnkeznek kevesen, mert nincs az embereknek végtelen idejük állásinterjúra járni, még ha egy-egy cég szereti is azt hinni, hogy ők az egyedüliek a piacon, vagy hogy ől a legmenőbbek.

Akkor mégsem voltam teljesen érthetetlen :-)

Akkor magam alá, mert ugy látom magyarázatra szorul mindenkinek. Nem azt mondtam, hogy c az ugyanaz, mint a cpp, hanem hogy nem érzem a két megfogalmazás között a különbséget.

a "/" eredetileg VAGY-ot jelent, legalábbis én így tudom. így értelmezve a "C/C++" az azt jelenti, hogy "C vagy C++" fejlesztőt keresnek, ami már nem jó megoldás. ha viszont a "/" ést jelent, akkor persze semmi gond.

Viszont rendszeresen látok összevont álláshirdetéseket, ahol php/java/python halmazból (talán más is szokott lenni) 2-3 együtt van, amennyire emlékszem EPAM és hasonló IT outsource cégeknél landoltak ezekre a jelentkezések.

Szerintem ne formalizáld túl, ez "beszélt" nyelv, simán van, hogy hol ezt, hol azt jelenti.

Ujoncok mindig fennakadnak ilyeneken. Engem meg ez idegesit. Rossz nezni, hogy emberek, hogy ki vannak akadva ha HR-es ilyet ir ki.

Raadasul van ahol meg ilyen allashirdetes van: "PHP/HTML/Javascript fejlesztot keresunk". OMG, DULVA!!!! Akkor ezek szerint ok sem tudjak, hogy php meg html meg javascript nem ugyan az. Jajj de kis hulyek ezek...

Valószínűleg én vagyok fogalmatlan, de a HR -es hogyan tud a "human resource" -szal dolgozni, ha fingja sincs róla, hogy a "resource" mit csinál? Vagy a HR -es csak aktákat tologat, meg a CV külalakja alapján megítéli, hogy jó programozó vagyok e?
Nehogy már ne legyen ciki egy szar állás hirdetést megírni!

a php+js kapcsán is van egy hitvita, hogy hogy jobb, jó-e ez a fullstack gondolkodás, és van aki a html5 fejlesztő alatt html+css, van aki html+js fejlesztőt keres, szóval igen, kusza, jobb ha a cég leírja, hogy ÉS MIRE IS HASZNÁLJÁTOK EZEKET A TECHNOLÓGIÁKAT?

(mert volt már JS fejlesztős hirdetés előttem, amiben egy valami elfajzott ötlettől vezérelve js-t futtatni képes arduino alternatívával dolgoztak, de nemrég raktak elém php-ben megírt 3d-s képeket készítő programot is, hogy javítsam már meg :D:D ... sarkos esetek, de létezők.)

A lenyeg az, hogy siman jelentheti "c/c++" azt, hogy mindketto kell. Es az lenne a normalis.

Persze, siman lehet, csak altalaban nem. A recruitment gondolatmenet az, hogy "van a C, meg a jobbik változata, a C++. Ha 'csak' a C-hez ért, majd betanítjuk.". Érted, mintha C++ -t megtanulni pár óra lenne. (vö: továbbképzés)

És itt el is értünk a következő problémához:
Az álláshirdetésekben nincs benne, hogy mégis mit kéne csinálni??
Pl: https://hup.hu/node/153975?comments_per_page=9999#comment-2110688

Tapasztalat: C/C++ hirdetés, valójában a várt tudás kimerült az if..else írásban meg némi bitműveletezésben. Komolyan.

Az biztos, hogy a nem technikai hr nem tudja, hogy van e kulonbseg. De aki leadta hrre, az biztos tudja. Ha azt irta hogy c/c++, akkor bizony mind2 kell.

Hahaha, sajnos ez nem ilyen egyszeru :)

(Kene mar egy hup sorozes, ahol az ilyen sztorikat el lehetne meselni)

"Ujonc"

kösz, ez most legalább olyan jól esett, mint mikor a minap a boltban a kiscsaj el akarta kérni a személyimet, mert sört akartam venni :D :D :D

A PHP/HTML/Javascript együtt jár sok helyen. Ezt hívják full stack-nek (többek közt). A C meg a C++ (ahogy már én is meg azóta mások is leírták a thread-ben) meg marhára nem ugyanaz.

"A PHP/HTML/Javascript együtt jár sok helyen."
"A C meg a C++ (ahogy már én is meg azóta mások is leírták a thread-ben) _meg marhára nem ugyanaz_."
Tehat, akkor php/html/javascript ugyan az. Fasza :D

De komolyan ki feltetelezte rajtad kivul, hogy a c es c++ ugyan az? Mivan veled? Elmentel valami c++ kurzusra es elmondtak neked, hogy nem ugyan az es most mindenhol terjeszted raebredesed? Vagy mi? :D

"Tehat, akkor php/html/javascript ugyan az. Fasza :D"

Persze, hogy ugyanaz, ezt minden rendes szíriuszi tudja. Ezek mind a Java-nak aldialektusai. Régebben azt hittem, hogy a C és a C++ is közüllük való, de aztán Első Szent Stroutsrup felvilágosított, és azóta hirdetem az igét.

+1, irigylem a problemaikat.

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám

Autós analógiával a hirdetés: személygépkocsi/tehergépkocsivezetőt keresünk.
Aztán kiderül a legtöbb álláshírdetésről, hogy a felvett feladata: áruszállítás kizárólag személyautóval.

Akkor miért írják ki a felvételinél a tehergépkocsi kategóriát?

Amúgy azért, mert több embert keresnek több munkakörre. Általában. Csak így mindenki egy helyre küldi a CV-t ahelyett, hogy akár több hirdetésen keresztül is bekerülne ugyanabba a pool-ba ugyanaz a CV (az analógiát folytatva: van akinek a teherautó meg a személyautó vezetői állás is megfelel). Toborzók részéről logikus könnyítés, szakmailag viszont akkor is durva hanyagság.

> hibás Autós analógiával a hirdetés

ftfy

azért írják ki, mert mondjuk a cégnél van személyautó és teherautó is, aztán majd a jelölt képességei, és közös megegyezés alapján eldől, hogy futárkodik a városban személyautóval, vagy árut szállít a telephelyek között teherautóval

Mondjuk a c++ visszafele kompatibilis a c-vel (1-2 egeszen aprosagtol eltekintve), szoval a c/c++ az en olvasatomban c-t jelent, ahol a c++ nem-OO feature-i is kihasznalasra kerulnek.

Ahol tenyleg C++ es OO kell, ott direktben c++ programozot keresnek.

Hát, aki C++-ban a C-vel kompatibilis módon programoz, az nem tekintendő normális C++ kódolónak. Nem egy C++ tankönyvben írják, hogy némileg hátrány a C++ tanulásnál ha valaki a C nyelven dolgozott előtte. Felejtse el a C-beli szokásokat.
Mindezt annak ellenére, hogy bármiféle warning nélkül lehetséges C-szerűen programozni (kompatibilis visszafelé).

Ilyet biztosan láttál már tiszta C forrásban:

#if defined(__cplusplus)
extern "C" {
#endif
...
#if defined(__cplusplus)
}
#endif