Tagged with programming

Using Artificial Intelligence to Augment Human Intelligence

AIA > AI or IA. Another great piece from Distill.

#48 - Brian Christian on better living through the wisdom of computer science

Optimal shopping. Multi-armed bandit. Really great parallels between CS and life. Will be picking up the book.

Languages, Compilers and Interpreters

Lecture notes from Bradfield's languages class

Domain-Driven Design

Software should be optimized for the domain it is performing in, or else it will turn into an unmaintainable nightmare for both developers and domain experts.

Computer Architecture and the Hardware/Software Interface

Lecture notes from Bradfield's architecture class

Computer Networking

Lecture notes from Bradfield's networking class

How to deliver on Machine Learning projects

Step-by-step pipeline from idea to production for an ML project

Program Interfaces, Patterns, and Anti-Patterns

Lecture notes from Bradfield's APIs class

Java Design Patterns

Design patterns implemented in Java. Really good reference. All designs should be as simple as possible.

Problem Solving with Algorithms and Data Structures

Lecture notes from Bradfield's algorithms class

101: Ben Orenstein - How to Build an App in a Week

Be ruthless about cutting and be flexible about scope. Set hard deadlines.

Analyzing 50k fonts using deep neural networks

Perfect dataset for training fonts, trained model even has 40 latent factors.

Coolest Things I Learned in 2018

Assorted snippets from the author of Monday Musings

The Yoda of Silicon Valley

Profile of Donald Knuth, author of the Bible of CS

Code Smells: Mutation

Make things immutable as much as you can!

Code Smells: Multi Responsibility Methods

Methods should do one thing. Extract things until this is the case.

Code Smells: Null

All about the Null code smell. Use `Optional`, `@NotNull` to combat it.

Effective Java, 2nd Edition

Very good grab bag of tips and tricks for Java. Many were immediately applicable. Explained at the perfect level of abstraction for me.

Documents OCR: Improving Efficiency by Making PDFs Searchable

Use Google Cloud Vision. Good OCR pipeline reference for startup.

What Truly Makes a Senior Developer

Senior developers understand that nothing is without possible issues, downsides, and risks.

Web Architecture 101

Walkthrough of Web Application Architecture

The Pragmatic Programmer

Collection of somewhat common sense but well-stated programming advice.

Designing Very Large (JavaScript) Applications

Lots of good architecture advice (not all JS-specific!) from a JS architect at Google

How I Learned to Stop Worrying and Love the State Machine

Any reasonably complex domain object degenerates into a state machine, so you might as well get ahead of the curve.

Core Java Volume 1 -- Fundamentals

More of a reference book than a read-through book. Goes through the Java core API. Already knew most of it

AWS, MongoDB, and the Economic Realities of Open Source

Open Source financials echo those of the music industry; what's being sold is not the software, but the packaging. This is dangerous if left unaddressed.

Building an Inclusive Code Review Culture

Clear communication and good practices keeps code quality high and people's feelings happy.

Crafting Beautiful UX with API Requests

Developer experience matters internally and externally and there are some simple patterns to make it better.

Some Code I Deleted

Always look for existing well-written, well-tested code before embarking on your own adventure. No code is better than no code.

Code Smells: Too Many Problems

Break the method into smaller pieces. Work on one smell at a time. Step back, get a bigger picture to model the problem. Introduce new domain objects if appropriate. Document your changes.

Code Smells: If Statements

Avoid crazy conditionals by moving them to the correct place, collapsing them, extracting to methods

Code Smells: Deeply Nested Code

Deeply nested code is bad. Encapsulate, use streams.

Patterns of Enterprise Application Architecture

Solid set of backbone concepts for enterprise applications. Many of his ideas have developed a lot since this book was released in 2002 but it strengthened my understanding to see them explained firsthand.

What Tech Stacks are Indie Hackers Using for Their Apps, and Why?

Descriptions of tech stacks and justifications for them at small startups. Bottom line: build modularly with technology you're familiar with.

Memorizing a programming language using spaced repetition software

Programming-specific SRS tips

How to unit test machine learning code

Actual code examples for testing neural networks and ML algorithms yay

Software Estimation: Demystifying The Black Art

More of a reference book than a read-through book. Goes through a lot of software estimation techniques. Meat of the book was in the first section.

Computer Science as a Lost Art

'Curmudgeonly' take on computer science vs. programming