Software is a tool to help accomplish something for people – many programmers never understood that. Keep your eyes on the delivered value, and don't over-focus on the specifics of the tools. – John Carmack
General Links
- CS50: Introduction to Computer Science
- Tips & Tricks for VS Code
- Tips & Tricks for JetBrains
- 20 Things I’ve Learned in my 20 Years as a Software Engineer
- Zed: next-generation code editor designed for collaboration with humans and AI
- carbon: create and share beautiful images of your source code
- Martin Fowler: famous blog about software engineering
Learn specifically
- Learn ChatGPT and AILearn ChatGPT and AI
Introduction
How does it work?
It learns by analysing large amounts of text data using deep learning algorithms and NLP techniques. This allows it to recognise patterns and make accurate predictions about the most likely next word or phrase in a sentence, which helps it generate informative responses to questions and prompts.
It's like autosuggestion in text messages but on steroids
Why GPT?
The name "GPT" stands for "Generative Pre-trained Transformer" which refers to the architecture... - Learn CLILearn CLI
Why, really?
Become shell literate: Attempt at trying to persuade you that this whole thing makes sense. Full disclosure: the author of the article is a well-known free software advocate, so he is far from impartial in his article. That said, he is certainly not alone in suggesting it; here is another example from Letters To A New Developer
UNIX philosophy
Unix philosophy (by Doug McIlroy, creator of Unix pipes) is to:
Write programs that do one thing and do it well
W... - Learn CSSLearn CSS
Tutorials from Josh Comeau
- Learn DockerLearn Docker
Intro
The Missing Semester:
What is the difference between Docker and a Virtual Machine?
Docker is based on a more general concept called containers. The main difference between containers and virtual machines is that virtual machines will execute an entire OS stack, including the kernel, even if the kernel is the same as the host machine. Unlike VMs, containers avoid running another instance of the kernel and instead share the kernel with the host. In Linux, this is achi... - Learn GitLearn Git
Intro
It is a standardised way of tracking your code and analyses (plus history thereof).
Mrshu says that it's a good idea to learn Git, because it:
Helps avoid "versioning hell" (you know, files like essay.doc, essay_v2.doc, essay_final.doc)
Gives you the ability to "jump in time"
Helps you make your work "reproducible"
Makes it a bit more straightforward to work on common (larger) projects with others
And don't forget that Git != GitHub != GitLab.... - Learn JekyllLearn Jekyll
On GitHub Pages
Comparison of site generators
Jekyll Documentation
GitHub Documentation
List of Jekyll plugins on GitHub Pages
Tutorial
Another tutorial
- Learn MacOS and iOSLearn MacOS and iOS
[[Use launchd to run scripts on Mac]]
Add spaces to Dock
Run Python on iOS, together with bash
Build (not only) Mac & iOS apps using Flutter
- Learn markdownLearn markdown
General
Markdown Guide: free and open-source reference guide for Markdown
CommonMark: standardised, open-source specification for Markdown
GitHub Markdown, incl. things like alerts
MDX: markdown for the component era; blend of MD and JSX
Code
microsoft/markitdown: Python tool for converting files and office documents to Markdown
How to reference local files
Obsidian opens the file if it can, otherwise it opens in default app
Obsidian, Syntax
Same fol... - Learn NodeLearn Node
Change your Node version with n (based on this)
npm install -g n # install n globally
n 10.16.0 # install particular version
n lts # install latest version
n # switch versions
- Learn PythonLearn Python
Links
Quora Discussion
Automate the Boring Stuff with Python or book – a practical programming course for office workers, academics, and administrators who want to improve their productivity
Learn Python The Hard Way, 3rd Edition.pdf
81 Python Code Snippets for Everyday Problems
Jupyter Samples
Should you choose Python over R?
Specific topics
How to Use Generators and yield in Python, together with yield from
[[Create pip-installable packages]]
[[Use virtual environments... - Learn RLearn R
Intro
First and foremost, consider whether to learn it all
Dataviz
Shiny Dashboard
TidyTuesday by R4DS Online Learning Community
Submissions by Ijeamaka Anyene.
How to use R with Tableau (and when you should)
[Connect Tableau to R and Using R scripts in Tableau
Tableau Community](https://community.tableau.com/thread/236068)
Coding
[R Programming A-Z™: R For D... - Learn regular expressionsLearn regular expressions
Intro
Regular Expressions = "regex" or "regexp"
A quick way of describing a particular pattern of characters in text
Allows for extremely effective search and replace
Comes from the ed editor from UNIX but you'll mostly encounter the grep program
Knowing regular expressions can mean the difference between solving a problem in 3 steps and solving it in 3,000 steps. When you’re a nerd, you forget that the problems you solve with a couple keystrokes can take other people days of te... - Learn SQLLearn SQL
Learning
SQL Climber
SQL Zoo
DataCamp
Summer of SQL
Lost at SQL
Window Functions – intro, questions
Reading
Keep in mind that relational database is just one of several database paradigms, even though one of the most commonly used.
Learn why SQL should be the default choice for data transformation logic
I don't want to learn your garbage query language. I just want my SQL back.
[[Understand that SQL queries start with FROM]]
[[Understand that CROSS JOIN UNNEST works ... - Learn VimLearn Vim
Philosophy
Optimise for reading code/text, not writing
Be programmable by itself (keystrokes are composable commands)
Avoid the mouse (too slow) or even the arrow keys (too much hand movement)
In practice this means using different "modes of operation" for different kinds of tasks.
Vim modes
NORMAL (<ESC>, sometimes double)
Default mode the editor starts in; one should spend most of the time here
Each keypress is equivalent to an editor command
IN... - Learn YAMLLearn YAML
YAML Multiline
Find the right syntax for your YAML multiline strings
YAML anchors
Be DRY in YAMLs by using anchors