Syntax Across Programming Languages
You know one language and want to find the corresponding operator or function in another language
sprintf-like
sprintf Awk, C, C++, F#, Maple, Matlab, merd, OCaml, Perl, Perl6, PHP, Pike, Ruby
printf Haskell
% Python, Ruby
Camera obscura: the case against AI in classrooms: Matthew Butterick
Research means more than fact-checking
When I first used GitHub Copilot, I said it “essentially tasks you with correcting a 12-year-old’s homework … I have no idea how this is preferable to just doing the homework yourself.” What I meant is that often, the focus of programming is not merely producing code that solves a problem. Rather, the code tends to be the side effect of a deeper process, which is to learn and understand enough about the problem to write the code. The authors of the famous MIT programming textbook Structure and Interpretation of Computer Programs call this virtuous cycle procedural epistemology. We could also call it by its less exotic name: research.
FizzBuzz - Rosetta Code
Task Write a program that prints the integers from 1 to 100 (inclusive). But: for multiples of three, print Fizz (instead of the number)...
Coding Font by Typogram – Find Your True Love of Coding Fonts
- Source Code Pro
- Cousine
- Ubuntu Mono
But coding != terminal != text!!
Because of AoC : adventofcode - Algorithms books
As a former student of his I can recommend Jeff Erickson’s free online algorithms textbook if you’re looking for more sources. :)
https://jeffe.cs.illinois.edu/teaching/algorithms/
very good books. I also recommend Sedgewick's course on coursera
https://www.redblobgames.com/pathfinding/a-star/introduction.html
Would also strongly recommend the Algorithm Design Manual by Skiena
Used this book during AoC and for prepping for interviews.
GitHub - cpressey/Facts-about-State-Machines: I hold the opinion that state machines are underrated
I hold the opinion that state machines are underrated - GitHub - cpressey/Facts-about-State-Machines: I hold the opinion that state machines are underrated
I Spent 7 Months Gathering The Very Best Free Courses I Could Find On The Internet | by Jano le Roux | The Startup | Aug, 2022 | Medium
I Spent 7 Months Gathering The Very Best Free Courses I Could Find On The Internet. Including life-changing Harvard, MIT, and Stanford courses..
Harvard’s CS50 Computer Science Course
https://www.harvardonline.harvard.edu/course/cs50-introduction-computer-science
MIT’s Machine Learning Course
https://www.edx.org/course/machine-learning-with-python-from-linear-models-to
Apple’s Develop For iOS Course
https://developer.apple.com/tutorials/app-dev-training/
AWS’s Cloud Practitioner Course
https://www.edx.org/course/aws-cloud-practitioner-essentials
University of Michigan’s Successful Negotiation Course
https://www.coursera.org/learn/negotiation-skills
RIT’s Storytelling in the Workplace Course
https://www.edx.org/course/storytelling-in-the-workplace-3
Bocconi’s Private Equity and Venture Capital Course
https://www.coursera.org/learn/private-equity
Stanford’s Quantum Mechanics Course
https://www.edx.org/course/quantum-mechanics-for-scientists-and-engineers-1
My Google Coding Interview Question | by William Wen | CodeX | May, 2022 | Medium
Given a positive sorted array a = [ 3, 4, 6, 9, 10, 12, 14, 15, 17, 19, 21 ];
Define a function f(a, x) that returns x, the next smallest number, or -1 for errors.
i.e.
f(a, 12) = 12
f(a, 13) = 12
Why Binary Search?
Binary search is one of the most difficult “simple” coding problems. The algorithm looks trivial, but it’s a devil to implement. Jon Bentley, a former CMU professor, wrote in his book Programming Pearls that only 10% of professional programmers are able to implement it correctly, including PhD students.
Email explained from first principles
Modern email is a patchwork of protocols and extensions. Here is one article to understand them all.
Crockford Objects in JavaScript
The example that Crockford gave in his presentation on how to create objects is the way developers should use for creating objects. It does not require the 'class' keyword or the 'prototype' property for defining an object. It also does not require using the 'new' keyword for instantiating a new object.
function createThing(name) {
function getName() {
return name;
}
return Object.freeze({
name,
getName
});
}
const myThing = createThing('My Thing');
CS50: Harvard’s Most Popular Course is Free, Online | by Frederik Bussler | CodeX | Jan, 2021 | Medium
This introductory computer science course covers algorithms, data structures, resource management, security, software engineering, and web development.
One great, free option is “CS50’s Introduction to Artificial Intelligence with Python.” This course recommends CS50x as a pre-requisite, so this is a great next step if you’re interested in AI.
The Architecture of Open Source Applications
In these two books, the authors of four dozen open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to these books provide unique insights into how they think.
If you are a junior developer, and want to learn how your more experienced colleagues think, these books are the place to start. If you are an intermediate or senior developer, and want to see how your peers have solved hard design problems, these books can help you too.
These Modern Programming Languages Will Make You Suffer
Elixir receives two awards.
Its resiliency, functional-first approach, and amazing ecosystem makes it the Best Language for Building Web APIs.
OTP and the actor model make Elixir the Best Language for Building Concurrent and Distributed Software. Unlike its imperative cousin Go, software written in Elixir can scale horizontally to thousands of servers, and comes with fault tolerance out-of-the-box.
An attempt to make a font look more handwritten
OpenType lets you replace characters based on context
I started out being extremely confused about what OpenType even is. I still don’t know much, but I learned that you can write extremely simple OpenType rules to change how a font looks, and you don’t even have to really understand anything about fonts.
Here’s an example rule:
sub a' b by other_a;
What sub a' b by other_a; means is: If an a glyph is before a b, then replace the a with the glyph other_a.
Go is Boring...And That’s Fantastic! | Capital One
The best way to think about Go is to think about all the things that it doesn't have.
- Go doesn’t have a virtual machine or an LLVM-based compiler.
- Go doesn’t have exceptions.
- Go doesn’t have user-defined implementation inheritance.
- Go doesn’t have overloading for functions, methods, or operators.
- Go doesn’t have immutables.
- Go doesn’t have enumerations.
- Go doesn’t have generics.
- And Go hasn’t added any major features since Go 1 was released in 2012.
The one exciting thing that Go has is built-in concurrency support via goroutines, channels, and select. However, it is based on ideas from CSP, communicating sequential processes, which was first described in 1978.
HackerRank
I started preparing for Google interviews using HackerRank and its Interview Preparation Kit. I highly recommend it -- it's really close to what happened at the interview.
Stevey's Blog Rants: Programming's Dirtiest Little Secret
For starters, non-typists are almost invisible. They don't leave a footprint in our online community.
When you talk to them 1-on-1, sure, they seem smart. They usually are smart. But non-typists only ever contribute a sentence or two to any online design discussion, or style-guide thread, or outright flamewar, so their online presence is limited.
If you are a programmer, or an IT professional working with computers in any capacity, you need to learn to type! I don't know how to put it any more clearly than that. If you refuse to take the time, then you're... you're... an adjective interjection adjective noun, exclamation.