# Introducing Julia
## Introduction

The Julia programming language is easy to use, fast, and powerful. This wikibook is intended as an introduction to the language for the less experienced and occasional programmer. For more learning materials, including links to books, videos, articles/blogs and notebooks, refer to the learning section at Julia's official site. See Jobs for types of jobs and companies using Julia.
The official Julia documentation is the authoritative guide, and you should refer to it as often as possible as you learn. It's the "reference" guide both for the language itself and for the set of standard packages (the "standard library") that are provided as part of the basic installation.
A feature of Julia is the extensive use of add-on packages to add functionality and features, and to extend the syntax of built-in functions. Good places to look for packages (which are free to download from github.com) include the JuliaHub site. Packages provide their own documentation and many provide extensive tutorials.
The Julia community has established a good ethos of encouraging participation in the development of the language on github. The advantage of this wikibook is that it's made and edited by the Julia community – you can edit anything at any time. If you find something that's wrong, or unclear, feel free to correct it, or add examples. (Your first few edits are reviewed, just in case you have less than good intentions. And, as with the Wikipedia, you should expect your writing to be edited by others!) The focus should be largely on the new user, rather than the computer science expert.

## Outline
### Getting started

    some introductory words, installation, paths, and various bits of magic

### The REPL

    Using the REPL; Julia as a calculator; getting help

### Arrays and tuples

    Storing data – Arrays and tuples; the core of Julia and scientific programming

### Types

    a quick introduction to types, the way to organize your code and the secret to making your programs fast

### Controlling the flow

    loops and decisions; ifs and elses

### Functions

    functions and methods; multiple dispatch

### Dictionaries and sets

    storing data in dictionaries and sets

### Strings and characters

    working with strings

### Working with text files

    reading data from text files; elementary file processing

### Working with dates and times

    working with date and time functions

### Plotting

    Plotting; an introduction to some of the plotting packages

### Metaprogramming

    metaprogramming, expressions and macros

### Modules and packages

    how Julia code is organized, and should be developed

### DataFrames

    data frames; organizing data in tables

### Migrating From Other Languages

    Julia for users of other programming languages

### Introducing Julia/Games

    Julia games, and some tools to make games

## External links

* The Julia manual – the official rulebook: current and in-development documentation is available here.
* The JuliaLang Discourse - the main Julia programming language discussion forum
* Julia Forem Community
* JuliaHub – a service that searches all registered Julia packages, code, and documentation.
* Julia.jl – a manually curated taxonomy of Julia packages
* A Month of Julia – 38 blog posts about using Julia.