Afflitto dall'indecisione: come scegliere le tecnologie da utilizzare per i progetti? [duplicare]

11

Sono sempre stato affascinato dalle nuove e migliori tecnologie disponibili. Mi sono diplomato al college quest'anno, e nel corso degli ultimi anni ho passato molto tempo ad imparare nuovi linguaggi di programmazione, framework web, distribuzioni Linux, IDE, ecc., Nel tentativo di trovare il meglio di ciascuno.

Ho installato e giocato con Ubuntu, Gentoo , Debian , Arch Linux , SUSE , VectorLinux , Puppy Linux , Slackware e Fedora , ho trascorso un bel po 'di tempo in Vim ed Emacs, e ho giocato con Visual Studio, Eclipse , NetBeans , gedit e molti altri più oscuri.

Ho suonato con tutti i tipi di linguaggi - ho iniziato con quelli comuni come C, Java, Visual Basic, ma ho sempre sentito che erano "cattivi" (per le relative definizioni di cattivo). Ho quindi scoperto i linguaggi di scripting e ho un bel po 'di esperienza in PHP , Perl , Python e rubino . Poi ho sentito che le lingue funzionali sono dove si trova, quindi ho giocato con Schema , Lisp , Haskell , Erlang e OCaml . Ho giocato con linguaggi oscuri come Forth e J . Quando faccio sviluppo web, vado avanti e indietro tra framework e lingue. Dovrei usare PHP semplice, Ruby on Rails , Django , CakePHP , CodeIgniter , Yii , Kohana , o crea il mio?

Ho una conoscenza molto ampia e superficiale dell'informatica. Non appena ho imparato una quantità utile di una tecnologia, vedo qualcos'altro lucido e me ne vado dietro. La mia progressione spesso va così: "Perl è meglio di PHP, ma aspetta, Python è meglio di Perl. Oh, ma ora vedo che Ruby ha il potere di Perl ed è più bello di Python. Beh, ora che ho visto un po 'di Ruby, è troppo complicato, Python è più pulito Oh, ma è troppo difficile distribuire Python, quindi dovrei usare PHP se voglio fare un vero sviluppo web. " E così via e così via.

Quale tecnologia dovrei usare per i progetti? Dovrei scegliere solo una lingua / framework / IDE e dimenticare le altre cose che sono disponibili per un po '? Non ho molto altro in termini di progetti completati, perché non sto mai con qualcosa di abbastanza lungo per finirlo.

    
posta davidscolgan 09.10.2010 - 04:49
fonte

5 risposte

15

Interrompe lo slittamento delle biciclette e inizia la programmazione.

Questo potrebbe sembrare cliché, ma è vero: i buoni strumenti non rendono buoni i programmatori cattivi, e gli strumenti cattivi non rendono i programmatori buoni cattivi (nonostante ciò Dijkstra dice). Puoi spendere il 90% del tuo tempo bicihedding sulla tecnologia X rispetto alla tecnologia Y e non ottenere nulla. Oppure puoi scegliere X (o Y, non importa) e usarlo per fare del vero lavoro e ottenere un'esperienza utile.

Scegli semplicemente un set di strumenti e acquisiscili, anche se presentano alcuni inconvenienti.

Una volta che hai veramente padroneggiato i tuoi strumenti (cioè, fai più di una mezza dozzina di progetti in essi), puoi giocare con gli altri per provarli. In realtà, si consiglia di farlo; non vuoi essere uno zelota che vede tutte le altre opinioni come sbagliate. E a volte, potresti decidere che un altro strumento valga davvero la pena rispetto al tuo strumento attuale.

Se non riesci a decidere cosa scegliere da solo, un buon modo per porre fine al tuo dibattito interiore è lasciare che gli altri scelgano per te. Ad esempio: Python, Django, jQuery, Vim e Debian . Ora vai e imparali.

    
risposta data 09.10.2010 - 09:14
fonte
8

Tendo ad essere d'accordo con Carson. Non mi sono esposto a tutte le tecnologie che possiedi. Ho fatto il play-around-con-CMS e anche PHP vs Python (stessa reazione: troppo difficile per andare avanti). E tutto il tempo, ho tutte queste idee che mi saltano in testa per trovare siti web, registrare domini, ecc.

E finalmente mi sono reso conto, nell'ultimo anno, che il mio problema è che nessuna delle idee reali per i progetti ha preso pienamente piede nel mio "cuore". Finalmente ne ho uno, e ora sto cercando di capire cosa userò. Penso che sarà un processo abbastanza veloce.

Sul lato positivo, passare così tanto tempo a dilettarsi in giro può solo avvantaggiarti con uno skillet correlato e utile ... a differenza della carena da hobby non correlato a un hobby completamente indipendente. ;)

    
risposta data 09.10.2010 - 07:16
fonte
6

I have a very broad and shallow knowledge of computer science.

Questo è il tuo problema. Scegli una lingua e resta con essa . che cosa stai sviluppando? Vuoi una vasta gamma di copertura? Scegli PHP. Vuoi girare la tua carriera ai piedi? Scegli Rubino. (Scherzando, forse).

Non esiste una lingua "corretta" da scegliere, scegli quella con cui ti trovi a tuo agio.

    
risposta data 09.10.2010 - 08:38
fonte
5

Should I just pick one language/framework/IDE and sort of forget about the other things that are available for awhile?

In sostanza, sì.

Se continui a fluttuare tra le tecnologie, non avrai mai la profondità di esperienza di cui hai bisogno per diventare uno sviluppatore efficace in ognuna di esse. E quando tutto è stato detto e fatto, mentre nessuna tecnologia è perfetta, molti di loro sono abbastanza buoni per portare a termine il lavoro ... a seconda del lavoro.

I don't have all that much in the way of completed projects because I never stay with something long enough to finish it.

Avrai bisogno di imparare ad affrontarlo, specialmente se aspiri ad essere uno sviluppatore di software professionale. Nessun boss vorrebbe mai assumere qualcuno che non ha l'autodisciplina per completare i progetti.

    
risposta data 09.10.2010 - 08:31
fonte
2

Le persone hanno detto "non esiste una lingua corretta da scegliere", ma potresti voler prendere in considerazione alcuni criteri quando ne scegli uno. Ad esempio, ho avuto problemi in passato avendo sviluppato un grosso progetto in Rails, trovando che al momento era piuttosto difficile trovare qualcuno che ospitasse Rails e che dovevo fare un sacco di configurazione e configurazione del server da solo. Quindi, in base a ciò che stai progettando di costruire, potresti trovare valore nel considerare il tipo di prestazioni di cui avrai bisogno, se avrà bisogno di essere ospitato e se non sarà se avrà dei prerequisiti che devono essere installato sul computer dell'utente finale affinché funzioni. Se miri a indirizzare una determinata piattaforma, quale piattaforma sarà? Se hai intenzione di essere multipiattaforma, ciò influenzerà le librerie e le lingue che sceglierai.

Pensare a quello che stai per fare e a come ti aspetti che funzioni può essere una guida molto utile su quale lingua vuoi lavorare.

    
risposta data 09.10.2010 - 10:56
fonte

Leggi altre domande sui tag