Diventare un programmatore professionista, senza andare al college? [chiuso]


16

Di recente sono stato respinto da un college che mi aveva precedentemente accettato, per il fatto che avevo trascorso un anno di liceo in un paese straniero e il college non era interessato a riconoscere l'istruzione ricevuta in un'altra nazione. Per questo motivo una borsa di studio molto generosa si è prosciugata e il finanziamento di un'istruzione è dubbio. Sono anche riluttante a far parte di un sistema che ha dimostrato quella che considero una palese xenofobia.

Quello che voglio fare è dire "Screw college", mettermi in proprio e fare qualcosa di straordinario, stupire tutti e diventare un milionario che si è fatto da solo. La realtà della situazione è che sono a due settimane dal liceo, ho circa l'equivalente di un corso di introduzione alla programmazione di esperienza autodidatta (anche se sono spinto a imparare e migliorare), ho ancora bisogno di pagare e ho il sospetto furtivo che qualsiasi datore di lavoro avrà difficoltà a prendermi sul serio.

A quanto ho capito, è una convinzione abbastanza popolare che puoi farcela senza una laurea, ma come fa qualcuno come me? Qualcuno mi prenderebbe sul serio se entrassi nel loro ufficio e dicessi "Non ho un'istruzione formale e un minimo di competenze, ma voglio lavorare e voglio imparare. Per favore, dammi un lavoro".


3
Perché non vai al college della comunità e poi trasferisci in un'università. È la strada più economica per ottenere una laurea.
davidk01,

1
Riesci a rifare quell'anno di scuola superiore nel tuo paese e poi aprirti tutte le strade regolari? Se ti annoi la seconda volta, puoi sempre iniziare a programmare quei progetti che sospetti ti renderanno milionario. Tuttavia, ai giorni nostri, meglio andare al miliardario.
John K,

2
non devi prendere un rifiuto da un personale burocratico del college, come se provenisse da un professore. I professori di solito sono coinvolti solo nella scelta degli studenti laureati. Se fossi in te, risponderei educatamente, contattando il college e chiedendo loro cosa ci vorrebbe per dimostrare la tua abilità e poi consegnare). L'istruzione superiore è finanziata dai contribuenti, quindi farei un altro anno come qualcuno ha suggerito. prenderei anche in considerazione l'idea di andare al college della comunità per un paio d'anni, come ha detto qualcun altro. La domanda è: apprezzi di più il tempo o il denaro? Buona fortuna a te!
Giobbe

Risposte:


27

Sono stato nella tua stessa posizione, e ho scelto la strada del "college vite" di cui parli. Ho amato lo sviluppo del software, un hobby C ++ in cima ad un corso di programmazione HS di base e sogni. Ora sono uno sviluppatore professionista, quindi ti darò la mia esperienza.

Dopo essere andato al college per 1 anno (avevo una borsa di studio completa per il teatro tecnico), ho capito che mi piaceva il software più che la costruzione di set.

Anno 1- Ho iniziato la mia "cosa personale" che consisteva nel supporto desktop per pagare l'affitto e lo sviluppo. Sviluppando qualsiasi cosa potessi fare, per chiunque lo desiderasse, a una frazione del prezzo. Guardando indietro probabilmente stavo facendo $ 20.000 per $ 1.000. Iniziare da soli fa davvero schifo perché anche se hai avuto l'esperienza di sapere che si tratta di un'app da $ 20.000, non hai la credibilità per richiederla. E, peggio di tutto, non ho idea di cosa non conosca e nessun altro sviluppatore intorno a me. Ho creato applicazioni che erano incubi di manutenzione. Non avevo abilità in architettura o modelli di progettazione, quindi fondamentalmente ho fatto cose che sono esplose e fatto supporto di rete per pagare le bollette. Un sacco di Taco Bell, mescolato con "beh, almeno non sto lavorando per l'uomo". Ho dei sogni di app da scrivere e uscire nel mondo,

Anno 2 : diventare uno sviluppatore leggermente migliore imparando cosa non fare e guardando le cose esplodere in faccia. Passare a malapena sul supporto desktop, sui server di apprendimento e sulla creazione di siti Web. Deve essere più semplice di questo lavoro per l'uomo, ma non ho un portafoglio reale, quindi, continua.

Anno 3- Iniziare a capire come funziona. Quando premo File> Nuovo progetto, ho una vaga idea di dove voglio andare e come costruire le cose. Sempre scegliendo le architetture sbagliate, i servizi web sembrano piuttosto interessanti, quindi perché non costruire TUTTO con quelli? Hai bisogno di un'app desktop per calcolatrice? Costruirò un servizio web! Iniziando a raccogliere alcuni clienti e ad essere il ragazzo IT e alcuni progetti software lungo la strada. Una cosa che ho fatto è stata creare un servizio di backup offsite utilizzando i servizi Web, quindi il mio sogno era di essere un "Mozy" mentre tutti scambiavano ancora nastri. La banda larga stava diventando un luogo comune, quindi ero davanti alla curva e questa sarebbe stata la mia idea da un milione di dollari. Ma il servizio ha avuto problemi (a causa della mia mancanza di abilità nell'architettura),

Anno 4 - Infine, un cliente crede in me per un progetto a lungo termine. Riesco a farlo senza sbagliare male; il codice non è eccezionale ma funziona. Cominciando a farmi prendere dalle bollette, riesco a lavorare con alcuni altri sviluppatori (fingilo finché non ce la fai, giusto?) E anche rispondendo ad alcune domande di scambio di esperti. O si.

Anno 5 - Se non lo avevi notato ormai, quei sogni nell'anno 1 non sono ancora scritti, quindi sta iniziando a diventare un po 'deprimente. Ho un discreto portfolio di cose che ho scritto con successo, ho avuto un discreto slancio e una rispettabile base di clienti. Ancora non so davvero cosa non conosco e pareggio.

Anni 5 - 8 - Li combinerò poiché è più o meno lo stesso di "fai un progetto, impara un po 'su ciascuno, porta quell'esperienza al prossimo". Oggi è verso la metà dell'anno 8, ed è solo nell'ultimo o due anni che sono diventato un buon sviluppatore. Quei sogni nell'anno 1 sono già stati inventati molte volte da qualcun altro. Nel caso in cui non avessi indovinato, non ho creato Mozy.

Lungo la strada ho avuto nuovi sogni e nuove idee, e alcuni sono stati buoni, altri sono stati orribili. Ora ho le capacità per farli accadere, e alcuni di loro stanno accadendo, ed è eccitante. Tuttavia, ho la sensazione che se avessi fatto le cose diversamente avrei potuto abbreviare un po 'questo viaggio.

Non posso parlare di come diversamente il college cambi questo viaggio; Lo lascerò ad altri su questo thread. Ma i consigli che darò:

  1. Devi lavorare con altri sviluppatori. Non mi rendevo conto di quanto fosse importante. Non sai cosa non sai fino a quando non guardi il codice di qualcun altro o ottieni un'orribile recensione del codice.
  2. Fallire prima di avere importanti responsabilità. Se vuoi davvero uscire da solo, prova a farlo prima di sposarti, avere un pagamento della casa, figli, ecc. Fallirai e fallirai molte volte. Abituati e valorizzalo perché è la migliore esperienza di sempre. Ma quando la tua app killer su cui hai appena speso tutto il tuo tempo e denaro non ha un solo cliente, è molto più facile recuperare quando sei solo tu.
  3. Non c'è assolutamente nulla di sbagliato nel bootstrap. Se hai competenze di rete, vai a lavorare in un Network Operations Center o in un helpdesk (qualcosa all'interno del regno dell'IT) e lavora per diventare uno sviluppatore migliore fuori orario e nei fine settimana. Crea connessioni con persone che svolgono lavori reali. Ne avrai bisogno in seguito.
  4. Assicurati al 125% di AMARE lo sviluppo del software. La passione per il software viene prima della parte "milionaria", non viceversa. Se non hai una passione per questo, o il tuo cuore non inizia a battere un po 'più veloce quando colpisci Nuovo Progetto, vai a fare qualcos'altro e tienilo come un hobby.

Sono sicuro che potrei continuare, ma la cosa divertente è che ho visto questa domanda mentre lavoravo su uno di quei sogni e ho dovuto rispondere a questo. :) In bocca al lupo.


6
Come sviluppatore web autodidatta posso essere d'accordo sul fatto che il punto "Non sai cosa non sai" è particolarmente valido.
Ben Stephenson,

5
+1 per "Fallire prima di avere importanti responsabilità". Sono autodidatta e ho passato anni a lavorare a progetti freelance la sera prima di ottenere un ruolo a tempo pieno. Ripensandoci, non cambierei nulla, ma se per qualche evocazione del destino avessi incontrato la mia signora all'inizio del processo, so che non mi sposerei tra un paio di mesi, 80-100 settimane non funzionano troppo bene una relazione.
DBlackborough,

16

Senza dubbio, vai al college.

Personalmente, l'ho fatto senza l'università (senza dire che sono milionario, ma ho un buon lavoro con un'azienda per cui amo lavorare), ma è una strada difficile . Inizialmente, sei dietro la curva di tutto . Matematica, algoritmi, sistemi operativi, tutte le cose che ottieni durante un'istruzione formale (e alcune delle quali, ad esempio Calculus, sono molto difficili da imparare sul tuo, anche con l'accesso a cose come la matematica.SE).

Essendo appena uscito dal liceo, potresti essere in grado di entrare in un dipartimento di controllo qualità e iniziare a immergerti in tutto ciò che puoi. Il percorso dal QA allo sviluppatore o ingegnere può essere difficile, dato che c'è una generalizzazione (a volte scarsa) fatta sulle persone che provengono dal QA che cercano di entrare in un percorso di sviluppo.

Raggiungerlo senza una laurea è fattibile, ma tremendamente difficile e richiede tanta fortuna e networking quanto la pura abilità.

Anche se amo quello che faccio e sono orgoglioso dei miei risultati personali, non lo consiglierei mai a chiunque abbia le capacità e sia in una buona posizione per seguire un corso di laurea.


+1 Non sono andato al college da solo, ho lasciato presto la scuola e ho dovuto superare molti problemi quando ho iniziato come sviluppatore di software senza le credenziali richieste. Comunque quel percorso mi ha fatto sentire come sono oggi e mi piace come sono oggi! Mi piace così tanto imparare che sto per iniziare gli studi universitari (in un altro campo)!

3
Non sono d'accordo. Sono entrato a tempo pieno nello sviluppo di software professionale senza una laurea e penso che tutto dipenda dall'individuo. Odio l'istruzione formale e strutturata e preferisco di gran lunga apprendere mentre realizzo le cose. So che non sarei mai stato in grado di superare il college (anche se avevo i voti per entrare in uno decente), semplicemente perché è tutto così teorico e, beh, inutile. Quindi, se non sei il tipo di persona che si godrà la struttura del college e sei un autodidatta fiducioso (che dovresti essere come sviluppatore per essere onesto), allora il college non è necessario.
Ben H,

L'istruzione formale è una racchetta. La teoria, come ha detto Ben, è inutile a meno che tu non stia lavorando a titolo accademico. Non riesco davvero a capire l'ossessione della gente per l'istruzione formale e passare 4 anni a tenere lezioni tra gli altri 30 studenti, invece di passare quei 4 anni applicando ciò che stai imparando. Non impariamo facendo? Non solo, perché dovrei passare 4 anni in una laurea, ereditare un debito schiacciante, per poi seguire una carriera e risparmiare per la pensione? Perché non dovrei solo costruire la mia compagnia? Guadagnare i miei soldi? Utilizzare gli strumenti che voglio usare? Il concetto di occupazione è ridicolo.
Damien Roche,

4

Con il tuo curriculum attuale, non otterrai un lavoro come sviluppatore, quindi non preoccuparti nemmeno.

Se non puoi, o non vuoi, andare al college, dovrai fare un'esperienza da solo. È un modo difficile per farlo, ma può essere fatto. Le app mobili sono un buon modo per iniziare, poiché puoi mettere il tuo prodotto di fronte a utenti reali molto facilmente. Contribuire a progetti open source potrebbe essere un'altra opzione. O semplicemente scrivere qualcosa per uso personale. All'inizio non guadagnerai nulla da questo, almeno non abbastanza per guadagnarti da vivere, quindi probabilmente avrai bisogno anche di un lavoro regolare. Tieni d'occhio le opportunità per ottenere un'istruzione economica; alcuni college ti permettono di seguire corsi senza credito per una frazione delle lezioni regolari.

Fallo per alcuni anni, quindi puoi iniziare a inviare curriculum. Supponendo che tu voglia ancora fare questa merda per vivere.

In bocca al lupo.


3

Hmm ... questo è difficile. Penso che dipenda davvero dalla tua natura di persona.

Se conoscessi davvero il contenuto di circa 6 o 8 libri, saresti uno sviluppatore molto solido (anni oltre ciò che viene prodotto dalla maggior parte dei programmi CS - sul serio). Prendi sul serio i fondamenti; molto sul serio - come una religione sul serio (KR potrebbe essere la tua bibbia).

L'idea di realizzare piccoli progetti è buona. Cerca sempre di migliorarti - scegli un paio di ecosistemi e imparali bene (1 - dì ROR o Django su Linux con mysql e 2. iOS / Objective C; 2.5. - lancia jQuery / HTML).

modifica --- dalla cima della mia testa, suggerirei la lista qui sotto (in ~ questo ordine); Ne ho 9 ma uno è un libro di matematica, uno è un libro di scripting / Java e l'ultimo lo considero facoltativo. Ci sono un paio di argomenti oltre a questo che verranno trattati in Joel on Software. Penso che questo ti renderebbe uno sviluppatore molto forte - sono sicuro che altri non sarebbero d'accordo.

  1. Il linguaggio di programmazione C - Kerrigan e Ritchie - la maggior parte degli altri libri è una spiegazione dei problemi sollevati qui
  2. un buon libro di scripting nella lingua che preferisci (Ruby, Python, PHP) o libro Java
  3. Computer Systems - A Programmers Perspective - questo libro continua a dare e dare
  4. Matematica discreta con applicazioni - Epps (?)
  5. Programmazione avanzata in ambiente UNIX
  6. Un libro di machine learning / AI potrebbe essere Pattern Recognition e Machine Learning OPPURE un libro di networking dedicato come TCP / IP illustrato vol # 1
  7. Modelli di design o modelli di design J2EE
  8. Algorithm Design - Kleinberg
  9. Comprensione del kernel Linux - facoltativo

Che cos'è KR? È questo un libro?
Ominus,

2
@Ominus Credo che si riferisca a "Il linguaggio di programmazione C" - en.wikipedia.org/wiki/The_C_Programming_Language

@Glenn +1 Grazie! @timpone quando dici 6 o 8 libri ne hai in mente o in generale? Se stai pensando specificamente a libri specifici, mi piacerebbe vedere l'elenco. Grazie.
Ominus,

@Ominus Personalmente direi che anche i libri relativi ai tuoi linguaggi di programmazione che usi e i libri di questa domanda ( programmers.stackexchange.com/questions/870/… ) sono buoni da avere.

1
@timpone: Ah, mancato # 7 :) E sì, ovviamente non siamo d'accordo, il che va bene (alcune delle migliori conversazioni nascono da disaccordi :))
Demian Brecht,

2

Ho iniziato come uno di quegli sviluppatori di vite universitarie. Oggi sto finendo il college, anche se ho un buon lavoro ben pagato come sviluppatore.

Ho iniziato a giocare con la programmazione per computer quando avevo circa 9 anni. Negli anni '90 ho guadagnato alcuni soldi creando siti Web per amici e questo mi ha dato un'esperienza di prima mano con il primo web (ho giocato con javascript, ero piuttosto confuso quando si sono presentati i CSS, ecc.).

Quando ero adolescente ho deciso che era tempo di imparare a fondo la programmazione del computer, quindi ho cercato su Internet gli argomenti che ogni programmatore dovrebbe conoscere e poi ho trascorso tutto ciò che avevo sui libri. Ho comprato un libro su Discrete Mathematics, un libro sul SO e un libro sulla programmazione in C in ambienti UNIX.

Ho quindi iniziato a imparare la programmazione orientata agli oggetti con C ++ e ho raccolto Python e Java lungo la strada e questo mi ha fatto il mio primo lavoro (non ha pagato bene ma presto lascerei questo lavoro per uno molto migliore).

Quando sono arrivato al college mi sono trovato davvero frustrato. Ad eccezione di classi come calcolo, statistica e lingue formali; Praticamente conoscevo già tutti gli argomenti trattati nel corso e nel bilanciamento del college e il mio lavoro diventava sempre più difficile ogni giorno.

Il college mi ha reso così frustrato che ho abbandonato e ho deciso di imparare tutto ciò di cui avevo bisogno da solo. Di nuovo, ho comprato più libri, partecipato a progetti open source e ho continuato a cambiare lavoro in modo da costringermi a imparare nuove cose.

L'anno scorso, ho deciso di tornare al college (anche se mi frustra ancora). Il motivo per cui ho deciso di terminare il college era che ora ho l'opportunità e non voglio mai pentirmi di non essere andato al college.

Quindi, sì, puoi lavorare come sviluppatore di software senza una laurea, ma dovrai studiare molto, fare alcuni lavori schifosi quando sei ancora un principiante e mostrare a ogni potenziale datore di lavoro che hai conoscenza, esperienza e sei davvero intelligente ( dopotutto devi convincerlo ad assumere te e non l'altro ragazzo che ha quel grado CS). Assicurati solo di comprendere le strutture dati, gli algoritmi e l'analisi degli algoritmi, i modelli di progettazione e alcuni concetti del sistema operativo.

Il mio ultimo consiglio per te: se puoi permetterti, dovresti andare al college. Fidati di me, sarà molto più facile ora che sei ancora fuori dal liceo e non devi preoccuparti di pagare le bollette. Essere uno sviluppatore senza andare al college funziona solo se hai iniziato molto presto. Le persone ti assumeranno se hai una laurea ma non riesci ancora a programmare bene, ora, se non hai una laurea e non riesci ancora a programmare bene , non verrai assunto.


1

Se riesci a entrare all'università, ti renderà più facile, ma non è necessario.

La chiave è avere cose che puoi indicare e dire "L'ho fatto io". L'unico modo per farlo è allenarti dal basso. Inizia facendo lavori strani per le persone che "hanno solo bisogno di un programmatore". Magari dai un'occhiata a posti come eLance .

Puoi anche scrivere il tuo software e venderlo. Scegli alcuni problemi che non hanno ancora una buona soluzione sul mercato e scrivi un programma che risolva quel problema. Sarai in grado di venderlo. Quindi avrai un po 'di credibilità. Onestamente, probabilmente farai un lavoro schifoso se è il tuo primo vero progetto, ma imparerai un sacco e venderai comunque copie se è utile. Il codice non deve essere carino. Gli utenti vedono solo l'interfaccia utente.

L'esperienza è la chiave. Fortunatamente la programmazione è una di quelle professioni in cui difficilmente hai bisogno di spese generali per iniziare. Renditi conto che c'è una curva di apprendimento davvero lunga davanti a te.


0

I datori di lavoro desiderano almeno una delle due cose (o entrambe): istruzione o esperienza pratica. In genere ottenere un'istruzione è uno dei modi più semplici per entrare nel sistema in cui finalmente inizierai a fare esperienza pratica. Ottenere un'istruzione dice a un datore di lavoro che ti atterrai a qualcosa di difficile (e che a volte può sembrare inutile e perdere tempo). Questo è importante per loro perché il lavoro, non importa quanto ti piaccia, non sarà mai facile o divertente per tutto il tempo. Vogliono sapere che resterai lì.

Detto questo, se hai intenzione di provare la strada che hai delineato, dovrai fare qualche esperienza pratica. Personalmente consiglierei di guardare le start-up (di solito hanno un po 'più probabilità di correre rischi su qualcuno con poca o nessuna esperienza). Un'altra cosa da considerare è ottenere un lavoro di qualsiasi tipo (per pagare le bollette), quindi passare il tempo a sviluppare progetti di qualche tipo che è possibile utilizzare come curriculum. Una volta che hai un piccolo arsenale di progetti, ti troverai in una posizione molto migliore per avvicinare i datori di lavoro e dire "Ecco cosa posso fare ...".

La mia raccomandazione personale sarebbe quella di andare a scuola. Non importa quale e con borse di studio e borse di studio che sono ampiamente disponibili e sottoutilizzati, ci sono molti modi per finanziare un'istruzione. Alla fine probabilmente sarai molto grato di essere rimasto con la scuola se dovessi finire e ottenere una laurea.


0

Sono stato al liceo per circa 2 anni ormai. Ho già un lavoro in programmazione e ho impiegato solo circa 20 o 24 ore di college. Non ho avuto abbastanza soldi o tempo per farlo dopo i primi due semestri.

Come ho ottenuto il mio lavoro in programmazione? Fortuna, praticamente. Ma puoi aumentare le tue probabilità di essere notato per fortuna. Il motivo per cui sono stato notato è stato a causa di alcuni piccoli programmi secondari che ho creato e mostrato ai miei amici .. Quello, ed ero conosciuto come "The Computer Guy" con più insegnanti che mi chiedevano come riparare il loro computer rispetto al vero ragazzo del supporto tecnico. Bene, uno dei papà del mio amico possedeva una piccola società di software ...

Il consiglio che ti darò è di non smettere di fare cose. Impara e crea. Crea qualsiasi progetto che qualcuno vorrebbe mai. Qualcosa di interessante per te o qualcosa che qualcuno ti pagherebbe persino un centesimo da fare. Contribuisci anche a progetti open source. Un ambiente di squadra è buono.

Inoltre, fatti conoscere su un sito web come StackOverflow. Ho ricevuto la mia seconda offerta di lavoro da una query di Stack Exchange su StackOverflow che praticamente mostrava tutti in Oklahoma .. ed ero la persona con il più alto grado di reputazione.


0

Grandi, grandi risposte qui. Lancerò anche la mia esperienza.

Ho programmato in un modo o nell'altro da quando avevo circa 5 o 6 anni (TI BASIC, chiunque?) Nel 1995 circa mi sono avvicinato a Linux e ho iniziato a insegnare a me stesso C e Perl. Non ho mai nemmeno frequentato un corso di programmazione al liceo, perché a quel punto insegnavano Visual Basic e Visual C ++ e non mi interessava neanche.

Sono andato al college. CS 101 era "Introduzione alla programmazione (Visual Basic)". È diventato un grande filosofo.

Uscito dal college. Ha lavorato presso CompUSA, ha iniziato a fare sviluppo web freelance.

Ho lavorato in negozi di caffè o supporto tecnico, continuando a scrivere codice per conto mio ... facendo programmazione freelance e open source.

Il mio primo "vero" lavoro di programmazione (con "programmatore" nel titolo) è arrivato attraverso il nepotismo. Un amico stava lasciando una posizione e gli avevano chiesto di trovare il suo sostituto.

Ora ricevo offerte su base regolare, il mio percorso professionale sembra buono, non mi preoccupo di quel grado. Ma tornerò per seguire alcuni di quei corsi CS ... Anche se l'informatica! = Programmazione del mondo reale, imparerai algoritmi e (si spera) progetterai modelli che ti impediranno di fare alcune cose stupide e reinventare la ruota. Quindi la scuola non è necessaria ... ma aiuta.

Principalmente, direi, anche se devi andare in una scuola pubblica o anche in un college comunitario, vai e impara il più possibile. Continua a fare hacking su progetti open source nel tuo tempo libero (GitHub è il nuovo curriculum, come si suol dire), e se arriva qualcosa di più attraente ... non devi finire. Non devi laurearti per mettere un conteggio crediti e GPA sul tuo curriculum, FWIW.

Comunque, buona fortuna. Se hai davvero la passione per la scrittura di un buon codice, questa è la chiave. Ma il college è una sorta di "dipendenza del sistema legacy" per la maggior parte delle aziende.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.