En programmerings-portfölj som garanterar jobb?

Permalänk
Medlem

En programmerings-portfölj som garanterar jobb?

Jag har ett dilemma.

Har precis börjat plugga på högskolan, men som jag har förstått det kommer mina programmeringskunskaper inte att utökas nämnvärt/alls under de 3 år jag ska plugga. Men däremot ska man ju ha utbildning; dokumenterad erfarenhet inom yrket, för att bli anställd.

Går det då att få jobb inom mjukvaruutveckling enbart med en s.k. portfölj?

Följdfrågan är då hur den ska utformas. Jag antar att det ska vara något i stil med Open-Source GPL/LGPL. Ska man fixa en egen hemsida där man lägger upp allt publikt? Eller Sourceforge kanske?

Några egna idéer:

För C# / Java:
- En internetsida med avancerad back-end?
- En texteditor?

För C++:
- Ett ritprogram (typ Gimp).
- Ett eget filformat (ogg/png liknande).
- 3D-ljud plugin till Bullet? (jag vet, detta exemplet är kanske overkill)

För python:
- En matte-modul?

För assembler:
- En robot?

/* */
Vad skulle alltså imponera mest på potentiella arbetsgivare? Någon som har fler förslag?

Permalänk
Medlem

Det som arbetsgivare arbetar mycket nu för tiden som jag har förstått det (då jag studerar 2:året på universitet) är i projektform, så skaffa merit för det och kurser med liknande inställning, gruppform.

En fråga du kan kanske ställa dig är: Vilka kurser kan vara bra för ett större projekt?!

Visa signatur

Stationär: Fractal Design - R3 Artic | Asus Sabertooth P67 | Intel i7-2600K @ 4.20GHz | Samsung 500GB SSD | Corsair H100i | Corsair - Dominator Platinum 2x8GB @ 1600MHz | Asus GTX770 SLi

Server: Fractal Design - Node 304 | Asus P8Z77-I Deluxe M-ITX | Intel i5-3570K @ 3.40GHz | Corsair - H70 | Corsair - Vengeance 2x4GB @ 1600MHz

Permalänk
Medlem
Skrivet av HazXoD3D:

Det som arbetsgivare arbetar mycket nu för tiden som jag har förstått det (då jag studerar 2:året på universitet) är i projektform, så skaffa merit för det och kurser med liknande inställning, gruppform.

En fråga du kan kanske ställa dig är: Vilka kurser kan vara bra för ett större projekt?!

Kanske borde dra igång/hoppa på något open-source projekt då kanske, det har jag absolut ingen erfarenhet av. Frågan är hur pass hårt/tidigt man kan få en sådan merit dokumenterad, känns som att det blir ett väldigt fokus på det sociala spelet på IRC / Skype (inte för att det är oviktigt såklart). Att hoppa på något existerande projekt i en anmärkningsvärd roll känns svårt. Målet är ju liksom inte att hamna med sitt internet-handle på en 5 sidor lång contributor-list om 20 månader.

Vidare är väl alla grupparbeten som inte innefattar mjukvara för versions-kontroll ganska off-target kan jag tänka mig?

Permalänk
Medlem

Du kan ju göra något ihop med en kursare?

Annars är det ju bra att lära sig använda olika verktyg som dokumenthantering och versionshantering (om du nu inte kan det)?

Permalänk
Medlem
Skrivet av MrSir:

Kanske borde dra igång/hoppa på något open-source projekt då kanske, det har jag absolut ingen erfarenhet av. Frågan är hur pass hårt/tidigt man kan få en sådan merit dokumenterad, känns som att det blir ett väldigt fokus på det sociala spelet på IRC / Skype (inte för att det är oviktigt såklart). Att hoppa på något existerande projekt i en anmärkningsvärd roll känns svårt. Målet är ju liksom inte att hamna med sitt internet-handle på en 5 sidor lång contributor-list om 20 månader.

Vidare är väl alla grupparbeten som inte innefattar mjukvara för versions-kontroll ganska off-target kan jag tänka mig?

Du har rätt att det kanske inte är det lättaste att halka in på, och kanske får ut ett meningslöst resultat. Men att hamna rätt beror nog på hur stor kunskap du har i alla led, sociala spelet som du sa och dina egna kunskaper inom programmering, m.m.
Men effektivisering är mycket på kartan nu, då vi har allt fungerande men vill kanske optimera ett flöde i en fabrik eller placera arbeten som en E-Tjänster som i sin tur underlättar för företagets personal.

Vad ska man satsa på? Jag har ingen erfarenhet av programmering i samhället, är en hobby-programmerare ;).
Om du kan utöka dina kunskaper så mycket du bara kan och inte på en specifik gren (misstänker att detaljerna måste du ändå lära dig på företaget du jobbar för), då jag menar att du inte ska fördjupa dig bara i exempelvis beräkningsprogram.

Hoppas du blir något klockare.

Missa lite ;)
Visa signatur

Stationär: Fractal Design - R3 Artic | Asus Sabertooth P67 | Intel i7-2600K @ 4.20GHz | Samsung 500GB SSD | Corsair H100i | Corsair - Dominator Platinum 2x8GB @ 1600MHz | Asus GTX770 SLi

Server: Fractal Design - Node 304 | Asus P8Z77-I Deluxe M-ITX | Intel i5-3570K @ 3.40GHz | Corsair - H70 | Corsair - Vengeance 2x4GB @ 1600MHz

Permalänk
Medlem
Skrivet av vajjan:

Annars är det ju bra att lära sig använda olika verktyg som dokumenthantering och versionshantering (om du nu inte kan det)?

Precis. Mycket bra råd (om du nu redan inte behärskar det som sagt).

Innan man börjat jobba är det lätt att underskatta betydelsen av sådant som inte har med själva kodningen av programmen att göra.
* Versionshantering är något som är extremt viktigt och sällan ens tas upp på högskolan. Ska man jobba i ett större projekt med flera personer inblandade så är det ett absolut måste att kunna.

* "Test driven development" (= test baserad utveckling ?) är också något som är helt nödvändigt att kunna. Ett ständigt kunna skriva bra enhetstester och andra tester är helt nödvändigt vid större projekt.

* Att skriva bra, läslig och välkommenterad kod är också väldigt viktigt om man jobbar i ett större projekt och delar kod med andra.
Även om man bara jobbar själv med sin kod så är det viktigt. Man glömmer snabbare än man tror.

Sådana här saker som har med det praktiska utvecklingsarbetet att göra lärs sällan ut på högskolan, men imponerar garanterat på en potentiell arbetsgivare.

Visa signatur

Namn : Jesper | Ålder : 48 | In-game namn : iller
Yrke : Kvantanalytiker, systemutvecklare.
Utbildning : PhD matematik. Självlärd med över 10 års erfarenhet av finansiell matematik och associerade ämnen.

Permalänk
Medlem
Skrivet av MrSir:

Jag har ett dilemma.

Har precis börjat plugga på högskolan, men som jag har förstått det kommer mina programmeringskunskaper inte att utökas nämnvärt/alls under de 3 år jag ska plugga. Men däremot ska man ju ha utbildning; dokumenterad erfarenhet inom yrket, för att bli anställd.

Går det då att få jobb inom mjukvaruutveckling enbart med en s.k. portfölj?

Följdfrågan är då hur den ska utformas. Jag antar att det ska vara något i stil med Open-Source GPL/LGPL. Ska man fixa en egen hemsida där man lägger upp allt publikt? Eller Sourceforge kanske?

Några egna idéer:

För C# / Java:
- En internetsida med avancerad back-end?
- En texteditor?

För C++:
- Ett ritprogram (typ Gimp).
- Ett eget filformat (ogg/png liknande).
- 3D-ljud plugin till Bullet? (jag vet, detta exemplet är kanske overkill)

För python:
- En matte-modul?

För assembler:
- En robot?

/* */
Vad skulle alltså imponera mest på potentiella arbetsgivare? Någon som har fler förslag?

Dina förslag verkar vara åt lekprogramhållet. Det är nog bättre om du visar upp riktiga program eller att du har deltagit i riktiga open source-projekt. Btw så är github det som gäller nu för tiden, inte sourceforge.

Skrivet av MrSir:

Målet är ju liksom inte att hamna med sitt internet-handle på en 5 sidor lång contributor-list om 20 månader.

Om du bidrar till ett projekt på github så kan den som vill (en arbetsgivare) gå in på din profilsida och se exakt vad du har gjort på alla projekt du deltagit i. T.ex. https://github.com/trptcolin Iofs vet jag inte exakt hur man kan se allt men det borde gå för alla commits sparas ju i projektens repos.

Permalänk
Skrivet av tufflax:

Dina förslag verkar vara åt lekprogramhållet. Det är nog bättre om du visar upp riktiga program eller att du har deltagit i riktiga open source-projekt. Btw så är github det som gäller nu för tiden, inte sourceforge.

Om du bidrar till ett projekt på github så kan den som vill (en arbetsgivare) gå in på din profilsida och se exakt vad du har gjort på alla projekt du deltagit i. T.ex. https://github.com/trptcolin Iofs vet jag inte exakt hur man kan se allt men det borde gå för alla commits sparas ju i projektens repos.

Tja,

Enligt min erfarenhet så spelar det mindre roll om dina applikationer är små lekprogram eller en seriös app med tickade kursdata och TA analyser.

Det som oftast är viktigt är att du slutfört projektet och utvecklat något som du brinner för. Din kod skall vara väldokumenterad och strukturerad. Innehålla vettiga namn på variabler och funktioner etc.

OpenSource projekt är aldrig fel dock!

De intervjuer som jag vart på värdesatte självklart min teoretiska kunskap, men det som jag och många jag känner fick jobb på var pga att det fanns ett brinnande intresse för programmering och att man var en social och "normal" person som kunde föra ett normalt samtal

/Seb

Permalänk
Medlem

Dra några tunga mattekurser - matte är grymt viktigt desto bättre man blir på programmering, det ser bra ut på CV:t och är nyttigt för det logiska tänket.

En kurs i mekanisk fysik (kroppars rörelse) på universitetnivå är inte heller fel.

Om du fortsätter som programmerare kommer du förmodligen tacka mig senare.

Permalänk
Medlem

Mina programmeringskunskaper utökades enormt på högskolan.
En portfölj är ett bra sätt att visa upp vad man kan. Det mesta du skriver låter vettigt. Tänk bara på att försöka göra något du tycker är kul. Det gör oftast resultat mycket bättre, samt det är grejjer du tycker är kul att göra du vill visa till en arbetsgivare, för då ser han samtidigt vad du vill jobba med.
Personligen kom inte min programmerings-portfölj på tal ens när jag fick mitt jobb. Jag fick mitt jobb enbart på goda rekomendationer från mina högskole-lärare, mina betyg, samt mitt deltids-jobb på högskolan som programmerings-hjälplärare.

Permalänk
Medlem
Skrivet av MrSir:

Vad skulle alltså imponera mest på potentiella arbetsgivare? Någon som har fler förslag?

Det beror ju på vilket jobb du är intresserad av. Det är väl ytterst få personer som har en generell programmerar roll idag. Oftast så är man specialiserad mot något språk, ramverk eller rent av affärsområde.

Gör något du tycker är intressant och som roar dig. Men gör det bra och använd moderna verktyg med moderna arbetsmetodiker. Att dokumentera sina färdigheter med ett OpenSource-projekt är ju aldrig dåligt. Se till att du får erfarenhet av att arbeta i grupp och gärna i en mångkulturell och tvärfunktionell grupp.

Se dock till att inte bli för akademisk! Att jaga den perfekta lösningen är bra under utbildningen och din examinator kommer uppskatta det. Utanför universitet så kommer din kund troligen inte att uppskatta att du har lagt ner eoner av tid på att jaga perfektion och fakturerar 3-4 gånger mer än vad konkurrenterna skulle fakturera.

Permalänk
Medlem

Trevligt med lite svar, jag har läst de alla noggrant.

Tufflax,

Förklara gärna skillnaden mellan lekprogram / riktiga program. *Duckar*

Jag har iaf installerat Git och kollade igenom diverse trendiga projekt. Ska jag vara helt ärlig fick jag depression av att läsa listan^^, så fruktansvärt tråkiga projekt folk kan hitta på. Jag får känslan av att de flesta projekt där är startade av folk som jobbat med exakt samma sak i flera år och vill förenkla sitt jobb in absurdum, dvs en situation så långt ifrån min det går att komma. Det känns liksom inte som att jag kan välja att specialisera mig på att integrera Django i någon obskyr IDE i flera månader. Eller sätta mig in i ett projekt som är helt utvecklat av någon liten grupp för 8 år sedan som enbart ligger uppe som open-source på GNU-filosofiska bevekelsegrunder.

Hela Github känns som en bestraffning samt ger mig ångest.

Seb,

Det här med att slutföra projekt är ju kontraintuitivt när man kommer direkt från inlärandet, då man oftast tenderar att börja med något nytt så fort man ser att det funkar / börjar förstå det man sysslar med. Det är ett tungt steg att ta utan mål.

Att "slutföra" ett projekt känns liksom, som att jag inte riktigt förstår vad det betyder. Ett program är ju liksom funktionellt ganska snabbt, sedan lägger man ju till fler features i den mån tvångstankarna får härja. Hur många features ska man liksom ha innan det är färdigt, det är knepigt. Om jag exempelvis gör en wrapper, är den då inte "slutförd" innan all tänkbar funktionalitet är inkluderad, eller då den når kommersialiserbarhet?

Det pratas mycket om att kod skall vara välstrukturerad/dokumenterad och lättläst, min första tanke är att majoriteten av kod som skrivs bör vara raka motsatsen då detta problem ofta nämns. Slutsatsen är väl då att om min kod är svårläst bör jag väl passa in på de flesta arbetsplatser? ^^

F.ö. vill jag påpeka att, ett brinnande intresse för programmering; samt normalitet och god socialisering, för mig känns som en floskel, som antagligen uppstått ur potentialiteten att motsatsen är normen.

...
Men om jag förstått det rätt så är portföljen som garanterar jobb så sällsynt att arbetsgivare inte bemödar sig att alls kontemplera dess existens?

Permalänk
Avstängd

Erfarenheter inom inbyggda system är eftertraktat.

Vad är det du ska plugga för något?

Skrivet av superzebb:

De intervjuer som jag vart på värdesatte självklart min teoretiska kunskap, men det som jag och många jag känner fick jobb på var pga att det fanns ett brinnande intresse för programmering och att man var en social och "normal" person som kunde föra ett normalt samtal

Helt klart en underskattad egenskap och är nog viktigare än vad de flesta tror.

Visa signatur

Gigabyte GA-MA790FX-DQ6 | AMD Phenom 9950 @ 2,6 Ghz | Sapphire Radeon HD 4850 512MB GDDR3 | Samsung 400 GB | Corsair Dominator TWIN2X8500C5DF 4096MB | Tagan 400W

Permalänk
Medlem
Skrivet av MrSir:

Förklara gärna skillnaden mellan lekprogram / riktiga program. *Duckar*

Är väl egentligen ingen skillnad. Men du sa t.ex. "en texteditor", och då menar jag att varför ska du göra en texteditor när det redan finns många som har flera tusen mantimmar utveckling bakom sig. Bättre att göra nått som faktiskt är användbart.

Permalänk
Medlem

Det viktigaste är ju att man faktiskt gör någonting och att det fungerar. Genom att skapa program / tjänster visar man att man är intresserad av programmering, samt att man faktiskt kan arbeta med teknikerna.

Gör du en egen liten website, beskriv hur den är gjord, med vilka tekniker, skriv en liten utvecklingslog.

Exempel:

Nyheterna på sidan läses in från XML-filer som lagras på mitt egna CDN. Resultatet cachas lokalt på disk som ett JSON-objekt, vilket läses upp asynkront och populeras med hjälp av jQuery templates.

Sidan har en responsiv layout som baseras på bootstrap och CSS:en är gjort med LESS. För att säkerställa snabbare laddning på mobila enheter presenteras alternativ grafik genom header-sniffning.

För filluppladdning av bilder har jag skrivit en webservice som pushar filstorlek med node.js från CDN:et.

Bla bla bla

Permalänk
Skrivet av MrSir:

Trevligt med lite svar, jag har läst de alla noggrant.

Tufflax,

Förklara gärna skillnaden mellan lekprogram / riktiga program. *Duckar*

Jag har iaf installerat Git och kollade igenom diverse trendiga projekt. Ska jag vara helt ärlig fick jag depression av att läsa listan^^, så fruktansvärt tråkiga projekt folk kan hitta på. Jag får känslan av att de flesta projekt där är startade av folk som jobbat med exakt samma sak i flera år och vill förenkla sitt jobb in absurdum, dvs en situation så långt ifrån min det går att komma. Det känns liksom inte som att jag kan välja att specialisera mig på att integrera Django i någon obskyr IDE i flera månader. Eller sätta mig in i ett projekt som är helt utvecklat av någon liten grupp för 8 år sedan som enbart ligger uppe som open-source på GNU-filosofiska bevekelsegrunder.

Hela Github känns som en bestraffning samt ger mig ångest.

Seb,

Det här med att slutföra projekt är ju kontraintuitivt när man kommer direkt från inlärandet, då man oftast tenderar att börja med något nytt så fort man ser att det funkar / börjar förstå det man sysslar med. Det är ett tungt steg att ta utan mål.

Att "slutföra" ett projekt känns liksom, som att jag inte riktigt förstår vad det betyder. Ett program är ju liksom funktionellt ganska snabbt, sedan lägger man ju till fler features i den mån tvångstankarna får härja. Hur många features ska man liksom ha innan det är färdigt, det är knepigt. Om jag exempelvis gör en wrapper, är den då inte "slutförd" innan all tänkbar funktionalitet är inkluderad, eller då den når kommersialiserbarhet?

Det pratas mycket om att kod skall vara välstrukturerad/dokumenterad och lättläst, min första tanke är att majoriteten av kod som skrivs bör vara raka motsatsen då detta problem ofta nämns. Slutsatsen är väl då att om min kod är svårläst bör jag väl passa in på de flesta arbetsplatser? ^^

F.ö. vill jag påpeka att, ett brinnande intresse för programmering; samt normalitet och god socialisering, för mig känns som en floskel, som antagligen uppstått ur potentialiteten att motsatsen är normen.

...
Men om jag förstått det rätt så är portföljen som garanterar jobb så sällsynt att arbetsgivare inte bemödar sig att alls kontemplera dess existens?

Jag förstår hur du resonerar och tänker gällande att "slutföra" ett projekt.

Vad jag menar är just det att du skall komma på en idé inom ett område som intresserar dig, tänka igenom hur du skulle kunna realisera denna tanken i ett eget litet utvecklingsprojekt och även sätta upp mål och krav för din app. Med detta sagt behöver du inte skriva en projektplan eller en kravspec för detta utan det kan räcka med lite kladd på ett papper.

Varför jag tycker detta är en viktig del i din portfolio är på grund av att det visar på din förmåga att strukturera och planera din utveckling. Sedan kan det vara svårt när man lär sig nya språk och gärna vill freebasa lite och kommer på nya roliga saker att utveckla.

För mig betyder att "slutföra" ett projekt att man realiserar sin kravspec och implementerar den funktionalitet som man avsåg att ha med i planeringsfasen. Tillkommande moduler och funktionalitet är vidareutveckling.

Haha, ja dokumentation av kod är ett kapitel i sig. Har du lite dokumentation i koden så kommer inte det skada och större projekt är det ett måste. Prova skriv lite kod, lägg undan koden i 4-6 månader, och försök sedan fatta vad fan du höll på med för 4-6 månader sen. Det kan vara lite knepigt kan jag säga.

/seb

Permalänk
Medlem
Skrivet av tufflax:

Är väl egentligen ingen skillnad. Men du sa t.ex. "en texteditor", och då menar jag att varför ska du göra en texteditor när det redan finns många som har flera tusen manhimmar utveckling bakom sig. Bättre att göra nått som faktiskt är användbart.

Fast riktigt så kan man inte tänka heller. Sublime Text är från 2008 (kollat wikipedia) och redan då fanns det många bra texteditorer. Lighttable som används för utveckling av Clojure är ännu nyare och har fått massvis med uppmärksamhet.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Fast riktigt så kan man inte tänka heller. Sublime Text är från 2008 (kollat wikipedia) och redan då fanns det många bra texteditorer. Lighttable som används för utveckling av Clojure är ännu nyare och har fått massvis med uppmärksamhet.

Notera "från 2008". 5 års utveckling ligger bakom programmet.

Självklart kan man skapa program som redan finns. Men för att det inte ska ses som enbart ett lekprojekt (= lära sig programmera bättre / kul att programmera) så måste det finnas någon nytta med programmet. Ifallet texteditor så blir det ingen nytta med programmet på flera månader (mer antar jag?), nyttan uppstår först när programmet är bättre än de vanligaste använda liknande programmen.

Alltså när MrSirs texteditor är bättre än sublime text så är MrSirs editor inte längre ett lekprojekt. (Och när den är det så har han inte längre något behov av att söka jobb..)

Visa signatur

Programmerare -> PHP | HTML | CSS | JS | Java.

Permalänk
Medlem
Skrivet av Sony?:

Notera "från 2008". 5 års utveckling ligger bakom programmet.

Självklart kan man skapa program som redan finns. Men för att det inte ska ses som enbart ett lekprojekt (= lära sig programmera bättre / kul att programmera) så måste det finnas någon nytta med programmet. Ifallet texteditor så blir det ingen nytta med programmet på flera månader (mer antar jag?), nyttan uppstår först när programmet är bättre än de vanligaste använda liknande programmen.

Alltså när MrSirs texteditor är bättre än sublime text så är MrSirs editor inte längre ett lekprojekt. (Och när den är det så har han inte längre något behov av att söka jobb..)

Sant, men man måste ju börja någonstans också. Sublime Text var knappast den editor det är idag när det först dök upp..

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Fast riktigt så kan man inte tänka heller. Sublime Text är från 2008 (kollat wikipedia) och redan då fanns det många bra texteditorer. Lighttable som används för utveckling av Clojure är ännu nyare och har fått massvis med uppmärksamhet.

Ja asså om man tror att ens program kommer bli bättre än det som finns så go for it, men det lät inte direkt så när TS sa att han ville ha en portfölj. Fast det skulle ju förstås vara ganska bra med en portfölj som innehåller en texteditor, ett ritprogram, en mattemodul, osv som alla är bättre än det som fanns innan.

Permalänk
Medlem
Skrivet av tufflax:

Ja asså om man tror att ens program kommer bli bättre än det som finns så go for it, men det lät inte direkt så när TS sa att han ville ha en portfölj. Fast det skulle ju förstås vara ganska bra med en portfölj som innehåller en texteditor, ett ritprogram, en mattemodul, osv som alla är bättre än det som fanns innan.

Poängen är att det är dumt att låta bli att göra något av den enkla anledningen att något liknande redan finns. Visst kan det vara så att det blir ett halvhjärtat "meh"-projekt av det hela, men varför skulle det vara sämre än ett annorlunda halvhjärtat projekt?

Visa signatur

Kom-pa-TI-bilitet