itfag | Teknologi. Data. Læring. Deling.

Archive for august 2016

Av: Svend Andreas Horgen, studieprogramleder nettbaserte fag, NTNU

Dette blogginnlegget er langt, men trolig oppklarende. Det er myntet på alle som har interesse for et eller flere av temaene programvareutvikling, webutvikling, programmering, informasjonsbehandling og prosjektarbeid. Mange kommer nemlig borti ulike former for utviklingsarbeid i jobbsammenheng, og lurer på hvilke fag de bør ta for å styrke sin kompetanse og evne til å bidra i slikt arbeid. Ved å lese dette blogginnlegget får du en gjennomgang av hva vi tilbyr og hvilke fag som hører godt sammen. Du vil kanskje få noen aha-opplevelser av å lese innlegget. Det er langt, men det er fordi vi har prøvd å tenke helhetlig. Så selv om du kanskje har programmering eller webutvikling som primærinteresse, bør du også lese de andre avsnittene for å sette alt inn i en helhetlig sammenheng. Du som ender opp med å ta bare ett eller noen få fag, kan uansett ha nytte av å kjenne til relaterte områder.

Innhold i dette innlegget

  1. Programmeringsfag
  2. Webutviklingsfag
  3. Databaser og databehandling
  4. Prosjektarbeid, administrasjon, ledelse og økonomiforståelse
  5. Andre støttefag

1: Programmeringsfag

Mange som jobber i arbeidslivet med utviklingsprosjekter kan ha nytte av å få en viss forståelse for programmering for å kunne bidra mer konstruktivt i slikt arbeid. Andre ønsker å spisse kompetanse innenfor programmering og jobbe mer eller mindre direkte med programmering. Atter andre igjen ser på programmering som en viktig del av sin faglige portefølje eller ønsker å øke kompetansen for å bedre forstå andre aspekter av IKT.

Vi har mange programmeringsrelaterte fag som tilbys etter- og videreutdanningsmarkedet via http://itfag.no. Her er noen generelle betraktninger om hva du kan velge og litt om sammenhengen mellom ulike fag. Du må nesten tolke dette i lys av dine mål og ønsker. Har du spørsmål utover teksten, så ta kontakt med studieprogramleder Svend Andreas Horgen ved NTNU.

  • Grunnleggende programmeringsfag: Hensikten er å introdusere grunnleggende programmeringsteknikker og gi forståelse for hva programmering er. Du lærer konkrete ferdigheter innenfor det aktuelle språket som lar deg skrive egne programmer av en viss kompleksitet. Mange lar det være med det grunnleggende kurset, enten fordi de ikke ønsker mer innsikt i programmering utover grunnleggende nivå, eller fordi det oppleves som faglig tungt. Andre velger å fordype seg i videregående programmering. Vår klare anbefaling er at alle som skal jobbe med IKT har et grunnleggende programmeringsfag i sin portefølje. Det er nyttig i mange sammenhenger.Vi tilbyr følgende grunnleggende programmeringsfag:
    • Programmering i Java: Du lærer grunnleggende objektorientert programmering. Du lærer om klasser og objekter i tillegg til løkker, if-setninger, funksjoner og liknende.
    • Programmering i Visual Basic: Bruker Visual Studio .NET som utviklingsmiljø, noe som gjør det veldig lett å komme i gang med å lage små programmer. Merk at faget ikke tar opp objektorientering, fordi det kommer først i det videregående faget (Objektorientert programmering med systemarbeid).
    • Programmering i C++: Dette er nok det vanskeligste av de tre språkene, men C++ er mye brukt i arbeidslivet. Ved å lære det vanskeligste først som sist, blir mer avanserte språk lettere.
  • Videregående programmeringsfag: Du er (som nevnt ovenfor) ikke bundet av å fortsette med det språket du har som grunnleggende språk. Uansett hva du kan fra før kan du relativt «lett» lære et nytt språk. Syntaksen og noe av det nye språkets struktur er riktignok ulikt fra det du kan fra før av, men dette kan du lett lære deg ved å bruke litt tid i starten på YouTube-videoer e.l. Ofte har faglærer lagt opp til en kort repetisjon av språkets syntaks og særegenheter myntet for de som kommer fra andre språk, eller de som trenger en repetisjon. Det viktige er altså å ha forståelse for programmering på riktig nivå som forkunnskap før du starter med et videregående fag.Vi tilbyr følgende videregående programmeringsfag:
    • Objektorientert programmering med systemarbeid: Bygger på Programmering i Visual Basic og starter med å ta opp objektorientering, kobling mot databaser og flere avanserte teknikker. Er det eneste faget som ikke er på 5 studiepoeng (det er på 10). Det skal gjøres et større utviklingsarbeid underveis som skal dokumenteres, og dette skjer gruppevis.
    • Videregående programmering i Java: Bygger på Programmering i Java. Går i dybden på avanserte objektorienterte teknikker som arv, polymorfi, samarbeid og liknende.
    • Applikasjonsutvikling for Android: Dette er et veldig populært fag hvor du lærer å lage apper til Android (mobil/nettbrett). Faget bygger på Videregående programmering i Java og krever i så måte gode forkunnskaper innen Java, så du må ikke melde deg på om du bare har fullført grunnleggende programmering. Du lærer også litt om MVC i dette faget.
    • C++ for programmerere: Bygger på forståelse tilsvarende grunnleggende programmeringsfag og at en behersker objektorientering. Både de som har tatt Programmering i C++ og Java kan ta dette. De som har tatt Programmering i Visual Basic + kan grunnleggende objektorientert programmering (for eksempel gjennom Objektorientert programmering med systemarbeid) kan ta dette.
    • C#.NET: Gir innføring i C#.NET-utvikling. Forutsetter grunnleggende objektorientert programmering. Altså samme krav som for C++ for programmerere nevnt i punktet over.
    • Python for programmers: Faget er på engelsk og krever bare grunnleggende programmeringsforståelse (ikke krav om OOP i forkant, men en lærer det underveis).

Figuren viser at med Java og C++ kan du ta hvilket som helst av de videregående fagene. Visual Basic krever at du tar Objektorientert programmering med systemarbeid først. Android krever at du har kunnskaper tilsvarende Videregående Java.

Figuren viser at med Java og C++ kan du ta hvilket som helst av de videregående fagene. Visual Basic krever at du først lærer om objektorientering (OOP), typisk ved å ta Objektorientert programmering med systemarbeid, før du kan ta C++ og C#. Python kan tas uten å kjenne til OOP. Android krever at du har kunnskaper tilsvarende Videregående Java.


2: Webutviklingsfag

Ulike former for webutvikling har blitt mer og mer vanlig, og det å beherske webutvikling er et fortrinn. De som vil dypdykke i webutvikling, bør selvsagt strebe etter mest mulig, men også de som jobber med konvensjonell programmering, og de som ikke nødvendigvis skal programmere webløsninger selv, kan ha nytte av å få innsikt i hvilke teknologier som fins og litt om hvordan de virker.

Basisfaget hos oss er Webutvikling 1, som er helt grunnleggende. Webutvikling 2 bygger på Webutvikling 1. Webutvikling 2 går i bredden på mange teknologier, men rekker ikke å gå i dybden på alle. Det er absolutt nyttig, men om du vet at du for eksempel skal dypdykke i PHP eller ASP.NET eller Python eller HTML5, så kan du gå rett til Webprogrammering i PHP eller Webprogrammering i ASP.net eller Webprogrammering med Python eller HTML5 direkte. Du kan selvsagt også ta Webutvikling 2 uansett, men vær da forberedt på noe overlapp med dybde-fagene.

Et annet aspekt av webutvikling er «design». Webdesign kan være mer aktuelt enn en kanskje først skulle tro. Selv om du ikke vil bli hard-core designer selv, kan forståelse for design komme godt med i mange utviklingsprosjekter du deltar i.

Her er en liste av alle webutviklingsfag som vi tilbyr:

  • Webutvikling 1: grunnleggende HTML, CSS og liknende. Fokuset er på å lære å lage en statisk webside.
  • Webutvikling 2: mer i dybden på hvordan en kan lage et dynamisk nettsted. Fokus er på å kunne forstå ulike teknologier og klare å benytte seg av ferdige løsninger som tilpasses. Slik kan du utvikle større nettløsninger raskt og effektivt og forstå (i bredden, ikke dybden) hvilke dynamiske komponenter som kan inngå i et større nettsted.
  • Webdesign: Du lærer teori om utforming av gode webgrensesnitt og websider, du får praktisk trening i CSS og det settes også fokus på universell utforming.
  • HTML5: Mange muligheter med dette nye markeringsspråket og en rekke API-er som følger med HTML5
  • Webprogrammering i PHP: Serversideprogrammering, lær å lage dynamiske løsninger opp mot en database
  • Webprogrammering i ASP.NET: Serversideprogrammering, søsterfag med PHP men rettet mot Microsoft-teknologien .NET
  • Webprogrammering med Python: Introduksjon til Python med fokus på webutvikling

3: Databaser og databehandling

De som er interessert i programmering og webutvikling, bør også lære seg noe om databaseteori og systemutvikling. Typisk:

  • Databaser: Fordi de aller fleste programsystemer lagrer informasjon i en database.
  • Databaser 2: Fordi jo mer databaseteori du kan, jo smartere kode vil du utvikle (siden du gjør mer avanserte operasjoner på databasenivå).
  • XML-teknologi: Nyttig å kjenne til fordi det brukes som datautvekslingsformat mellom ulike applikasjoner, til eksport av data og for å representere data generelt sett. Dette gir også økt forståelse for metadata og databehandling generelt sett.
  • Big data: Bearbeiding av store datamengder blir stadig mer relevant. Du lærer å forstå forretningsverdien av «big data», og noen konkrete teknikker for å behandle slike.

La oss dvele litt mer med hvorfor databaseteori er relevant i forbindelse med programmering. Informasjon som mates inn i et programsystem må lagres et sted. Dette gjelder uavhengig av om en programmerer for web eller et lager et frittstående program (PC/Mac/Linux) eller en app (mobile enheter). Informasjonen kan lagres i en filstruktur, eller i en database. Databaser er veldig utbredt, særlig i større systemer. Ved å forstå teori tilsvarende faget Databaser (og gjerne også Databaser 2) vil du få et helt annet syn på programmering og databehandling, og kan utvide programmeringsferdighetene dine til å nå et helt annet nivå. Derfor er det lurt å ta Databaser i parallell med programmering, eller å ta programmering først og så lære om databaser etterpå. Lærer du databaseteori først uten å kjenne til programmering eller databehandling, så kan lærestoffet virke noe teoretisk og kryptisk. Du får best utbytte om du kan lese databaseteori i lys av din forståelse for programmering/webutvikling.

4: Prosjektarbeid, administrasjon, ledelse og økonomiforståelse

Du deltar trolig i mange prosjekter gjennom din yrkeskarriere. Noen som prosjektdeltaker, andre som prosjektleder. Hvordan jobbe godt med IKT-prosjekter spesielt og prosjekter generelt (der IKT-støtte kan være en suksessfaktor)? Vi tilbyr noen interessante fag for deg som ser verdien av formalisert kompetanse på dette:

  • Teamarbeid: Grunnleggende om å jobbe effektivt og godt sammen i grupper. Nyttig både i fag som krever gruppearbeid og i prosjekter i arbeidslivet. Dette faget legger opp til nettbasert gruppearbeid.
  • Datastøttet samhandling: Bli enda bedre til å samhandle, samarbeide effektivt med moderne verktøy og gjennomføre prosjekter. Dette faget legger opp til nettbasert gruppearbeid.
  • Samhandlingsplattformer med Sharepoint: Belyser typiske problemstillinger som må håndteres ved tilpasning av samhandlingsplattformer i organisasjoner. Siden Sharepoint er så utbredt, brukes det som case. En del utviklingsprosjekter er relatert til informasjon som allerede eksisterer i Sharepoint, så dette kan være et sentralt fag for mange. I tillegg er fokuset også på generell samhandling.
  • Organisasjon og ledelse: Ved å forstå organisasjonsstrukturer, kultur og kommunikasjon i organisasjoner, samt endrings- og ledelsesprinsipper, får du et bedre grunnlag til å jobbe effektivt med andre.
  • IT-strategi i organisasjoner: Gir et overordnet blikk som er viktig for å forstå behovet for endring i lys av eksisterende systemer. Setter fokus på IKT sin rolle i forretningsprosesser, ERP-systemer, outsourcing, sammenhenger mellom IT-strategi og forretningsstrategi, overordnede planer for innføring av nye IT-løsninger og liknende. Faget er IKKE bare for de med lederambisjoner!
  • Økonomiforståelse: Fag som Økonomisk styring og regnskap og Bedriftsøkonomi kan være nyttig også for personer med utviklerkompetanse. Får du opprykk til en mellomleder eller lederstilling? Det å ha grunnleggende økonomiforståelse er ikke bare gull verdt, men nesten en forutsetning. Skal du noen gang starte egen bedrift? Gull verdt. Også mer spesifikke fag som Markedsorientert produktutvikling og Entreprenørskap kan vurderes.
  • Sosiale medier: Dette er et fag som i utgangspunktet gir innsikt i forretningsmessig bruk av sosiale medier. En lærer mye om ulike Web 2.0-tjenester. Men de som kan programmering vil få et nytt perspektiv på sosiale medier i tillegg til det forretningsmessige, som kan berike webprogrammeringskunnskapene. Det å få erfaring med nye tjenester øver nemlig evnen til å tenke nytt om brukergrensesnitt og funksjonalitet på web. Det er lettere å få innsikt i hvordan slike tjenester må være konstruert for å virke rent teknisk, når en blir vant med å prøve dem i praksis.
  • Økonomisk analyse med regneark: Dette faget kunne vært listet opp under programmeringsfagene, men siden fokuset er på anvendelse av regneark i en økonomisk sammenheng, nevnes det her i stedet.

5: Andre støttefag

Til slutt er det verdt å nevne noen «mykere» fag som en hard-core programmerer kanskje først tenker på som tørre og kjedelige og teoretiske. Slike kan likevel være nyttige, og de er spesielt nyttige for de som deltar i ulike former for IKT-relatert prosjektarbeid/utviklingsarbeid.

  • Informasjonsforvaltning: Hvordan informasjon kan forvaltes i en bedrift.
  • ITIL v3: Forstå tjenesteadministrasjon og kontinuerlig tjenesteforbedring med tilhørende prosesser og funksjoner. Før noe skal utvikles, er det greit å sette dette i en sammenheng med eksisterende tjenester.
  • Eventuelt et eller flere grunnlagsfag for å forstå datakommunikasjon, operativsystemteori, datasikkerhet og liknende.
  • IT, miljø og samfunn: Mange stusser over at jeg tar med dette faget, men ikke kims av et fag som IT, miljø og samfunn! Det er høyst relevant og tar opp temaer som er «tunge» å sette seg inn i på egenhånd, men som kan være veldig kritiske å overse i et utviklingsarbeid. Les følgende utvalgte læringsutbytter fra emnebeskrivelsen, og du ser kanskje hvorfor det er relevant for de som vil øke kompetanse innen utvikling av datasystemer:
    • har kjennskap til aktuelle retningslinjer og lovverk knyttet til utvikling, anskaffelse, innføring og bruk av IKT data og datanettverk (for eksempel: personvern, universell utforming, offentlig anskaffelse, sertifisering, arbeidsliv, Copyright & Creative Commons (CC))
    • har kunnskap om lover knyttet til bruk av data og datanettverk

Oppsummering

Hensikten med dette innlegget er ikke å selge inn flest mulig fag til de som har lyst til å lære mer om utvikling (programvareutvikling, webutvikling, programmering, informasjonsbehandling og/eller prosjektarbeid). Men faktum er at mange som har slike interesser, med fordel kan vurdere å ta ett eller flere relaterte fag i tillegg til det en først tenkte på. En «utradisjonell» kompetansesammensetning på din CV kan utgjøre den lille forskjellen som gjør at du får jobb, eller som gjør at et prosjekt lykkes. Forståelsen blir bedre jo flere aspekter en ser tilknyttet utviklingsarbeidet. Selv hard-core programmerere kan ha nytte av å kjenne til prinsipper for ledelse, prosjektstyring, økonomi og strategier for databehandling. Vi understreker at ikke alle bør ta alt. Du kan være veldig verdifull om du velger bare litt, eller ønsker å gå i dybden på bare et utvalgt område. Men for de (stadig flere) som ønsker hybridkompetanse, vil gjennomgangen over forhåpentligvis være oppklarende. Hovedrådet blir: Ta det du synes høres mest interessant ut, og som du tror blir nyttig i din nåværende eller evt. kommende jobb.

Ytterligere spørsmål kan rettes til studieprogramleder Svend Andreas Horgen, eller til hver enkelt faglærer som underviser de ovennevnte fagene.

Dette innlegget har 2 kommentarer. Gjerne bidra :-)

Theme Design by devolux.nh2.me