When you start at the beginning initially people come across two key types of barcode, linear and matrix. In my opinion, in general, you are more likely to work with linear barcodes unless you are in a specialised industry that needs vast amount of info encoded with the product.
I'm sure you already know (here's the technical bit!) that a barcode represents a message or data in an optical machine readable format and that this data can contain characters including full stops and spaces that is encoded into a symbol that can be scanned.
A linear, 1D barcode is made up of a series of bars of different specified widths. The number of bars used in the code are defined by the type of code used. Where as a matrix barcode is a 2D barcode that consists of cells, rather than bars, arranged in a pattern (usually square or rectangular). A matrix code can be incredibly complex storing up to 2,335 characters (approx. half an A4 page of word).
Matrix codes are ideal where a component itself must be coded and traced and space on the item is limited. It has been proven that when using the right application method a legible matrix code can be put on the item as small as 3mm x 3mm. This has been of particular benefit to the aviation industry where a component must be trackable throughout its entire lifetime.
However, most of my clients find a linear code meets their requirements as these are the codes commonly used throughout the retail and manufacturing industries, easily created with simple technology/fonts and easily generated and referenced within most barcode software packages.