# [[Software Development]]
![[Software Development.svg]]
Software development is the process of designing, building, and testing software using programmatic frameworks and languages.
## [[History of programming]]
## Principles of Software Development
- [[Separation of Concerns]] and [[Respect Levels of Abstraction|Levels of Abstraction]]
- [[Decoupling]]
- [[Keep data separate from transcludable elements.]]
- [[Anti-pattern]]
- [[Performance]]
- [[Expressive code]]
- [[Clean code]]
- [[Techniques to reduce complexity]]
- [[Patterns in software development]]
## Levels of Programming
Programming can be done at different levels, where the lowest level involves programming in machine code and the highest level involves programming in languages that are built on top of other programs and languages.
### Hardware
Programming on the hardware level involves giving instructions to physical components such as microprocessors.
### [[Kernel]]
Programming at the kernel level involves:
- Changing the source code of the kernel,
- Creating kernel modules, or
- Creating [[eBPF]] programs.
### Software
## Programming languages
[[BDL]]
[[Go]]
[[Java]]
[[JavaScript]]
[[Python]]
[[Scala]]
[[CSS]]
## Tools for development
### [[IDE]]s
[[VScode]]
[[Atom]]
[[Sublime Text]]
### Version control
[[Git]]
[[Subversion]]
### Remote repository hosting providers
[[GitHub]]
[[GitLab]]
[[BitBucket]]
[[Stash]]
## Troubleshooting
- [[Cross-Origin Resource Sharing]]
## [[Patterns in software development]]
## Trends in software development
- [[DevOps]]
- [[Coding and writing are converging]]
- [[Emergent software]]
- [[X as code]]
- [[Disintermediation of trust]]
- [[Developers are becoming shepherds of code]]
- [[Software cyclically breathes complexity in, then out]]
%%
# Excalidraw Data
## Text Elements
## Drawing
```json
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.4",
"elements": [
{
"id": "4y8R7iOA",
"type": "text",
"x": 118.49495565891266,
"y": -333.44393157958984,
"width": 3.8599853515625,
"height": 24,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 967149026,
"version": 2,
"versionNonce": 939059582,
"isDeleted": true,
"boundElements": null,
"updated": 1713723615080,
"link": null,
"locked": false,
"text": "",
"rawText": "",
"fontSize": 20,
"fontFamily": 4,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "",
"lineHeight": 1.2
}
],
"appState": {
"theme": "dark",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#1e1e1e",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "solid",
"currentItemStrokeWidth": 2,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 4,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"scrollX": 583.2388916015625,
"scrollY": 573.6323852539062,
"zoom": {
"value": 1
},
"currentItemRoundness": "round",
"gridSize": null,
"gridColor": {
"Bold": "#C9C9C9FF",
"Regular": "#EDEDEDFF"
},
"currentStrokeOptions": null,
"previousGridSize": null,
"frameRendering": {
"enabled": true,
"clip": true,
"name": true,
"outline": true
}
},
"files": {}
}
```
%%