Programmering

Det er altid meget svært, at give gode retningslinjer for, hvilke sider på nettet, der er gode. Det kan fx være at de ikke længere bliver opdateret eller indeholder forældet kode.

Med ovenstående i betragtning vil jeg derfor ikke linke til særligt mange websteder. De sider, jeg linker til er nøje udvalgt, og nogle jeg kan stå inde for.

Foruden links til websider, ønsker jeg også at angive nogle gode titler på bøger, som jeg har læst. En god bog er i min optik den bedste start på, at lære programmering. Næst efter en kurateret undervisning. Og ikke mindst så er det når man selv har fingrene nede i maskineriet, at ens udvikling for alvor sættes i gang. Selvfølgelig!

Bøger

Python For Kids

No Starch Press. ISBN-13: 978-1-59327-407-8

Python for Kids er en rigtig god begynder-bog. Den indeholder mange gode eksempler og tager dig fra begynder til at kunne forstå funktioner. Uanset om man læser på uni, gymnasiet, eller er på et af mine hold, vil jeg til enhver tid anbefale dette mesterværk af en Python bog!

Python Crash Course

No Starch Press. ISBN-13: 9781593279288

Har man læst Python for Kids, så er denne bog fin at fortsætte med. Dels fordi den er skrevet på samme forlag som Python for Kids, hvorfor den følger samme redaktionelle linje som Python for Kids. Dvs at sproget ikke er så akademisk og tørt, som man andre programmeringsbøger kan være.

Bogen dykker dybere ned i Python, og kapitlerne er længere. Jeg ved at den også bruges på Københavns Universitet, som introduktionsbog.

Computing With Python – an introduction to Python for science and engineering

Pearson Education Ltd. ISBN:-978-0-273-78643-6

Bogen er blevet brugt som indføring i scientific computing på bl.a. Lunds universitet i faget “Beräkningsprogrammering”. Den er også blevet brugt på universiteterne i Trondheim og Stavanger.

Man skal ikke begynde med bogen, men den er i min optik den bedste bog, hvis man ønsker indføring i videnskabelige principper. Der er mange gode eksempler på matematiske løsninger.

Bemærk at bogen ikke er blevet opdateret siden 2014. Koderne er derfor skrevet i Python 2 og ikke Python 3. Jeg har netop genlæst bogen i februar 2020, og der er så små forskelle, at jeg stadig vil sige, at det er en virkelig god bog.

De lidt mere omfattende bøger

Algorithms

ISBN-13: 978-0321573513

Grundigt beskrevet bog om algoritmer. Der bruges Java til eksemplerne. Du bliver aldrig færdig med den, da du altid vil kunne vende tilbage til den, når du arbejder på nye projekter.

Jeg vil mene at det er en bog, som er god at have læst for din egen skyld. Nogle arbejdssteders rekrutering indeholder desuden stresstests, hvor du bliver testet i algoritmer.

Types and Programming Languages

ISBN-13: 978-0262162098

En lige dele teoretisk og praktisk bog, som fører os igennem forskellige typer af programmeringssprog.

På trods af, at det faktisk er en praktisk bog, så er bogen desværre sat enormt kedeligt op, og er absolut ikke for begynderen.

Clean Code

ISBN: 978-0132350884

Når du først har programmeret en masse koder, og ønsker at gøre din programmering mere ren og pæn, kan denne bog, som tager fokus på de agile processer i kodning, være ganske brugbar.

Men start ikke ud med den! Læs den hvis du tænker på at arbejde med teknologi af den ene eller anden art.

Code Complete

ISBN-13: 978-0735619678

En klassiker fra 1993, som er blevet opdateret. Den fungerer i samme stil som clean code, men har nok mere fokus på “vandfaldsmodellen”, og at den gode kode skal skrives med det samme.

Denne bog er absolut heller ikke for begynderen. Men lov mig, at du læser den inden du får dit første job.

Resourcer

How to Think like a Computer Scientist

http://www.openbookproject.net/thinkcs/python/english3e/

En lidt gammel Python bog, som jeg husker som ret god. Koderne er skrevet til Python 2, men fungere fint til Python 3.

QuantEcon Lectures

https://quantecon.org/lectures/

Det er lidt atypisk, at anbefale en bog om programmering til finansielt brug. Men det er en rigtig god resource, da den indeholder meger brugbar information, som kan benyttes til alle slags projekter.

Geeks for Geeks

https://www.geeksforgeeks.org/

Meget omfattende webside med en række artikler og ressourcer inden for programmering.

Matematik for spiludviklere

Javidx aka The one lone coder, har lavet en god video om den vigtigste matematik, vi skal kunne inden for spiludvikling.

NASA/JPL – The power of 10 rules

https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code

Man starter ofte et projekt med at skrive en guideline. Den indeholder blandt andet regler for projektet og hvilke programmeringssprog man skal benytte etc. Der er masser af tykke bøger om netop dette emne, men ingen er lige så præcise som Gerard J. Holzmann’s 10 regler.

Free Code Camp – learn to code at home

https://www.freecodecamp.org/learn/

Stor og omfattende site, der tager udgangspunkt i begynderen, som ønsker at lære kurateret programmering. Er man til undervisning på en skærm, så er her et rigtig godt og frit produkt.

Math for Programmers

https://akuli.github.io/math-tutorial/

En webside med en masse forskellige ressourcer om matematik. Den er meget praktisk anlagt, men der findes også rigtig mange ret svære formler. Nogle af formlerne er omsat og skrevet i Python.

Computer Science Algortihms

https://www.khanacademy.org/computing/computer-science/algorithms

Super fedt undervisningsprojekt om de mest velkendte algoritmer.

Free Programming Books

https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books.md#python

Wow!! Her er en masse bøger, at gå på opdagelse i. Siden tæller ikke kun Python, men også sprog som C++, C#, Java, JavaScrip osv. Mit råd er dog altid, at man aldrig skal gå i gang med mere end et programmeringssprog, og holde sig til det i mindst et par år før man prøver noget nyt. I bund og grund er alle programmeringssprog stort set ens med nogle variationer.

GitHub

https://github.com/

Super god side, hvor du kan se koder. Du kan måske også selv registrere dig derinde. Jeg kender ikke aldersgrænsen.

ImageNet

http://image-net.org/index

Database med billeder, som kan bruger til forskning. Dvs. at vi også sagtens kan bruge dem til vores projekter.

Pygments

https://pygments.org/

Siden highligther dine koder. Det er denne side, jeg benytter, når jeg lægger koder op på pythons.io.

AI

KU Science AI

https://ai.ku.dk/

Nok mest hvis man har stor interesse for kunstig intelligens, er Københavns Universitets Science website god. Her er spændende artikler, som er spændende. Og ikke mindst afholder de af og til spændende, gratis workshops om AI.

How to Build a Neural Network

https://stevenmiller888.github.io/mind-how-to-build-a-neural-network/

Steven Miller har lavet en super god og illustrativ side om, hvordan man bygger neurale netværk, som er principper vi har kigget lidt på, på fortsætterholdet.

NLTK Book

https://www.nltk.org/book/

Natural Language Processing with Python, indeholder en guide til at komme i gang med natural language processing.

Stanfords Deep Learning Tutorial

http://ufldl.stanford.edu/tutorial/

En virkelig spændende, og meget matematisk, side om deep learning.

CogniMates

http://cognimates.me/home/

Fin lille side, der introducere os til kunstig intelligens.

Machine Learning for Kids

https://machinelearningforkids.co.uk/

Ligeså fin side som CogniMates.

Data

Da data er en væsentlig del af data science og kunstig intelligens, er det nødvendigt at fodrer vores projekter med data. Disse er i min verden, de bedste og gratis ressourcer. Kaggle må siges at være den portal, som indeholder den største andel af tilgængelig data. Dog skal man altid lave lidt research på sine data inden man for alvor kan tage dem troværdigt.

Kaggle

https://www.kaggle.com/

Find dataset til dine projekter.

Papers With Code: The latest in machine learning

https://paperswithcode.com/

En rigtig guldgruppe med data og research papirer.

COCO – Common Objects in Context

https://paperswithcode.com/

Her er masser af gode data til computervisions-modeller.

IMF Data

https://www.imf.org/en/Data

International data over en række livsvilkår, som IMF har invisteret i. Data er gratis.

Data Portals

https://dataportals.org/

Åben data over landes befolkninger.

Open Data Monitor

https://opendatamonitor.eu/frontend/web/index.php?r=dashboard%2Findex

Åben data over EU projekter. Danmark er det desværre ikke godt repræsenteret herinde, idet vi er ret lukkede omkring data.

Quandl

https://www.quandl.com/

Finansielle data.