Programming Resources
Courses
Courses with Video Lectures
http://cmlakhan.github.io/courses/videos.html
CMU 15-814: Types and Programming Languages
http://www.cs.cmu.edu/~rwh/courses/typesys/
Introduction to DevOps
- intro: Learn how to make your application lifecycle faster and more predictable for both developers and the operations team.
- homepage: https://www.edx.org/course/introduction-devops-microsoft-dev212x
Top Machine Learning MOOCs and Online Lectures: A Comprehensive Survey
Assembly
A fundamental introduction to x86 assembly programming
C/C++
Templatized C++ Command Line Parser Library
- intro: TCLAP is a small, flexible library that provides a simple interface for defining and accessing command line arguments
- homepage: http://tclap.sourceforge.net/
- manual: http://tclap.sourceforge.net/manual.html
C/C++ tip: How to get the process resident set size (physical memory use)
Adcanced Linux Programming
The Ultimate Question of Programming, Refactoring, and Every
- intro: The book covers 42 recommendations about programming in C/C++. It contains real examples with errors and the author gives explanations of how these bugs could be avoided. — Alex Astva
- gitbook: https://www.gitbook.com/book/alexastva/the-ultimate-question-of-programming-refactoring-/details
- pdf: https://www.gitbook.com/download/pdf/book/alexastva/the-ultimate-question-of-programming-refactoring-
openFrameworks: an open source C++ toolkit for creative coding.
- homepage: http://openframeworks.cc/
Awesome C++: A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things
- homepage: https://cpp.libhunt.com/
shpp: Call c++ functions from a shell with any arguments of any types parsed automatically
AwesomePerfCpp: curated list of awesome C/C++ performance optimization resources: talks, articles, books, libraries, tools, sites, blogs
CUDA
Implementing Run-length encoding in CUDA
Mixed-Precision Programming with CUDA 8
Docker
Docker for Beginners: A comprehensive tutorial on getting started with Docker!
- tutorial: http://prakhar.me/docker-curriculum/
- github: https://github.com/prakhar1989/docker-curriculum
Introduction to Docker (for Data Scientists)
Git
Learn Git in 30 Minutes
Git diff tips and tricks
https://blog.twobucks.co/git-diff-tips-and-tricks/
Git-Repo The ultimate utility for managing services
http://i.got.nothing.to/code/on/git-repo:_the_utility_for_services/
GitHub vs. Bitbucket vs. GitLab vs. Coding
https://medium.com/flow-ci/github-vs-bitbucket-vs-gitlab-vs-coding-7cf2b43888a1#.9fk5ubn5n
Git as a NoSql database
Go
Go by Example
- blog: https://gobyexample.com/
Java
Java Decompiler
JavaScript
JavaScript on Board: With Maps, Dynamic Arrays and Objects out of the box. Just plug in and start creating in seconds
Introduction to Functional Programming in JavaScript (Part 1)
Lisp
mal - Make a Lisp
- intro: Mal is a learning tool, implemented in 56 languages
- github: https://github.com/kanaka/mal
- guide: https://github.com/kanaka/mal/blob/master/process/guide.md
Build Your Own Lisp: Learn C and build your own programming language in 1000 lines of code!
http://www.buildyourownlisp.com/
Math
Benchmarking matrix multiplication implementations
- intro: Naive / Transposed / sdot / SSE sdot / SSE+tiling sdot / OpenBLAS / uBLAS / Eigen
- github: https://github.com/attractivechaos/matmul
ISAAC: Input-aware BLAS for super high-performance Linear Algebra on CUDA and OpenCL
- github: https://github.com/ptillet/isaac
Python
Python Computing for Data Science: An Undergraduate/Graduate Seminar Course at UC Berkeley (AY 250)
Awesome Python: A curated list of awesome Python frameworks, libraries, software and resources
Python 资源大全中文版
- intro: Python资源大全中文版,内容包括:Web框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、 图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等
- github: https://github.com/jobbole/awesome-python-cn
live programming mode of Python Tutor
- intro: This is the live programming mode of Python Tutor, which continually runs and visualizes your code as you type
- website: http://pythontutor.com/live.html#mode=edit
A collection of useful scripts, tutorials, and other Python-related things
CME 193: Introduction to Scientific Python
- course page: http://web.stanford.edu/~arbenson/cme193.html
Interesting Python Tutorials
PyInstaller
- intro: PyInstaller bundles a Python application and all its dependencies into a single package. The user can run the packaged app without installing a Python interpreter or any modules.
- website: http://www.pyinstaller.org/
- docs: http://pyinstaller.readthedocs.io/en/stable/
- github: https://github.com/pyinstaller/pyinstaller
From Python to Numpy
- book: http://www.labri.fr/perso/nrougier/from-python-to-numpy/
- github: https://github.com/rougier/from-python-to-numpy
Numpy exercises.
Python 2 vs Python 3: Practical Considerations
- blog: https://www.digitalocean.com/community/tutorials/python-2-vs-python-3-practical-considerations-2
problem-solving-with-algorithms-and-data-structure-using-python 中文版
Regulex
Regulex: JavaScript Regular Expression Visualizer
[https://jex.im/regulex/#!embed=false&flags=&re=%5E(a%7Cb)%3F%24](https://jex.im/regulex/#!embed=false&flags=&re=%5E(a%7Cb)%3F%24)
Demystifying The Regular Expression That Checks If A Number Is Prime
https://iluxonchik.github.io/regular-expression-check-if-number-is-prime/
Visualization of Regulex
Rust
RustPrimer
intellij-rust: Rust plugin for IntelliJ IDEA
https://intellij-rust.github.io/
Shell
ShellCheck - A shell script static analysis tool
- intro: ShellCheck is a GPLv3 tool that gives warnings and suggestions for bash/sh shell script
- github: https://github.com/koalaman/shellcheck
Vim
Things About Vim I Wish I Knew Earlier
PacVim
- intro: PacVim is a game that teaches you vim commands. You must move pacman (the green cursor) to highlight each word on the gameboard while avoiding the ghosts (in red).
- github: https://github.com/jmoon018/PacVim
Turning vim into an IDE through vim plugins
https://www.safaribooksonline.com/blog/2014/11/23/way-vim-ide/
Powerful VIM config on Github
spf13-vim: The Ultimate Vim Distribution
![(http://i.imgur.com/kZWj1.png)]
- homepage: http://vim.spf13.com/
- github: https://github.com/spf13/spf13-vim
dot-vimrc: Maple’s vim config files
vimrc: The Ultimate vimrc
- github: https://github.com/amix/vimrc
Reverse Engineering
Reverse Engineering: Cracking Sublime Text 3
Tmux
A Tmux crash course: tips and tweaks.
Coding
Awesome Creative Coding
Top 10 coding challenges Websites
Hackerrank - A great collection of questions to solidify your programming skills
https://www.hackerrank.com/domains
Python / C++ 11 Solutions of All 418 LeetCode Questions
OpenGrok - a wicked fast source browser
- homepage: http://opengrok.github.io/OpenGrok/
- github: https://github.com/OpenGrok/OpenGrok
Code of Honor Series
Tough times on the road to Starcraft
StarCraft: Orcs in space go down in flames
The StarCraft path-finding hack
The making of Warcraft
- part 1: http://www.codeofhonor.com/blog/the-making-of-warcraft-part-1
- part 2: http://www.codeofhonor.com/blog/the-making-of-warcraft-part-2
- part 3: http://www.codeofhonor.com/blog/the-making-of-warcraft-part-3
Music and Coding
Music and Coding Part 1: Why listen while you work?
https://blog.idrsolutions.com/2014/07/music-coding-part-1-listen-work/
Music and Coding Part 2: What to listen to?
https://blog.idrsolutions.com/2014/08/music-and-coding-part-2-listen/
Music and Coding Part 3: How to listen to music
https://blog.idrsolutions.com/2014/08/music-and-coding-part-3-listen-music/
Programming Languages Used for Music
Debugging
Debugging with GDB: a real life example
Tips for Productive Debugging with GDB
A browser-based frontend/gui for GDB
- intro: A modern, browser-based frontend to gdb (gnu debugger). Add breakpoints, view stack traces, and more in C, C++, Go, and Rust! Simply run gdbgui from the terminal and a new tab will open in your browser.
- github: https://github.com/cs01/gdbgui
GDB基础 - 张银奎
Programming
Why is Object-Oriented Programming Useful? (With a Role Playing Game Example) http://inventwithpython.com/blog/2014/12/02/why-is-object-oriented-programming-useful-with-an-role-playing-game-example
Scraping NBA Play-by-Play Data with Scrapy & MongoDB
http://blog.nycdatascience.com/students-work/scraping-nba-play-by-play-data-with-scrapy-mongodb/
15 Sites for Programming Exercises
Eliminate null-checks using arrays
Game AI Programming
The AI Programmer’s Bookshelf: A list of useful books for game AI programming.
- intro: Jeff Orkin, MIT Media Lab
- homepage: http://alumni.media.mit.edu/~jorkin/aibooks.html
GENERAL EXAMS READING LIST
http://alumni.media.mit.edu/~jorkin//generals/general_exams.html
UAlbertaBot - StarCraft AI Competition Bot
https://github.com/davechurchill/ualbertabot
Software Development
Professional Software Development: For Students
Software Engineering at Google
- intro: catalog and describe Google’s key software engineering practices.
- arxiv: https://arxiv.org/abs/1702.01715
Codes
The Archive of Interesting Code
- intro: 95 entries
- author: by Keith Schwarz, Stanford CS166.
- blog: http://www.keithschwarz.com/interesting/
Dijkstra Cartography
- intro: Using Dijkstra’s algorithm (“finding the shortest paths between nodes in a graph”) to draw maps
- github: https://github.com/ibaaj/dijkstra-cartography
Interesting Projects
Game
(Update: this repo has been taken down by Blizzard) StarCraft: HTML5 version for StarCraft game
- project: https://github.com/gloomyson/StarCraft
- news: https://torrentfreak.com/blizzard-nukes-popular-html5-version-of-starcraft-game-151010/
- news: http://thenextweb.com/apps/2015/09/07/starcraft-now-works-in-the-browser-and-its-amazing/
The Brood War API
- project: https://github.com/bwapi/bwapi
CodeCombat: Multiplayer programming game for learning how to code
- github: https://github.com/codecombat/codecombat
- homepage: http://codecombat.com/
- wiki: https://github.com/codecombat/codecombat/wiki/Archmage-Home
BrowserQuest: a HTML5/JavaScript multiplayer game experiment
- github: https://github.com/mozilla/BrowserQuest
- homepage: http://browserquest.mozilla.org/
2048-AI
- demo: http://ovolve.github.io/2048-AI/
- github: https://github.com/ovolve/2048-AI
- stackoverflow: http://stackoverflow.com/questions/22342854/what-is-the-optimal-algorithm-for-the-game-2048
- zh-blog: http://blogread.cn/it/article/6827?f=wb
The Berkeley Overmind Project
- intro: “The Overmind is an agent for playing StarCraft®: Brood War®, using BWAPI.”
- homepage: http://overmind.cs.berkeley.edu/
Spaceship.codes - A Game for Programmers
!()[https://fotino.me/content/images/2016/04/thrust-1.png]
- intro: A programming game in which the user writes JavaScript code to control a spaceship in order to complete some objective. https://fotino.me/intro-to-space-ai/ https://github.com/rfotino/space-ai
SnapSudoku: Extract and solve Sudoku from an image
TerraLegion
Editing
Latex to HTML5
LaTeX handwritten symbol recognition: Detexify Backend Server implemented in Haskell
- demo: http://detexify.kirelabs.org/classify.html
- github: https://github.com/kirel/detexify-hs-backend
Enhancements for The official editor for Code in the Dark
- github: [https://github.com/codeinthedark/editor/pull/1)
activate-power-mode atom package
ActivatePowerMode: plugin for Xcode
Texter
- intro: Texter is a little javascript experiment that lets you explore your creativity by drawing with words.
- demo: http://tholman.com/texter/
- github: https://github.com/tholman/texter
PDFMiner: a tool for extracting information from PDF documents
A business card in LaTeX.
Painting
polygen: genetic algorithm for approximating an image with polygons (Golang)
PyGraphArt: Some Python code to make GIFs from graph algos
WaveFunctionCollapse: Bitmap & tilemap generation from a single example with the help of ideas from quantum mechanics.
Utilities
Python Gems: A collection of python scripts that solve interesting problems
nude.js: Nudity detection with JavaScript and HTMLCanvas
- website: http://www.patrick-wied.at/static/nudejs/
- github: https://github.com/pa7/nude.js
Hastily - A downloader of subtitles(Haskell)
https://hackage.haskell.org/package/hastily
nba-cli: Get NBA Data From The Command Line
Octotree: Code tree for GitHub and GitLab
coursera-dl-all
gifify: Convert any video file to an optimized animated GIF.
- intro: Convert any video file to an optimized animated GIF. Either in its full length or only a part of it.
- github: https://github.com/vvo/gifify
pdf-diff: A PDF comparison utility in Python
https://github.com/JoshData/pdf-diff
Web Image Downloader Tools
- intro: Python utilities for automated download of images from various web sources
- github: https://github.com/kencoken/imsearch-tools
Multi-media
cmus — C* Music Player
- website: [https://cmus.github.io/]
- github: https://github.com/cmus/cmus
a2mp3 - anything2mp3
eyeD3
- intro: a Python tool for working with audio files, specifically mp3 files containing ID3 metadata (i.e. song info).
- homepage: http://eyed3.nicfit.net/
- installation: http://eyed3.nicfit.net/installation.html
Algorithm
Lean: a new open source theorem prover
- intro: Microsoft Research
- website: http://leanprover.github.io/
Technology
RF-Capture: Capturing the Human Figure Through a Wall
Stealing Keys from PCs using a Radio: Cheap Electromagnetic Attacks on Windowed Exponentiation
- homepage: https://www.tau.ac.il/~tromer/radioexp/
A Windows 95 Simulator on Browser
https://win95.ajf.me/win95.html
eviltransform: Transform coordinate between earth(WGS-84) and mars in china(GCJ-02)
- github: https://github.com/googollee/eviltransform
- blog(“Why You Can’t Trust GPS in China”): http://www.travelandleisure.com/articles/digital-maps-skewed-china
Apollo-11: Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules
Others
Module 7: Introduction to D3.js
Resources
24 Data Science, R, Python, Excel, and Machine Learning Cheat Sheets
Reading for graduate students
http://matt.might.net/articles/books-papers-materials-for-graduate-students/