Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Transferuri instant intre bancile...

player video

Carefur Act for good

Parcare gratis in Bucuresti pentr...
 Rovinieta prin SMS pentru masina ...

Viteza mica Usb 3.2 gen.1 header

Cerificat atestare fiscala pentru...

Schimbare destinatie imobil din l...
 Dorsalgie

Recomandare brand cheie dinamomet...

Divorț la notar

Vechime vs km reali
 Android 12 : "Yahoo Mail s-a ...

Bloc Favorit cu RS2

Ce extractor audio (analogic) pen...

Cine suporta cheltuielile de jude...
 

Creativitate si originalitate in programare

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

#1
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,721
  • Înscris: 13.09.2009
In general practica cere sa se creeze aplicatii/algoritmi/design originali sau in general se folosesc multe solutii facute de altii si doar o mica parte din aplicatie reprezinta aportul celui care dezvolta acea aplicatie/site ?

De exemplu daca un designer trebuie sa faca un site, de obicei cauta pe internet sabloane si le modifica sau creaza el de la zero intreg designul site-ului ? Sau are un portofoliu de site-uri originale deja facute chiar de el si doar le modifica ?

Nu ma refer la exceptii, ma refer la tendinta in industrie: tendinta este sa se creeze de la zero sau sa se copieze si sa se modifice ?
Aceesi intrebare despre alogoritmi: trebuie sa gasesti o metoda sa cauti rapid intr-un string imens, ce faci inventezi una sau cauti o metoda gata facuta ? Se folosesc intens librarii si plugin-uri facute de altii si programatorul foloseste acea librarie care este foarte generala pentru ce are el nevoie ?

Nu trebuie sa raspundeti la fiecare intrebare in parte - ce vreau sa intreb este daca din experienta voastra in programare exista tendinta de a lucra original si creativ sau trendul este de a prelua solutii de la altii (librarii, algoritmi, design), a le modifica si adapta la cerintele aplicatiei.

#2
jm2010

jm2010

    Senior Member

  • Grup: Senior Members
  • Posts: 4,949
  • Înscris: 14.03.2013
Pe web doua variante:
1. Daca firma are designer poate face template-ul de la zero pentru client dar asta inseamna costuri mai mari de dezvoltare.
2. Daca firma nu are designer poate achizitiona template gata facut (sunt cu tonele pe net) si il adapteaza clientului. Asta este in general varianta cea mai folosita in ziua de azi, merge mai repede.
In general multa lume face copy/paste la ce gaseste pe net (stackoverflow de obicei), nu reinventeza roata. Din pacate, multi nu stiu nici cum sa copieze bine de asta abundenta de aplicatii prost facute.

Edited by jm2010, 06 March 2020 - 16:12.


#3
Rhesus

Rhesus

    Senior Member

  • Grup: Senior Members
  • Posts: 2,882
  • Înscris: 22.04.2014
Cand faci o mașină, reinventezi roata?

În general, dacă există ceva (indiferent de sursă: a ta (portofoliu propriu), sau open-source) bine făcut, nu are sens să pierzi timpul cu recrearea ei. Evoluția întotdeaună a avut loc prin ,,clădirea” peste a ceva ce există deja. (cam forțată exprimarea). Totuși copierea de pe stackoverflow a oricărui cod, lasă de dorit ...

BMW nu reinventează roata. Mai degrabă asamblează niște piese create de alții (și doar puține elemente sunt create in-house). Sau, de la o ediție la alta, folosesc același motor (cu unele imbunătățiri).

Dacă există un proiect open-source (de ex. AOSP), e perfect normal să adaptezi unele bucăți de cod. De ex. eu am folosit cu succes în aplicația mea o bibliotecă pentru comunicarea via BLE în Android (rezolvă niște neajunsuri la nivel de conexiune prin Bluetooth).

Creativitatea există în arhitectura aplicației și în dezvoltarea algoritmilor.

Edited by Rhesus, 06 March 2020 - 16:35.


#4
cristirg

cristirg

    Senior Member

  • Grup: Senior Members
  • Posts: 7,711
  • Înscris: 16.11.2012

View Postjm2010, on 06 martie 2020 - 16:09, said:


Daca firma nu are designer poate achizitiona template gata facut (sunt cu tonele pe net) si il adapteaza clientului. Asta este in general varianta cea mai folosita in ziua de azi, merge mai repede.


da, cam asa merge treaba, se modifica o tema wordpress cumparata, asa cum vrea clientul

#5
karax

karax

    Guru Member

  • Grup: Senior Members
  • Posts: 21,839
  • Înscris: 14.10.2017
sunt siteuri unde se posteaza mereu cod , la liber cateodata , asa incat e de presupus ca pe masura ce trece timpul, se aduna cat mai mult cod la liber. in final peste niste ani, o sa abunde de cod pus la liber asa incat practic, programatorii vor fi niste insi care fac copy paste

Edited by karax, 06 March 2020 - 17:43.


#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,114
  • Înscris: 24.02.2007
Github (printre altele) iti pune la dispozitie o gramada de software open-source. Poti sa te uiti peste niste proiecte la alegere si sa lamuresti multe din dileme. Exemplu: proiectul meu din semnatura.

View PostPlatonX, on 06 martie 2020 - 16:05, said:

Aceesi intrebare despre alogoritmi: trebuie sa gasesti o metoda sa cauti rapid intr-un string imens, ce faci inventezi una sau cauti o metoda gata facuta ?

Incepi prin a fi la curent cu ce exista. Crezi ca scoti ceva mai bun decat Knuth–Morris–Pratt, Rabin–Karp sau altii ce au cercetat mult problema?

#7
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,721
  • Înscris: 13.09.2009
Eu sunt de acord cu standardele: daca eu plec de la companie si vine altcineva pe proiect sa inteleaga usor ce am facut acolo.
Dar nu ma refer la standarde. Este normal sa fie cod structurat, modular, impartit pe clase, etc.

Ma refer la partea de creatie. Care mai este diferenta ca aplicatia o fac eu sau o face altul, daca treaba noastra consta in asamblarea subansamblelor facute de altii, exact ca la o masina ?

Se ajunge exact ca la case si masini: fiecare masina sau fiecare casa in loc sa fie o opera de arta ajunge sa fie la fel ca alte sute de mii. Sute de mii de case la fel, sute de mii de masini la fel, zeci de mii de site-uri la fel.
Nu vi se pare normal ca o masina, o casa, un site, o aplicatie sa fie o opera de arta ?

Edited by PlatonX, 06 March 2020 - 18:08.


#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,114
  • Înscris: 24.02.2007
Care-i scopul produsului pe care-l produci. Sa-si faca lumea treaba cu el sau sa-l licitezi la o galerie de arta?
  • Indeplinesti logica de business pe care o vrea clientul?
  • Daca vrea o schimbare i-o poti oferi maine sau peste 2 ani?
  • Daca creste mult numarul de clienti reusesti sa pastrezi sistemul pe linie de plutire si sa ramai competitiv?
  • Reusesti sa oferi un pret decent sau ceri de 10x cat concurenta?
  • Etc
Cu toate subasamblurile din lume la dispozitie, tot mai ai destule de rezolvat.

#9
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,721
  • Înscris: 13.09.2009
O parte din vina o are si clientul pentru ca vrea cat mai ieftin si cat mai repede iar producatorul este nevoit sa faca un compromis.
Ma asteptam ca macar in domeniul acesta - al programarii - creatia si originalitatea sa fie regula, dar se pare ca este exceptia: cat mai repede, cat mai ieftin si cat mai mult - regretabil.

La scoala sistemul nu este personalizat pentru fiecare elev, in constructii la fel, in industrie in general la fel. Trist ca pana si in programare este un sistem industrial.

#10
Soulstream

Soulstream

    Senior Member

  • Grup: Senior Members
  • Posts: 5,014
  • Înscris: 03.02.2014
Creativitatea vine uneori in a rezolva uneori anumite probleme in functie de constrangerile avute. Uneori lucrezi cu cod vechi  sau o arhitectura prost gandita. Nu ai mereu timp sa  rescrii totul de la zero ca sa adaugi o noua functionalitate asa ca incepi sa fi "creativ" prin gasirea unei solutii astfel incat sa adaugi noua functionalitate, fara sa strici alte functionalitati.

#11
utopium

utopium

    Guru Member

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

View PostPlatonX, on 06 martie 2020 - 18:07, said:

Nu vi se pare normal ca o masina, o casa, un site, o aplicatie sa fie o opera de arta ?
O mica parte dintre ele sunt ... la fel e si la aplicatii ca si la case/masini ... un mic procent sunt "opere de arta".

#12
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,721
  • Înscris: 13.09.2009
O mica parte sunt opere de arta, nu ar fi frumos sa fie toate opere de arta ?

View PostSoulstream, on 06 martie 2020 - 18:29, said:

Creativitatea vine uneori in a rezolva uneori anumite probleme in functie de constrangerile avute. Uneori lucrezi cu cod vechi  sau o arhitectura prost gandita. Nu ai mereu timp sa  rescrii totul de la zero ca sa adaugi o noua functionalitate asa ca incepi sa fi "creativ" prin gasirea unei solutii astfel incat sa adaugi noua functionalitate, fara sa strici alte functionalitati.
Asta este o alta problema care confirma imperfectiunea lumii in care traim: cel care a facut proiectul de la zero pleaca in alta parte si tu trebuie sa continui munca lui. Mai ales daca a fost prost scris codul iti va lua o vesnicie sa il descifrezi.

Edited by PlatonX, 06 March 2020 - 18:36.


#13
coniac

coniac

    Member

  • Grup: Members
  • Posts: 497
  • Înscris: 17.12.2019

View Postdani.user, on 06 martie 2020 - 17:51, said:

Incepi prin a fi la curent cu ce exista. Crezi ca scoti ceva mai bun decat Knuth–Morris–Pratt, Rabin–Karp sau altii ce au cercetat mult problema?

De ce nu ? Daca toti ar gandi asa , n-am mai evolua De exemplu
Ryan Dahl, the inventor of Node.js, introduces the philosophy of his project by saying
“We’re doing I/O completely wrong." He defines a blocking function as one that does
disk or network I/O, and argues that we can’t treat them as we treat nonblocking functions.
To explain why, he presents the numbers in the first two columns of Table
https://ibb.co/27tWHZY

#14
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,114
  • Înscris: 24.02.2007

View Postconiac, on 06 martie 2020 - 18:37, said:

De ce nu ?

E o diferenta intre "nu ne multumeste ce exista, hai sa platim n cercetatori sa gaseasca ceva mai bun" si "ce s-a inventat in ultimii 40 de ani nu-i bun, scriu eu peste noapte ceva bazat".

View Postconiac, on 06 martie 2020 - 18:37, said:

“We’re doing I/O completely wrong." He defines a blocking function as one that does

E o diferenta intre a inventa ceva si a populariza ceva. Putine concepte informatice sunt inventate in secolul asta.

View PostPlatonX, on 06 martie 2020 - 18:07, said:

Ma refer la partea de creatie. Care mai este diferenta ca aplicatia o fac eu sau o face altul, daca treaba noastra consta in asamblarea subansamblelor facute de altii, exact ca la o masina ?

Concret, cum ai face tu o aplicatie incat sa se diferentieze de restul?

#15
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,547
  • Înscris: 30.07.2003

View PostPlatonX, on 06 martie 2020 - 18:07, said:

Care mai este diferenta ca aplicatia o fac eu sau o face altul, daca treaba noastra consta in asamblarea subansamblelor facute de altii, exact ca la o masina ?
Diferenta e data de pretul produsului, disponibilitate lui, timpii de mentenanta etc.
Nu exista aplicatie doar asambland componentele altora, cu siguranta are particularitatea sa. Chestiile redundante se mostenesc de la altii.

#16
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,721
  • Înscris: 13.09.2009

View Postdani.user, on 06 martie 2020 - 19:15, said:

Concret, cum ai face tu o aplicatie incat sa se diferentieze de restul?

As inventa algoritmul, design-ul, arhitectura.
Daca as avea de facut un site, nu a lua un template si l-as modifica as inventa eu de la zero designul, de exemplu.

Nu ma refer aici la librarii standard precum citirea unui fisier Excel, unde evident o sa folosesc o librarie. Dar daca trebuie sa fac un proces cu acel fisier, imi fac eu workflow-ul, imi structurez clasele in asa fel incat sa fie cat mai modular (daca modific intr-un loc sa nu influenteze si in alte locuri), cat mai simplu si mai clar. As folosi librarii cat mai generale, cat mai larg raspandite, as folosi sandarde dar in nici un caz nu m-as pune sa iau un plugin pentru o munca de 3 saptaman in plus, o librarie pentru inca 2 saptamani si un frame-work fara de care nu va merge aplicatia.

Eu inteleg ca o aplicatie trebuie sa aiba o arhitectura clara, simplu de inteles, bine structurata si chiar daca dureaza mai mult nu o sa o umplu cu cod general (librarii, plugin-uri) numai daca sunt foarte cunoscute. Pentru ca daca vine cineva dupa mine sa inteleaga repede ce am facut acolo.

Edited by PlatonX, 06 March 2020 - 19:29.


#17
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,547
  • Înscris: 30.07.2003
Nu mereu ai timp la dispozitie sa-ti manifesti latura artistica. Cateodata ce faci tu poate fi mai complicat de deslusit de catre altii decat ti se pare.

Edited by neagu_laurentiu, 06 March 2020 - 19:43.


#18
OriginalCopy

OriginalCopy

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

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

View PostPlatonX, on 06 martie 2020 - 16:05, said:

In general practica cere sa se creeze aplicatii/algoritmi/design originali sau in general se folosesc multe solutii facute de altii si doar o mica parte din aplicatie reprezinta aportul celui care dezvolta acea aplicatie/site ?

De exemplu daca un designer trebuie sa faca un site, de obicei cauta pe internet sabloane si le modifica sau creaza el de la zero intreg designul site-ului ? Sau are un portofoliu de site-uri originale deja facute chiar de el si doar le modifica ?

Nu ma refer la exceptii, ma refer la tendinta in industrie: tendinta este sa se creeze de la zero sau sa se copieze si sa se modifice ?
Aceesi intrebare despre alogoritmi: trebuie sa gasesti o metoda sa cauti rapid intr-un string imens, ce faci inventezi una sau cauti o metoda gata facuta ? Se folosesc intens librarii si plugin-uri facute de altii si programatorul foloseste acea librarie care este foarte generala pentru ce are el nevoie ?

Nu trebuie sa raspundeti la fiecare intrebare in parte - ce vreau sa intreb este daca din experienta voastra in programare exista tendinta de a lucra original si creativ sau trendul este de a prelua solutii de la altii (librarii, algoritmi, design), a le modifica si adapta la cerintele aplicatiei.

În programare funcționează așa:

Primești o "problemă" și o rezolvi.

Pentru a o rezolva optim, o împarți în subprobleme rezolvate deja de alții.

Ca să faci asta fără risipă, trebuie să știi ce probleme și ce soluții există "out in the wild".

Pe aceste soluții le recombini în mod creativ astfel încât să iasă soluția individuală a problemei inițiale.

Pentru algoritmi, uneori poți reutiliza algoritmi din biblioteci, alteori trebuie să "combini" algoritmi "în aceeași buclă".

Oricum ai da-o, cu cât știi mai multe, cu atât poți rezolva mai multe tipuri și dificultăți de probleme.


Nu există trenduri, aceasta a fost și este singura realitate.

Ceea ce s-a schimbat e generația tânără care are impresia că ar fi diferit.

Generația tânără vrea să facă totul rapid, fără accent pe corectitudine, performanță, etc.

Se exclud din generația tânără cei cu potențial care înțeleg de mici cum stau lucrurile de fapt.

View Postconiac, on 06 martie 2020 - 18:37, said:



De ce nu ? Daca toti ar gandi asa , n-am mai evolua De exemplu
Ryan Dahl, the inventor of Node.js, introduces the philosophy of his project by saying
“We’re doing I/O completely wrong." He defines a blocking function as one that does
disk or network I/O, and argues that we can’t treat them as we treat nonblocking functions.
To explain why, he presents the numbers in the first two columns of Table
https://ibb.co/27tWHZY

Exact.

Poate că nu reinventezi nimic nou, dar dacă ai o fundație robustă, îți permiți să fii și creativ, să pui o metodă sub semnul întrebării (ca domnul nodejs), și să schimbi industria.

Ca să fie clar, creativitate în programare nu se poate fără competență.

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

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