Competenze richieste per un buon lavoro su Linux [chiuso]


14

Sto lavorando come ingegnere informatico in una società rinomata in India. Il problema è che sebbene mi sia stato detto che mi sarebbe stato dato lavoro su Linux, mi hanno fatto lavorare su Java e Windows. Sono a disagio con Java e odio Windows.

Ho iniziato a studiare Python da solo, ma è difficile concedergli molto tempo a causa del lavoro in corso. Francamente, non sono un programmatore esperto. Ho provato molto ad entrare nello sviluppo del kernel Linux durante i miei giorni di college, ma mi sono reso conto che non sono un bravo programmatore. Così ho deciso di fare RHCE e andare per la gestione del server.

Quello che voglio sapere è che quale set di abilità è richiesto per ottenere un lavoro in progetti Linux. Nell'agosto 2011, ho intenzione di prendermi una pausa dal lavoro se questa azienda non mi dà un buon progetto Linux. Quali competenze devo acquisire per ottenere un buon lavoro su Linux. Una cosa che ho deciso di fare durante quella pausa è perseguire RHCE. Dopo aver letto per primo il set di tre libri di testo RHCE, sono fiducioso di poterlo navigare.

I contributi degli esperti di questo sito sono estremamente preziosi. I miei interessi tecnici al momento sono: Programmazione Python, Programmazione C / C ++, Gestione server Linux e Cloud Computing. Ma la laurea che ho non è affatto sufficiente per entrare in qualche buona compagnia. La conoscenza pratica che ho non è di livello esperto. E l'esperienza di lavoro che ho è semplicemente patetica.

PS: sono estremamente frustrato nel mio attuale lavoro. Anche se penso che non ci sia quasi bisogno di menzionarlo.

Risposte:


12

Questo è stato suggerito molte volte in questo contesto, ma ... suggerirei di fare esperienza in un progetto di software libero. Sembra bello sul tuo curriculum, è un'esperienza preziosa lavorare con brave persone ed è utile per i contatti. Le persone ottengono regolarmente lavori attraverso progetti di software libero. La mia impressione (che potrebbe essere errata) è anche che non è comune per gli indiani impegnarsi in progetti di software libero e, se fosse vero, ciò ti aiuterebbe a distinguerti.

Dici di essere interessato a Python. Esistono molti progetti di software libero che coinvolgono Python, con vari livelli di barriera all'ingresso. Uno che mi è familiare è Mercurial, dove la barriera all'ingresso non è troppo alta, la comunità è amichevole, i programmatori hanno talento e ci sono opportunità di partecipazione. E tutti usano il controllo della versione. Potresti raccogliere alcuni piccoli bug di dimensioni ridotte e / o la lista dei desideri e lavorarci sopra.

Altri progetti al di sopra della mia testa sono Django, Pylons, SQLAlchemy, anche se penso che Mercurial sia buono o migliore di tutti questi dal punto di vista delle opportunità di partecipazione. Un'altra possibilità è il lavoro di distribuzione della comunità Linux, ad es. con Debian, che ti darà anche l'opportunità di lavorare con persone di talento. Buono anche per stabilire contatti ecc. Inoltre, se sei interessato al C ++, i progetti apt e aptitude in Debian sono importanti e gravemente non programmati. In generale, la maggior parte dei progetti di software libero non ha abbastanza forza lavoro, in particolare quelli più piccoli, e sono desiderosi di assistenza.


8

Hai diversi percorsi che offrono diverse opportunità di lavoro

  • roba basata sul web
  • progetti nativi
  • sviluppo multipiattaforma
  • porting su Linux

In generale, preparati ad usare altri Unix insieme a Linux (sebbene Linux stia dominando totalmente in questo momento).

Basato sul Web

Praticamente qualsiasi cosa basata sul web che non utilizza .NET è roba Linux (o multipiattaforma). Puoi concentrarti su una qualsiasi delle lingue più utilizzate: PHP, Python, Perl, Ruby

Progetti nativi

Si tratta principalmente di lavori di elaborazione open source o ad alte prestazioni.

In Europa è un po 'comune assumere un programmatore a tempo pieno per modificare un progetto open source (e fornire supporto) invece di pagare tasse di licenza folli per prodotti commerciali che non si adattano comunque.

L'area ad alte prestazioni è una specie di Linux solo in questo momento, quindi i lavori in quest'area molto probabilmente porteranno a Linux.

Quest'area è molto pesante in C, con un po 'di C ++ e molta Java.

Sviluppo multipiattaforma

Tipo di area dispari. Ci sono alcune aziende che forniscono software multipiattaforma, alcune hanno team speciali per piattaforme specifiche, altre hanno team multipiattaforma.

Ma molte aziende usano semplicemente Java (non che aiuta molto).

Porting su Linux

Questi lavori saltar fuori di volta in volta. Alcune società vedono un mercato aperto e decidono di espandersi. Personalmente scapperei da tali lavori.


+1 per un commento interessante. ti interessa espandere ciò che è così male nel portare i lavori?
Faheem Mitha,

1
@Faheem Bene, i lavori di port di solito significano che finisci con una terribile base di codice piena di estensioni non standard e violazioni standard (che sembrano funzionare a causa di un miracolo di MSVC). Di solito parti del codice vengono scritte da persone scomparse da tempo dalla società e piene di vari bug che verranno visualizzati durante il porting. Questo può accadere anche in altre aree, ma non è così comune (i progetti open source tendono ad avere basi di codice piuttosto terribili, ma non ci sono molti grandi progetti con una lunga storia e una comunità di sviluppatori medio-piccola).
Let_Me_Be

Vedo. ti riferisci principalmente alle basi di codice interne / proprietarie sopra? MSVC significa che le basi di codice C ++ sono scritte in Visual C ++ e quindi vogliono portarlo su gcc?
Faheem Mitha,

@Faheem C e C ++ subiscono il minor numero di linguaggi, meno script. Il problema principale è che durante il porting toccherai il codice che funziona "qui e ora" e di solito scopri i bug in tale codice.
Let_Me_Be

4

Un progetto che ha un numero molto elevato di programmatori che svolgono lavori a pagamento è GNOME. Se vai lì e fai un lavoro fantastico, probabilmente ti avvicinerai a qualcuno. Il più grande di questi è probabilmente Red Hat (Fedora), e altri che ho visto includono Canonical (Ubuntu), Novell (SuSE), un gruppo di start-up o persino la fondazione GNOME. Oh, e c'è un sacco di uso di Python nel progetto, e il conteggio LOC è probabilmente secondo solo a C.

Il pianeta del progetto è normalmente il luogo in cui queste "aziende GNOME" riportano le loro azioni. Dare un'occhiata.


1

Sono fatto per lavorare su Java e Windows.

Buone notizie, sembra che tu stia scrivendo / lavorando almeno con il codice.

Se fossi nei tuoi panni, penso che prenderei un approccio pragmatico e imparerei come trasferire l'app Java su Linux (quando il boss non sta guardando).

È un buon esercizio rendere portatile un'applicazione.

Sono a disagio con Java

Non essere, nel mondo Linux usi il miglior linguaggio per l'attività. (Almeno la miglior lingua gratuita).

Pertanto è necessario assicurarsi di avere dimestichezza con Java, C ++ / Qt, C, python, php, perl, ecc. Ecc.


Grazie. Bene, scrivere il mio intero profilo di lavoro è illogico, quindi non ne ho parlato per intero. Qui. Ma tieni a mente l'ultima riga della tua risposta.
Dharmit,
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.