Programatorii ar trebui să aibă cunoștințe hardware?

Am vazut ca mai nou tipi care lucreaza in companii mari gen Google, Amazon, etc, isi pun titlu de Software Engineer(inginer software) pe Linkedin, ca sa dezvolti sisteme scalate la un asa nivel trebuie sa ai si cunostinte hardware sa stii ca datele din memoria cache a procesorului se acceseaza mai rapid ,ca accesul in retea poate fi ma rapid decat accesul de pe hard disk sau ca afisarea datelor pe ecran poate dura mai mult decat transferul lor, totul e sa poti diagnostica problema, si pentru asta trebuie sa masori si sa folosesti uneltele potrivite pentru identificare botleneck.

Asta e diferenta intre programator si inginer software, programatorul stie doar programare pe cand un inginer software stie si hardware, e doar o parere personala.

3 Likes

Nu cumva un inginer software ar trebui sa poate scrie “close to the metal” code (C/ASM) gen pentru microcontrolere si alte aplicatii?

Cu siguranta toti am facut C si assembler in facultate, ceea ce nu ar trebui sa fie greu ce spui tu daca ai invatat la materiile respective.

Nu la nivel de invatare doar pentru ca este in programa facultatii - ci la nivel profesional in zone critice - gen firmware pt. un microcontroler la o masinarie industriala unde daca gresesti ceva …

Asa ar fi normal dar din pacate modelul nostru de invatamant e cateva generati in urma fata din afara, dar iti ofere niste baze, cineva care termina ceva de tip-ul Stanford cred ca s-ar descurca fiindca e mai update cu trend-urile si ultimele research-uri in domeniu, desigur acolo calitatea invatamantului e mai avansata, presupun ca sunt niste proceduri standard pentru asa ceva.

Dar ce zici tu are sens, teoretic in studiile de licenta ti se pun bazele, la master ai putea sa te specializezi pe ceva.

Pare o definiție extrem de strictă asta. Ai descalifica oamenii care lucrează la produse extrem de complexe non-C/asm, precum Google Search/Maps, Facebook etc.

Wikipedia are o definiție foarte mișto a ce înseamnă să fii inginer. Tl;dr: measures twice, cuts once. Si cred ca în orice domeniu tehnic e aplicabila separarea intre omul care face inginerie și cel care nu. Doar că in IT e o proporție mai mare de practicanți non-ingineri, fata de un domeniu mai cu tradiție, cum sunt construcțiile, automobile, electrotehnică sau electronică.

2 Likes

I’m sorry what?

EDIT:

Nu am vrut sa exclud Google poate doar pe Facebook pentru ca ei nu trimit chestii pe Marte ci ne folosesc datele personale pentru profit … de fapt stai - asta fac si Google! :laughing:

Da scroll o idee mai jos în articol și dai de software engineering :slight_smile:

1 Like

I stand corrected then :slight_smile: Damn, they even have ISO standard for it: https://en.m.wikipedia.org/wiki/ISO/IEC_JTC_1/SC_7#Published_standards

1 Like