Jaideep Ganguly, ScD (MIT)


  LinkedIn
  ganguly.jaideep@gmail.com


PROGRAMMING


The Go Programming Language by Alan A. A. Donovan, Brian W. Kernighan, Chapter 1.
Go is simple, concise, and reasonably efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines. Go compiles quickly, has the convenience of garbage collection and the power of run-time reflection. It is a fast, statically typed, compiled language. This is an interesting read on the thought process that went into the making of Go.

Kotlin Cookbook - by Jaideep Ganguly
This book has been written to help Java developers migrate to Kotlin easily. The OOP paradigm mostly results in obfuscating code using a plethora of classes, sub-classes and interfaces that add levels of abstraction but little value. For a piece of code with business logic of just 10 lines, it is not unusual to see developers write 100 lines in form of Interface, Abstract Classes, Concrete Classes, Factories, Abstract Factories, etc. Most of the assumptions around the need for extensibility is false and much of the code written for the sake of extensibility is never used. Kotlin can be used to alleviate some of these problems.

Design through Functional Composition & Monads
Functional programming is the process of building software by composing pure functions, avoiding shared state, mutable data, and side-effects. FP is declarative rather than imperative, and application state flows through pure functions. It has many advantages over impertive programming.

Building connected apps in Kotlin
Ktor provides the flexibility in structuring your application. Unlike other server-side frameworks, it does not enforce a specific pattern such as having to place all cohesive routes in a single class.

Fuel, an HTTP networking library for Kotlin
This is probably the easiest HTTP networking library for Kotlin/Android.

Calling Scala from Java
It is futile to attempt calling scala from java. Scala has a rich type system which cannot be directly expressed from Java. You need to hava a java wrapper for your scala code.

The Perils of Concurrency [this content is outdated with the advent of Rust]
Managing concurrency is wickedly tricky for large programs. This is why gocoroutines in Go and Corouties in Kotlin have gained popularity.

MOBILE

The Evolution of Mobile App Development

BIG DATA

Setup Spark with PyCharm & Jupyter Notebook
Anatomy of a PySpark script

CHEAT SHEETS

Java - My notes on Java to help me remember stuff as it has grown pretty unweildly over the decades
Kotlin
Kotlin Collections
Pyspark Cheatsheet
IntelliJ IDEA Shortcuts for Mac
Android Espresso Cheat Sheet

TRENDS

Goodbye OOP

INTERESTING LINKS

Simple Face Recognition
Awesome responsive Bootsrap CSS collections

TENETS

Great Teams