Programming Basics
#19
Posted 06 November 2018 - 15:26
Daca ai o comanda de un proiect si ai un termen de livrare nu cred ca poti astepta cateva luni. Daca vrei sa angajezi numai pentru a avea oameni cu experienta pe o anumita tehnologie - asta merge daca ai deja o echipa care face treaba :iti permiti sa astepti pana gasesti ce cauti. Oricum, cu cat esti mai specializat pe o tehnologie cu atat mai putin esti pe celelalte - logic - nu poti fi cu toate.
Edited by PlatonX, 06 November 2018 - 15:27. |
#20
Posted 06 November 2018 - 17:19
Nu poti fi cu toate dar poti fi cu multe, iar cele cu care nu esti le poti stapani in timp nu foarte lung, cu pregatire anterioara suficienta. Aia cu atat mai putin... celelalte... simplifica mult lucrurile. Oamenii nu sunt identici, nu sunt galeti de aceeasi dimensiune care sunt umplute sau nu cu apa, si mai este sau nu loc.
|
#21
Posted 06 November 2018 - 17:44
Incepi cu topicul scris de OriginalCopy
https://forum.softpe...ebui-sa-le-tie/ Edited by MarianG, 06 November 2018 - 18:19. |
#22
Posted 06 November 2018 - 19:23
#23
Posted 06 November 2018 - 19:45
parabellum, on 06 noiembrie 2018 - 13:18, said: Un foarte prost exemplu. Nu e bun deloc pentru un limbaj 'de inceput'. Abordarea corecta IMO nu e mult mai dificila decat, sa zicem, Python. Poate nu chiar ca primul limbaj in care sa scrii alde "Hello World", dar l-as recomanda ca primul limbaj pentru "invatat serios". Si poti invata multe. Iar adaptarea de la C++ la alte limbaje populare va fi usoara. Edited by TS030, 06 November 2018 - 20:05. |
#24
Posted 06 November 2018 - 19:57
Quote
Inseamna ca nu "are nevoie". |
#25
Posted 16 November 2018 - 01:07
parabellum, on 06 noiembrie 2018 - 15:00, said:
Vechea religie care zice ca pentru a dezvolta software ajunge sa stii un limbaj, si gata... parabellum, on 06 noiembrie 2018 - 15:00, said:
unul cu studii suficiente pe domeniile implicate poate sa invete python intr-o ora si sa scrie dupa aia cod care nu poate fi scris de unul care 'studiaza python' ani de zile... Ceea ce faci diversi matematicieni si altii preocupati de "prelucrare date", cu python si biblioteci precum numpy, scipy, matplotlib, e de obicei mazgaleala cu laba gastii. Nu productie software(nici macar amatoriceasca). Poate o fi multumitor pentru ei daca obtin niste date, niste rezultate, dar aia n-are treaba cu meseria de programator. |
#26
Posted 16 November 2018 - 08:52
Quote
ci in trei luni de python, 10 ore pe zi invatat intens, serios -> abia zgarii suprafata in materie de ce-i aia dezvoltare software |
#27
Posted 26 November 2018 - 21:55
Raspunsurile sunt diferite pentru ca sunt o multitudine de limbaje si fiecare a inceput un limbaj in functie de un anumit context,conjunctura,fiecare limbaj de programare are avantajele si dezavantajele lui.
Cobol este un limbaj vechi si pentru ca o parte din banci au ramas inca pe acest limbaj se cauta programatori problema ramane unde il inveti? In ce context? Sunt curios cati au invatat Cobol singuri si si-au gasit de munca ? Edited by iulian_1976, 26 November 2018 - 22:02. |
#28
Posted 14 February 2019 - 22:40
parabellum, on 16 noiembrie 2018 - 08:52, said:
Poti sa tocesti python sute de ani, si nici macar nu zgarii suprafata aia, pentru ca se afla altundeva. Un papagal care invata cuvinte in engleza nu ajunge sa scrie ca Shakespeare. Pentru ca evident e necesar mai mult decat 'invatat engleza' sau, in cazul dezvoltarii software, 'invatat python'. Tu crezi ca e cum ai procedat la matematica sau fizica... Nu, programarea nu se toceste, se invata logic si practic folosind un stack tehnologic(limbaj + librarii/frameworkuri/diverse alte tehnologii) si anumite cunostinte specifice domeniului (oop, ooad, design patterns, algoritmi, structuri de date, samd). Tot aud niste diletantisme. "inveti doar limbajul" - nu exista cand vorbim de limbaje general purpose de larga raspandire. Nu e ca si cum inveti sintaxa, cuvintele cheie si vreo doua reguli si gata, "ai invatat limbajul". Nu scrii nici macar un "hello world" cu alea. Cand vorbim de astfel de limbaje, mereu exista si o "librarie standard" sau ceva echivalent. Daca spui "stiu java" ca un minim absolut se intelege ca stii Java SE adica specificatia limbajului + stapanirea la un nivel decent al celor mai utilizate api-uri din Java SE + cunostinte de OOP si ceva design patterns. Idem cu Python. Nu stii "python", stii si chestia asta la un nivel decent, respectiv stilul python de a crea programe(nu are suport full oop, e o amestecatura multiparadigma) "nu conteaza limbajul" - alta aberatie de zile mari! fix de limbaj depind o multime de lucruri, de la concepte de paradigma (functional/procedural/oop), la chestiuni punctuale precum multithreading, la frameworkuri disponibile, bune practici ... si multe altele(care ghici ce? iau mult timp de stapanit)! Am putea zicem maxim ca unele se aseamana si poti face tranzitia cu ceva efort gen de la java la c#.net. Povestea aia ca "un programator adevarat se adapteaza la orice limbaj in cateva zile/saptamani/luni" e o aberatie emisa doar de cei care nu au habar ce-i aia dezvoltare reala de software, intr-un mediu profesionist... poate doar sa freci duda cu trei lulele trei surcele in timpul liber (sau in mediul academic, acolo se poarta)... Edited by TruthHurts, 14 February 2019 - 22:45. |
|
#29
Posted 14 February 2019 - 23:34
Quote
Tu crezi ca e cum ai procedat la matematica sau fizica... |
#30
Posted 15 February 2019 - 01:51
TruthHurts, on 14 februarie 2019 - 22:40, said: "python se invata intr-o ora" te exclude de la a avea pareri valabile in legatura cu unde s-ar afla si cum ar arata "suprafata" Tu crezi ca e cum ai procedat la matematica sau fizica... Nu, programarea nu se toceste, se invata logic si practic folosind un stack tehnologic(limbaj + librarii/frameworkuri/diverse alte tehnologii) si anumite cunostinte specifice domeniului (oop, ooad, design patterns, algoritmi, structuri de date, samd). Tot aud niste diletantisme. "inveti doar limbajul" - nu exista cand vorbim de limbaje general purpose de larga raspandire. Nu e ca si cum inveti sintaxa, cuvintele cheie si vreo doua reguli si gata, "ai invatat limbajul". Nu scrii nici macar un "hello world" cu alea. Cand vorbim de astfel de limbaje, mereu exista si o "librarie standard" sau ceva echivalent. Daca spui "stiu java" ca un minim absolut se intelege ca stii Java SE adica specificatia limbajului + stapanirea la un nivel decent al celor mai utilizate api-uri din Java SE + cunostinte de OOP si ceva design patterns. Idem cu Python. Nu stii "python", stii si chestia asta la un nivel decent, respectiv stilul python de a crea programe(nu are suport full oop, e o amestecatura multiparadigma) "nu conteaza limbajul" - alta aberatie de zile mari! fix de limbaj depind o multime de lucruri, de la concepte de paradigma (functional/procedural/oop), la chestiuni punctuale precum multithreading, la frameworkuri disponibile, bune practici ... si multe altele(care ghici ce? iau mult timp de stapanit)! Am putea zicem maxim ca unele se aseamana si poti face tranzitia cu ceva efort gen de la java la c#.net. Povestea aia ca "un programator adevarat se adapteaza la orice limbaj in cateva zile/saptamani/luni" e o aberatie emisa doar de cei care nu au habar ce-i aia dezvoltare reala de software, intr-un mediu profesionist... poate doar sa freci duda cu trei lulele trei surcele in timpul liber (sau in mediul academic, acolo se poarta)... Bineînțeles că limbajul se învață în câteva ore la nivel fundamental, și în câteva săptămâni idiomatic. Exemplu: o firmă avea o grămadă de cod js și deseori apăreau buguri din neatenție. Am determinat că multe dintre acele greșeli ar fi fost prevenite cu un limbaj mai strict. M-am pus pe treabă, am început să rescriu o componentă care se schimba des în typescript. Nu știam o boabă de typescript. După o săptămână aveam ceva funcțional, dar codul scris în ultimele 2 zile era idiomatic, pe când codul din celeilalte zile nu prea. M-am pus pe refactoring. La 2 săptămâni după ce am luat decizia să mutăm frontendul pe ts, aveam o componentă funcțională. Am mai tras un coleg în proiect, i-am arătat ce și cum e idiomatic în ts, și a înțeles din prima. Dacă mie mi-a luat 2 săptămâni să învăț ts idiomatic, lui i-a luat 2 zile. Și apoi am rescris tot frontendul în ts în câteva luni. E doar un exemplu, am multe alte exemple cu alte limbaje. Doar pentru că tu nu îți poți imagina cum ai putea avea această capacitate, nu înseamnă că nu există oameni care nu o au. Firma a plătit fericită și toată lumea a fost mulțumită. După ce ai trecut prin astfel de experiențe cu 5-10-15 limbaje, când știi limbaje formale, un nou limbaj e fix pix. O lectură de 5 minute pe Wikipedia îți face deja o idee clară despre ce poate limbajul: are generics, are funcții variadice, curly syntax, șamd, și gata, te pui pe treabă. Experimente de acest gen am făcut și cu elev de clasa a 11-a. Știa C++, știa PHP, și a făcut ceva util în Python într-o săptămână. Business as usual pentru programatorii competenți, SF pentru alții. |
#31
Posted 15 February 2019 - 03:48
TruthHurts, on 14 februarie 2019 - 22:40, said:
"python se invata intr-o ora" te exclude de la a avea pareri valabile in legatura cu unde s-ar afla si cum ar arata "suprafata" Tu crezi ca e cum ai procedat la matematica sau fizica... Nu, programarea nu se toceste, se invata logic si practic folosind un stack tehnologic(limbaj + librarii/frameworkuri/diverse alte tehnologii) si anumite cunostinte specifice domeniului (oop, ooad, design patterns, algoritmi, structuri de date, samd). Tot aud niste diletantisme. "inveti doar limbajul" - nu exista cand vorbim de limbaje general purpose de larga raspandire. Nu e ca si cum inveti sintaxa, cuvintele cheie si vreo doua reguli si gata, "ai invatat limbajul". Nu scrii nici macar un "hello world" cu alea. Cand vorbim de astfel de limbaje, mereu exista si o "librarie standard" sau ceva echivalent. Daca spui "stiu java" ca un minim absolut se intelege ca stii Java SE adica specificatia limbajului + stapanirea la un nivel decent al celor mai utilizate api-uri din Java SE + cunostinte de OOP si ceva design patterns. Idem cu Python. Nu stii "python", stii si chestia asta la un nivel decent, respectiv stilul python de a crea programe(nu are suport full oop, e o amestecatura multiparadigma) "nu conteaza limbajul" - alta aberatie de zile mari! fix de limbaj depind o multime de lucruri, de la concepte de paradigma (functional/procedural/oop), la chestiuni punctuale precum multithreading, la frameworkuri disponibile, bune practici ... si multe altele(care ghici ce? iau mult timp de stapanit)! Am putea zicem maxim ca unele se aseamana si poti face tranzitia cu ceva efort gen de la java la c#.net. Povestea aia ca "un programator adevarat se adapteaza la orice limbaj in cateva zile/saptamani/luni" e o aberatie emisa doar de cei care nu au habar ce-i aia dezvoltare reala de software, intr-un mediu profesionist... poate doar sa freci duda cu trei lulele trei surcele in timpul liber (sau in mediul academic, acolo se poarta)... si atunci daca am un algorithm care trebuie redactat in diferite limbaje de programare atunci la nivel de project management a unui algorithm voi avea: inteface Algorithm {...} public abstract class Limbaj1() implements Algorithm {....} public abstract class Limbaj2() implements Algorithm {....} Aceasta este tendinta in viitor si la noi, in corporatii.Cautam ingineri proiectanti de software sau informaticieni pe care sa-i transformam in ingineri proiectanti de software. Adica sa fie capabil la inceput, sa redacteze acelasi algoritm in diferite limbaje de programare sau limbaje de scripting, unele la prima vedere la acealasi salariu. Astfel de specialisti se numesc programatori-poligloti, a caror experienta si maturitate in meserie au ajuns la un asemenea nivel incat pot sa implementeze algoritmul respectiv in orice limbaj de programare, chiar si necunosut la prima vedere. Ba iti mai zic o chestie: se cauta acum si programatori care pot face repede conversia unui algorithm redactat din paradigma OOP in paradigma de seturi(SQL fara cursoare) sau in alta paradigma functionala de exemplu. In echipa mea toti suntem programatori poligloti. Edited by BraviaAmpero, 15 February 2019 - 04:00. |
#32
Posted 15 February 2019 - 08:13
TruthHurts, on 14 februarie 2019 - 22:40, said:
"nu conteaza limbajul" - alta aberatie de zile mari! fix de limbaj depind o multime de lucruri, de la concepte de paradigma (functional/procedural/oop), la chestiuni punctuale precum multithreading, la frameworkuri disponibile, bune practici ... |
#33
Posted 15 February 2019 - 10:53
Uite asa se invata: https://ocw.mit.edu/...mputer-science/ Si desi daca te straduiesti, o sa vezi si ceva limbaje particulare pe acolo (cum ar fi asta: https://ocw.mit.edu/...nuary-iap-2010/ ), de fapt scopul poate fi altul decat invatatul limbajului in sine ("The remaining lectures will focus on more advanced concepts, such as dynamic memory allocation, concurrency and synchronization, UNIX signals and process control, library development and usage."). Si bineinteles ca un individ care invata o meserie, va trebui cumva sa invete si despre sculele/instrumentele folosite in acea meserie... sa-ti imaginezi ca ajunge, e ca si cum ai crede ca ajunge sa stii bine pensula (eventual si 'tehnologiile', aka despre panze, culori, etc) si o sa poti sa te dai Leonado da Vinci. Asa ajungi maxim zugrav.
E instructiv de selectat 'graduate' in link-ul de mai sus... Edited by parabellum, 15 February 2019 - 10:53. |
|
#34
Posted 15 February 2019 - 10:59
Este posibil sa fii foarte bun la mai multe limbaje ?
Cand lucrezi undeva, folosesti o tehologie pe care o intelegi foarte bine, restul depinde de inteligenta si creativitate. Dar daca ai experienta pe un limbaj si stii sa faci ceea ce ti se cere pe acel limbaj iti este foarte usor sa inveti un limbaj nou. |
#35
Posted 15 February 2019 - 13:40
#36
Posted 15 February 2019 - 13:51
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users