Learn To Code
Python is a general-purpose high-level language with thousands of application-specific modules. Python is the most popular introductory language in US computer science programs, and is the official language at Google and dozens of other companies. Simple English-like syntax and huge libraries of tools have made Python a favorite for all kinds of scientific computing. Python is 25 years old and is in the top five for job postings—it'll be around for a long time. Python 3 is "the future", but most people still use Python 2.
BASH is the shell scripting language for Linux, Unix, and Unix derivatives like OSX—when you open and run stuff in a 'console' or 'terminal' in these operating systems, that's BASH. BASH is a tool for scripting and automating repetitive tasks, like backing up files over the network or renaming thousands of files that match a filter or running other programs and automatically restarting them if they crash. BASH is not your first choice for writing complex programs, but a little shell scripting competence is required to use a huge host of other command line utilities. Fortunately there isn't much to learn. BASH scripts can call Python scripts and vice-versa.
This is sufficient for data management and analysis, automation, statistics, visualization—if you have a specific use case like simulation that requires more speed, learn a compiled language like C or FORTRAN (don't laugh—FORTRAN is ancient and can only do a few things, but one of those things is high-speed matrix math).
Workshops at Berkeley
Berkeley offers short programming workshops through D-Lab. It's a minimal commitment—you walk over to Barrows, you learn some stuff and work through some examples for 2-4 hours, you go home.
- Upcoming training: http://dlab.berkeley.edu/training
- Sign up for the D-Lab mailing list: http://dlab.berkeley.edu/join-us
- Add the D-Lab training calendar in Google Calendar by clicking on the drop-down next to 'Other calendar' and selecting 'add by URL': webcal://dlab.berkeley.edu/calendar-node-field-date/ical/2016-04/calendar.ics
Berkeley CS9 self-paced online classes:
- Python: http://www-inst.eecs.berkeley.edu/~selfpace/class/cs9e/
- BASH Shell Scripting: http://www-inst.eecs.berkeley.edu/~selfpace/class/cs9e/
UC Berkeley Summer Python Bootcamp
Berkeley has held a Summer Python Bootcamp the last few years, but I'm not sure if they are offering one this year. I've emailed them and I'll update this when I figure it out.
This organization connects researchers to tools for making them more productive.
They hold really good two-day workshops on Python, BASH, and Git, but unfortunately there aren't any scheduled in Berkeley this summer. All of their lesson material is online and you can work through it at your own pace.
Learn Python The Hard Way - A series of exercises generally considered to be the best online resource. The book is no-cost but you have to pay if you want the videos.
A Byte of Python - Another great no-cost online resource. Simple descriptions of core features.
Lots of Python introductory courses on edX:
Sage Math Cloud
- A great way to start learning Python and Bash scripting in the cloud, without installing anything
- Based on the free, open source Sage Math project sagemath.org
Learn Shell - Learn how to shell script in BASH, right from the browser:
Python on CodeAcademy
- Introduction to Computer Science and Programming Using Python (MIT 6.00.1x)
- Introduction to Computer Science (Harvard CS50x)
- How to Think Like a Computer Scientist - Learning with Python: Interactive Edition
- Think Python
- repl.it ("Read-Evaluate-Print-Loop") - try out many different languages right in the browser
This page is synchronized with the CBE GSAC Wiki page on Learning To Code.