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.
Learn specifically
- Learn markdownLearn markdown
General
CommonMark
GitHub Markdown, incl. things like alerts
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 folder: Read more [here](./another_file.xlsx)
Diff folder: Read more [here](../another_folder/another_file.xlsx)
Enhancements
Presentations
List of markdown presentation tools
... - 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 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 SQLLearn SQL
Learning
SQL Climber
SQL Zoo
DataCamp
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 through value ta... - 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 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 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...