Boris Cherny: TI-83 Plus Basic Programming Tutorial (2004)

ticalc.org

173 points by suoken 3 days ago


arian_ - an hour ago

The TI-83 taught an entire generation that programming was possible on hardware you already owned. No IDE, no internet, no Stack Overflow. Just you, 8 lines of visible code, and a 96x64 pixel screen. Everything since then has been more powerful and less magical.

z_open - 12 hours ago

It's funny how many software developers got into it due to being bored in class with a TI-83 and randomly trying to create programs.

sebmellen - 10 minutes ago

He started undergrad in 2009.. how old was he when writing this? 12-13??

vvoyer - 10 hours ago

For anyone wondering, Boris Cherny created Claude Code.

sshine - 10 hours ago

I received the TI-83+ manual on the first day of high school and read it back-to-back that same day.

Subsequent math classes, I started by writing a BASIC problem to solve the type of math problem we were given.

I can't decide if I got really good at solving those math problems by solving them generally once, or really bad at solving those math problems for never having solved them more than once or twice by hand while writing the program.

Those programs were very inefficient, and you could code the TI-83+ in assembly, but it required uploading the code via cable. I recall being able to play small internet-downloadable network games with two TI-83+ connected. I never got around to writing any games myself.

harmoni-pet - 5 hours ago

Would be crazy if the Ilya S he thanks in the first page was Ilya Sutskever

Dwedit - 8 hours ago

The Basic was SO BAD that I had to learn Z80 assembly to make anything good. Really.

No sane Basic should leak stack memory just because you exited an "If-Then" block without reaching the corresponding "End". Yes that's a thing. If you use "If-Then" and the code never reaches the "End" because you used "Goto" to leave the block, a few bytes are leaked every time that happens, and eventually the program stops with "ERR: Memory". You needed to use "If" then "Goto" on the immediate next line, and that would avoid the leak. Exiting the program or stopping it will give you back all the leaked memory, including seeing that error.

Then you have the lack of actual subroutines or functions. All you can do is call into a separate program, and return things by putting them in specific variables. But the Basic doesn't even have "Gosub".

Also, it's very very slow.

kyleperik - 6 hours ago

Lots of stories about being bored in class and making programs, so I thought I'd share mine.

The functions feature allow you to define and graph equations with x and y. Well other variables also factor in including program defined variables such as z. That enables 3d orthographic graphs to be drawn.

Then I took it a step further and translated the results into a matrix and used that data to make real 3d projections of my graphs (or other shapes)

A bit serendipitous as my father just gave me back the calculator I used, I will be passing that down to my kids.

ruraljuror - 25 minutes ago

He talks about TI-83 programming in the Pragmatic Engineer Podcast interview.

dubbel - 12 hours ago

That brings back memories...

In 2008 I was in high school and wrote a TI-BASIC tutorial in German [0] on my blog that became by far the most popular thing I wrote - maybe on par with my post about how to fix a quest bug in Skyrim by teleporting Delphine.

I was a bit mad back then that people for some reason appreciated those posts more than many very deep teenager ramblings about politics/philosophy :D

[0]: https://archive.haukeluebbers.de/2008/12/ti-basic-tutorial-1...

coreyh14444 - 12 hours ago

I hope / don't hope to be famous enough one day that people start looking through my blog and forum posts from when I was a teenager. :|

loehnsberg - 10 hours ago

Do you think Boris can still be reached under pickledcherry668@yahoo.com ?

jackdoe - 8 hours ago

"His ugliness was the stuff of legend. In an age of affordable beauty, there was something heraldic about his lack of it."

-- William Gibson, Neuromancer

I just love opening a page, and it is not vomited with claude's aesthetics.

swazzy - 12 hours ago

From https://youtu.be/SlGRN8jh2RI?si=osz3-ssDO7dnvKD-&t=103

sneilan1 - 2 hours ago

I did not realize Boris made the tutorial that got me into programming. Wow. What a great find! And is the Ilya S Ilya Sutskever?

pama - 12 hours ago

Ilya S?

sp1nningaway - 2 hours ago

This made me wonder about Boris Cherny's professional career pre-Claude Code, so I did a customary "Boris Cherny wiki" Google. I'm shocked to learn he doesn't have a Wikipedia page! Is this my Hacker News bias? He's a ubiquitous online topic and has had an outsized impact on the world over the last year, but maybe I don't understand Wikipedia's criteria for biographical articles. I have a conspiratorial suspicion that Wikipedia has a (well-earned) anti-LLM bias so AI topics are unrepresented there.

- 9 hours ago
[deleted]
dan_sbl - 9 hours ago

Wow, did not know this site was still online. I apparently have a user ID in the 200s, was an early sign up to the site. https://www.ticalc.org/community/directory/

dack - 6 hours ago

this was definitely me in high school. i still fondly remember the day when we could use our Ti-83+ for our exam but we had to show the teacher that we cleared memory for notes and formulas.

So i wrote a program that just made it look like I cleared memory and it worked like a charm.

I don't remember if I even stored anything that could be constituted cheating but it was more about the satisfaction of knowing I outsmarted them, heh.

zoba - 10 hours ago

I used Claude Code to update a ray casting engine for the TI-89 a couple months ago. Thanks Boris!

https://github.com/dzoba/ti-89-raycasting-with-z

chollida1 - 9 hours ago

Is there something similar for the HP 48G calculators that anyone knows of?

sanex - 9 hours ago

I love seeing everyone share their stories if learning on a TI-8x.

My school recommended the 83+ but I ended up with an 85, probably because it was on sale or something. This meant I couldn't share games that all the kids had in their 83 so I got my start by copying them by hand and trying to figure out the syntax differences by guessing. After one of those I was able to start making my cheater programs and aced geometry because of it.

t0mek - 8 hours ago

I like the "challenges" part at the end, especially the varying difficulty levels:

* A quadratic formula program, which outputs the number of roots and the x-intercepts upon the user inputting the values of A, B, and C.

* A fighting game, with health, a store, different enemies, weapons, armor, etc, with graphics and animation.

- 8 hours ago
[deleted]
submeta - 12 hours ago

There‘s HP calculator guys and TI guys. Around the age of 17 I spent lots of time programming my HP28s calculator in a Forth like language that had symbolic mathematics, lots of ideas from Scheme (closures, functions as first class arguments, recursion). It felt like magic dealing with concepts I hadn’t seen in the C compiler on my Amiga or later in Turbo Pascal. But I saw these concepts later in Mathematica and was familiar.

I had programmed games, complex 3d visualisations (super slow but oh well), and was totally fascinated by what this device could do.

yinksta - 9 hours ago

I got a TI83 in 4th grade and I realized programming is how you made video games and I decided "ok I'm going to learn to program"

I read the whole manual's programming section but couldn't make heads or tails of it. It assumed you knew basic logic/programming and mostly explained functionality/syntax.

Then in 5th grade my friend who was 3 years older was like "hey look I made a story in my calculator" and it was this big choose your own adventure story. He showed me how to use goto, how to display text, and a function for multiple choice user input + goto. I was in business!

I wrote my own story but had a section where I wanted to do different things if you had gotten an item already so I had to program the whole story twice and only enter the second version from the option where you get the item. I tried writing a more complicated story with more items but the duplication was insane 3 items required 3!=6 copies of common locations. I was like "this is dumb there's got to be a better way" and I looked at the manual again and now I had enough of a framework to understand "OH a variable is whether you have the red key, why didn't they just put that?"

jvillasante - 9 hours ago

For those souls loosing their skills to the easiest to adopt technology ever created... agentic development works for him because he KNOWS what he is doing in the first place!

beastman82 - 8 hours ago

he and I share the same favorite programming book and until now I didn't know anyone else in this boat:

Functional Programming in Scala

kh2engab - 10 hours ago

I would be more interested, how I can disable the auto-power-off on my TI-86 (ROM v1.3 emulated with virtual Ti)

Miles_Stone - 7 hours ago

This is a really interesting direction. Thanks for sharing!

msk-lywenn - 12 hours ago

The original manual for the TI83+ is what actually got me into programming. It was pretty nice.

keeganpoppen - 5 hours ago

this is what got me into programming, before i even knew i was a programmer

itrunsdoomguy - 5 hours ago

Does it run Doom?

quxbar - 8 hours ago

Ah yes, my first love. I remember creating a quiz game based on greek mythology, and a little RPG where I realized the power of exponential functions by wrecking my power curve.

MengerSponge - 4 hours ago

My "bored in class" story: In addition to plenty of stickman fighting animations, I wrote a full "Geometry" helper program which solved arbitrary triangles, did the quadratic equation (including imaginary roots), and maybe one or two other things that I don't remember.

We could have a quadratic equation solver on tests, but not the other functions. I put a splash screen that said my name and "Quadratic Equation Solver" which prompted a, b, and c if you pressed ENTER. If you pressed the right button on that splash screen (sin, naturally) it would unlock the full menu.