From https://www.devdungeon.com
:
" A cookbook in the programming context is collection of tiny programs that each demonstrate a particular programming concept. The Cookbook Method is the process of learning a programming language by building up a repository of small programs that implement specific programming concepts. Starting with a Hello World program and building the knowledge piece by piece on top of that."
This cookbook will contain multiple separate languages to accesss as and when they are used. These will initially cover the same basic topics before diverging from one another for more specialised matters that each language excells in. Snippets of such can be used to structure, alter or be appended to other coding projects. This is a tool for language learning, development and to speed up more complex tasks without requiring the searching of stack overflow and other such sites.
This is a permanent work in progress.
- Store your cookbook in a version control system like Git.
- Keep a to do list of topics or programming languages you want to explore and learn
- It does not have to be just code. I have a lot of plain text .txt files with notes on things like how to create a Python pip package, creating Ruby Gems, or how to create a runnable JAR in Java. Sometimes tips on installing prerequisites if something was difficult or just notes on how to compile and run programs.
- It can also be template programs. For example I have a base chrome browser extension that doesn't really do anything itself, but it is a fully functional extension with all the boilerplate done and ready for me to start developing.
- Programs should be fully runnable and not just chunks of code without context that do not compile and execute
- Keep the snippets small, simple and to one topic
Everyone has different goals with programming so identify topics relevant to your interests. Here are some ideas if you do not know where to get started.
- Hello, world
- Getting user input from stdin
- Taking command line arguments
- Reading and writing files
- Using TCP sockets
- Making HTTP requests
- Parsing JSON
- Creating a CSV file
- Making database connections
- Playing an audio file
- Multithreading
- Drawing 2D graphics to screen
- Drawing 3D graphics to screen
- GUI programming