git clone https://github.com/DevDungeon/Cookbook

https://github.com/DevDungeon/Cookbook

The Cookbook Method

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.

If you are a beginner, you will probably want to start out with one language like Python and start building up your repetoire of snippets for reference and confidence. If you are a seasoned developer, you may want to start building a cookbook from scratch for a new language you have never used, or keep a cookbook for more advanced topics in a language you are already familiar with.

Here is an example of when my Cookbook comes in handy. Recently I was faced with a situation where I needed to make an HTTP request to an API, parse the JSON response, generate a CSV spreadsheet, and email the spreadsheet. Because I already had my own cookbook snippets for doing each of those three actions, it was really easy to put together a program that did what I needed it to.

Benefits of Building Your Own Cookbook

You can share it with others

Learn topics that are interesting to you

You build up your knowledge in small increments

You can see your progress over time

You have a library of reference material in your own style.

It is quicker than looking up documentation or looking for a Stack Overflow answer.

Explore new topics

Learn new programming languages.

Tips for Building a Cookbook

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

Example Cookbook Topics

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

The DevDungeon Cookbook

I maintain my cookbook as a public repository at https://github.com/DevDungeon/Cookbook.

git clone https://github.com/DevDungeon/Cookbook

It has all of the Ruby, Go, and Python examples I talked about above and more. Java, Android, Arduino, JavaScript, C++, PHP, and the list goes on. It also includes a chrome browser extension template and notes on creating python pip packages, ruby gems, java jars, and more.