• Stars
    star
    774
  • Rank 58,703 (Top 2 %)
  • Language Makefile
  • License
    Other
  • Created almost 10 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Learn Julia the hard way!

Learn Julia the Hard Way DOI

Slant

The Julia base package is pretty big, although at the same time, there are lots of other packages around to expand it with. The result is that on the whole, it is impossible to give a thorough overview of all that Julia can do in just a few brief exercises. Therefore, I had to adopt a little 'bias', or 'slant' if you please, in deciding what to focus on and what to ignore.

Julia is a technical computing language, although it does have the capabilities of any general purpose language and you'd be hard-pressed to find tasks it's completely unsuitable for (although that does not mean it's the best or easiest choice for any of them). Julia was developed with the occasional reference to R, and with an avowed intent to improve upon R's clunkiness. R is a great language, but relatively slow, to the point that most people use it to rapid prototype, then implement the algorithm for production in Python or Java. Julia seeks to be as approachable as R but without the speed penalty.

Owing to this, and partly to my own background as a data scientist, LJTHW is going to be somewhat biased towards the needs of statisticians. As such, there will be relatively little talk about fast Fourier transforms, integration and other mathemagical concepts that are beyond the immediate need, while some other components, such as the plotting package Gadfly, which would normally not be of general interest, will be explored. I have tried to strike a fair balance, and I hope I have succeeded there.

Audience

Unlike most of Zed Shaw's Learn X the hard way books, LJTHW is not intended for complete novices to programming – Julia is simply not ready yet for people wishing to learn programming by using it, although I see great potential in teaching people a functional programming language ahead of clobbering them with object-oriented concepts. On the other hand, one of the best things about Julia is that it was written by hackers, not language nerds. Yes, it's got all sorts of metaprogramming goodness, it's homoiconic and it's got all sorts of other amazing things about it that may be of interest to a few, but they are not relevant to being good, or even pretty good, at Julia. Therefore, I am treating the audience as one of people who need to get a job done, not computer scientists. The latter probably already have taught themselves Julia!

How to compile

Install GitBook and run make.

How to contribute

Learn Julia the Hard Way by Chris von Csefalvay is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Pull requests are welcome! Please note that the contents of this book, including your contributions, may form the foundation of a future publication. By contributing, you waive any and all rights over the content you contribute, save the right to be credited as a contributor to the finished work. While I do intend to eventually market a full-length book version of this manuscript, the Github version will remain forever free and open-source (although it might not get updated). I will always acknowledge the community's contributions to this work, and anyone who has contributed to it and is acknowledged in the CONTRIBUTORS.md file will be expressly acknowledged unless they wish otherwise.

Author

I'm a data scientist, hacker and recovering lawyer living in Northern Virginia. In my day job, I'm a software architect, and my parents still don't know what that means. When not working, I am coding for fun and spending time with my wife and our adorable Tortie kitten, River. My website is here. You can e-mail me here.

Creative Commons License

More Repositories

1

cookiecutter-flask-ask

Cookiecutter template for Alexa skills based on the fantastic Flask-Ask framework πŸΎπŸ—£β“
Python
52
star
2

cookiecutter-dash

A cookiecutter to generate Dash app skeletons.
Python
29
star
3

jupyter-best-practices

Best practices, rules and style guide for Jupyter[hub|lab] notebooks in any language
Jupyter Notebook
24
star
4

diffiehellman

Diffie-Hellman key exchange implementation for Python
Python
24
star
5

computational-infectious-disease

The companion repository to Computational Modeling of Infectious Disease by Chris von Csefalvay
Jupyter Notebook
9
star
6

chrisvoncsefalvay.github.io

My personal website
Jupyter Notebook
8
star
7

urbanpyctionary

The Python client for Urban Dictionary
Python
7
star
8

pyccuweather

The Python wrapper to Accuweather services
Python
6
star
9

ebov-dash

A simple Dash application exploring the West African EBOV outbreak. Companion app to my blog post on deploying Dash apps onto AWS ECS.
Python
6
star
10

dash-sir-interactive-model

Interactive SIR model in Dash
Python
5
star
11

differential-social-distancing-game

Statistical dynamics of social distancing in SARS-CoV-2 as a differential game
Jupyter Notebook
4
star
12

pyrst

The Python wrapper to the Birst API.
Python
3
star
13

daedra

DAEDRA: Determining Adverse Event Disposition for Regulatory Affairs
Jupyter Notebook
1
star
14

moveme

Helping you box and move your stuff from A to B without going nuts, all in 1980s ncurses glamour!
Python
1
star
15

covid-19-autoimmune-aefis

Reporting case-control study of the COVID-19 vaccine based on VAERS reports
Jupyter Notebook
1
star
16

samoa-measles-2019

Data on the 2019 Samoa measles outbreak πŸ‡ΌπŸ‡Έ
1
star
17

samoa-measles-explorer

A Dash application to explore the Samoa measles outbreak πŸ‡ΌπŸ‡Έ
Python
1
star
18

sadie

Sadie: Stochastic Agents in DIscrete time and Euclidean space
Python
1
star
19

fablab-eagle-workshop-INT

The official repo for the Munich Fablab EAGLE introductory course
Eagle
1
star
20

covid19-dynamic-time-clustering

Companion notebooks and data to Dynamic temporal clustering of COVID-19 infection in the US by Chris von Csefalvay
Jupyter Notebook
1
star