Hvor god er en gennemsnitlig professionel programmør?


Svar 1:

Helt ærligt, dette er ret gode ting.

Jeg ser, du bruger JavaFX, fremragende. Hvis du ikke bruger FXML, skal du hente Scene Builder og begynde at bruge det nu. Selv tak.

En chatklient og server er en stor præstation for en begynder, faktisk er den temmelig god generelt.

7 tråde er helt fine i denne dag og alder, ikke bekymre dig om det.

Jeg synes, du har det rigtig godt, og lykønsker dig med at lave et program, der faktisk gør noget!

Få serveren til at arbejde og test med et par klienter, der chatter på samme tid. Derefter kunne du se på forbedring af brugergrænsefladen. I JavaFX har du ting som 'VBox', som er som en 'stack', hvor du kan placere andre kontroller. Du kan overveje at have en VBox i siden af ​​en ScrollPane, og udfylde VBox med kontroller for hvert chatindlæg, farve dem anderledes for hver bruger osv. Måske have forskellige avatarer eller noget.

Hvis du vil udvikle det yderligere, skal du tjekke kryptering i disse dage for at have en god chat-app, krypterer du * alt *. Der er masser af Java-biblioteker, der kan gøre det for dig.

Fremragende arbejde, godt klaret.


Svar 2:

Det er et virkelig interessant spørgsmål: hvor god er en gennemsnitlig professionel programmør?

Lad os sige, at professionel betyder, at det er deres fuldtidsjob. Jeg kan forestille mig, at den gennemsnitlige professionelle programmør har 10-15 års erfaring. Jeg forventer, at de har i størrelsesordenen 15.000 timers professionel kodning og programmeringsrelaterede opgaver under deres bælte.

Så sandsynligvis temmelig godt.

Det er ikke sådan, at de kan skrive noget som et chatprogram så meget

hurtigere

end du gjorde - det er at de skriver det

forskelligt

, og for et større publikum. Mere indsats vil gå til at specificere det, designe det.

  • De samler krav og sørger for, at designet fungerer på de enheder og operativsystemer, det skal til, med en række skærmstørrelser.
  • De vil sikre, at det fungerer hjemmefra, via VPN, inden for et virksomhedsnetværk og så videre.
  • De vil sandsynligvis gøre en slags godkendelse og kryptering for deres netværkstrafik.
  • De har en måde at se, hvem der er tilgængelige at chatte med, og finde ud af, hvor den pågældende persons aktuelle chatendepunkt er.
  • De skal logge for at fejlsøge, når noget går galt.
  • De har en opdateringsmekanisme.
  • De har et udtømmende sæt enhedsprøver.

Og så videre.

For nu skal du ikke bekymre dig om, hvor god eller dårlig alle andre er. Hvis du kan lide programmering, skal du fortsætte med programmering og læring. Og ikke bekymre dig om alt det her ovenstående. Det er hvad du gør, hvis du planlægger at sælge din kode, eller hvis du får betalt for at udføre alt det ekstra arbejde.

Hvis du bliver modløs, skal du minde dig selv, hvor mange timers erfaring hver programmerer havde, da de først startede, inden den lange march ind i middelalderen ...


Svar 3:

For et første program, der slet ikke er dårligt. Jeg kan huske mit første program, der var grundlæggende på en Commodore 64. Jeg brugte ikke 14 timer på det, men det var bestemt ikke mere smukt end at låse skærmen, der spyttede ud mit navn.

Når det er sagt, da du spørger. Lad os glemme tid et øjeblik. En god programmør tænker ikke på, hvor mange minutter han eller hun plejede at komme til et resultat. Det betyder ikke noget i sidste ende. Det virkelige spørgsmål er: Hvor lang tid sparer folk over hele verden ved hjælp af denne aktuelle version af programmet.

Og det er derfor, jeg til tider bruger flere dage på at barbere mig 3 museklik. For hvis flere tusinde mennesker vil tilbringe hver dag flere timer med at bruge de ting, jeg laver, betyder de 3 museklik meget.

Så lad os se på dit program på den måde. (Og jeg skal være så blød og opmuntrende som muligt). Hvis jeg er nybegynder, der bruger dit program, vil jeg først vide, hvorfor jeg bruger det. Så hjælpefiler eller velkomstskærme generelt skildrer nogle følelser, som folk får ved at bruge den.

Hvad med: Chat direkte med dine venner, uden at regeringens øjne ser på, bla bla bla. Men du ser, pludselig er der en gyldig vinkel eller frygt, som dit program kunne hjælpe med.

Brugere er ... doven. Så det er dejligt at have et par kasser mere på en separat skærm. Måske som en startskærm, der forklarer, hvad der vil ske med en knap, fortsæt.

Hvis der trykkes på knappen Fortsæt, viser den en liste over tidligere tilsluttede personer og en NY knap, og når en bruger først har valgt, går den til næste skærm.

Hvis den tidligere forbindelse tilsluttes, eller fortæller, om den mislykkes. Hvis det mislykkes, går det tilbage til listen over tidligere forbindelser.

Hvis nyt, tillader det nogle lette bokse, hvor man kan placere serverens / portens adresse og en forklaring af, hvad dette betyder. Du ved måske, hvad det gør, men du kan satse på det, at de fleste mennesker ikke har den svageste ledetråd.

Hvis forbindelsen er vellykket, kunne det vise en vis status og tekstfeltet til at sende meddelelser.

PS: hvis du har nået det her. Jeg advarede om, at jeg opdagede et lille problem. Hvordan kender du din IP-adresse? Tænk over det et øjeblik. Hvis svaret er: Jeg kiggede det op med WindowsKey + R efterfulgt af cmd / k ipconfig / all, kan du muligvis se det virkelige problem. De fleste af os lever bag routerens sikkerhed. Samtlige lokale IP-adresser er inden for området 192.168 / 16 eller 172.16 / 12 eller 10/8 området (det er maskenes nettonummer og længde). Det bliver værre. Dette betyder, at IP-adressen er sikker, fordi ingen pakke nogensinde vil blive dirigeret til denne. Det bliver værre. Det gør dit chatprogram ... godt ... lokal chat. Så for at redde dit program er du nødt til at finde måder at registrere routeren uden for IP-adressen. Så som at lave en knap, der guider til et websted, der afslører antallet.

Hvad er min IP - IP Addr

ess Eksperter - WhatIsMyIP.com ®. Når du først er på dette websted, skal du have en mekanisme til at distribuere sådanne adresser. Rent praktisk betyder det, at du skal have noget som TeamViewer gør. Et unikt nummer, der identificerer hver person med et centralt opslagsside, der fanger det eksterne nummer og gemmer det med det unikke klientnummer.

Alligevel, stort forsøg første gang. Fortsæt. Du bliver fremragende til det.

Få det til at ske.


Svar 4:

Jeg ved ikke, hvor folk får denne idé om, at flere antallet af linjer i din kode er bedre. Jeg kan huske et eksempel, hvor nogle i starten af ​​1980'erne Apple ville måle ydeevnen for en programmerer med antallet af kodelinjer, de ville skrive hver dag. Steve Wozniak, var den fyr, der var bedrøvet. Han sagde i en af ​​interviewene, at han kan gøre ting på 10 linjer, hvad andre gør i 100 linjer.

Så når det kommer til tinget, betyder det ikke noget, hvor mange kodelinjer, du skriver til daglig, det, der betyder noget, er, hvor god din kode er. Følger du princippet om KISS (Keep it Simple Silly) eller ej. Som programmerer bruger det meste af min tid på at tænke, hvordan ville jeg implementere et modul på den mest effektive måde.

Programmering er ikke blot at tilføje antal linjer til kode, det er den tid, du bruger, mens du sover, spiser, mens du tager en tur. Det meste af tiden drømmer jeg om kode, det kommer i dit daglige liv. Jeg kan huske, at jeg plejede at tænke, hvordan jeg skulle implementere systemet, mens jeg kom tilbage til mit hjem efter arbejde. Jeg har set gode programmerere tilføje 50-100 linjer kode hver dag. Oh Boy, disse linjer er fantastiske. De bruger mere tid på arkitekten af ​​deres kode snarere end faktisk at skrive. Opbygning af et effektivt system kræver omhyggelig og fornuftig kodning.

Så start med at lære algoritmer, analyser dem, udfør mere konkurrencedygtig kodning,

SPOJ

ville være et godt sted at starte. Begynd med at udføre euler-problemer, se hvor god du er. Lær de forskellige nuancer inden for softwareteknik, og en dag bliver du bedre softwareprofessionel.

Jeg lærer stadig kunsten :)


Svar 5:

First off, Kudos på dit første program ..

Jeg ved ikke, om der er en enkelt metrisk, der kan måle 'programmets' godhed. Jeg har kodet i de sidste 6 år, og jeg finder ud af, at jeg hver dag lærer noget nyt, der sprænger mit sind. Én ting, som jeg gerne vil påpege, lige fra flagermus, er, at der er en fin linje mellem blot kodning og Software engineering. I det øjeblik du sætter pris på dette, vil du lære, at det ikke er så meget, hvor mange kodelinjer, du skriver, eller hvor lang tid det tager at skrive dem, der tæller.

Softwareudvikling involverer forståelse af problemer og modellering af dem på passende måde og komme med brugbare løsninger på de nævnte problemer.

Som softwareudvikler skal du bekymre dig om visse ting, såsom kodeeffektivitet, vedligeholdelsesevne, hvor udtryksfuld koden er, bedste praksis under kodning, bedste sprog at bruge, bedste ramme at bruge, databasedesign, datastrukturer og algoritmer til brug , og samlet stak, der skal bruges til et projekt. Du skal komme med ordentlige teststrategier, optimale implementeringsstrategier, blot for at nævne nogle få.

Så nej, jeg ser ikke en enkelt metrisk, der kan udtrykke, hvor god en koder er.

Som en ny programmør vil jeg anbefale dig at prøve at få så meget eksponering af branchen som muligt, fordi der er så meget at lære, og tingene ændrer sig ved en sådan svimlende hastighed.

Men hvis du bare vil se, hvordan awesome coders kan blive, anbefaler jeg, at du tilmelder dig nogle online kodningskonkurrencer som f.eks

Google Code Jam

Dette er åbent for registrering i øjeblikket.

Her finder du fyre, der skriver kode for at løse komplekse problemer i færre linjer, end du nogensinde troede var muligt, og på kortere tid end du kan forestille dig ...

Du vil se, at dit valg af programmeringssprog vil påvirke meget på, hvad du kan eller ikke kan gøre, hvor let det er at gøre visse ting, og at du altid skal bruge et sprog, som du er mest tilpas med.

Til sidst vil jeg gerne lykønske dig med den rejse, du er ved at gå i gang, jeg håber, at du finder det så givende, som mange af os har.

Skål


Svar 6:

En gennemsnitlig professionel programmør er så god som en gennemsnitlig barista eller groce: så elendigt forfærdelige, at der er lovlige foranstaltninger på regeringsniveau for at hjælpe med at støtte dem, såsom arbejdsret eller mindsteløn.

Hvis vi definerer "professionel" som en person, der tjener penge på deres arbejde, kan jeg med sikkerhed hævde, at mere end halvdelen af ​​de professionelle programmerere har det bedre med at holde sig væk fra professionel programmering.

Og ja, jeg har erstattet gennemsnittet med median i mit svar. Gennemsnitlig programmerer ville dog først have bemærket det før dette sidste afsnit. Selv tak.


Svar 7:

Antal kodelinjer bestemmer aldrig, hvor god programmerer du er.

En god programmør vil altid skrive koden smart ved smart. Jeg mener at sige mere effektivt efter korrekt programmeringsparadigme, ved hjælp af passende datastruktur, reducere tid og rumkompleksitet og smart programmering vil generelt føre til en mindre kodelinje :)

for eksempel kortprogrammet: -

  • offentlig statisk tomrom fibo (String args [])
  • {
  • int n1 = 0, n2 = 1, n3, i, count = 10;
  • System.out.print (n1 + "" + n2);
  • for (i = 2; i
  • {
  • n3 = n1 + n2;
  • System.out.print ("" + n3);
  • n1 = n2;
  • n2 = n3;
  • }
  • }

den smartere måde bliver.

  • statisk int n1 = 0, n2 = 1, n3 = 0;
  • statisk tomrom fibo (int count) {
  • if (count> 0) {
  • n3 = n1 + n2;
  • n1 = n2;
  • n2 = n3;
  • System.out.print ("" + n3);
  • fibo (tælle-1);
  • }
  • }

Disse ting kommer med praksis og tid, så hold kodning og nyd :)