Ci sono degli svantaggi nell'assumere un lavoro in cui userò un linguaggio di programmazione unico? [chiuso]

37

Mi sono appena laureato al college con una laurea in CS, quindi mi piacerebbe trovare un lavoro dove posso imparare di più sul campo e fare esperienza professionale.

Ho intervistato un'azienda che usa il proprio linguaggio di programmazione interno e non penso che nessun altro la usi. Non hanno menzionato l'uso di altre lingue o di quello che usano per un ambiente di sviluppo.

Cosa dovrei essere preoccupato di fare un lavoro come questo? Se dovessi cambiare lavoro in seguito, dovrei ricominciare a cercare posizioni di livello iniziale perché non ho acquisito alcuna esperienza specifica per la lingua?

    
posta AlexMA 20.06.2016 - 21:35
fonte

22 risposte

28

Gli aspetti negativi principali:

  • lavorare in un "ambiente personalizzato" può significare strumenti / supporto limitati che possono essere irritanti quando ti blocchi su un problema.
  • Il linguaggio che usano potrebbe essere mal progettato, portandoti a prendere in mano cattive abitudini e scrivere codice hacky per creare soluzioni alternative.
  • I baffoons delle risorse umane non riconosceranno la tua esperienza. (Questo è OK: una società che si appoggia alle risorse umane per fare assunzioni tecniche non è il tipo per cui in genere si vuole lavorare. Dopo un paio d'anni, la maggior parte degli ottimi lavori arriva comunque attraverso le connessioni.)

Se fossi in me, chiederei a perché usano una lingua interna. Se è per una ragione legittima, come i pazzi contrapposizioni hardware, un dominio che non è facilmente modellabile in nessuna lingua esistente, allora è assolutamente soddisfacente. D'altra parte, se la loro risposta suggerisce che hanno creato la propria lingua in modo da poter riunire una serie di hack e business logic in ciò che equivale a un mucchio di macro stravaganti, allora questa è una grande bandiera rossa. Vuoi assicurarti che utilizzino i buoni principi di ingegneria, in modo che tu possa imparare da loro e avere successo con loro. In questo caso puoi vedere se possono giustificare razionalmente l'uso di un linguaggio nazionale che non avere una base di conoscenza della comunità e supporto esterno. Potresti scoprire che la loro decisione è perfettamente razionale (credo che Facebook abbia costruito la propria versione di PHP per gestire la scalabilità, cosa che ha fatto piuttosto bene per loro), o potresti scoprire che hanno creato una mostruosità di un linguaggio che è stato così strettamente accoppiati con i loro sistemi centrali, che non riescono a staccarsi da esso. Fidati di me, non vuoi lavorare in una lingua il cui tipo di dati di base è chiamato ImARInObj (oggetto Invoice Receivable Invoice). Un accoppiamento stretto tra una lingua e una necessità aziendale spesso si verifica in questi tipi di situazioni e sarebbe un incubo assoluto trattare ogni giorno con quel tipo di sistema.

    
risposta data 06.07.2011 - 19:49
fonte
95

Scappare e scappare velocemente. A meno che tu non abbia un disperato bisogno di un lavoro e abbia molta fame, questa è una situazione che vuoi evitare.

Ho esperienza con una società che ha fatto questo, e l'unica ragione per cui lo hanno fatto è stato in modo che i loro dipendenti non acquisissero un'esperienza significativa, trasferibile . Si trattava davvero di controllo.

Altri che hanno detto qui che "programmare è programmare" sono giusti, ma mi piacerebbe capovolgerlo e chiedere, perché non usare un linguaggio standard per il quale esistono supporto esterno, librerie, forum e un pool di programmatori tra cui scegliere?

L'unica volta che penso che una situazione del genere sarebbe OK sarebbe se il linguaggio di sola compagnia fosse per l'hardware personalizzato. Ad esempio, devi scrivere tutto per l'interferometro a raggi gamma 9000X utilizzando un codice assembly / macchina specifico per quella macchina.

    
risposta data 06.07.2011 - 19:48
fonte
21

Dato che il tuo curriculum è praticamente vuoto dopo la tua laurea, il tuo primo lavoro dà un grande impulso al tuo futuro percorso professionale. Il tuo prossimo potenziale datore di lavoro darà molto peso a questo lavoro. Quindi, a meno che tu non stia programmando anche in altre lingue (più commercializzabili), ti consiglio vivamente di non accettare questo lavoro.

Dico questo per esperienza perché ho appena lasciato il primo lavoro che ho avuto dopo la laurea con il mio grado C.S., dove ero in una posizione quasi esattamente come descrivi. La maggior parte della programmazione è stata fatta in un linguaggio sostanzialmente sconosciuto chiamato Progress (a.k.a OpenEdge ABL). È orribile. Non male come COBOL, ma vicino. Sono rimasto bloccato perché l'area intorno alla quale mi sono laureato non ha molti lavori di programmazione, e stavo aspettando che mia moglie si diplomasse con la laurea prima di trasferirsi.

Avere quel linguaggio per parlare con altre lingue o database era quasi impossibile (è stato bloccato anche con il suo database proprietario - bonus!). Ho passato molto tempo a scrivere framework per conto mio che esistevano già in altre lingue e probabilmente erano già stati implementati meglio in quanto il linguaggio non supportava molto bene questo tipo di paradigma di "estensione". Il linguaggio è stato più personalizzato per un "contatto Progress Corp. con una richiesta di funzionalità e attendere fino alla versione n + 1 per la nuova funzionalità". Inutile dire che l'industria del software non si muove abbastanza lentamente perché questo sia un approccio praticabile. Non continuerò a parlare di quanto sia stato male, ma presumo che affronterai una cosa simile se hai a che fare anche con un linguaggio proprietario. Riscrivere i framework esistenti in lingue sconosciute ha dimostrato di non essere un'abilità molto commerciabile, nella mia esperienza personale.

Per aggiungere a ciò, la base di codice esistente era, diciamo, sub-ottimale. Un sacco di codice legacy risalente alla fine degli anni '80 / primi anni '90. Scommetto che dovresti aspettarti qualcosa di simile, dal momento che penso che la maggior parte delle aziende si attenga solo alle lingue proprietarie perché portano con sé un sacco di questo bagaglio legacy. Ricorda, è probabilmente difficile per un datore di lavoro trovare programmatori disposti a codificare in questo ambiente legacy / proprietario, in più probabilmente dovranno pagare anche per l'addestramento, dal momento che nessuno ne ha mai sentito parlare. Probabilmente i tuoi colleghi non saranno titani dell'ingegneria del software, a causa del Effetto Dead Sea (chiunque abbia talento probabilmente già lasciato). Ho avuto un sacco di problemi alle revisioni del codice cercando di usare il codice orientato agli oggetti, per non parlare di qualsiasi tipo di design pattern, perché non lo capivano (le persone della mia squadra avevano, nel migliore dei casi, un grado MIS (senza offesa )).

Infine, supponendo che tu prenda questo lavoro ma brama fare qualcosa di meglio una volta che te ne vai, per renderti competitivo per il tuo prossimo lavoro devi sacrificare molto del tuo tempo libero al di fuori del lavoro creando breakable toys in lingue più commercializzabili (e probabilmente open source la maggior parte di ciò che si fa), o fare ciò che ho fatto e salvare un po 'di soldi prima di smettere e trascorrere un mese o due facendo lo stesso. Ad ogni modo, questa è una cosa molto stressante, specialmente se ti piace avere qualsiasi tipo di relazione sociale al di fuori del lavoro o passare il tempo libero a fare qualcosa che non codifica una volta ogni tanto.

Ora, le mie esperienze potrebbero non essere direttamente correlate alla tua scelta, ma sono sicuro che alcune di esse si applicheranno. Spero che almeno ti dia qualche domanda da far apparire. Come altri hanno già detto, probabilmente vorrete scoprire quali strumenti usano (hardware, ambiente di sviluppo software / IDE e sicuramente controllo di versione). Il Joel Test potrebbe essere una guida utile.

TL; DR

Non farlo.

P.S. A quelli che dicono che l'apprendimento di qualsiasi nuova lingua è utile, che da solo è vero. Il problema è quando ti blocchi con quel linguaggio quasi esclusivamente a tempo pieno per un lungo periodo di tempo, perdendo l'esposizione a linguaggi più utili (e tecniche). Questo è quello che vuoi evitare.

    
risposta data 06.07.2011 - 23:18
fonte
16

Lo svantaggio evidente è che non sarai in grado di aggiungere questo lavoro al requisito "5+ esperienza usando il linguaggio x" che avranno i lavori futuri che vorresti applicare. Questo può essere più fastidioso di quanto si possa pensare (parlando come qualcuno che ha avuto molti anni di esperienza, ma una vasta gamma di linguaggi di programmazione). Ho un'esperienza professionale con VBA che potrebbe anche essere stata un'esperienza con LOLCODE, basata sui lavori che cerco oggi.

Ma usano solo quella lingua? È raro che un'azienda usi sempre e solo una lingua. Anche il mio tempo con VBA includeva ASP, Java e PostgreSQL.

    
risposta data 06.07.2011 - 19:17
fonte
8

Tendo ad essere d'accordo con il mantra, " programmazione è programmazione ", indipendentemente dalla lingua in cui hai lavorato. Tanta parte della programmazione sta imparando a pensare e il resto è solo sintassi. Un potenziale futuro datore di lavoro sarà più colpito dal fatto che " Ho compiuto X con la compagnia Y " di quanto avrebbero fatto con " Ho conosciuto il linguaggio X per Y anni ".

L'ultimo lavoro che ho svolto ha coinvolto molto lavoro PL / SQL e non avevo mai scritto una singola riga di PL / SQL - l'ho raccolto in circa due settimane.

Detto questo, mi terrei sicuramente in pratica con altre lingue, solo per rimanere aggiornato. Durante il nuovo lavoro, hai un progetto per animali o due che manterrà il tuo braccio di programmazione in forma con un linguaggio più standard, ma non agitarti troppo sopra.

    
risposta data 06.07.2011 - 19:16
fonte
6

In IT, l'azienda ha spesso a che fare con il reclutatore per trovare buoni candidati. I reclutatori non sono specialisti IT, quindi hanno alcuni criteri e corrispondono ai candidati e quindi li rimandano all'azienda. Funziona allo stesso modo con risorse umane in grandi aziende.

Hai un problema con questo. Non rientrerai nei criteri del reclutatore. Quindi, direi che non è un problema per le tue competizioni. La programmazione è programmazione e un programmatore solido dovrebbe sapere come passare da una lingua all'altra, perché la sintassi è meno importante di sapere come fare codice affidabile, codice verificabile e codice manutenibile. Queste capacità sono per lo più indipendenti dal linguaggio.

Tuttavia, finché non si adatterà ai criteri di corrispondenza di nessun personale IT che ti recluta, sarà probabilmente un inconveniente trovare un impiego futuro. Anche se sarai comunque concorrente. Quelle persone non sanno come giudicarlo perché non sono IT.

In definitiva non consiglierei questo lavoro per il primo. Ma se hai già qualche voce nel tuo CV sulle tecnologie ampiamente utilizzate (Java, PHP, C, C ++, C #, ...), fallo se ti piace.

    
risposta data 06.07.2011 - 19:36
fonte
5

Esistono sicuramente abilità che puoi migliorare / migliorare usando linguaggi e ambienti proprietari. Come è stato menzionato in altre risposte, alcune abilità trascendono il linguaggio e possono essere molto utili in un curriculum.

Tuttavia, tali abilità sono spesso trascurate quando le persone che esaminano i curriculum non sono tecniche. Spesso (nella parte inferiore dello spettro di qualità del lavoro, che, purtroppo, è spesso la scelta migliore per gli sviluppatori relativamente inesperti) i curriculum saranno valutati principalmente su x anni di linguaggio y , e le altre abilità che potrebbe non entrare in gioco fino a dopo aver ottenuto un piede nella porta con un'intervista.

Un altro fattore da considerare è che gli ambienti proprietari tendono (almeno, per lo meno) ad essere più probabilmente mal progettati, sfortunati e generalmente frustranti rispetto agli ambienti tradizionali. Lavorare esclusivamente in un sistema proprietario sbagliato può essere molto scoraggiante, specialmente per qualcuno che sta iniziando una carriera nella programmazione.

Detto questo, ricorda che l'esperienza con un sistema proprietario, pur non essendo valida come un'esperienza simile con i tradizionali linguaggi mainstream, è ancora meglio di nessuna esperienza da molto tempo. Avrai un vantaggio oltre il livello base per alcune posizioni e per gli altri, potresti (o non esserlo) ancora qualificarti come entry-level per lingue specifiche, ma la tua esperienza ti metterà in netto vantaggio rispetto alla maggior parte delle altre persone in competizione per quei lavori.

Prima di considerare la possibilità di rinunciare a un'offerta per concentrarsi su un linguaggio proprietario, assicurati di considerare l'attuale mercato del lavoro e in che modo vengono generalmente ricevute le tue applicazioni.

    
risposta data 06.07.2011 - 19:47
fonte
3

Dipende dalle lingue e abilità secondarie che acquisirai. Se infatti il loro linguaggio interno non viene usato o addirittura conosciuto al di fuori della compagnia, sarà di beneficio limitato dal punto di vista della carriera (a meno che non sia probabile che esploda e diventi la prossima grande cosa). Ho trascorso alcuni anni a lavorare con uno strumento di terze parti che di per sé è inutile per me (in termini di carriera), tuttavia lavorando su quei progetti sono migliorate le mie competenze in HTML, css e javascript. Ho anche imparato molto su come i progetti aziendali sono gestiti e strutturati, affrontando i clienti, gestendo le aspettative. Tutte le cose che fanno parte del moderno sviluppo del software che in realtà non sono la lingua.

    
risposta data 06.07.2011 - 19:13
fonte
2

E il framework: I.D.E, editor, librerie? Le app aziendali più complesse. in questi giorni non può essere fatto con un editor di testo semplice e un compilatore di riga di comando.

Ne hanno alcuni per il loro linguaggio di programmazione personalizzato?

    
risposta data 06.07.2011 - 19:34
fonte
2

Spesso, imparare un'impresa è più importante dell'apprendimento di una tecnologia. Se pensi di voler rimanere nel settore in cui opera questa azienda, allora vai avanti e prendila. Se si tratta di un mercato di nicchia, o di uno non particolarmente interessato, suggerirei di saltarlo. Conoscere i dettagli di (per esempio) la farmacocinetica e il processo di scoperta dei farmaci aprirà le porte che non lo sarà solo per un altro programmatore C # / Python / Java. E a meno che questa "unica" lingua sia più un generatore di codice o un configuratore, continuerai a risolvere problemi comuni, quindi otterrai comunque un'esperienza complessiva, anche se le tecniche specifiche potrebbero non essere direttamente trasferibili.

    
risposta data 06.07.2011 - 21:09
fonte
2

Prenderei in considerazione l'idea di prenderlo se, e solo se, si può avere un sacco di esperienza in altre lingue. Se fai prendi il lavoro, puoi (e dovresti) mantenere le tue abilità con le lingue tradizionali lavorando su progetti open-source nel tuo tempo libero.

Ciò che vuoi evitare è la possibilità che le tue abilità si sintonizzino su questa specifica società e non siano trasmissibili ad altri. Tecnicamente, la programmazione è programmazione e l'esperienza al di fuori di un singolo ambiente di programmazione è vantaggiosa, non dannosa, in quanto consente di vedere i problemi in modo più chiaro.

Pensa in questo modo: se ti impegni a scrivere programmi Perl, questo non ti condurrà necessariamente all'eternità di scrivere programmi Perl. Né l'assunzione di un lavoro in .NET ti rovina a essere per sempre legata a Microsoft.

Ma ecco la parte importante: non assumerei mai un programmatore che conosce solo una lingua , anche se è quello che voglio che usi. Un programmatore che non ha una vasta esperienza in molte lingue è spesso povero anche con la sua lingua preferita. Riflette anche la mancanza di ambizione di imparare cose nuove.

D'altra parte, se un programmatore conosce Python, Ruby, C #, PHP, C ed Erlang, allora il fatto che anche lui conosca l'APL non è un attacco contro di lui, anche se non c'è alcuna possibilità che noi usa l'APL per qualsiasi cosa.

Quindi, se hai la disciplina di mantenere la lingua da diventare il tuo unico obiettivo, quindi prendere il lavoro.

E vale la pena affermare di nuovo: contribuisci a progetti open-source. Contano tonnellate più di "esperienza lavorativa" perché non è qualcosa che hai appena fatto uno stipendio. I programmatori che lavorano su progetti open-source sono come l'oro.

    
risposta data 07.07.2011 - 01:20
fonte
2

Il mio primo lavoro dopo essermi laureato con il mio diploma CS è stato lo sviluppo di un linguaggio oscuro. Non unico. Non sviluppato internamente. Ma un VMS 4GL abbastanza oscuro che non ho mai visto nessun altro utilizzarlo.

In retrospettiva, questa è stata una decisione poco saggia. Mentre imparavo molto sullo sviluppo di software professionale facendo quel lavoro, sarebbe stato molto meglio sviluppare anche una competenza linguistica commercializzabile per andare d'accordo con le competenze "soft".

Sono stato fortunato: il mio secondo lavoro stava funzionando con un altro oscuro VMS 4GL. Mi hanno assunto perché sapevano che non potevano trovare persone che conoscevano già la lingua: il fatto che avessi esperienza sulla piattaforma VMS con una 4GL era sufficiente. E al lavoro quel , ho avuto l'opportunità di essere addestrato in un linguaggio commercializzabile mentre guardavano per spostarsi da VMS verso i server Windows.

Ma non avrei potuto facilmente avere quella fortuna, e mi sono ritrovato per cinque anni nella mia carriera con un'esperienza assolutamente nulla che avrebbe convinto un reclutatore o una persona delle risorse umane a guardare il mio curriculum.

Per il tuo primo lavoro dopo la laurea, davvero non lo consiglio.

    
risposta data 07.07.2011 - 06:05
fonte
2

Per dare una meta-risposta, ho notato che molte risposte dicono: "Per esperienza personale, questa è una brutta cosa".

Molti altri dicono, "In teoria, questo non deve essere cattivo."

Ma nessuna delle risposte che ho visto proviene da persone che hanno fatto qualcosa di simile e hanno pensato che fosse un'esperienza buona .

Ora forse alcune persone hanno fatto questo e sono entusiasti del loro lavoro, ma non sono in Stack Exchange. Questo è vero per alcuni software commerciali. Ad esempio, ci sono alcuni amministratori di Software AG Natural / Adabas veramente dedicati, ma non ci sono molte discussioni correlate su Stack Exchange. Tuttavia almeno qualcuno sta cercando anche questi specialisti di nicchia. Questo non sarebbe vero per un linguaggio completamente proprietario.

Quindi, se l'obiettivo è di andare verso il tipo di tecnologie discusse qui, il fatto che pochi lo approvino dall'esperienza reale suggerisce che non è necessariamente il migliore inizio. Potrebbe non essere il bacio della morte. Ma vorresti lavorare per evitare che diventi un terribile ostacolo, ad esempio avviando o contribuendo a un progetto open source correlato alle tue aspirazioni.

    
risposta data 08.07.2011 - 19:52
fonte
1

Accetta il lavoro se ritieni che ci siano dei bravi / fantastici programmatori che ti aiuteranno e ti aiuteranno. Penseresti che un posto che fa questo abbia delle brave persone, ma non può esserne certo. Inoltre, questa compagnia ha un qualche tipo di reputazione per assumere i migliori candidati? Potresti essere assunto da qualcun altro indipendentemente dalle lingue utilizzate nel lavoro.

    
risposta data 06.07.2011 - 20:37
fonte
1

Sii particolarmente prudente se il dominio del problema è dominato da una o più lingue del settore. Lo sviluppo del database è strettamente legato a SQL. Lo sviluppo di FPGA è principalmente suddiviso tra Verilog e VHDL. Confrontalo con le applicazioni web che sono scritte in (combinazioni di) Java, PHP, perl, python, Scala, C ++, ecc. Un gestore assumente alla ricerca di sviluppatori web sarà molto più comprensivo sulle abilità trasferibili se non hai esperienza specifica nella loro lingua di scelta. Un gestore assumente alla ricerca di qualcuno per scrivere le query del database si aspetta esperienza SQL.

    
risposta data 06.07.2011 - 22:59
fonte
1

Ho programmato in un linguaggio proprietario. Ma quello non era il linguaggio che veniva usato dappertutto. Non ho nulla contro questa esperienza ora, anche se mi lamento ogni momento di fare quel lavoro. Ho avuto la possibilità di usare quel linguaggio, mantenendo quel linguaggio e, migliorandolo, mantenendo il programma scritto in quella lingua.

Lungo la strada, ho imparato a leggere e capire come funzionerebbe un piccolo interprete. Se il tuo potenziale datore di lavoro ha le fonti per il compilatore / interprete per il linguaggio proprietario, potresti anche avere la possibilità di lavorare sul suo interno. Posso dire, per esperienza, farai tesoro di questa esperienza di lavoro per gli anni a venire.

Quali competenze trasferibili avresti ottenuto è, lavoro di squadra, ingegneria del software, scrittura di un compilatore / interprete o parti di esso, algoritmi, ecc. Se si tratta di un interprete, il linguaggio proprietario è solo una maschera sotto la quale trova l'interprete scritto in, diciamo, C o in un'altra lingua. Se il linguaggio proprietario è compilato, avresti la possibilità di lavorare su un compilatore di produzione che è completamente protetto da boot. Quindi, quando cerchi il prossimo lavoro, devi vendere queste competenze più difficile rispetto a, ad esempio, C / C ++ / Java / Python per sviluppatori di applicazioni o, Python, Perl, Java, HTML, CSS, JavaScript, Flash per lo sviluppo web oppure, Verilog, VHDL per lo sviluppo integrato o qualsiasi altra serie di lingue per altri domini di applicazioni.

Tutto questo, assumendo che il tuo potenziale datore di lavoro abbia le risorse per il linguaggio proprietario e tu sia disposto a lavorare oltre i programmi scritti nella lingua proprietaria. Tuttavia, ammetto di essere estremamente ottimista nel dire che potresti avere un'opportunità simile a quella che ho avuto qualche anno fa.

Nelle interviste, anni di esperienza e capacità tecniche non sono le sole a prendere decisioni di assunzione. La tua sete di apprendimento, adattamento culturale, inclinazione culturale, fanno una grande parte della decisione.

Quindi, per un primo lavoro, se il tuo lavoro non si limiterà ai programmi scritti solo nella lingua proprietaria, ma permetti di lavorare anche sulla sua implementazione, prendilo.

    
risposta data 07.07.2011 - 07:56
fonte
1

Penso che ci siano due lati di questo. Innanzitutto c'è questo lavoro specifico e, in secondo luogo, c'è il modo in cui influisce sulle tue prospettive di carriera.

Quello che vorrei sapere su questo lavoro è perché hanno creato il loro linguaggio di programmazione. Ha senso? Altrimenti farei un lavoro diverso.

Negli ultimi dieci anni ho lavorato per tre società con la loro lingua. Il primo perché, quando il progetto è stato avviato, non c'era nulla che potesse fare ciò di cui avevano bisogno. (Hanno scritto una versione techie di Visual Basic, ma questo era su Unix e anni prima che esistesse VB.) Gli altri due avevano requisiti prestazionali che non potevano essere soddisfatti con le lingue esistenti. Considero questi buoni motivi.

Dal punto di vista della carriera, come altri hanno menzionato, i reclutatori e le persone delle risorse umane che non comprendono la programmazione e il lavoro utilizzando una serie di check-box avranno difficoltà con il tuo CV. Molte aziende che desiderano un programmatore C ++ plug-and-play si divertiranno a pagare per imparare una nuova lingua. Tutto questo è vero.

Ma vuoi davvero lavorare per una compagnia del genere?

Se la risposta è "Sì", probabilmente dovresti rifiutare questo lavoro e cercarne uno con requisiti più convenzionali. Inoltre, a seconda di dove vivi, potresti non avere molta scelta e lavorare con aziende che non capiscono i programmatori.

Personalmente, non voglio lavorare per una società del genere e penso sia giusto dire che non ho trovato le mie scelte eccessivamente limitanti. Se hai una cronologia di apprendimento rapido di nuove tecnologie, risoluzione di problemi del mondo reale e, forse, alcune conoscenze di "business", allora penso che dovresti stare bene.

Inoltre ci sono dei positivi. In quanti altri posti puoi giocare con il compilatore / interprete? Con quale frequenza riesci ad influenzare le nuove funzionalità e la sintassi della lingua che usi ogni giorno?

    
risposta data 07.07.2011 - 11:38
fonte
1

Prima di tutto, un linguaggio di programmazione interno non è necessario, ma ci sono alcune regole di base che è necessario per giustificare una lingua personalizzata.

Ti scrivi pensa che non usano altre lingue. La prima domanda che dovresti fare è se usano anche un'altra lingua.

I linguaggi di programmazione personalizzati possono avere buone giustificazioni. So che la matematica lavora con lingue specializzate. Ho sentito che l'agenzia fiscale utilizza una lingua speciale per calcolare le tasse con le leggi che cambiano ogni anno su di loro. Benvenuto nel dominio di metaprogramming .

Qualsiasi linguaggio personalizzato, tuttavia, non dovrebbe mai implementare una lingua completa. Al di fuori del dominio è necessario ricorrere a un linguaggio di programmazione classico / ampiamente conosciuto. Anche nel dominio della lingua non è probabile che ogni piccolo dettaglio sia coperto dalla lingua del dominio.

Buone domande da porre:

  1. Sono utilizzati altri linguaggi in questa azienda?
  2. Qual è la ragione per cui l'altra lingua non si adattava a loro?
  3. È la lingua utilizzata al di fuori dell'azienda (dai ricercatori o sotto licenza ad altre società)
  4. Quante persone conoscono la lingua.
  5. Quanti (riusciti) progetti / programmi sono realizzati con la lingua.

Da queste risposte dovresti essere in grado di scoprire qual è lo stato della lingua. se è una lingua di dominio che aggiunge un grande valore, va tutto bene. Se è un progetto pet di somebodies per sostituire Java o C #, allora esci da lì asap .

Modifica: ti suggerisco di leggere l'articolo dominio spesific language su wikipedia, che dovrebbe fornire ulteriori informazioni .

    
risposta data 07.07.2011 - 12:03
fonte
1

Potremmo non piacere, ma come programmatore di computer dobbiamo avere un CV che gli agenti e i dipartimenti delle risorse umane sono disposti a trasmettere ai project manager . Il nostro CV deve anche risaltare come corrispondente al necessario ancora impostato entro 30 secondi da qualcuno che lo guarda, deve anche avere le parole chiave corrette corrispondenti ad una ricerca del database cv.

Quindi solo lavorare in un linguaggio di programmazione unico è un grande rischio! Tuttavia, utilizzando un mix di DSL e una lingua principale del flusso può essere presentato bene sul CV. (Devi dire la verità sul tuo CV, ma non deve essere la intera verità!)

    
risposta data 07.07.2011 - 13:13
fonte
1

Sarei meno preoccupato di fare un lavoro come quello se avessi già una vasta conoscenza della programmazione. Se sei nuovo di zecca per il settore, questo potrebbe piccare professionalmente abbastanza male, forse al punto che dovresti ricominciare da capo come Jr o uno stagista dopo ... Questo potrebbe essere particolarmente brutto se rimani con questa compagnia per un po ', solo per partire senza competenze trasferibili.

Se sei già abbastanza esperto nel settore, questo potrebbe essere un punto di riferimento davvero interessante per la tua carriera. E la percezione se / quando hai lasciato questo posto sarebbe più di "dannazione, è un jedi, ha fatto tutto"

    
risposta data 07.07.2011 - 15:13
fonte
1

Unisciti all'azienda solo se lavorerai in azienda per tutta la vita, altrimenti non penserai nemmeno di prenderlo in considerazione, anche se stai ricevendo un buon pacchetto di stipendio. Ho esperienza di entrare a far parte di tale azienda e di essere bloccati lì nonostante molte frustrazioni nel lavoro, perché nessuna esperienza in altri linguaggi di programmazione cerca un altro lavoro.

    
risposta data 08.07.2011 - 15:42
fonte
0

Ho visto qualcuno con 15 anni di esperienza, principalmente come lead o principale sviluppatore, incapace di ottenere un lavoro per un lungo periodo, principalmente perché la società non gli ha lasciato alcuna esperienza in quelli che sono diventati i linguaggi e le API contemporanei.

I programmatori vengono messi mentalmente in bidoni proprio come fanno gli attori nei film (eroe, villico, ecc ...) e una volta stabilito cosa è il tuo cestino, penso che tu possa rendere molto più difficile trovare un lavoro che se lo sei appena uscito dal college.

Cioè, se hai un diploma CS, probabilmente sei un candidato per un numero di posti di lavoro.

Ma se hai una laurea in CS con 3 anni di esperienza in PHP, in realtà sei meno di un candidato per una posizione di sviluppatore web Java rispetto a quando ti sei laureato. Ti sei innestato come sviluppatore PHP e finché non hai esperienza del contrario, questo è ciò che stai per essere assunto. (Stranamente, ma penso vero, hai più esperienza totale, ma il tuo curriculum sarà ignorato come irrilevante perché è il tipo sbagliato di esperienza, mentre appena uscito dal college il tuo curriculum potrebbe non essere stato)

E se hai un diploma CS con 1 anno di esperienza in SpecialtyLanguageX, hai chiuso tutti i tipi di porte per te.

Queste sono solo le mie opinioni e le mie osservazioni, naturalmente, non ho mai fatto l'assunzione, questo è proprio quello che mi sembra.

    
risposta data 08.07.2011 - 18:41
fonte

Leggi altre domande sui tag