Permalänk
Medlem

Programmera på riktigt

Hej,

Jag har sedan några år tillbaka bytt spår i livet och har gått från att vara musiker till att satsa 100% på att lära mig programmera. Det har gått bra och jag har lärt mig enormt mycket. Samtidigt förstår jag att jag fortfarande är nybörjare och utvecklingspotential finns så klart alltid. Jag har skrivit JavaScript, Python, HTML, CSS samt C# och går för närvarande webbprogrammering (kurspaket) på BTH. Nu vill jag skaffa mig insikt om hur företag faktiskt arbetar med utveckling och framförallt testning, CI och versionshantering.

Vanligtvis skaffar jag det utbildningmaterial som behövs och sätter igång på egen hand men det jag nu vill lära mig känns inte lika självklart att ta från en bok. Har ni bra förslag på hur jag på bästa sätt kan få en bild av hur företag arbetar samt hur jag kan skaffa de kunskaper som gör mig "anställningsbar"?

Permalänk
Medlem

Du låter anställningsbar redan nu. Men du kanske kan testa bidra till något projekt på Github för rent praktiskt erfarenhet?

Permalänk
Medlem
Skrivet av Esrakuf:

Hej,

Jag har sedan några år tillbaka bytt spår i livet och har gått från att vara musiker till att satsa 100% på att lära mig programmera. Det har gått bra och jag har lärt mig enormt mycket. Samtidigt förstår jag att jag fortfarande är nybörjare och utvecklingspotential finns så klart alltid. Jag har skrivit JavaScript, Python, HTML, CSS samt C# och går för närvarande webbprogrammering (kurspaket) på BTH. Nu vill jag skaffa mig insikt om hur företag faktiskt arbetar med utveckling och framförallt testning, CI och versionshantering.

Vanligtvis skaffar jag det utbildningmaterial som behövs och sätter igång på egen hand men det jag nu vill lära mig känns inte lika självklart att ta från en bok. Har ni bra förslag på hur jag på bästa sätt kan få en bild av hur företag arbetar samt hur jag kan skaffa de kunskaper som gör mig "anställningsbar"?

Sök jobb och jobba där några år, sen byt till ett annat. Finns inte någon generell regel för hur alla jobbar.
Lycka till

Permalänk
Avstängd
Skrivet av Esrakuf:

Hej,

Jag har sedan några år tillbaka bytt spår i livet och har gått från att vara musiker till att satsa 100% på att lära mig programmera. Det har gått bra och jag har lärt mig enormt mycket. Samtidigt förstår jag att jag fortfarande är nybörjare och utvecklingspotential finns så klart alltid. Jag har skrivit JavaScript, Python, HTML, CSS samt C# och går för närvarande webbprogrammering (kurspaket) på BTH. Nu vill jag skaffa mig insikt om hur företag faktiskt arbetar med utveckling och framförallt testning, CI och versionshantering.

Vanligtvis skaffar jag det utbildningmaterial som behövs och sätter igång på egen hand men det jag nu vill lära mig känns inte lika självklart att ta från en bok. Har ni bra förslag på hur jag på bästa sätt kan få en bild av hur företag arbetar samt hur jag kan skaffa de kunskaper som gör mig "anställningsbar"?

Presentera din "programmeringsportfölj" för diverse företag.

Utbildning i all ära, men tydlig tidsbaserad dokumentering av slutförda projekt och resultaten/utfallen av dessa slutförda projekt är vad företag är mest nyfikna på. Tjorven som åkte räkmacka i teknisk fysik på KTH men som knappt kan använda MathLab i skarpt läge är nog inte lika intressant som någon som lärde sig ut och in av MathLab på egen fritid med slutförda projekt bakom sig.

Det är ju inte precis som om du ska fortsätta "plugga programmering" (även om förmågan att ta sig till ny kodningsdokumentering är guld, självfallet) hos företaget du blir anställd av utan snarare producera något konkret på bordet tack vare dina programmeringskunskaper, hur du nu än införskaffade dig dem.

Visa signatur

"Företagsboendeförmedlare" | Min Überkill Dator: Processor: Intel Pentium P5 66 Mhz OC | Moderkort: ASRock P4I65G | Minnen: 2st Samsung 128MB PC133 | Grafikkort: Canopus GeForce 256 DDR | Lagring: IBM 350 4,4 MB | Operativsystem: DOS/360 | Chassi: Mercury Full-Tower ATX Chassis |

Permalänk
Medlem
Skrivet av Megamannens:

Du låter anställningsbar redan nu. Men du kanske kan testa bidra till något projekt på Github för rent praktiskt erfarenhet?

Det har jag funderat på! Får helt enkelt ta tag i det och nästla mig in i något sammanhang ;).

Permalänk
Medlem
Skrivet av AplAy:

Presentera din "programmeringsportfölj" för diverse företag.

Utbildning i all ära, men tydlig tidsbaserad dokumentering av slutförda projekt och resultaten/utfallen av dessa slutförda projekt är vad företag är mest nyfikna på. Tjorven som åkte räkmacka i teknisk fysik på KTH men som knappt kan använda MathLab i skarpt läge är nog inte lika intressant som någon som lärde sig ut och in av MathLab på egen fritid med slutförda projekt bakom sig.

Det är ju inte precis som om du ska fortsätta "plugga programmering" (även om förmågan att ta sig till ny kodningsdokumentering är guld, självfallet) hos företaget du blir anställd av utan snarare producera något konkret på bordet tack vare dina programmeringskunskaper, hur du nu än införskaffade dig dem.

Ja, det låter sunt det du skriver. Jag har några mindre projekt bakom mig, gjorde till exempel en enkel statisk webbapp till några kompisar som ville räkna ut lite vardagsekonomiska problem. Frågan är hur stort ett projekt måste vara för att en arbetsgivare skall vara intresserad. Jag kan tänka mig att det blir svårt att svara på en sådan fråga men jag har trots allt funderat på det.

Jag funderar på att göra något slags "fullstack"-projekt då jag trots allt är bekant med Python och C#. Jag är inte bra på att hantera databaser i språken så kanske vore det ett bra sätt att bekanta mig med det.

Permalänk
Vila i frid
Skrivet av Esrakuf:

Jag är inte bra på att hantera databaser i språken så kanske vore det ett bra sätt att bekanta mig med det.

Att ställa frågor till SQL är en baggis. Att förstå SQL begripligt är lite jobbigare. Att designa SQL är ännu lite jobbigare. Att bli SQL-guru = inkomst som få programmeringjobb kan klå. Personligen skiter jag numera fullständigt i SQL - eftersom jag går i pension om två månader.

Permalänk
Medlem
Skrivet av Esrakuf:

Ja, det låter sunt det du skriver. Jag har några mindre projekt bakom mig, gjorde till exempel en enkel statisk webbapp till några kompisar som ville räkna ut lite vardagsekonomiska problem. Frågan är hur stort ett projekt måste vara för att en arbetsgivare skall vara intresserad. Jag kan tänka mig att det blir svårt att svara på en sådan fråga men jag har trots allt funderat på det.

Jag funderar på att göra något slags "fullstack"-projekt då jag trots allt är bekant med Python och C#. Jag är inte bra på att hantera databaser i språken så kanske vore det ett bra sätt att bekanta mig med det.

Jag har lite ont om tid så det blir ett kort och koncist svar. En bra arbetsgivare är inte intresserad av vad du har gjort sett till kvantitet eller storlek per se, ett bra företag är ute efter hur du har hanterat de projekt du har gjort och hur du tagit dig an problem. Om du kan språk X, Y eller Z är i många fall ointressant i det långa loppet. Det är alltid lätt att lära sig nya språk, men det är svårt att ändra en persons inställning.

Ditt mindset, tankegång och analytiska förmåga är viktigast. Satsa på att förstå generella grundprinciper (hur saker funkar på låg nivå, trådar/trådhantering, nätverk osv. Det är kunskap som många gånger är universell, den bara tillämpas lite olika beroende på miljö/språk.)

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Medlem
Citat:

hur företag faktiskt arbetar med utveckling och framförallt testning, CI och versionshantering.

Det varierar som sagt oerhört mycket. Det man numera kan vara säker på är att man måste kunna grunderna i git, förr eller senare.

Att köra ett halvstort utvecklingsprojekt där du har en testmiljö (självständig och skild från din lokala utvecklingsmiljö) och en produktionsmiljö, där de olika miljöerna har olika konfigurationer är lärorikt. Se till att kunna hantera versionshanteringssystemet så att du vet exakt vilken kod som ligger i vilken miljö. Skillnaderna mellan miljöerna kan vara så ”enkel” som att visa vilken miljö man kör i (genom konfiguration) samt vilken git-hash den körande koden har.

Simulera sedan utveckling av ny funktionalitet i en feature-branch och gången för deploy till test-miljö, manuell test där och sedan deploy till produktion.

Det är även bra att få grepp om testdriven utveckling. Försök att hitta vägar att skriva både enhetstester, där du ”mockar” bakomliggande anrop (databaslager/API/anrop till andra klasser…) och integrationstester där du testar hela infrastrukturen, inklusive anrop över nätverk och ner i databaser.

Om du löser ovanstående så har du ett försprång med motsvarande vad jag brukar tvinga mina rookies att lära sig under första/andra projektet de är med i. CI/CD kan alltid någon med mer erfarenhet sätta upp.

Permalänk
Medlem
Skrivet av hasenfrasen:

Att ställa frågor till SQL är en baggis. Att förstå SQL begripligt är lite jobbigare. Att designa SQL är ännu lite jobbigare. Att bli SQL-guru = inkomst som få programmeringjobb kan klå. Personligen skiter jag numera fullständigt i SQL - eftersom jag går i pension om två månader.

Om man känner att man kan SQL mycket väl , men saknar programmeringskunskap i "traditionella" språk som C eller Java, vilka programmeringsjobb kan man hitta då ?

Permalänk
Vila i frid
Skrivet av Harddrive:

vilka programmeringsjobb kan man hitta då ?

Att vara insnöad på ett enda språk gör det svårt att vara flexibel för en arbetsgivare. Helst bör man kunna lite om mycket men fokusera på ett eller par områden. Att pyssla med samma sak hela tiden är inte heller så kul eller utvecklande.

Permalänk
Medlem
Skrivet av Esrakuf:

Det har jag funderat på! Får helt enkelt ta tag i det och nästla mig in i något sammanhang ;).

https://www.sweclockers.com/forum/trad/1660016-swec-githubare...

Perfekt ställe att kika efter projekt du kanske kan hjälpa till med.

Skrivet av Esrakuf:

Nu vill jag skaffa mig insikt om hur företag faktiskt arbetar med utveckling och framförallt testning, CI och versionshantering.

Blockera inte dig själv från att ansöka för att du inte känner att du har helt koll på detta. De flesta företag är väldigt villiga att tag an "juniora" utvecklare och lära upp dem.

Men ivf, för att ha lite mer kött på benen.

  • Testning- Bli bekant med enhetstestning i ett språk du vill jobba med. För .NET exempelvis XUnit eller i JS/TS världen Jest. Detta kan däremot gå väldigt mycket djupare med property based testing, end2end tester, UI tester osv.

  • CI - Code as infrastructure. Github actions är ett lättillgängligt exempel. Jobbar man mot cloud så är också Terraform väldigt relevant. (Github actions från mitt egna projekt som visserligen behöver lite refaktorisering, tyvärr har jag inget terraform exempel att dela då jag enbart har använt det i yrket och därav stoppas av copyright.) Långt ifrån ett krav men väldigt trevligt att ha lite kött på benen om Docker också, även om det mer har med utvecklingsmiljö och drift att göra.

  • Versionshantering - Läs om git och olika git branch stratergier som trunk-based development. TFS och andra scm är oftast bara legacy i dagens IT värld. Nästintill bara git som körs och det är för väldigt bra skäl.

Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.

Permalänk
Medlem
Skrivet av Esrakuf:

Det har jag funderat på! Får helt enkelt ta tag i det och nästla mig in i något sammanhang ;).

Ja mycket av det där du skriver är så specifikt från företag till företag vilken process de jobbar med etc. så det är bättre att lära sig på plats. Visst att förstå principen och varför det är bra att ha olika delar kan vara vettigt så en verkar lite insatt på en intervju men inget en behöver gå en kurs för. Sök jobb, marknaden skriker efter kompetens, var bara ärlig med på vilken nivå du anser att dina kunskaper ligger så ska en rekryterare nog kunna hitta en första arbetsplats för dig.

Visa signatur

🛜🫀: HP ProDesk 400 G3, i5 6500, 8GB DDR4, Intel X520-DA2
🐳🐧: AMD R5 3600 | Google Coral.ai | ASRock X570D4U-2L2T | Silverstone CS381 | 80GB DDR4 | 8 HDD BTRFS RAID1
⌨️🎮: R9 3900X | RTX 2080 LC | Acer XF270HUA | 96GB @ 3200 | MSI X570 MPG G EDGE WIFI | CORSAIR C70
🎞🎶: LG OLED55C8 | Epson TW3200 | Onkyo TX-NR646 | Infinity Reference 61/51 mk2 | Shield TV V2 | minhembio.com

Permalänk
Medlem
Skrivet av KAD:

Det varierar som sagt oerhört mycket. Det man numera kan vara säker på är att man måste kunna grunderna i git, förr eller senare.

Att köra ett halvstort utvecklingsprojekt där du har en testmiljö (självständig och skild från din lokala utvecklingsmiljö) och en produktionsmiljö, där de olika miljöerna har olika konfigurationer är lärorikt. Se till att kunna hantera versionshanteringssystemet så att du vet exakt vilken kod som ligger i vilken miljö. Skillnaderna mellan miljöerna kan vara så ”enkel” som att visa vilken miljö man kör i (genom konfiguration) samt vilken git-hash den körande koden har.

Simulera sedan utveckling av ny funktionalitet i en feature-branch och gången för deploy till test-miljö, manuell test där och sedan deploy till produktion.

Det är även bra att få grepp om testdriven utveckling. Försök att hitta vägar att skriva både enhetstester, där du ”mockar” bakomliggande anrop (databaslager/API/anrop till andra klasser…) och integrationstester där du testar hela infrastrukturen, inklusive anrop över nätverk och ner i databaser.

Om du löser ovanstående så har du ett försprång med motsvarande vad jag brukar tvinga mina rookies att lära sig under första/andra projektet de är med i. CI/CD kan alltid någon med mer erfarenhet sätta upp.

Tack, värdefull information!