Julia Programming for Nervous Beginners

A course for people who have never programmed and who are unsure whether they are suited to programming.

We are guided by three slogans:

  • Small Steps

  • No Gaps (Nothing Left Out)

  • Everything Makes Sense

Why Julia?

Mainly because we love it, but we also think that Julia is well suited to the very slow exposition we use. On this course, we want to be as explicit as possible (hence, the slogan "Nothing Left Out") and also as reasonable as possible ("Everything Makes Sense"). Julia allows one to write code that is easily understood but also powerful (in the sense of very few lines of code per useful outcome) AND it also allows one to write code that is very detailed (that is, you aren't forced to use high-level functions that cannot be inspected). This makes it easy to give simple examples -- note that our examples are primarily text rather than arithmetic -- while at times delving into details.

Of course, this ability to combine powerful and compact code with high levels of detailed programming is one of the reasons why Julia can be used for development as well as production. Put another way, it can be used for rapid prototyping and then deployed in very large projects with little or no change to the code. Perhaps, even more important is the high frequency of code re-use all over Julia, even across apparently unrelated projects, but that is an advanced topic beyond the scope of this course.

For now, the course consists of two sources: the video material on YouTube and the lesson notes in the Course Notes folder. Four weeks of lessons, one video and one pdf per lesson. Of course, you do not need to do the whole course in exactly four weeks; take more or less time, as you prefer or need to.

In due course, we also hope to make available exercises and other materials (assessments? ANKI decks?).

BEFORE YOU START

We are aware that nervous beginners might not be confident they can dive right in. To make sure that you are ready to start Lesson 1 of Week 1, we have included BeforeYouStartThisCourse.pdf here (that is, it is not part of Course Material) and of course it has a video also. Even if you are confidently ready to do this course, it would be a good idea to open the document (it's in the list at the top of this screen) as well as the video, so that you can see how we coordinate the text and the video presentations on this course.

COLLABORATION

We would love your participation (see IfYouWantToContribute subdirectory). If you have any suggestions, just submit a pull request!