Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Momentul Aprilie 1964

A fost lansat Ubuntu 24.04 LTS

Free streaming SkyShowtime de la ...

Skoda Fabia 1.0 TSI (110 CP)- 19 ...
 Mezina familiei, Merida BigNine

The Tattooist of Auschwitz (2024)

Se poate recupera numar de telefo...

Upgrade de la MacBook Pro M1 cu 8...
 Ce tip de monitor am nevoie pt of...

Resoftare camera supraveghere

Laptop Gaming

Cu ce va aparati de cainii agresi...
 Nu imi platiti coletul cu cardul ...

Exista vreun plan de terorizare p...

Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone
 

Cati programatori stiu sa programeze?

- - - - -
  • Please log in to reply
77 replies to this topic

#19
UlrichVans

UlrichVans

    Active Member

  • Grup: Members
  • Posts: 1,091
  • Înscris: 28.06.2018

 StefanSC, on 03 iulie 2018 - 21:47, said:

Plus ca undeva la 50% din programatori sunt autodidacti si de aici o gramada de carente.
Nu cumva la aia ne-autodidacti sunt carentele?

Edited by UlrichVans, 03 July 2018 - 22:09.


#20
StefanSC

StefanSC

    Senior Member

  • Grup: Senior Members
  • Posts: 4,730
  • Înscris: 02.07.2011

 WinstonMontana, on 03 iulie 2018 - 21:50, said:

daca n-ar fi si buni degeava i-ar mai plati.
Sa zicem ca undeva la 10% sunt buni si foarte buni. Dar per total suntem cam la nivelul Indienilor (tot aduc vorba de astia ca majoritatea softagiilor care au lucrat cu indieni ii cam injura pt codul ilizibil si alte metehne).
Asta se vede si in genul de produse software care se fac pe la noi...

 UlrichVans, on 03 iulie 2018 - 22:08, said:

Nu cumva la aia ne-autodidacti sunt carentele?
Nu prea. Astia ne-autodidacti (daca prin asta  intelegem cu studii formale) au habar de un minim de coding standard.

 Shinji, on 03 iulie 2018 - 21:59, said:

Sunt si situatii in care timpul e critic, dar astea sunt mult mai rare decat par cand asculti managerii. In practica, timpul "economisit" scriind cod greu lizibil si fusarit e pierdut ulterior multiplicat de multe ori, ca sa nu mai vorbim de stress si nervii pierduti cand trebuie sa lucrezi cu codul aiurea.
De regula nu sunt nervii si stressul aluia care scrie codul. Piata foarte mobila, putini care stau mai mult de 2-3 ani intr-un singur loc Posted Image.
Si pana acum nu am vazut proiect care sa nu fie understaffed sau overcommited in Romania Posted Image. Poate or exista, dar inca nu mi-a iesit in cale acest unicorn.

P.S: ciudatenii in cod pot veni si de la coding standards impuse de client/echipa...

Edited by StefanSC, 03 July 2018 - 22:29.


#21
utopium

utopium

    Guru Member

  • Grup: Senior Members
  • Posts: 45,884
  • Înscris: 14.08.2007
Aceeasi intrebare o poti pune in orice domeniu de activitate ... doar pentru ca unii nu respecta niste reguli pe care le respecti tu (sau niste recomandari de bune practici din industrie) nu inseamna ca nu vor avea de lucru in industrie. Si la medici, profesori, vanzatori, muncitori, etc vor fi o gramada care nu respecta regulile de bune practici si vor lucra in continuare.

#22
Shinji

Shinji

    Member

  • Grup: Members
  • Posts: 386
  • Înscris: 04.04.2005

Quote

P.S: ciudatenii in cod pot veni si de la coding standards impuse de client/echipa...
Mda, e trist cand se intampla asa. Dar nu e cazul aici. Ca tot veni vorba ca nu e bine sa incepi conditia cu o negatie, uite alt exemplu de cod din aplicatie:

if (!(n>0))
{
	*do stuff*
}


Deci nu vorbim de coding standards, pur si simplu de ce-i trece fiecaruia prin cap...

#23
XON-XOFF

XON-XOFF

    Big Fat Member

  • Grup: Senior Members
  • Posts: 3,442
  • Înscris: 27.05.2006
de pe OCCC (Obfuscated C Code Contest) îti dau acest exemplu de cod perfect funcțional:

// "Saw that code days ago in a question here  ,it prints the largest prime number"
int m=1711276033,N=1,t[1<<25]={2},a,*p,i,e=39717691,s,c,U=1;g(d,h)
{for(i=s;i<1<< 24;i*=2)d=d*1LL*d%m;for(p=t;p<t+N;p+=s)for(i=s,c=1;i;i--)a=p[s]*
(h?c:1LL)%m,p[s] =(m*1U+*p-a)*(h?1LL:c)%m,*p=
(a*1U+*p)%m,p++,c=c*1LL*d%m;}main(){while(e/=2){N*=2 ;U=U*1LL*(m+1)/2%m;
for(s=N;s/=2;)g(40,0);for(p=t;p<t+N;p++)*p=*p*1LL**p%m*U%m; for(s=1;
s<N;s*=2)g(983983719,1);for(a=0,p=t;p<t+N;)a+=*p<<(e&1),*p++=a%10,a/=10;
}while(!*--p);for(t[0]--;p>=t;)putchar(48+*p--);}


În mod evident tipul care l-a scris era un programator deștept.
Dar, cine și-ar dori așa ceva în codul care tb menținut și dezvoltat în viitor în cadrul unei companii ?

primul exemplu e la polul opus
prin compilare oricum sînt intrucțiuni de tip JNE, BNE, DJNZ (deci N=not) și analoagele lor cu Equal deci nu prea contează că compari cu 1 sau cu 0.

#24
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Pana la urma, din atatea moduri de a scrie if castiga ... pattern maching.

#25
utopium

utopium

    Guru Member

  • Grup: Senior Members
  • Posts: 45,884
  • Înscris: 14.08.2007

 dani.user, on 03 iulie 2018 - 22:47, said:

Pana la urma, din atatea moduri de a scrie if castiga ... pattern maching.
De obicei castiga cel care furnizeaza cel mai rapid un cod functional. Ca daca faci cod elegant la cost dublu si de 2 ori mai incet, s-ar putea clientul sa piarda multe oportunitati intre timp.

#26
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Cand esti meserias, scii cod suficient de de elegant mai repede decat scrie unul mai putin priceput cod de proasta calitate.

#27
lexis1

lexis1

    Senior Member

  • Grup: Senior Members
  • Posts: 4,110
  • Înscris: 28.02.2018
Eu am vazut prostii din astea in exceluri, niste formule parca facute de un incepator cu tutoriale de pe supportoffice ca sa faca ceva pentru care exista chiar functie simpla speciala in excel.
Si uite asa erau celule la care erau romane intregi de "formule" care se puteau rezolva din cateva randuri.

Edited by lexis1, 03 July 2018 - 23:20.


#28
utopium

utopium

    Guru Member

  • Grup: Senior Members
  • Posts: 45,884
  • Înscris: 14.08.2007

 dani.user, on 03 iulie 2018 - 23:18, said:

Cand esti meserias, scii cod suficient de de elegant mai repede decat scrie unul mai putin priceput cod de proasta calitate.
Cu conditia sa fii semnificativ mai meserias Posted Image Eu sunt pus destul de des in situatia in care din dorinta de a face solutii "elegante"/"de ultima generatie"/"la moda" viteza proiectului e compromisa semnificativ, costurile cresc masiv, etc. Dar na, cum altii platesc factura, nu am nici o problema cu asta, doar ma mir de cat de ineficiente pot fi unele lucruri din dorinta de a face solutii aparent mai "elegante".

Edited by utopium, 03 July 2018 - 23:25.


#29
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Si sa lucrezi la proiecte adecvate, unde nu doar implementezi contra-cronometru ce zice clientul azi ca ar fi vrut de ieri.

#30
utopium

utopium

    Guru Member

  • Grup: Senior Members
  • Posts: 45,884
  • Înscris: 14.08.2007
Daca vrei e ca la masini, cea mai buna masina nu exista, e definita de nevoie/scop. Daca vrei o masina de familie, un Ferrari e bun de aruncat la gunoi.

In functie de ce vrei de la ea, oricare dintre un Ferrari 488 Spider, Dacia Duster 4x4, Skoda Octavia, Smart poate fi cea mai buna pentru tine, desi sunt masini foarte diferite.

#31
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

 Shinji, on 03 iulie 2018 - 22:36, said:

Mda, e trist cand se intampla asa. Dar nu e cazul aici. Ca tot veni vorba ca nu e bine sa incepi conditia cu o negatie, uite alt exemplu de cod din aplicatie:

if (!(n>0))
{
*do stuff*
}


Deci nu vorbim de coding standards, pur si simplu de ce-i trece fiecaruia prin cap...
if ( n <= 0 ) {

}

Pe ramura IF spui ce faci si nu ce nu faci
Cand dai indicatii cuiva spui pe unde sa mearga si nu pe unde sa  nu mearga
Cand mergi undeva doreste sa afli cum sa ajungi si nu cum sa nu ajungi

Din punct de vedere al design-ului intotdeauna ramura IF trebuie sa fie ramura lui " ce trebuie sa fac" si nu lui "ce nu trebuie sa fac"

La fel si  la scripturile SQL in join-uri pui ce trebuie sa lege si nu ce trebuie sa nu lege.

Quote

Deci nu vorbim de coding standards,
Nope, vorbim de arhitectural code design standards.

Edited by WinstonMontana, 03 July 2018 - 23:49.


#32
arg

arg

    Guru Member

  • Grup: Senior Members
  • Posts: 38,147
  • Înscris: 19.09.2005
Eu atat am inteles:
Cel mai greu e sa lucrezi simplu, sa dai solutii simple usor de inteles si verificat.

Edited by arg, 03 July 2018 - 23:47.


#33
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

 WinstonMontana, on 03 iulie 2018 - 21:19, said:

E ok codul.
Nu e absolut deloc OK.

!(a && B) ar trebui impachetat intr-o metoda privata, numita cum trebuie, si folosita in if(), iar codul mutat din else in if.

#34
karax

karax

    Guru Member

  • Grup: Senior Members
  • Posts: 21,839
  • Înscris: 14.10.2017

 Shinji, on 03 iulie 2018 - 22:36, said:

Mda, e trist cand se intampla asa. Dar nu e cazul aici. Ca tot veni vorba ca nu e bine sa incepi conditia cu o negatie, uite alt exemplu de cod din aplicatie:

if (!(n>0))
{
*do stuff*
}


Deci nu vorbim de coding standards, pur si simplu de ce-i trece fiecaruia prin cap...
Parerea mea de ins care are putine tangente cu programarea: mai depinde si acel DO cum e pus , adica expresia ce continua dupa DO. Daca ceea ce vine dupa DO  este facut de asa natura sa fie evaluat mai usor prin negatie , in asa fel incat sa existe un numar mai mic de procesari la rularea codului, atunci codul este perfect corect chiar si fata de cazul normal.  Deci parerea mea este ca depinde de legatura dintre conditie si statement.

 utopium, on 03 iulie 2018 - 23:02, said:

De obicei castiga cel care furnizeaza cel mai rapid un cod functional. Ca daca faci cod elegant la cost dublu si de 2 ori mai incet, s-ar putea clientul sa piarda multe oportunitati intre timp.
Nu se precizeaza de la inceput cerinta , ce se vrea: mai repede sau mai calitativ?

#35
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

 Shinji, on 03 iulie 2018 - 20:48, said:

Cati programatori stiu sa programeze?
Putini, iar numarul de ani nu e un bun indicator.

Am vazut ambele extreme care sustin teoria asta: arhitecti, CTOs, cum vrei tu sa ii numesti, care scriau destul de mult cod, si nu stiau lucruri importante dar elementare, si studenti care nici nu si-au terminat facultatea, si aveau o gramada de cunostinte.

Nu te mai uita la oameni in numar de ani, sunt chiar fix pix.

Acestea fiind spuse, nu am vazut programatori cu peste 5 ani experienta (care nu au schimbat cariera) care nu produceau plus-valoare. Chiar daca nu stiau acele lucruri elementare, stiau alte lucruri. Daca totusi vei intalni astfel de medii/companii care mentin pe pozitii astfel de oameni, atunci iti recomand sa pleci din acel mediu nociv cat mai rapid.

#36
karax

karax

    Guru Member

  • Grup: Senior Members
  • Posts: 21,839
  • Înscris: 14.10.2017

 WinstonMontana, on 03 iulie 2018 - 23:41, said:

if ( n <= 0 ) {

}

Pe ramura IF spui ce faci si nu ce nu faci
Cand dai indicatii cuiva spui pe unde sa mearga si nu pe unde sa  nu mearga
Cand mergi undeva doreste sa afli cum sa ajungi si nu cum sa nu ajungi

Din punct de vedere al design-ului intotdeauna ramura IF trebuie sa fie ramura lui " ce trebuie sa fac" si nu lui "ce nu trebuie sa fac"

La fel si  la scripturile SQL in join-uri pui ce trebuie sa lege si nu ce trebuie sa nu lege.

Poate sunt  situatii de nested if statements in care prima conditie cu negatie ajunge sa fie folosita mai departe in alte statementuri de aia ar rula progamul mai eficient. Mai ales daca ai mai multe care se evalueaza mai usor prin   negatie fata de afirmatie.

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate