I’m comfortable with Python and TypeScript and have also been exploring C, Rust, and Go. I’d like to build a calculator with algebra, calculus, trigonometry, and graphing, and later try a shell or compiler. Should I pick a language for those projects, or focus on a particular concept first?
What should I learn after Python and TypeScript?
Answers
For the calculator, I wouldn’t choose a language based on how impressive or unusual it is. Pick the one that makes it easiest to finish a small version. Python has plenty of useful libraries for symbolic math and plotting, while TypeScript can make an interactive graphing interface straightforward.
Start with a basic expression parser and evaluate arithmetic, then add variables and functions. You’ll learn the relevant parsing ideas as you go, without taking on a huge project before you have something working.
Reply to this answer
If your goal is to understand parsers, try writing a lexer and parser yourself in a language you already know. A calculator is a good scale for that. You don’t need a new language just to learn those ideas.
Once it works, a second implementation in a language with a different type system can be a useful exercise. Haskell could be interesting for representing expressions and transformations, but it’s a choice for exploring functional programming, not a requirement for building the calculator.
Reply to this answer
For a compiler or shell, the language matters less than learning the pieces: tokenization, parsing, evaluation, and error handling. A calculator gives you a manageable way to practice several of them. Keep the first version limited to arithmetic and parentheses, then expand it only when that works.
For career development, I’d also weigh what kind of work you want to do. A language can be valuable in one area and irrelevant in another, so a finished project and solid fundamentals may serve you better than collecting another language.
Reply to this answer
Go with whichever option keeps you curious enough to finish. If the math and visual side is the part you’re excited about, make a graphing calculator with a basic interface. If parsing is the draw, keep the interface plain and spend your effort on the parser.
You already have enough languages to get started. A small, complete project will tell you more about what you want to learn next than another round of choosing languages in the abstract.
Reply to this answer
Add your answer
Answers are reviewed before publication.
Lenny:
That makes sense. I’ll try to get a small version working before deciding whether I want the extra challenge of Haskell.