{"id":318,"date":"2023-08-17T03:47:48","date_gmt":"2023-08-17T07:47:48","guid":{"rendered":"https:\/\/www.tiingo.com\/blog\/?p=318"},"modified":"2026-07-23T14:22:59","modified_gmt":"2026-07-23T18:22:59","slug":"programming-for-finance","status":"publish","type":"post","link":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/","title":{"rendered":"Programming for Finance: Your Questions Answered"},"content":{"rendered":"<p>Programming for finance is the craft of using code to answer market questions &#8211; pulling prices, testing ideas, building models, automating the boring parts. It&#8217;s also where Tiingo has lived since 2014, when we set out to make high-end financial data accessible to everyone, not just the institutions with the biggest budgets. I&#8217;m a data nut, so consider this piece a labor of love.<\/p>\n<p>Analysts, quants, and hobbyist investors picked up programming for a simple reason: it multiplies what one person can do. A task that takes an afternoon of copy-pasting in a spreadsheet becomes a script that runs in seconds, every day, without complaint. And once your data lives in code, the entire world of statistics, machine learning, and automation opens up to you.<\/p>\n<p>So what does programming for finance actually involve, and which languages should you learn? We&#8217;ll start with a plain-English overview of programming languages, spend some time on object-oriented programming (it maps beautifully onto finance), then walk through the languages you&#8217;ll actually encounter and answer the questions we hear most.<\/p>\n<p>Let&#8217;s get into it.<\/p>\n<h2>An Introduction to Programming Languages<\/h2>\n<p>A programming language is a way of writing instructions a computer can execute. Computers don&#8217;t respond to requests like &#8220;build me a dashboard&#8221; or &#8220;analyze the <a href=\"https:\/\/www.tiingo.com\/documentation\/end-of-day\">end-of-day stock prices<\/a> for ACME Corp.&#8221; They need exact, step-by-step instructions, and a programming language is the notation we use to write them.<\/p>\n<p>Yes, modern AI tools can draft code from a plain-English prompt now, and they&#8217;re genuinely useful. But someone still has to read that code, run it, and decide whether to trust the result. The precise instructions haven&#8217;t gone away &#8211; you just have help writing them. If anything, that makes understanding the fundamentals more valuable, not less.<\/p>\n<p>Once written, your instructions get translated into the machine code your processor actually runs. Some languages, like C++, are compiled ahead of time into fast machine code. Others, like Python, are run by an interpreter that executes your code as it goes. You could in theory write machine code directly, but it&#8217;s miserable work (which is exactly why programming languages were invented).<\/p>\n<p>You may have heard the terms &#8220;high-level&#8221; and &#8220;low-level.&#8221; They describe how far a language sits from the raw hardware. A low-level language gives you fine control over memory and the processor; a high-level language like Python handles those details for you and reads almost like English. The trade-off is real: high-level languages let you <em>build<\/em> faster, while low-level languages let programs <em>run<\/em> faster. That&#8217;s why a research notebook gets written in Python while a latency-sensitive trading engine gets written in C++.<\/p>\n<p>One last distinction: front end versus back end. Front-end code is what users see and touch &#8211; the charting dashboard, the web interface. Back-end code is everything behind the curtain &#8211; the databases, the data pipelines, the APIs serving it all up. A &#8220;full-stack&#8221; developer works across both.<\/p>\n<h3>Common Features of Programming Languages<\/h3>\n<p>Every language you&#8217;re likely to touch shares the same core ideas. Learn them once and they transfer everywhere:<\/p>\n<ul>\n<li><strong>Variables and types.<\/strong> A variable is a named piece of data &#8211; a ticker symbol, a share count, a closing price. Types describe what kind of data it holds: text, whole numbers, decimals, dates. Finance makes you care about types quickly (ask anyone who has mixed up a price column and a percentage column how their afternoon went).<\/li>\n<li><strong>Control flow.<\/strong> The if\/else statements and loops that let a program make decisions and repeat work. &#8220;For each ticker in my watchlist, if today&#8217;s volume looks unusually high, flag it&#8221; &#8211; that one sentence is a loop and a conditional.<\/li>\n<li><strong>Functions.<\/strong> Reusable, named blocks of code. Write your moving-average calculation once as a function, then call it a thousand times. Good functions are how small scripts grow into real tools without collapsing under their own weight.<\/li>\n<li><strong>Libraries.<\/strong> Code other people have written and shared so you don&#8217;t start from scratch. This is the quiet superpower of modern programming &#8211; and a responsibility, because every library you rely on becomes a dependency of your project. When a dependency changes, your code can change with it, so professionals track and pin the versions they use.<\/li>\n<li><strong>Version control.<\/strong> Tools like Git take snapshots of your project as it evolves. Break something? Roll back to the last working version and try again. Working with others? Everyone&#8217;s changes merge into one shared history. The public code-hosting services built on Git are also where much of the world&#8217;s open-source finance code lives, free to read and learn from.<\/li>\n<\/ul>\n<h3>Object-Oriented Programming (OOP) for Financial Engineering<\/h3>\n<p>Object-oriented programming deserves its own section, because finance is where it feels most natural. Let me explain.<\/p>\n<p>The idea is simple: an object bundles data and behavior together. Instead of keeping an order&#8217;s ticker, side, quantity, and limit price in four loose variables, you create an Order object that holds all four and knows how to do order-like things &#8211; validate itself, calculate its notional value, report whether it has been filled.<\/p>\n<p>Once you see it, you notice financial concepts are practically begging to be objects. An Instrument knows its identifier and how to price itself. A Portfolio holds a collection of Instruments and can report its total value by asking each holding for its price. The nouns in a finance conversation become the objects in a finance codebase, and that makes the code dramatically easier to reason about.<\/p>\n<p>This design gives you something else for free: your Portfolio code doesn&#8217;t need to know whether a holding is a stock, an ETF, or something more exotic. Each object knows how to price itself, so the portfolio simply asks. Programmers call this polymorphism &#8211; one consistent interface, many types behind it &#8211; and it&#8217;s a big part of why large financial systems stay maintainable as they grow.<\/p>\n<p>The popular languages below all support OOP. That said, don&#8217;t feel obligated to write everything this way. Plenty of excellent quant research is plain scripts and functions, and Python happily supports both styles. Use objects when the structure helps; skip them when it doesn&#8217;t.<\/p>\n<h2>Which Programming Languages Should an Aspiring Quant Know About?<\/h2>\n<p>Language wars are boring. The right tool depends on the job, so here&#8217;s the honest lay of the land &#8211; what each language actually gets used for in finance.<\/p>\n<h3>Python<\/h3>\n<p>If you learn one language for finance, learn Python. It&#8217;s the dominant language for data analysis, quant research, and machine learning in finance, and the reasons are practical: the syntax is readable, and the data ecosystem &#8211; pandas for tabular data, NumPy for fast numerical work, plus thousands of other libraries &#8211; is unmatched. When a researcher wants to test an idea, Python is the usual first choice for prototyping.<\/p>\n<p>Here&#8217;s what programming for finance looks like in practice &#8211; a complete, working Python script that pulls Apple&#8217;s daily price history from our API:<\/p>\n<pre><code>import requests\n\nurl = \"https:\/\/api.tiingo.com\/tiingo\/daily\/aapl\/prices\"\nresp = requests.get(url, params={\"token\": \"YOUR_TOKEN\"})\n\nfor day in resp.json():\n    print(day[\"date\"], day[\"close\"], day[\"adjClose\"])\n<\/code><\/pre>\n<p>Six lines, and you have real market data &#8211; each day&#8217;s date, closing price, and split- and dividend-adjusted close &#8211; flowing into a program you control. From here it&#8217;s a short walk to pandas DataFrames, charts, and backtests. If you want to go deeper, we wrote a full guide to <a href=\"https:\/\/www.tiingo.com\/blog\/python-finance\/\">using Python in finance<\/a>.<\/p>\n<h3>JavaScript<\/h3>\n<p>JavaScript is the language of the browser, and in finance that means the presentation layer: dashboards, interactive charts, and data visualization. When your research needs to be <em>seen<\/em> &#8211; by your team, your clients, or the internet &#8211; JavaScript is usually how it reaches a screen. If you&#8217;re planning to build web-based tools around market data, it belongs in your toolkit.<\/p>\n<h3>Java<\/h3>\n<p>Java is the workhorse of large enterprise systems, and banks run a lot of them. It&#8217;s robust, portable across platforms, and built for big codebases maintained by big teams, which is why you&#8217;ll find it deep inside banking systems and some trading infrastructure. The learning curve is steeper than Python&#8217;s, but if your path leads toward engineering roles inside large financial institutions, Java is well worth knowing.<\/p>\n<h3>Visual Basic for Applications<\/h3>\n<p>VBA is different from everything else on this list: it lives inside Microsoft Office rather than standing alone. But an enormous amount of finance still runs on Excel, and VBA is how you automate it. Knowing enough VBA to turn a manual workbook process into a one-click one is a quietly valuable skill on many desks (and a common gateway into programming proper).<\/p>\n<h3>Structured Query Language<\/h3>\n<p>SQL isn&#8217;t a general-purpose programming language &#8211; it does one thing, which is talk to databases. But that one thing is essential, because databases are where market data actually lives. A quick illustrative example:<\/p>\n<pre><code>SELECT ticker, AVG(close_price)\nFROM daily_prices\nWHERE trade_date BETWEEN '2025-01-01' AND '2025-12-31'\nGROUP BY ticker;\n<\/code><\/pre>\n<p>That query computes each ticker&#8217;s average closing price for 2025 from a table of daily prices &#8211; filtering, grouping, and aggregating millions of rows in one readable statement. Every data team in finance leans on SQL daily.<\/p>\n<p>Python plus SQL covers most day-to-day finance data work. The other languages all have their place, but if you&#8217;re deciding where to spend your learning hours, start there.<\/p>\n<h2>How Is Programming Used in Financial Data Analysis?<\/h2>\n<p>Financial analysis lived in spreadsheets for decades, and for plenty of tasks a spreadsheet is still the right call. Code takes over as three things grow: data size, repetition, and the need for an audit trail.<\/p>\n<p>A script or notebook handles millions of rows without breaking a sweat. It reruns tomorrow&#8217;s analysis with one command instead of an afternoon of clicking. And because the analysis <em>is<\/em> code, every step is written down &#8211; you (or a colleague, or an auditor) can read exactly how a number was produced and reproduce it. That reproducibility is worth as much as the speed.<\/p>\n<p>In practice, an analyst&#8217;s workflow often looks like this: pull data from an API or a database, clean and join it with pandas, explore it in a notebook, then promote the useful parts into scheduled scripts that run automatically. The spreadsheet didn&#8217;t die; it just stopped being the whole pipeline.<\/p>\n<h2>Is Programming Useful in Financial Modeling?<\/h2>\n<p>Very. Financial models are everywhere in this industry &#8211; volatility models feeding risk management, pricing models for derivatives, factor models for portfolio construction, valuation models in equity research. Some of that work happens in spreadsheets, and almost all of it <em>can<\/em> happen in code.<\/p>\n<p>Moving a model into code brings the whole programming toolkit with it: version control, so you know exactly which version of the model produced which numbers; automated tests, which catch mistakes before they matter; and scale, so the model runs across thousands of instruments or scenarios instead of one. If financial modeling is part of your job, programming will pull its weight.<\/p>\n<h2>FAQs About Programming for Finance<\/h2>\n<p>Some rapid-fire answers to the questions we hear most from people getting started.<\/p>\n<h3>How Can I Learn More About Programming for Finance?<\/h3>\n<p>Build something small with real data &#8211; it beats any amount of passive reading. Pick a question you genuinely care about (&#8220;how volatile has my favorite stock been this year?&#8221;), then write the twenty lines of Python that answer it. The official documentation for Python, pandas, and NumPy is free and excellent, and a huge amount of open-source finance code is public &#8211; reading other people&#8217;s code is one of the fastest ways to level up.<\/p>\n<p>This is one place where I&#8217;ll happily talk our own book: our free tier exists precisely so students and self-teachers can practice on real market data at $0. Learning programming for finance shouldn&#8217;t require a budget, and with us it doesn&#8217;t.<\/p>\n<h3>What Programming Language Is Used in Finance?<\/h3>\n<p>All of the ones above, in different corners of the industry. Python dominates research and data analysis, SQL runs the databases, Java sits inside enterprise systems, C++ handles the speed-critical work, and JavaScript puts results on screens. There is no single &#8220;language of finance.&#8221; Start with the one that matches the work you want to do &#8211; for most data-oriented roles, that&#8217;s Python.<\/p>\n<h3>Does Finance Use C++ Programming?<\/h3>\n<p>Absolutely &#8211; C++ shows up wherever latency matters most. High-frequency trading systems, exchange and matching engines, and heavy-duty pricing libraries are commonly written in C++ because it produces extremely fast programs with fine control over how the machine runs them. The trade-off is that it&#8217;s lower-level and slower to develop in than Python, so most people are better served starting elsewhere and picking up C++ if their path calls for it. If you land in a role where microseconds are money, you&#8217;ll know.<\/p>\n<h3>How Are Blockchain and Fintech Applications Being Used in Finance?<\/h3>\n<p>First, the distinction. &#8220;Fintech&#8221; is the broad term for technology applied to financial services &#8211; trading platforms, lending systems, payment apps, and yes, market data APIs like ours. Blockchain is one branch of fintech, not a synonym for it.<\/p>\n<p>A blockchain is a distributed public ledger. The original Bitcoin blockchain was designed to let parties exchange value pseudonymously, with cryptography ensuring transactions are valid without a central authority, and many blockchains and applications have been built since. Some corners of finance work with this technology daily; others never touch it. Both are normal career paths, so treat it as one area of the field rather than a prerequisite.<\/p>\n<h2>Getting Into Programming for Finance<\/h2>\n<p>Here&#8217;s the encouraging truth: getting into programming for finance has never been more accessible. The languages are free. The documentation is free. The tools are free. For a long time the missing piece was the data &#8211; clean, deep financial data was priced for institutions, not individuals.<\/p>\n<p>That&#8217;s the gap Tiingo exists to close. Our motto is &#8220;Actively Do Good,&#8221; and we&#8217;ve been living it since 2014: high-end market data, priced at cost, made accessible to all. We&#8217;ve taken no outside investors and we&#8217;ve been profitable for 8+ years &#8211; which is exactly why we can keep putting people over short-term profit.<\/p>\n<p>And the data will grow with you: 80,000+ assets spanning US equities, ETFs, mutual funds, and Chinese A-shares, end-of-day history back to 1962, real-time prices via IEX, crypto from 150+ exchanges, forex on 140+ pairs, 70M+ news articles, and 20+ years of fundamentals &#8211; split- and dividend-adjusted, all through one documented REST API you can call from any language in this article. The free Starter plan is $0 for up to 500 symbols a month (50 requests\/hour, 1,000\/day), and the Power plan is $30\/month when you outgrow it.<\/p>\n<p>Pick a language (Python), pick a question, and write your first twenty lines against real data this week. When you&#8217;re ready, <a href=\"https:\/\/www.tiingo.com\/products\/stock-api\">check out our stock API<\/a> or start exploring at <a href=\"https:\/\/www.tiingo.com\/\">tiingo.com<\/a>. We&#8217;d love to see what you build.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programming for finance is the craft of using code to answer market questions &#8211; pulling prices, testing ideas, building models, automating the boring parts. It&#8217;s also where Tiingo has lived since 2014, when we set out to make high-end financial data accessible to everyone, not just the institutions with the biggest budgets. I&#8217;m a data [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":732,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"osom_blocks_metabox":"","inline_featured_image":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-318","post","type-post","status-publish","format-standard","has-post-thumbnail","category-engineering","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.2 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Programming for Finance: Your Questions Answered<\/title>\n<meta name=\"description\" content=\"Use this guide to better understand programming for finance \u2014 the features of programming languages, how they\u2019re used, &amp; which ones to know.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programming for Finance: Your Questions Answered\" \/>\n<meta property=\"og:description\" content=\"Use this guide to better understand programming for finance \u2014 the features of programming languages, how they\u2019re used, &amp; which ones to know.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/\" \/>\n<meta property=\"og:site_name\" content=\"Tiingo Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/tiingofinance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-17T07:47:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-23T18:22:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rishi S.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tiingofinance\" \/>\n<meta name=\"twitter:site\" content=\"@tiingofinance\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rishi S.\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/\"},\"author\":{\"name\":\"Rishi S.\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#\\\/schema\\\/person\\\/54fc93e1626ed221a37fcfddb597c3d6\"},\"headline\":\"Programming for Finance: Your Questions Answered\",\"datePublished\":\"2023-08-17T07:47:48+00:00\",\"dateModified\":\"2026-07-23T18:22:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/\"},\"wordCount\":2465,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/h318.png\",\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/\",\"url\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/\",\"name\":\"Programming for Finance: Your Questions Answered\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/h318.png\",\"datePublished\":\"2023-08-17T07:47:48+00:00\",\"dateModified\":\"2026-07-23T18:22:59+00:00\",\"description\":\"Use this guide to better understand programming for finance \u2014 the features of programming languages, how they\u2019re used, & which ones to know.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/h318.png\",\"contentUrl\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/h318.png\",\"width\":1200,\"height\":630,\"caption\":\"Flat UML class diagram with Portfolio, Instrument and Order classes, showing objects for financial engineering\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/programming-for-finance\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programming for Finance: Your Questions Answered\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/\",\"name\":\"Tiingo API Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#organization\",\"name\":\"Tiingo.com\",\"url\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/api.tiingo.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/purple-for-light-bg.svg\",\"contentUrl\":\"https:\\\/\\\/api.tiingo.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/purple-for-light-bg.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"Tiingo.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/tiingofinance\\\/\",\"https:\\\/\\\/x.com\\\/tiingofinance\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/#\\\/schema\\\/person\\\/54fc93e1626ed221a37fcfddb597c3d6\",\"name\":\"Rishi S.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/28ae16ae1fe9df62492ab4b742241b19a6a12395109570074a7b8194c6709ec4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/28ae16ae1fe9df62492ab4b742241b19a6a12395109570074a7b8194c6709ec4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/28ae16ae1fe9df62492ab4b742241b19a6a12395109570074a7b8194c6709ec4?s=96&d=mm&r=g\",\"caption\":\"Rishi S.\"},\"description\":\"Rishi Singh is the CEO of Tiingo.com. A prior algorithmic and quant researcher, Rishi started Tiingo.com to modernize the financial data vertical by focusing on data acquisition, cleansing, aggregation, innovation, and distribution of data.\",\"sameAs\":[\"http:\\\/\\\/www.tiingo.com\"],\"url\":\"https:\\\/\\\/www.tiingo.com\\\/blog\\\/author\\\/rishi-s\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Programming for Finance: Your Questions Answered","description":"Use this guide to better understand programming for finance \u2014 the features of programming languages, how they\u2019re used, & which ones to know.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/","og_locale":"en_US","og_type":"article","og_title":"Programming for Finance: Your Questions Answered","og_description":"Use this guide to better understand programming for finance \u2014 the features of programming languages, how they\u2019re used, & which ones to know.","og_url":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/","og_site_name":"Tiingo Blog","article_publisher":"https:\/\/www.facebook.com\/tiingofinance\/","article_published_time":"2023-08-17T07:47:48+00:00","article_modified_time":"2026-07-23T18:22:59+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins.jpeg","type":"image\/jpeg"}],"author":"Rishi S.","twitter_card":"summary_large_image","twitter_creator":"@tiingofinance","twitter_site":"@tiingofinance","twitter_misc":{"Written by":"Rishi S.","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#article","isPartOf":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/"},"author":{"name":"Rishi S.","@id":"https:\/\/www.tiingo.com\/blog\/#\/schema\/person\/54fc93e1626ed221a37fcfddb597c3d6"},"headline":"Programming for Finance: Your Questions Answered","datePublished":"2023-08-17T07:47:48+00:00","dateModified":"2026-07-23T18:22:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/"},"wordCount":2465,"publisher":{"@id":"https:\/\/www.tiingo.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/h318.png","articleSection":["Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/","url":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/","name":"Programming for Finance: Your Questions Answered","isPartOf":{"@id":"https:\/\/www.tiingo.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#primaryimage"},"image":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/h318.png","datePublished":"2023-08-17T07:47:48+00:00","dateModified":"2026-07-23T18:22:59+00:00","description":"Use this guide to better understand programming for finance \u2014 the features of programming languages, how they\u2019re used, & which ones to know.","breadcrumb":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tiingo.com\/blog\/programming-for-finance\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#primaryimage","url":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/h318.png","contentUrl":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/h318.png","width":1200,"height":630,"caption":"Flat UML class diagram with Portfolio, Instrument and Order classes, showing objects for financial engineering"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.tiingo.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Programming for Finance: Your Questions Answered"}]},{"@type":"WebSite","@id":"https:\/\/www.tiingo.com\/blog\/#website","url":"https:\/\/www.tiingo.com\/blog\/","name":"Tiingo API Blog","description":"","publisher":{"@id":"https:\/\/www.tiingo.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tiingo.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.tiingo.com\/blog\/#organization","name":"Tiingo.com","url":"https:\/\/www.tiingo.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tiingo.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/api.tiingo.com\/blog\/wp-content\/uploads\/2023\/05\/purple-for-light-bg.svg","contentUrl":"https:\/\/api.tiingo.com\/blog\/wp-content\/uploads\/2023\/05\/purple-for-light-bg.svg","width":"1024","height":"1024","caption":"Tiingo.com"},"image":{"@id":"https:\/\/www.tiingo.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/tiingofinance\/","https:\/\/x.com\/tiingofinance"]},{"@type":"Person","@id":"https:\/\/www.tiingo.com\/blog\/#\/schema\/person\/54fc93e1626ed221a37fcfddb597c3d6","name":"Rishi S.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/28ae16ae1fe9df62492ab4b742241b19a6a12395109570074a7b8194c6709ec4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/28ae16ae1fe9df62492ab4b742241b19a6a12395109570074a7b8194c6709ec4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/28ae16ae1fe9df62492ab4b742241b19a6a12395109570074a7b8194c6709ec4?s=96&d=mm&r=g","caption":"Rishi S."},"description":"Rishi Singh is the CEO of Tiingo.com. A prior algorithmic and quant researcher, Rishi started Tiingo.com to modernize the financial data vertical by focusing on data acquisition, cleansing, aggregation, innovation, and distribution of data.","sameAs":["http:\/\/www.tiingo.com"],"url":"https:\/\/www.tiingo.com\/blog\/author\/rishi-s\/"}]}},"featured_image_src":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/h318-600x400.png","featured_image_src_square":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/h318-600x600.png","author_info":{"display_name":"Rishi S.","author_link":"https:\/\/www.tiingo.com\/blog\/author\/rishi-s\/"},"_links":{"self":[{"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/posts\/318","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/comments?post=318"}],"version-history":[{"count":5,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/posts\/318\/revisions"}],"predecessor-version":[{"id":728,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/posts\/318\/revisions\/728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/media\/732"}],"wp:attachment":[{"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/media?parent=318"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/categories?post=318"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/tags?post=318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}