/programming-links

Things I want to save and/or share

programming-links

Things I want to save and/or share

https://12factor.net/

Charity Majors - WTF IS OPERATIONS? #SERVERLESS

Charity Majors - OPERATIONAL BEST PRACTICES #SERVERLESS

https://cloud.google.com/functions/docs/

General

http://www.geeksforgeeks.org/ - programming languages, algorithms, tutorials

https://www.destroyallsoftware.com/screencasts/catalog

Practice

There are many sites where you can practice programming in multiple languages:

www.hackerrank.com/ - contains tutorials, challenges and contests

www.codingbat.com/java - some small problems to solve

www.codewars.com/ - katas of varying levels

https://open.kattis.com/ - contains (algorithmic) challenges

https://algo.is/ - Lectures and overview of Kattis problems per subject

www.topcoder.com - challenges, tutorials and more

www.topcoder.com/community/data-science/data-science-tutorials/

www.codefights.com

www.projecteuler.net/

www.codeforces.com/gyms

www.codechef.com/

https://uva.onlinejudge.org/

www.codingame.com/start

https://codility.com/programmers/

www.codingdojo.org/ - contains a list of katas and more

www.kata-log.rocks/ - more katas and different ways to practice

http://jamesowers.co.uk/2016/03/07/code-katas.html

Reading code

Tips for reading code

https://www.skorks.com/2010/05/why-i-love-reading-other-peoples-code-and-you-should-too/

https://medium.com/bits-and-behavior/teaching-a-strategy-for-reading-code-fbc9f4044cab

https://stackoverflow.com/questions/1307790/how-to-improve-your-reading-and-understanding-of-code/1307819#1307819

Mindmap

https://www.mindmup.com/

Open source

Get started with Open Source:

https://github.com/collections/choosing-projects

https://www.codetriage.com/

http://up-for-grabs.net/#/

TDD

https://www.slideshare.net/matthiasnoback/tdd-a-reminder-of-the-principles

https://www.youtube.com/watch?v=ytjL2X2Tn3U&feature=youtu.be - Setting up a Maven project to run unit tests

http://codemanship.co.uk/parlezuml/blog/?postid=987 Classic vs London school of TDD

Mob programming / Ensemble programming

https://www.agileconnection.com/article/getting-started-mob-programming

https://tobeagile.com/2017/01/11/strong-style-pairing/

https://www.slideshare.net/llewellynfalco/mob-programming-75601033

http://llewellynfalco.blogspot.nl/search?q=mob+programming

https://www.stitcher.com/podcast/cucumber-podcast/cucumber/e/43836087

https://leanpub.com/mobprogramming/read_sample

https://www.youtube.com/watch?v=dVqUcNKVbYg

https://www.youtube.com/watch?v=h7NU06Ef4zQ

https://www.youtube.com/watch?v=8cy64qkgTyI

Design patterns

http://wiki.c2.com/?DesignPatternsBook

https://en.wikipedia.org/wiki/Null_object_pattern

https://en.wikipedia.org/wiki/Decorator_pattern

https://en.wikipedia.org/wiki/Semaphore_(programming)

Baackends for Frontends

Ports and Adapters / Hexagonal architecture

https://spin.atomicobject.com/2013/02/23/ports-adapters-software-architecture/

http://alistair.cockburn.us/Hexagonal+architecture

Code review

https://techbeacon.com/10-commandments-navigating-code-reviews

Refactoring

https://www.csie.ntu.edu.tw/~r95004/Refactoring_improving_the_design_of_existing_code.pdf

https://pragprog.com/book/tpp/the-pragmatic-programmer

https://blog.jetbrains.com/idea/2017/08/code-smells-mutation/

https://martinfowler.com/bliki/CodeSmell.html

https://martinfowler.com/articles/preparatory-refactoring-example.html

https://refactoring.guru/

https://refactoring.guru/smells/primitive-obsession

http://courses.cs.vt.edu/~cs3114/Fall10/Notes/D01.IdentifyingClasses.pdf

Java

Getting started:

More:

Official Oracle docs:

OCA/OCP exam & exam prep:

Java 9:

https://blog.knoldus.com/2017/07/26/did-someone-say-java-9/

String functions: http://string-functions.com/

Regex: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Matcher.html

Various:

https://dzone.com/articles/optional-method-parameters

classpath

NLJUG

Inside Java

Inside Java podcast

JetBrains IntelliJ IDEA Blog

Baeldung

DZone: Java

Foojay Today

Foojay - Overview of all JVM command line arguments - Java 11

InfoQ

OpenJDK

Kotlin

https://medium.com/@octskyward/why-kotlin-is-my-next-programming-language-c25c001e26e3

https://kotlinlang.org/

https://www.kotlin.nl/

JetBrains Kotlin Blog

https://blog.philipphauer.de/idiomatic-kotlin-best-practices/

Kotlin in Action (book)

Using Maven to compile Kotlin and Java resources

Scala

http://docs.scala-lang.org/tutorials/scala-for-java-programmers.html

http://fileadmin.cs.lth.se/scala/scala-impatient.pdf

https://technologyconversations.com/2014/03/10/scala-tutorial-through-katas/

https://www.rea-group.com/about-us/news-and-insights/blog/java-to-scala-cheatsheet/

Go

https://blog.golang.org/examples

Go - the good, the bad, the ugly

Amazing artwork by Ashley McNamara

Angular

https://angular.io/docs

Git

Git documentation: https://git-scm.com/doc

Video: http://learngitbranching.js.org/index.html?demo

https://www.youtube.com/watch?v=1ffBJ4sVUb4

http://ohshitgit.com/

How to Write a Git Commit Message: https://chris.beams.io/posts/git-commit/

Why squash git commits for pull requests? https://softwareengineering.stackexchange.com/questions/263164/why-squash-git-commits-for-pull-requests

http://rogerdudler.github.io/git-guide/ - basic guide

Tips from CodeSchool Git Real course:

http://gitimmersion.com/

http://gitready.com/

http://www.ndpsoftware.com/git-cheatsheet.html

https://jwiegley.github.io/git-from-the-bottom-up/

https://git-rebase.io/

Spring

https://spring.io/guides

https://spring.io/guides/gs/rest-service/ - 15 min tutorial to build a simple REST service

https://www.tutorialspoint.com/spring/

https://bolcom.github.io/java-spring-basics/

https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html

Spring Blog

Maven

Introduction to build profiles

GraphQL

https://graphql.org/learn/

https://www.graphql-java.com/tutorials/getting-started-with-spring-boot/

https://www.graphql-java-kickstart.com/tools/

https://medium.com/paypal-engineering/graphql-resolvers-best-practices-cd36fdbcef55

https://blog.apollographql.com/optimizing-your-graphql-request-waterfalls-7c3f3360b051

https://blog.apollographql.com/batching-client-graphql-queries-a685f5bcd41b

Security

Oracle Security Alerts

Front end

https://www.w3schools.com/cssref/css3_pr_word-break.asp

Testing

Get some ideas here:

https://github.com/kdeldycke/awesome-falsehood/blob/master/README.md

https://medium.com/@ezagroba/have-i-tried-enough-weird-stuff-7ed4105ae994

Testing & Test Automation

Test Developers Aren’t Testers

Test Developers Aren’t Testers, Follow-Up

Automation in Testing - Free courses

http://rcpaterson.co.uk/blog/test/dont-shift-left-expand-outwards-and-accelerate-failure/

http://www.benrady.com/2016/11/testing-with-fire.html

Mutation testing: http://pitest.org/

Minitry of Testing - practice sites - Need to sign in.

https://bugmagnet.org/

How do you decide what to automate? by Katrina Clokie

When Should a Test Be Automated? by Brian Marick

Become a Ministry of Testing author

Bug Bash at Saucelabs

Bug Bash as Songkick

Test automation patterns

Regression testing heuristic

Doing terrible things to your code

Have I tried enough weird stuff?

Test types

Characterization test - to describe (characterize) the actual behavior of an existing piece of software, and therefore protect existing behavior against unintended changes.

Approval test

Test / quality tools

https://javapapers.com/java/java-micro-benchmark-with-jmh/ - Benchmark is the process of recording the performance of a system. (Macro) benchmarks are done between different platforms to compare the efficiency between them. Micro benchmarks are done within the same platform for a small snippet of code.

Unit tests

http://xunitpatterns.com/

Spock

https://objectpartners.com/2014/04/08/spock-mock-cheatsheet/

Code coverage

https://dev.to/danlebrero/the-tragedy-of-100-code-coverage

http://danlebrero.com/2016/11/06/good-test-vs-bad-tests/

http://blog.stevensanderson.com/2009/11/04/selective-unit-testing-costs-and-benefits/

https://stackoverflow.com/questions/90002/what-is-a-reasonable-code-coverage-for-unit-tests-and-why/90021#90021

Mocking

http://www.baeldung.com/jmockit-101

https://martinfowler.com/articles/mocksArentStubs.html

http://www.martinfowler.com/bliki/TestDouble.html

Mockito

https://www.baeldung.com/java-spring-mockito-mock-mockbean

MockServer

WireMock

http://hadihariri.com/2016/10/04/Mocking-Kotlin-With-Mockito/

API testing

Swagger test templates Note: javascript tool

Dredd

Contract testing

Contract test(Martin Fowler)

Consumer-Driven Contracts: A Service Evolution Pattern (Martin Fowler)

https://www.thoughtworks.com/radar/techniques/consumer-driven-contract-testing

Getting started with Contract testing

Blog about Spring Cloud Contract Testing blog

Spring Cloud Contract

Spring Cloud Contract Testing blog

Reasons for consumer driven contracts

https://aboullaite.me/a-practical-introduction-to-spring-cloud-contract/

Cucumber

https://docs.cucumber.io - Cucumber for BDD test automation

https://cucumber.io/ - Current site (Project: https://github.com/cucumber/website)

Project for all new documentation: https://github.com/cucumber/docs.cucumber.io

Cucumber for Java book: https://pragprog.com/book/srjcuc/the-cucumber-for-java-book

Source code: https://pragprog.com/titles/srjcuc/source_code

Forum: https://forums.pragprog.com/forums/330

Slack: https://cucumberbdd.slack.com

Google groups: https://groups.google.com/forum/#!forum/cukes

Gitter (help): https://gitter.im/cucumber/help

Gitter (cucumber-jvm): https://gitter.im/cucumber/cucumber-jvm

https://cucumber.io/blog/2014/03/03/the-worlds-most-misunderstood-collaboration-tool

http://agileforall.com/just-enough-regular-expressions-for-cucumber/

https://cucumber.io/blog/2017/08/07/cukeup-london-2017-videos

http://agileforall.com/just-enough-regular-expressions-for-cucumber/

http://agileforall.com/wp-content/uploads/2011/08/Cucumber-Regular-Expressions-Cheat-Sheet.pdf

http://www.thinkcode.se/blog/2016/06/22/cucumber-antipatterns

Cloud

https://github.com/googleapis/google-cloud-java/blob/master/TESTING.md#testing-code-that-uses-storage

Reproduce issues

How to create a Minimal, Complete, and Verifiable example: https://stackoverflow.com/help/mcve

Postgres

https://www.datadoghq.com/blog/100x-faster-postgres-performance-by-changing-1-line/

Bash

https://natelandau.com/my-mac-osx-bash_profile/

Programming

https://tylermcginnis.com/imperative-vs-declarative-programming/

Algorithms & Competitive Programming

https://visualgo.net/en

http://www.dummies.com/programming/big-data/algorithms-dummies-cheat-sheet/

http://dsp-book.narod.ru/Algorithms.pdf

https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-graphs-and-their-data-structures-section-1/

http://rosettacode.org/wiki/Rosetta_Cod

https://idea-instructions.com/

https://sites.google.com/site/stevenhalim/ - Download v1 of the Competitive Programming book for free

http://play.typeracer.com/ - improve typing speed

Blogs

http://www.thinkcode.se/blog

https://blog.jetbrains.com/idea/

Ministry of Testing - blog feed

http://visible-quality.blogspot.nl

Julia Evans

Conferences

Codemotion Amsterdam 2017: https://www.youtube.com/playlist?list=PLq2-o3pBTowfqY4DCsGQ4U-o3aXanFgWX

GOTO Amsterdam 2017: https://www.youtube.com/playlist?list=PLEx5khR4g7PLcjLdaugk3GndelpTGbYDS

JoyOfCoding 2017: https://www.youtube.com/watch?v=an15s-6Q6rE

Joy of Coding 2015: https://www.infoq.com/joy-of-coding-2015

Joy of Coding 2014: https://www.infoq.com/joy-of-coding-2014

Joy of Coding 2013: https://www.infoq.com/joy-of-coding-2013

NLJUG: https://www.youtube.com/channel/UCZKSQ4GtkKD1Wb6Ti53febQ/videos

https://www.youtube.com/watch?v=uQ75fI1tqoM Venkat Subramaniam, includes interesting perspective on testing.

Speaking / CFP

http://speaking-easy.com/

http://www.uploads.pnsqc.org/conference/documents/PNSQC_How_to_Write_an_Abstract.pdf

https://www.linkedin.com/pulse/getting-started-public-speaking-kristine-howard/

Carbon - to add pretty code to your presentation

https://thefriendlytester.co.uk/2016/02/a-four-week-approach-to-creating.html

Serverless

Serverless

Regex

https://regexlearn.com/learn

https://regex101.com/

Handy

JsonLint - validate json

History

http://mentalfloss.com/article/53131/ada-lovelace-first-computer-programmer

https://timeline.com/women-pioneered-computer-programming-then-men-took-their-industry-over-c2959b822523

https://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software

Funnies

www.xkcd.com

https://relevantxkcd.appspot.com/

https://www.monkeyuser.com/

https://assets.toggl.com/images/toggl-how-to-save-the-princess-in-8-programming-languages.jpg

https://9gag.com/gag/anXEbe0/if-programming-languages-were-weapons?fref=gc&dti=1420472394666043

A QA walks into a bar: https://www.sempf.net/post/On-Testing1

https://www.tamingdata.com/wp-content/uploads/2010/07/tree-swing-project-management-large.png

https://twitter.com/CommitStrip/status/885513901177098241/photo/1

https://twitter.com/phabricator/status/902202891280232448

http://pauperhosting.nl/

http://uniquebits.nl/

http://yetanotherico.com/

https://github.com/kelseyhightower/nocode

https://saijogeorge.com/css-puns/wife/

https://dayssincelastjavascriptframework.com/

http://yangshun.im/commitbait/

https://www.stilldrinking.org/proposal-for-new-rest-methods

http://isstagingdown.com/

Passive Aggressive Annotation Framework (PAAF): https://github.com/nvdh/paaf

https://httpstatusdogs.com/

https://http.cat/

Other

Slides for the geek girl carrots java meetup:

https://docs.google.com/document/d/1Z8FQsSgPO_kH7T0COB-6jMxiWIfB3B6pvA229COCFzE/edit - tools for workshop 1

http://slides.com/andr33a/javaworkshop2#/ - Language Basics

http://slides.com/andr33a/javaworkshop3#/ - Object Oriented Programming

http://slides.com/andr33a/java-workshop-4#/ - Organizing code: packages and access modifiers

OOP vs POP discussion: http://www.thecrazyprogrammer.com/2016/08/difference-between-oop-and-pop.html

http://freefeast.info/general-it-articles/difference-between-procedure-oriented-programming-and-object-oriented-programming-procedure-oriented-programming-vs-object-oriented-programming/

http://techdifferences.com/difference-between-oop-and-pop.html

Java beginner meetup: https://www.slideshare.net/PatrickKostjens/java-beginners-meetup-introduction-to-class-and-application-design