📚 Freely available programming books
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

261 lines
15 KiB

*[LÀs detta pÄ andra sprÄk](README.md#translations)*
## Contributor License Agreement
Genom att bidra godkÀnner du [LICENS](../LICENSE) för detta arkiv.
## Contributor Code of Conduct
Genom att bidra samtycker du till att respektera [Code of Conduct](CODE_OF_CONDUCT-sv.md) för detta arkiv. ([translations](README.md#translations))
## I ett nötskal
1. "En lÀnk för att enkelt ladda ner en bok" Àr inte alltid en lÀnk till en *gratis* bok. Bidra bara med gratis innehÄll. Se till att det Àr gratis. Vi accepterar inte lÀnkar till sidor som *krÀver* fungerande e-postadresser för att fÄ böcker, men vi vÀlkomnar listor som begÀr dem.
2. Du behöver inte kÀnna till Git: om du hittat nÄgot av intresse som *inte redan finns i denna repo*, vÀnligen öppna ett [issue](https://github.com/EbookFoundation/free-programming-books/issues) med dina lÀnkförslag.
- Om du kÀnner till Git, vÀnligen Forka repot och skicka Pull Requests (PR).
3. Vi har 6 sorters listor. VÀlj rÀtt:
- *Böcker* : PDF, HTML, ePub, en gitbook.io-baserad webbplats, en Git-repo, etc.
- *Kurser* : En kurs Àr ett lÀromedel som inte Àr en bok. [Detta Àr en kurs](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/).
- *Interaktiva handledningar* : En interaktiv webbplats som lÄter anvÀndaren skriva kod eller kommandon och utvÀrdera resultatet (med "utvÀrdera" menar vi inte "betyg"). t.ex.: [Testa Haskell](http://tryhaskell.org), [Testa GitHub](http://try.github.io).
- *Playgrounds* : Àr online och interaktiva webbplatser, spel eller datorprogramvara för att lÀra sig programmering. Skriv, kompilera (eller kör) och dela kodavsnitt. Lekplatser lÄter dig ofta klaffa och smutsa ner hÀnderna genom att leka med kod.
- *Podcasts och screencasts* : Podcasts och screencasts.
- *ProblemuppsÀttningar och konkurrenskraftig programmering* : En webbplats eller programvara som lÄter dig bedöma dina programmeringsfÀrdigheter genom att lösa enkla eller komplexa problem, med eller utan kodgranskning, med eller utan att jÀmföra resultaten med andra anvÀndare.
4. Se till att följa [riktlinjerna nedan](#riktlinjer) och respektera [Markdown-formatering](#formatering) för filerna.
5. GitHub Actions kommer att köra tester för att **se till att dina listor Àr alfabetiserade** och att **formateringsregler följs**. **Se till** att kontrollera att dina Àndringar klarar testerna.
### Riktlinjer
- se till att en bok Àr gratis. Dubbelkolla om det behövs. Det hjÀlper administratörerna om du kommenterar i PR om varför du tror att boken Àr gratis.
- vi accepterar inte filer pÄ Google Drive, Dropbox, Mega, Scribd, Issuu och andra liknande filuppladdningsplattformar
- infoga dina lÀnkar i alfabetisk ordning, enligt beskrivningen [nedan](#alfabetisk-ordning).
- anvÀnd lÀnken med den mest auktoritativa kÀllan (vilket betyder att författarens webbplats Àr bÀttre Àn redaktörens webbplats, vilket Àr bÀttre Àn en tredje parts webbplats)
- inga filvÀrdtjÀnster (detta inkluderar (men Àr inte begrÀnsat till) Dropbox- och Google Drive-lÀnkar)
- föredrar alltid en "https"-lÀnk framför en "http" - sÄ lÀnge de Àr pÄ samma domÀn och visar samma innehÄll
- pÄ rotdomÀner, ta bort det avslutande snedstrecket: `http://example.com` istÀllet för `http://example.com/`
- föredrar alltid den kortaste lÀnken: `http://example.com/dir/` Àr bÀttre Àn `http://example.com/dir/index.html`
- inga URL-förkortningslÀnkar
- föredrar vanligtvis den "aktuella" lÀnken framför "versionen": `http://example.com/dir/book/current/` Àr bÀttre Àn `http://example.com/dir/book/v1.0.0/index.html`
- om en lÀnk har ett utgÄnget certifikat/sjÀlvsignerat certifikat/SSL-problem av nÄgot annat slag:
1. *ersÀtt det* med dess `http`-motsvarighet om möjligt (eftersom att acceptera undantag kan vara komplicerat pÄ mobila enheter).
2. *lÀmna den* om ingen "http"-version Àr tillgÀnglig men lÀnken fortfarande Àr tillgÀnglig via "https" genom att lÀgga till ett undantag i webblÀsaren eller ignorera varningen.
3. *ta bort den* annars.
- om en lÀnk finns i flera format, lÀgg till en separat lÀnk med en anteckning om varje format
- om en resurs finns pÄ olika platser pÄ Internet
- anvÀnd lÀnken med den mest auktoritativa kÀllan (vilket betyder att författarens webbplats Àr bÀttre Àn redaktörens webbplats Àr bÀttre Àn tredje parts webbplats)
- om de lÀnkar till olika utgÄvor och du bedömer att dessa utgÄvor Àr tillrÀckligt olika för att vara vÀrda att behÄlla dem, lÀgg till en separat lÀnk med en anteckning om varje utgÄva (se [Issue #2353](https://github.com/EbookFoundation/free-programming-books/issues/2353) för att bidra till diskussionen om formatering).
- föredrar atomÀra commits (en commit genom tillÀgg/borttagning/modifiering) framför större commits. Inget behov av att squash dina Ätaganden innan du skickar in en PR. (Vi kommer aldrig att tillÀmpa denna regel eftersom det bara Àr en bekvÀmlighetsfrÄga för underhÄllarna)
- om boken Àr Àldre, inkludera publiceringsdatum med titeln.
- inkludera författarens namn eller namn dÀr sÄ Àr lÀmpligt. Du kan förkorta författarlistor med "`et al.`".
- om boken inte Àr fÀrdig och fortfarande arbetas pÄ, lÀgg till notationen "pÄgÄr", enligt beskrivningen [nedan](#in_process).
- om en resurs ÄterstÀlls med hjÀlp av [*Internet Archive's Wayback Machine*](https://web.archive.org) (eller liknande), lÀgg till "'archived'"-notationen, enligt beskrivningen [nedan](#archived) . De bÀsta versionerna att anvÀnda Àr nya och kompletta.
- om en e-postadress eller kontoinstÀllning begÀrs innan nedladdningen Àr aktiverad, lÀgg till sprÄklÀmpliga anteckningar inom parentes, t.ex.: `(email address *requested*, not required)`.
### Formatering
- Alla listor Àr `.md`-filer. Försök att lÀra dig [Markdown](https://guides.github.com/features/mastering-markdown/) syntax. Det Àr enkelt!
- Alla listor börjar med ett Index. Tanken Àr att lista och lÀnka alla avsnitt och underavsnitt dit. HÄll det i alfabetisk ordning.
- Sektioner anvÀnder nivÄ 3-rubriker (`###`), och undersektioner Àr nivÄ 4-rubriker (`####`).
Tanken Àr att ha:
- `2` tomma rader mellan sista lÀnken och den nya sektionen.
- `1` tom rad mellan rubriken och första lÀnken i dess avsnitt.
- `0` tom rad mellan tvÄ lÀnkar.
- `1` tom rad i slutet av varje `.md`-fil.
Exempel:
```text
[...]
* [An Awesome Book](http://example.com/example.html)
(blank line)
(blank line)
### Example
(blank line)
* [Another Awesome Book](http://example.com/book.html)
* [Some Other Book](http://example.com/other.html)
```
- LĂ€gg inte mellanslag mellan `]` och `(`:
```text
BAD : * [Another Awesome Book] (http://example.com/book.html)
GOOD: * [Another Awesome Book](http://example.com/book.html)
```
- Om du inkluderar författaren, anvÀnd ` - ` (ett streck omgivet av enstaka mellanslag):
```text
BAD : * [Another Awesome Book](http://example.com/book.html)- John Doe
GOOD: * [Another Awesome Book](http://example.com/book.html) - John Doe
```
- SÀtt ett blanksteg mellan lÀnken och dess format:
```text
BAD : * [A Very Awesome Book](https://example.org/book.pdf)(PDF)
GOOD: * [A Very Awesome Book](https://example.org/book.pdf) (PDF)
```
- Författare kommer före format:
```text
BAD : * [A Very Awesome Book](https://example.org/book.pdf)- (PDF) Jane Roe
GOOD: * [A Very Awesome Book](https://example.org/book.pdf) - Jane Roe (PDF)
```
- Flera olika format:
```text
BAD : * [Another Awesome Book](http://example.com/)- John Doe (HTML)
BAD : * [Another Awesome Book](https://downloads.example.org/book.html)- John Doe (download site)
GOOD: * [Another Awesome Book](http://example.com/) - John Doe (HTML) [(PDF, EPUB)](https://downloads.example.org/book.html)
```
- Inkludera publiceringsÄr i titeln för Àldre böcker:
```text
BAD : * [A Very Awesome Book](https://example.org/book.html) - Jane Roe - 1970
GOOD: * [A Very Awesome Book (1970)](https://example.org/book.html) - Jane Roe
```
- <a id="in_process"></a>PÄgÄende böcker:
```text
GOOD: * [Will Be An Awesome Book Soon](http://example.com/book2.html) - John Doe (HTML) (:construction: *in process*)
```
- <a id="archived"></a>Arkiverad lÀnk:
```text
GOOD: * [A Way-backed Interesting Book](https://web.archive.org/web/20211016123456/http://example.com/) - John Doe (HTML) *(:card_file_box: archived)*
```
### Alfabetisk ordning
- NÀr det finns flera titlar som börjar med samma bokstav, ordna dem efter den andra, och sÄ vidare. Till exempel: `aa` kommer före `ab`.
- "en tvÄ" kommer före "en tvÄ".
Om du ser en felplacerad lÀnk, kontrollera linter-felmeddelandet för att veta vilka rader som bör bytas.
### Anteckningar
Även om grunderna Ă€r relativt enkla, finns det en stor mĂ„ngfald i resurserna vi listar. HĂ€r Ă€r nĂ„gra anteckningar om hur vi hanterar denna mĂ„ngfald.
#### Metadata
VÄra listor ger en minimal uppsÀttning metadata: titlar, webbadresser, skapare, plattformar och Ätkomstanteckningar.
##### Titlar
- Inga pÄhittade titlar. Vi försöker ta titlar frÄn sjÀlva resurserna; Bidragsgivare uppmanas att inte uppfinna titlar eller anvÀnda dem redaktionellt om detta kan undvikas. Ett undantag Àr för Àldre verk; om de frÀmst Àr av historiskt intresse, hjÀlper ett Ärtal inom parentes till rubriken anvÀndarna att veta om de Àr av intresse.
- Inga ALLCAPS-titlar. Vanligtvis Àr skiftlÀge i rubriken lÀmpligt, men vid tvivel anvÀnd versaler frÄn kÀllan
- Inga emojis.
##### Webbadresser
- Vi tillÄter inte förkortade webbadresser.
- SpÄrningskoder mÄste tas bort frÄn webbadressen.
- Internationella webbadresser ska escapes. WebblÀsarfÀlt renderar vanligtvis dessa till Unicode, men anvÀnd kopiera och klistra in.
- SÀkra (`https`) webbadresser Àr alltid att föredra framför osÀkra (`http`) webbadresser dÀr HTTPS har implementerats.
– Vi gillar inte webbadresser som pekar pĂ„ webbsidor som inte Ă€r vĂ€rd för den listade resursen, utan istĂ€llet pekar nĂ„gon annanstans.
##### Skapare
– Vi vill kreditera skaparna av gratisresurser dĂ€r det Ă€r lĂ€mpligt, inklusive översĂ€ttare!
- För översatta verk ska originalförfattaren krediteras. Vi rekommenderar att du anvÀnder [MARC-relators](https://loc.gov/marc/relators/relaterm.html) till andra kreatörer Àn författare, som i det hÀr exemplet:
```markdown
* [A Translated Book](http://example.com/book.html) - John Doe, `trl.:` Mike The Translator
```
hÀr anvÀnder annoteringen `trl.:` MARC-relatorkoden för "översÀttare".
- AnvÀnd kommatecken `,` för att avgrÀnsa varje objekt i författarlistan.
- Du kan förkorta författarlistor med "`et al.`".
- Vi tillÄter inte lÀnkar för kreatörer.
- För kompilering eller remixade verk kan "skaparen" behöva en beskrivning. Till exempel, "GoalKicker" eller "RIP Tutorial"-böcker krediteras som "`Compiled from StackOverflow documentation`".
##### Plattformar och Ă„tkomstanteckningar
- Kurser. Speciellt för vĂ„ra kurslistor Ă€r plattformen en viktig del av resursbeskrivningen. Detta beror pĂ„ att kursplattformar har olika möjligheter och Ă„tkomstmodeller. Även om vi vanligtvis inte listar en bok som krĂ€ver registrering, har mĂ„nga kursplattformar möjligheter som inte fungerar utan nĂ„gon form av konto. Exempel pĂ„ kursplattformar inkluderar Coursera, EdX, Udacity och Udemy. NĂ€r en kurs Ă€r beroende av en plattform ska plattformens namn anges inom parentes.
- Youtube. Vi har mÄnga kurser som bestÄr av YouTube-spellistor. Vi listar inte YouTube som en plattform, vi försöker lista YouTube-skaparen, som ofta Àr en underplattform.
- Youtube videor. Vi lÀnkar vanligtvis inte till enskilda YouTube-videor om de inte Àr mer Àn en timme lÄnga och Àr strukturerade som en kurs eller en handledning.
- Leanpub. Leanpub Àr vÀrd för böcker med en mÀngd olika Ätkomstmodeller. Ibland kan en bok lÀsas utan registrering; ibland krÀver en bok ett Leanpub-konto för fri tillgÄng. Med tanke pÄ kvaliteten pÄ böckerna och blandningen och smidigheten hos Leanpub-Ätkomstmodeller tillÄter vi listning av de senare med Ätkomstanteckningen `*(Leanpub account or valid email requested)*`.
#### Genrer
Den första regeln för att bestÀmma vilken lista en resurs tillhör Àr att se hur resursen beskriver sig sjÀlv. Om den kallar sig en bok, sÄ kanske det Àr en bok.
##### Genrer vi inte listar
Eftersom internet Àr enormt inkluderar vi inte i vÄra listor:
- bloggar
- blogginlÀgg
- artiklar
- webbplatser (förutom de som Àr vÀrd för MASSOR av objekt som vi listar).
- videor som inte Àr kurser eller screencasts.
- bokkapitel
- teaserprover frÄn böcker
- IRC- eller Telegram-kanaler
- Slacks eller e-postlistor
VÄra konkurrenskraftiga programlistor Àr inte lika strikta nÀr det gÀller dessa undantag. Omfattningen av repan bestÀms av samhÀllet; om du vill föreslÄ en Àndring eller tillÀgg till omfattningen, anvÀnd en frÄga för att göra förslaget.
##### Böcker kontra andra saker
Vi Àr inte sÄ noga med bokkÀnsla. HÀr Àr nÄgra attribut som betyder att en resurs Àr en bok:
- den har ett ISBN (International Standard Book Number)
- den har en innehÄllsförteckning
- en nedladdningsbar version erbjuds, sÀrskilt ePub-filer.
- den har utgÄvor
- Det beror inte pÄ interaktivt innehÄll eller videor
- den försöker tÀcka ett Àmne heltÀckande
- det Àr fristÄende
Det finns massor av böcker som vi listar som inte har dessa attribut; det kan bero pÄ sammanhanget.
##### Böcker vs. kurser
Ibland kan dessa vara svÄra att urskilja!
Kurser har ofta tillhörande lÀroböcker, som vi skulle lista i vÄra boklistor. Kurser har förelÀsningar, övningar, prov, anteckningar eller andra didaktiska hjÀlpmedel. En enskild förelÀsning eller video i sig Àr inte en kurs. En powerpoint Àr inte en kurs.
##### Interaktiva sjÀlvstudier kontra andra saker
Om du kan skriva ut den och behÄlla dess essens Àr det inte en interaktiv handledning.
### Automation
– UpprĂ€tthĂ„llande av formateringsregler automatiseras via [GitHub Actions](https://github.com/features/actions) med [fpb-lint](https://github.com/vhf/free-programming-books-lint) ( se [`.github/workflows/fpb-lint.yml`](../.github/workflows/fpb-lint.yml))
- URL-validering anvÀnder [awesome_bot](https://github.com/dkhamsing/awesome_bot)
- För att utlösa URL-validering, tryck pÄ en commit som innehÄller ett commit-meddelande som innehÄller `check_urls=file_to_check`:
```properties
check_urls=free-programming-books.md free-programming-books-en.md
```
- Du kan ange mer Àn en fil att kontrollera, med ett enda blanksteg för att separera varje post.
- Om du anger mer Àn en fil baseras resultatet av bygget pÄ resultatet av den senast kontrollerade filen. Du bör vara medveten om att du kan fÄ godkÀnda gröna builds pÄ grund av detta, sÄ se till att inspektera byggloggen i slutet av Pull Request genom att klicka pÄ "Show all checks" -> "Details".