Ephram
Grant's
Homepage
My personal website, updated regularly. Contains my interests and resume.
Music
Artists, playlists & what I'm listening to.
Gaming
Favorites, currently playing, and wishlist.
Cubing
Solves, times, and puzzle collection.
Sports
Teams I follow.
Books
My favorites and To-Read List.
Resume
Experience, education, and skills.
Games
Browser games I've built.
Coding
Programming resources and guides.
Music.
I've been listening to an album a day for the past ~8 months. I primarily listen to Alternative Rock and Metal, but I recently have been branching out into other genres.
Album of the Day
Favorite Artists
Radiohead
My favorite songs are How to Disappear Completely, Let Down, and Man of War. Discography ranked:
- 1 OK Computer (Near Perfect Album)
- 2 In Rainbows (Amazing but a few songs are just ok)
- 3 Kid A (High highs but I dislike a few songs such as the title track)
- 4 A Moon Shaped Pool (Extremely heartfelt and very consistent album)
- 5 Hail to the Thief (Underrated with maybe their best open/closing tracks)
- 6 The Bends (A little overrated but still amazing)
- 7 Amnesiac (Some good songs and life in a glasshouse is awesome)
- 8 The King of Limbs (Very laidback album but codex is a top 10 radiohead song)
- 9 Pablo Honey (Creep is radioheads best song)
Willy Rodriguez
Critically underrated. Composed of anonymous duo Gabe and Alex. They have since disbanded, but Alex has continued making music under the moniker Drug Bug (The new album "Hell for a Basement" is great). Wetdream is a top 5 album and Revisited is a top 5 song.
Have a Nice Life
Highly experimental and dark sound. Primarily known for their 2008 album Deathconsciousness which ranks in my top 5. They served as an entry point into shoegaze music for me.
Album and EP Rankings
| Album | Artist | Genre | Rating | Notes |
|---|
Listening Stats
Gaming.
I have been playing videogames for the majority of my life and it is one of my most consistent pastimes. I primarily play on PC and Nintendo Consoles. I try to have a blend of singleplayer and multiplayer games.
All-Time Favorites
Portal 2
My favorite game in both of its primary genres. I beat this while in a call with friends and it is one of my favorite gaming experiences.
Elden Ring
Beating this game is so rewarding, the large number of amazing bossfights and interesting lore make this game unmatched. I've replayed it 4 times.
Terraria
The ultimate survival sandbox game (Sorry MC). Amazing bosses, loads of items, unique classes, and fantastic mod support have given me thousands of hours of fun.
Currently Playing
I'm working through the Dark Souls Trilogy and I just picked up Yoshi and the Mysterious Book.
Cubing.
I've been solving twisty puzzles for over 10 years, although I've never entered a competition. I love developing algorithms and solving new puzzles.
My Collection
3×3
I own over 20 different 3x3 cubes. It's the classic! I primarily just mess around with it and I don't put too much emphasis on learning new algorithms
2x2
The 2x2 is my best event and the one I practice the most to improve competitively. I'm still somewhat inconsistent but this is by far my best
Pyraminx
This was the first twisty puzzle I solved and I developed the algorithm myself in 2nd grade. It took me a few days to figure it out but I still have great memories associated with it.
Method & Goals
I use CFOP to solve. I'm currently working on memorizing more OLL algorithms. I also recently have tried blindfold solving. I haven't successfully completed a blindfold solve, but I've gotten very close!
Sports.
I love to watch most sports, but I primarily focus on the two forms of Football. I played Soccer for most of my life growing up and was terrible at every other sport I tried.
Teams I Follow
Liverpool FC
I've been a Liverpool fan for a while but I began consistently watching games and interacting with team media around 2019. My favorite current players are Ekitike, VVD, and Szoboszlai.
You'll Never Walk Alone.
Philadelphia Eagles
I've been an Eagles fan my entire life and I don't regret it. I dyed my hair green when the won the Super Bowl in 2018.
Fly, Eagles Fly
Books.
I love to read and I want to catalog some of my favorite books.
All-Time Favorites
Good Omens: The Nice and Accurate Prophecies of Agnes Nutter, Witch
Hilarious religious comedy surrounding an angel and demon working to prevent the apocalypse. Constant humour that lands every time for me.
If you stop tellin people it's all sorted out after they're dead, they might try sorting it all out while they're alive.
Skulduggery Pleasant
My favorite book series. Contemporary fantasy set primarily in Ireland that follows the title character Skulduggery Pleasant, a wisecracking, skeleton detective and his partner Valkyrie Cain as they fight supernatural and world-threatening battles. There's currently 18 main series books spanning 3 phases and a number of spinoffs. The first phase (books 1-9) is the best.
He's dead. She's deadly. The bad guys don't stand a chance.
Ender's Shadow
Science Fiction novel surrounding a temporarily unified Earth sending the smartest children to a space station school to teach them to become commanders to defend Earth following numerous attacks from "The Formics" a bug-like alien race. Ender's shadow is a parallel novel to Ender's Game, and follows Bean, a small, hyper-intelligent child as he goes from a homeless child to working with Ender, the main character of Ender's Game. Shadow is also the precursor to a series following Earth's political state after *spoilers* happens.
We are, when the cause is sufficient, insane.
The Hitchhikers Guide to the Galaxy
Comedy Science Fiction novel following the last man from Earth after its destruction to make way for an intergalactic highway. Saved by his alien friend, a writer for the guidebook and encyclopedia whence the name of the book is derived, they travel throughout the galaxy meeting many characters and going on many adventures.
So long, and thanks for all the fish.
To-Read List
Dungeon Crawler Carl - Matt Dinniman. Invincible Compendium Book 3. Children of Dune - Frank Herbert.
Games.
Browser games I've built. Click any to play.
Coding.
I want to provide a resource detailing resources to learn how to code. If you are starting with no experience, start with basic programming concepts. If you are unsure on which language to start with, I recommend Python.
Basics.
There are many differences between programming languages, but all of them utilize most or all of these concepts to varying degrees.
Variables & Data Types
Storing information is key to creating programs. This allows you to save data, perform operations on it, and transfer it to other parts of your code.
The types of variables available and how they are used vary throughout languages but generally there are a few consistent types.
Integers: Whole numbers
(positive/negative). Often shortened as int.
Strings: A collection of symbols/characters. Stores words or phrases.
Floats: Decimal number. Often have different types based on the number of digits after the .
Character: A single character. Some languages
just count it as a string. Often shortened to Char.
Boolean: A true or false value. Often shortened to bool.
Control Flow
Control flow determines what code runs and when. Without it your program would run top to bottom and always do the same thing. The core tool is the conditional statement.
If: Runs a block of code if a condition is true.
Else: Runs if the condition is false.
Else If: Checks another condition if the previous one was false. You can chain as many as needed.
Conditions use comparison operators: == (equal), != (not equal), >, <, >=, <=. Combine them with && (and), || (or), ! (not).
Loops
Loops repeat a block of code multiple times without writing it out repeatedly. There are two main types found across most languages.
For Loop: Repeats a set number of times. Used when you know how many iterations you need, such as going through every item in a list.
While Loop: Runs as long as a condition is true. Used when you don't know how many iterations you need, such as waiting for user input. Be careful — if the condition never becomes false you'll create an infinite loop that freezes your program. For example, if I write a while loop that will continue looping until x > 10 and x never changes, the program will continue running until it crashes.
Functions
A function is a reusable block of code that performs a specific task. You can define it once and call it whenever you need it instead of writing the same logic repeatedly.
Parameters: Inputs passed into a function that change how it behaves.
Return: A value sent back to wherever the function was called from. Functions that don't return anything just perform an action.
Good functions do one thing, do it well, and have a clear name describing what that thing is. For example, I can have an "add" function that takes into two numbers as parameters and returns their sum.
Arrays & Collections
Arrays and collections store multiple values in a single variable. Items are accessed by position, called an index. Most languages index from 0, so the first item is at index 0.
Arrays: Fixed-size ordered lists. Size is set when created and cannot change. These are useful when you know the exact amount of items in advance.
Lists: Work like arrays but can grow and shrink as you add or remove items. These often have downsides compared to Arrays such as being slower and should generally only be used if necessary.
Dictionaries: Store key-value pairs instead of indexed items. These are unordered. You look up a key to get its associated value, similar to a real dictionary. For example, I can search the dictionary for "Hello" (key) and it would return whatever value is stored under "hello" such as the definition of the word (value).
Object-Oriented Programming
Object-Oriented Programming (OOP) structures code around objects — bundles of related data and behaviour. Most modern languages support it, and some explicitly require it.
Class: A blueprint defining what an object looks like and what it can do.
Object: A specific instance created from a class. A Dog class defines that all dogs have a name and can bark — each individual dog you create is an object.
Creating classes allows you to separate your code effectively. This is very important because it can cause issues if your code is linked in a single program
Variable Scope
Variables are generally defined to the place where they were created. Variables that were created inside of a function or loop can usually not be accessed outside of these locations. The place where a variable can be used is called its scope. A variable that is usable anywhere in the program has global scope. Many languages have ways to define global variables, but these are generally frowned upon and considered bad practice to use. This is because the entire program being able to change a value makes tracking bugs extremely difficult. This problem compounds as programs get bigger, so I recommend making sure you build habits of not using it as soon as possible.
Python.
Python resources and guides for beginners and intermediates.
Getting Started
Python is designed to be readable. It uses indentation (spaces or tabs) to define blocks of code instead of curly braces, and doesn't require semicolons at the end of lines. Variables don't need a type declaration — Python figures it out automatically.
Variables: Assign with =. No keyword needed.
# Variables
name = "Ephram"
age = 21
height = 5.11
is_student = TrueFunctions: Defined with the def keyword. Indented body, colon after the signature.
def greet(name):
return "Hello, " + name
print(greet("Ephram")) # Hello, EphramControl Flow: No parentheses required around conditions. Colon ends the condition line.
score = 75
if score >= 90:
print("A")
elif score >= 70:
print("B")
else:
print("C or below")Loops: for loops iterate over a sequence. range(n) generates numbers from 0 to n-1.
# For loop
for i in range(5):
print(i) # 0 1 2 3 4
# While loop
count = 0
while count < 3:
print(count)
count += 1Data Types & Variables
Content coming soon.
Control Flow
Content coming soon.
Functions
Content coming soon.
Lists, Tuples & Dictionaries
Content coming soon.
Classes & OOP
Content coming soon.
Libraries & Packages
Content coming soon.
Java.
Java programming resources covering core concepts and OOP.
Getting Started
Java is strongly typed and verbose — every variable must have a declared type, every statement ends with a semicolon, and all code lives inside a class. It's more strict than Python but that strictness makes errors easier to catch early.
Variables: Type must be declared before the name.
// Variables
String name = "Ephram";
int age = 21;
double height = 5.11;
boolean isStudent = true;Functions: Called methods in Java. Must declare a return type — use void if nothing is returned.
public String greet(String name) {
return "Hello, " + name;
}
System.out.println(greet("Ephram")); // Hello, EphramControl Flow: Condition must be in parentheses. Curly braces define the block.
int score = 75;
if (score >= 90) {
System.out.println("A");
} else if (score >= 70) {
System.out.println("B");
} else {
System.out.println("C or below");
}Loops: for loops declare a counter variable, a condition, and an increment all in one line.
// For loop
for (int i = 0; i < 5; i++) {
System.out.println(i); // 0 1 2 3 4
}
// While loop
int count = 0;
while (count < 3) {
System.out.println(count);
count++;
}Data Types & Variables
Content coming soon.
Control Flow
Content coming soon.
Methods
Content coming soon.
Arrays & ArrayLists
Content coming soon.
Classes & Objects
Content coming soon.
Inheritance & Interfaces
Content coming soon.
JavaScript.
JavaScript for web development, scripting, and beyond.
Getting Started
JavaScript runs in the browser and is the primary language of the web. It's loosely typed — variables can hold any type and change type freely. Use let for variables that change and const for ones that don't. Avoid var; it has scoping quirks that cause bugs.
Variables:
// Variables
const name = "Ephram";
let age = 21;
let height = 5.11;
const isStudent = true;Functions: Two common ways to define them — traditional and arrow functions. Arrow functions are shorter and more common in modern JavaScript.
// Traditional
function greet(name) {
return "Hello, " + name;
}
// Arrow function
const greet = (name) => "Hello, " + name;
console.log(greet("Ephram")); // Hello, EphramControl Flow: Same syntax as Java — parentheses around condition, curly braces for the block.
let score = 75;
if (score >= 90) {
console.log("A");
} else if (score >= 70) {
console.log("B");
} else {
console.log("C or below");
}Loops:
// For loop
for (let i = 0; i < 5; i++) {
console.log(i); // 0 1 2 3 4
}
// While loop
let count = 0;
while (count < 3) {
console.log(count);
count++;
}Variables & Data Types
Content coming soon.
Control Flow
Content coming soon.
Functions & Arrow Functions
Content coming soon.
Arrays & Objects
Content coming soon.
DOM Manipulation
Content coming soon.
Async & Promises
Content coming soon.
C#.
C# programming for applications, games, and more.
Getting Started
C# is strongly typed like Java but with cleaner syntax. It's the primary language for Unity so if you're here for game development this is where to focus. Every variable needs a declared type, every statement ends with a semicolon, and all code lives inside a class.
Variables:
// Variables
string name = "Ephram";
int age = 21;
float height = 5.11f; // f suffix marks it as a float
bool isStudent = true;Functions: Called methods in C#. Must declare a return type — use void if nothing is returned. Access modifiers (public, private) control visibility.
public string Greet(string name) {
return "Hello, " + name;
}
Debug.Log(Greet("Ephram")); // Hello, EphramControl Flow: Same syntax as Java — parentheses around condition, curly braces for the block.
int score = 75;
if (score >= 90) {
Debug.Log("A");
} else if (score >= 70) {
Debug.Log("B");
} else {
Debug.Log("C or below");
}Loops:
// For loop
for (int i = 0; i < 5; i++) {
Debug.Log(i); // 0 1 2 3 4
}
// While loop
int count = 0;
while (count < 3) {
Debug.Log(count);
count++;
}Data Types & Variables
Content coming soon.
Control Flow
Content coming soon.
Methods
Content coming soon.
Arrays & Lists
Content coming soon.
Classes & OOP
Content coming soon.
Unity Integration
Content coming soon.
Ephram
Grant.
ephram.grant@icloud.com · Fort Mill, South Carolina