Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@quantenschaum
Last active June 4, 2018 12:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quantenschaum/f99e4c431ee8e8b1b062abb80c361f1c to your computer and use it in GitHub Desktop.
Save quantenschaum/f99e4c431ee8e8b1b062abb80c361f1c to your computer and use it in GitHub Desktop.
my little guide on how to get started with writing software

Start to make software

  1. Use english language, because it's the language of the international community. There is more useful stuff out there in english than in any other language.
  2. Google is your friend! Have a question? Try googling it!

I don't want to give full explanations here, it's just a set of hints and enrty points to get you started.

There are many links in this document. Follow them and read, read, read ...

Open Source Software

Consider using and contributing to Open Source Software, get to know about common licenses.

Things around the actual programming

Programs are made of code, text you write. To keep track of your development and to share the work with others, you need some tools to you manage the code, its documentation and other resources.

Linux

To be able to write programs, you need a computer with an OS and some software installed. Linux is ideal for programming. I recommend to use Ubuntu, it's easy to setup and very common with a great community. Ubuntu 18.04 LTS, the new long term support version was released recently. Upgrade!

Command Line

When programming and using Linux you need to get accustomed with the command line interface.

Google for more and just try stuff and experiment with it.

SSH

This is another must-know. Secure Shell is the workhorse for secure remote access to servers. When working with Linux, code and servers you will need this. SSH is secure and very powerful.

common Linux tools

Here I mention some common Linux tools you will stumble upon sooner or later. They are useful!

Backups

Backup your work and your workspace, it might get lost, forever!

Documentation

Document what you did! This helps you to understand what you did when you come back to it later and it help other to understand what you so your code can reused. It allows you to work together with other people.

Markdown is a lightweight markup language with plain text formatting syntax.

This document is written in markdown. I recommend it for documentation because of its simplicity. It is widly adopted in the community.

Version Control

To keep track of the changes in you code, you should consider using a version control system.

I highly recommend GIT for this purpose. It's the best out there. It is used to manage the source of the Linux kernel.

Github is a web based hosting service for GIT repositories. It can be used for free.

IDE

An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. At the beginning a simple text editor is sufficient, but features like code completion, syntax highlighting and GIT integration make the life much easier. There are many IDEs, for Python atom is quite good.

Learn how to write programs - Python

Ther are many programming lanuages. Python is probably a good choice to start with. It's clean, easy, feature rich (batteries included), up to date and has a very big and active community. Python is not a toy, it is used in production system and by scientists all over the world.

Use Python 3, don't bother to start learing Python 2. https://pythonclock.org/

This to read regarding Python

Libraries

Sooner or later you will need some functionality that is not part of the Python language or the standard library. You need a 3dr party library. Luckily there are many libraries for all kinds of purposes for the Python language. Just search Google or have a look at

Some userful Python libs (some are more that just a lib) and programs

PIP

PIP is a package manager for Python, use it to install libraries. To keep per project dependencies, you should use pipenv.

Jupyter

....

RaspberryPi

...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment