mas programming links
- Functional programming
- C programming
- Web programming
- Programming challenges
- Change management
- Shell programming
- Git version control
- Other tools: tmux
My first programs were written in FORTRAN in the early 1970s, followed by ALGOL and PLAN (ICL 1900 mainframe assembler). I no longer write in any of those languages but suspect that their influences persist in the way I write programs today.
- comp.lang.functional FAQ
- Haskell Programming From First Principles by Christopher Allen and Julie Moronuki. To quote Chris Allen, “I’ve spent the last couple years actively teaching Haskell online and in person. Along the way, I started keeping notes on exercises and methods of teaching specific concepts and techniques in Haskell that eventually turned into my guide for learning Haskell. That experience led me to work on this book.” The book is planned to be about 1200 pages. An early access version is available on Gumroad. Chris Allen has suggestions on Github for learning Haskell.
- Haskell Web Development is a freely-available-book project by Allele Dev. The project had an Indiegogo campaign ran until the first week of .
- Structure and Interpretation of Computer Programs from MIT Press. This article from posteriorscience.net explains why the course is no longer taught at MIT.
- Read K&R2
- For more background look on the The Unix Heritage Society by Warren Toomey and the Unix History Repo maintained by Diomidis Spinellis,
- Debugging tools I love reviewed by Julia Evans in a blog with links to more detailed articles and tutorials. Includes opensnoop, tcpdump, wireshark, perf, strace and dstat. See also Debugging tools zine [PDF] by Julia Evans.
- Learn C the Hard Way by Zed Shaw includes useful material on debugging and defensive programming. The book is available as a PDF on the author’s website where it is accompanied by video material.
- AM Charts offer JS libraries for charting and maps.
- Map instead of for loop can simplify program structure through a declarative approach rather than imperative. A sitepoint article by Jazen Thomas from .
- Plunker for creating, collaborating on and sharing web development ideas. Transpiles ES2015, supports CommonJS and ES6 modules, allows packages from npm using npmsearch.com.
- Collated list of JSON APIs.
- Facebook and Facebook developer site.
- Google Maps
- 2018 Guide to Building Secure PHP Software from Paragon Initiative.
- Non-developer's guide to PHP, a short Linux Journal article by Shawn Powers that shows how to make a simple simple dynamic web page.
- PHP Manual at php.net includes Language reference.
- PHP 7.1 migration.
- PHP 7.1 new features, a Sitepoint article by Younes Rafie, .
- PHP 7.0 migration.
- PHP 7.0 new features, a Sitepoint article by Bruno Skvorc, .
- PHP Standards Recommendations (PSRs) from the PHP-FIG, the PHP Framework Interoperability Group.
- PHP Security Tips by Damian Wolf in .
- PHP The Right Way an open wiki-style guide to good practice.
- regex101.com is a free PCRE-based regular expression checker and debugger.
- Xdebug introduction by Bruno Skvorc in April 2017.
- How much a computer does in a second quiz.
- Project Euler coding problems, many in number theory.
- spoj (Sphere Online Judge) Project Euler problem set archive, online judge and contest hosting service accepting solutions in C, C++, Pascal, Java and other languages.
- Young Programmer quizzes and problems.
Change management and configuration management are key ITIL disciplines. One tool that can help with both is effective code management.
Source code management using Git
- bfg fast repo cleaner for git. GPLv3 or later Licence.
- Cheatsheet covering problems, resources, … by Ashish Rawat.
- Commit message guidelines and examples Chris Beams.
- Git at git-scm.org.
- git cheatsheet that is visual and interactive from NDP software.
- Git changes in 2016 by Tim Pettersen.
- Git Immersion by Neo gives a practical walk-through of using git.
- Git repositories on Github including
- GitHub provides CLI access to its features through the hub command line wrapper that extends git with features and commands to make working with GitHub simpler. Pre-built binaries are available for many platforms, build from source requires a Go development environment.
- git ready learn git one commit at a time, by Nick Quaranto. Tips for the beginner, intermediate and advanced users.
- git-sizer script from GitHUb analyses the components of a repository and alerts to issues that can affect its performance.
- Git tutorials by atlassian.com.
- Git workflow: 5 tips from Raygun, by Yosan Legaspi in December 2017. f
- Global configuration file recommendations by Scott Nonnenburg, including adding GPG signatures.
- Recovering from mistakes when using git by Katie Sylor-Miller — contains strong language but perhaps the problem you need to recover from is worse?
- Semantic Versioning guidelines has best practices for version numbering code.
- Stephanie Losi provides Git training videos on The Vault at shortandsweetcourses.com and long-form training on Udemy.
- Advancing in the bash shell by Sam Rowe.
- Bash scripting quirks and safety tips by Julia Evans. A useful collection that also summarises some of the basics.
- Best Fifteen Unix Command-line tools proposed by Sohail.
- Command line challenge: a series of challenges that are solved at the command line.
- Fun command line utilities chosen by John Regehr.
- Purpose and location of login scripts by Adam Bolte, .
- Shell style guide from Google.
- Writing safe shell scripts from MIT SIPB.
- dc is a versatile command line RPN calculator. This tutorial by Pete Trbovich is a useful starting point.
- hx hex editor with vim key mappings.
- tmux is a valuable terminal multiplexing and windowing tool for workstations and servers. Minimalist guide to tmux by Peter Jang is on Medium; using tmux properly by Daniel Allen Deutsch gives a quick introduction.
- Unix toolbox by Colin Barschel is a collection of Unix/Linux/BSD commands and tasks which are useful for IT work.
- Algorithms, 4ed, by Sedgewick and Wayne.
- Algorithm Design by Skiena. Includes lectures and algorithm repository.
- Android developer resources by AnySoftwareTools lists over 80 selected resources from .
- The Art of Unix Programming by E S Raymond.
- Benefits of helping introverts to thrive, from The Economist .
- Cheatsheet link collection has pointers to cheatsheets for dozens of languages.
- Classic Programmer Paintings: classics retitled for the modern programmer.
- Commentary on the sixth edition Unix OS by Lions.
- Dijkstra’s lecture “The Humble Programmer” from Utexas’ E W Dijkstra Archive.
- Ganssle Group embedded systems pages.
- Jargon File by E S Raymond.
- Joel on software.
- Knuth’ Annual Christmas Tree Lecture: A conjecture that had to be true.
- Lisa Simone embedded systems: why is the phone on fire?
- Music for programming by, a curated list.
- Optimisation resources by Agner Fog. Blog and manuals with detailed analysis of architectures and instruction sets.
- Old Geek by Tim Bray. I’m not the only one.
- Programming books, an annotated list by Dan Luu.
- Try out some different: Programming fonts.
- Reverse Engineering for Beginners by Dennis Yurichev.
- Risks Register.
- Stack Overflow.
- Tech Channel at AT&T has a video The UNIX System: Making Computers Easier featuring appearances by Ken Thompson, Dennis Ritchie, Brian Kernighan and Richard Stallman (background at 3' 50").
- The Art of Programming, a BCS interview of Donald Knuth.
- Zstandard, developed by Facebook, is a compression algorithm designed for a good compression ratio with fast compression and decompression. It is designed to be branchless and to use Finite State Entropy. The code is available in GitHub.