Vinnaren i pepparkakshustävlingen!
2017-03-13, 20:37
  #1
Medlem
Mannerheimbrants avatar
Jag ber om ursäkt redan nu för en luddig rubrik.

Jag har börjat jobba på ett företag som utvecklar banksystem och betalningslösningar. Jag jobbar i rollen som "produktspecialist" vilket är lite missvisande titel då mitt arbete i huvudsak består av att planera och koordinera arbetet i ett team på ca. 10 personer, samt att testa programvaran som vi utvecklar. Till mina uppgifter hör också att kommunicera med våra kunder och fungera som en länk mellan dem och våra utvecklare.

Mitt arbete är således inte särskilt tekniskt i sig, men jag skulle gärna vilja lära mig mera om systemutveckling och mjukvaruarkitektur. Jag kommer inte från en teknisk bakgrund, förutom att jag har läst en del om informationssystem som en del av min universitetsexamen och programmerat en del på egen hand. Jag lär mig förstås en hel del på jobbet, men skulle vilja studera mera på egen hand för att underlätta mitt eget arbete och utveckla en bättre förståelse om hur saker och ting hänger ihop. Jag vet också att jag måste skaffa mig mera kunskap om jag ska kunna avancera inom organisationen i framtiden.

Jag undrar därför om någon kan ge mig tips om var jag ska börja? Jag är intresserad av alla resurser (böcker, kurser online etc.) och tänkte att någon som studerat datatekniska utbildningar kanske kunde hjälpa mig i rätt riktning. Jag söker alltså inte efter några djuplodande verk i det här skedet, utan strävar efter att få en grundläggande förståelse till att börja med. Jag har givetvis googlat innan men det är svårt att hitta rätt i djungeln för en nybörjare.
Citera
2017-03-14, 07:55
  #2
Medlem
Jag tror att det är svårt att börja med större och vidare begrepp som arkitektur och systemutveckling innan man förstår den lägsta och minsta beståndsdelen som är koden och programmering av densamma. Därför tror jag att din väg till förståelse är att du först lär dig enklare programmering och vad det innebär.

Enklaste och bredaste starten:
Webbprogrammering med något dynamiskt språk där du lägger upp på en webbserver och kopplar till en databas. Då får du med väldigt många delar av vad programmering ofta består av.
Bygg först upp hela miljön på din egna dator utan att använda WAMP, LAMP eller MAMP. Då lär du dig ännu mer jämfört med att bara ta valfritt webbhotell där allt är klart.

Edit:
Jag ser att du skrivit att du sysslat med en del programmering så om du kan den biten så kan du höja nivån några snäpp.
Jag tror att man lär sig mest på att faktiskt bygga systemen. Amazon har en bra prismodell som gör att du kan testa i princip allt utan någon större kostnad. Du kan bygga upp komplexa lastbalanserade system med containers och microservices lätt. Kom bara ihåg att stänga av dina tjänster när du inte använder dem.
När man byggt upp ett system så har man lärt sig otroligt mycket eftersom man har läst väldigt mycket för att förstå hur man ska göra allt. Sen kan man fördjupa sig inom vissa områden för att förstå dem ännu bättre.

Microservices och containers är stort just nu. Här är en blogserie om just det:
http://callistaenterprise.se/blogg/t...microservices/
Väldigt intressant sätt att bygga mjukvara. Jag har tyvärr själv inte sysslat med det ännu. Sitter kvar i stora monoliter.
__________________
Senast redigerad av e7andy 2017-03-14 kl. 08:54.
Citera
2017-03-14, 19:09
  #3
Medlem
Mannerheimbrants avatar
Citat:
Ursprungligen postat av e7andy
Jag tror att det är svårt att börja med större och vidare begrepp som arkitektur och systemutveckling innan man förstår den lägsta och minsta beståndsdelen som är koden och programmering av densamma. Därför tror jag att din väg till förståelse är att du först lär dig enklare programmering och vad det innebär.

Enklaste och bredaste starten:
Webbprogrammering med något dynamiskt språk där du lägger upp på en webbserver och kopplar till en databas. Då får du med väldigt många delar av vad programmering ofta består av.
Bygg först upp hela miljön på din egna dator utan att använda WAMP, LAMP eller MAMP. Då lär du dig ännu mer jämfört med att bara ta valfritt webbhotell där allt är klart.

Edit:
Jag ser att du skrivit att du sysslat med en del programmering så om du kan den biten så kan du höja nivån några snäpp.
Jag tror att man lär sig mest på att faktiskt bygga systemen. Amazon har en bra prismodell som gör att du kan testa i princip allt utan någon större kostnad. Du kan bygga upp komplexa lastbalanserade system med containers och microservices lätt. Kom bara ihåg att stänga av dina tjänster när du inte använder dem.
När man byggt upp ett system så har man lärt sig otroligt mycket eftersom man har läst väldigt mycket för att förstå hur man ska göra allt. Sen kan man fördjupa sig inom vissa områden för att förstå dem ännu bättre.

Microservices och containers är stort just nu. Här är en blogserie om just det:
http://callistaenterprise.se/blogg/t...microservices/
Väldigt intressant sätt att bygga mjukvara. Jag har tyvärr själv inte sysslat med det ännu. Sitter kvar i stora monoliter.

Tack för insikten e7andy!

Jo, jag vet att jag använde stora ord, visste inte riktigt vad jag skulle kalla det för att beskriva vad jag sökte efter. Min tanke var helt enkelt att få någon sorts helhetsbild av området innan jag gräver ner mig i detaljer. Jag förstår emellertid vad du säger och kanske det är så att man får börja gotta ner sig i mera programmering och utvidga efterhand tills man klarar av att bygga ett enklare system någon gång i framtiden. Jag har trots allt programmerat en del i Pyton och Java och skapat några enklare applikationer som jag haft nytta av, så jag får väl helt enkelt börja ta mig an lite större uppgifter och starta där.

Jag vet mycket väl att jag inte kommer att bli någon programmeringsguru och det är heller inte mitt mål. Jag skulle helt enkelt bara vilja förstå saker på en sådan nivå att jag kan kommunicera effektivt med personer från olika bakgrunder utan hinder. Jag är egentligen civilekonom och jag föreställer mig i en roll som är mer av administrativ karaktär och viktad mot affärssidan av verksamheten.

Jag ska ta mig en titt senare på bloggserien du länkade till.
Citera
2017-03-14, 19:21
  #4
Medlem
Din frågeställning är väldigt intressant. "Hur ska en person som inte jobbar med systemutveckling förstå hur och varför man gör olika saker när man utvecklar mjukvara?"

Jag sökte och läste en del om arkitektur och systemutveckling i allmänhet, men jag tycker det ofta faller på att det är svårt att förstå varför man gör olika saker.

Ett annat "problem" är att man kan göra samma sak på tusen olika sätt. Om man lär sig ett sätt som fungerar så betyder inte det att det är det mest lämpliga sättet att göra det på eller det sätt som man nu för tiden löser det.
Det är som microservices och containers. Det är trendigt nu, men om något till några år så ska man göra det på ett helt annat sätt. Först då har många organisationer ställt om till det förra sättet att jobba. Några ligger i fas, andra försöker hänga med och många ligger hopplöst efter. Det blir fruktansvärt spretiga systemmiljöer med gammalt och nytt blandat. Sen blandas det ofta vilt i mjukvaran också eftersom det finns utvecklare som vill testa nya saker i legacykod.

Det kan vara värt att kolla hur företag med mycket IT har löst sina system. Det är väldigt ofta publika med sina lösning. Sök på hur Spotify, Netflix, Facebook, Google m.fl. har löst sin arkitektur och hur de designar sin mjukvara.
Citera
2017-03-14, 20:46
  #5
Medlem
Trillskes avatar
Du får lite uppförsbacke av att du arbetar i en rätt jävla teknik-inkompetent bransch. Men om ni tar in vettiga konsulter kan du ju alltid snappa upp kunskap från dem.

I övrigt:
1) Ladda hem Visual Studio här
2) Leta upp en C#-hello world-tutorial på det här sättet
3) Leta upp en mer avancerad tutorial som antingen sägs eller ser ut att avklaras på ca 4-5 timmar. Inget web eller dylikt - antingen console application, winform eller motsvarande. Men något som gör något, så att säga.

Ovanstående tar dig en ungefär en hel dag om du ska begripa något.

4) Skapa en MVC-applikation. Bry dig inte så mycket om detaljerna. Använd tex https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc. Då gör i princip Visual Studio applikationen åt dig. Syftet är bara att nå nästa steg.

5) Använd JavaScript (AJAX) för att kommunicera mellan backend och någon vy. Nöj dig så fort du har klarat att skicka text åt båda håll. Det kommer ta dig ungefär en dag att fatta hur det här fungerar.

-------------------------

Vips så har du grunden till att förstå hur man använder diskret matematik för att lösa interna problem i en applikation samt hur saker och ting kan kommunicera med varandra. Rent av ett av de vanligare sätten det sker på idag.

Sen behöver du absolut inte grotta ned dig i C# eller dylikt om du inte råkar fastna för det och vill fortsätta av den anledningen. Du har via dessa två (visserligen tuffa) dagar skaffat dig en möjlighet att förstå extremt mycket av framtida system som presenteras för dig.

-------------------------

Och om det ska vara lönt, se till att faktiskt göra sakerna (om du inte redan kan något av dem). Annars kommer det aldrig bli någon "aha"-upplevelse när du sedan studerar system, läser om arkitektur, osv.
Citera
2017-03-15, 21:11
  #6
Medlem
Mannerheimbrants avatar
Tack för svaret Trillske!

Nej, jag har ändå sysslat så pass mycket med programmering att jag förstår att man inte läser sig till ny kunskap på det sättet. Jag gillar dock att sitta och programmera och söka lösningar till problem, så jag uppskattar att du gav tips på konkreta saker jag kan börja med. Ska absolut ge det en chans redan framåt helgen.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback