Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
One week meal plan - Pachet

Apometru defect?

Nelamurire legalitate TVA casa noua

Huawei P20 Lite, ecran negru la a...
 Bibelorui, macrameuri si altele

Inventia secolului din Afganistan?

G84 - pro și contra

Masina de familie,buget 11000-120...
 In ce situatii cereti o a doua op...

DigiMobil - IP public?

Glet de finisaj peste chit acrili...

La multi ani @Passenger001!
 La multi ani @barbosa1bis!

La multi ani @MikeSpike!

Cum curat gletul de pe perete

Soluție incalzire apartament...
 

Cati programatori stiu sa programeze?

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
77 răspunsuri în acest subiect

#19
UlrichVans

UlrichVans

    Active Member

  • Grup: Members
  • Mesaje: 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?

Editat de UlrichVans, 03 iulie 2018 - 22:09.


#20
StefanSC

StefanSC

    Senior Member

  • Grup: Senior Members
  • Mesaje: 4.731
  • Î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...

Editat de StefanSC, 03 iulie 2018 - 22:29.


#21
utopium

utopium

    Guru Member

  • Grup: Senior Members
  • Mesaje: 46.091
  • Î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
  • Mesaje: 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
  • Mesaje: 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
  • Mesaje: 30.259
  • Î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
  • Mesaje: 46.091
  • Î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
  • Mesaje: 30.259
  • Î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
  • Mesaje: 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.

Editat de lexis1, 03 iulie 2018 - 23:20.


#28
utopium

utopium

    Guru Member

  • Grup: Senior Members
  • Mesaje: 46.091
  • Î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".

Editat de utopium, 03 iulie 2018 - 23:25.


#29
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Mesaje: 30.259
  • Î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
  • Mesaje: 46.091
  • Î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
  • Mesaje: 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.

Editat de WinstonMontana, 03 iulie 2018 - 23:49.


#32
arg

arg

    Guru Member

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

Editat de arg, 03 iulie 2018 - 23:47.


#33
OriginalCopy

OriginalCopy

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

  • Grup: Senior Members
  • Mesaje: 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
  • Mesaje: 21.841
  • Î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
  • Mesaje: 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
  • Mesaje: 21.841
  • Î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

Bun venit pe Forumul Softpedia!

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

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