{"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":"2023-08-17T07:09:27","modified_gmt":"2023-08-17T11:09:27","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":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-1024x683.jpeg\" alt=\"Programming for finance: close up shot of stacked coins\" class=\"wp-image-319\" srcset=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-1024x683.jpeg 1024w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-300x200.jpeg 300w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-768x512.jpeg 768w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-600x400.jpeg 600w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins.jpeg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/stock.adobe.com\/images\/double-exposure-of-city-and-rows-of-coins-for-finance-and-banking-concept\/117784175?prev_url=detail\"><\/a>Finance has always been an industry that stays up-to-date on the latest advances, from deep learning and quantum computing to the blockchain and beyond. This is why programming for finance has come to be so crucial.&nbsp;<\/p>\n\n\n\n<p>Financial analysts and finance professionals long ago started adopting programming as an important part of their toolkit, as this affords many opportunities to reduce work, automate important procedures, and seek out an edge.<\/p>\n\n\n\n<p>But what is programming for finance, and how does it work? Today, this will be our focus. We\u2019ll start with a broad overview of programming languages before turning to a more detailed discussion of which languages you should consider learning.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-an-introduction-to-programming-languages\"><strong>An Introduction to Programming Languages<\/strong><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/hologram-of-programming-languages-1024x683.jpeg\" alt=\"Programming for finance: hologram of programming languages\" class=\"wp-image-322\" srcset=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/hologram-of-programming-languages-1024x683.jpeg 1024w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/hologram-of-programming-languages-300x200.jpeg 300w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/hologram-of-programming-languages-768x512.jpeg 768w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/hologram-of-programming-languages-600x400.jpeg 600w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/hologram-of-programming-languages.jpeg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/stock.adobe.com\/images\/programming-language-and-development-of-applications-concept-on-yellow-blue-background-training-courses-of-php-sql-html-css-and-other-disciplines\/292525912?prev_url=detail\"><\/a>Programming skills are more and more in demand in financial institutions, financial services companies, and the banking industry. Before we get into specifics, let\u2019s first talk a little bit about what programming languages are and why they matter.<\/p>\n\n\n\n<p>A programming language is essentially a textual interface for sending instructions to a computer. Computers don\u2019t understand natural-language commands like \u201cbuild an app\u201d or \u201canalyze the <a href=\"https:\/\/www.tiingo.com\/products\/end-of-day-stock-price-data\">end-of-day stock prices<\/a> for ACME Corp.\u201d Instead, they must be given a step-by-step sequence of actions to take in order to accomplish a particular goal.<\/p>\n\n\n\n<p>While it is perhaps true that the rise of large language models like ChatGPT has called the accuracy of this claim into question, it remains broadly true for most of the work that quants and financial analysts do.<\/p>\n\n\n\n<p>Once you\u2019ve written your sequence of actions in a programming language, like Python or Java, a compiler will break it down into machine language, i.e., \u201c1\u201ds and \u201c0\u201ds. While it <em>is<\/em> technically possible to program directly in this language, it\u2019s exceedingly difficult, which is why computer scientists built programming languages in the first place.<\/p>\n\n\n\n<p>You may have encountered the distinction between \u201chigh-level\u201d and \u201clow-level\u201d programming languages, and this refers to how far away from machine language it is. Assembly, for example, is so low level that it hovers almost directly over the actual silicon chips that form a computer\u2019s brain, while a language like Python is so high level that it can <em>almost<\/em> be read like English.<\/p>\n\n\n\n<p>There are many differences between high-level and low-level programming languages. High-level languages tend to have a much simpler syntax, for example, and automatically handle tasks like memory management and garbage collection that low-level languages leave to developers.<\/p>\n\n\n\n<p>Naturally, there are trade-offs involved. A high-level language might be very hard to optimize for high-frequency trading applications, while a low-level language might involve so few simplifying abstractions that the codebase is exceedingly difficult to maintain.<\/p>\n\n\n\n<p>It\u2019s also worth covering the difference between \u201cfront-end\u201d and \u201cback-end\u201d development. As its name implies, the front-end work goes out front and will consist of things like a program\u2019s web interface or the dashboard it offers to computational finance experts for making charts.&nbsp;<\/p>\n\n\n\n<p>Similarly, back-end development tends to be hidden away from end users. It concerns how data structures are managed and updated, how they\u2019re stored in databases, how an application\u2019s API is defined and served up, etc.<\/p>\n\n\n\n<p>A full-stack engineer is generally someone who knows how to work across both front-end and back-end technology stacks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-common-features-of-programming-languages\"><strong>Common Features of <\/strong><strong>Programming Languages<\/strong><\/h3>\n\n\n\n<p>Let\u2019s talk a little about some general properties of modern programming languages that are worth understanding regardless of which language you use.<\/p>\n\n\n\n<p>First, you\u2019ll generally be doing your development inside of a \u201cframework,\u201d which is basically an interface that makes it easier to write code. You could write your code in a simple text editor, but good frameworks offer things like syntax highlighting, various security features, and debugging tools, which make the job much easier.<\/p>\n\n\n\n<p>Second, there are more abstract \u201c<a href=\"https:\/\/sourcemaking.com\/design_patterns\" target=\"_blank\" rel=\"noreferrer noopener\">design patterns<\/a>,\u201d which are common ways of accomplishing tasks that embody best practices, make code easier to maintain, increase portability, etc.<\/p>\n\n\n\n<p>Third, it\u2019s worth mentioning the concept of \u201cdependency.\u201d A dependency is exactly what it sounds like \u2014 it\u2019s when one application or piece of code requires another to run. Suppose a data scientist does some simple data processing in Pandas as part of a project. Pandas has now become a dependency, which means that if there are major changes to Pandas down the line, it could introduce problems. All of this belongs to a subfield known as \u201c<a href=\"https:\/\/www.planview.com\/resources\/guide\/what-is-agile-program-management\/agile-teams-dependency-management-visualization\/\" target=\"_blank\" rel=\"noreferrer noopener\">dependency management<\/a>,\u201d and though it\u2019s beyond the scope of this piece, it\u2019s a term you should know.<\/p>\n\n\n\n<p>Finally, to cap off this section, we want to briefly mention Github. Github is a version-control system that is extremely popular for software development and software engineering. Essentially, it allows you to save your project at a particular stage of development. If you build a natural-language processing algorithm that works on <a href=\"https:\/\/www.tiingo.com\/products\/news-api\">financial news<\/a> and then somehow break it, you can roll back to the last working version and try again. You can also share your progress with other developers, who can \u201cfork\u201d your project and introduce their own upgrades.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-object-oriented-programming-oop-for-financial-engineering\"><strong>Object-Oriented Programming<\/strong><strong> (OOP) for Financial Engineering<\/strong><\/h3>\n\n\n\n<p>The final topic we\u2019ll cover is object-oriented programming, and it\u2019s important enough to get its own section.<\/p>\n\n\n\n<p>As you\u2019re wrapping your head around software engineering, there are lots of ways to categorize programming languages \u2014 how <a href=\"https:\/\/www.smashingmagazine.com\/2013\/04\/introduction-to-programming-type-systems\/\" target=\"_blank\" rel=\"noreferrer noopener\">they handle data types<\/a>, for instance. But whether they\u2019re object-oriented or not is one of the most important. In the next section we\u2019re going to talk about Python, Javascript, Java, C++, and Visual Basic for Applications (VBA), and every single one of them is an object-oriented programming language.<\/p>\n\n\n\n<p>In fact, I\u2019d go further and say that as you explore software development in the finance industry, there is little chance you\u2019ll see anything other than an object-oriented programming language (unless you happen to wander into a legacy codebase written in old-school Cobol).<\/p>\n\n\n\n<p>In essence, object-oriented programming is built around objects (as opposed to functions or procedures). In Python, for example, everything from strings to arrays is an object, meaning that they are tagged with useful metadata and have methods you can use to manipulate them.<\/p>\n\n\n\n<p>There are a number of advantages to this philosophy. <a href=\"https:\/\/www.sumologic.com\/glossary\/polymorphism\/\" target=\"_blank\" rel=\"noreferrer noopener\">OOP enables polymorphism<\/a>, for example, which refers to the ability of certain languages to have functions that can accept and operate on different data types at different points in their runtime. This may sound awfully fancy, but the basic point is that users will see a consistent interface even as the data they\u2019re interacting with changes, reducing the cognitive load required for them to understand what\u2019s going on.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-which-programming-languages-should-an-aspiring-quant-know-about\"><strong>Which Programming Languages Should an Aspiring Quant Know About?<\/strong><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" src=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/different-formulas-and-a-person-in-handcuffs-1024x583.jpeg\" alt=\"Different formulas and a person in handcuffs\" class=\"wp-image-321\" srcset=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/different-formulas-and-a-person-in-handcuffs-1024x583.jpeg 1024w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/different-formulas-and-a-person-in-handcuffs-300x171.jpeg 300w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/different-formulas-and-a-person-in-handcuffs-768x437.jpeg 768w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/different-formulas-and-a-person-in-handcuffs.jpeg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/stock.adobe.com\/images\/quantitative-analyst-is-drawing-different-math-formulas-on-the-glass-screen-generative-ai\/598703412?prev_url=detail\"><\/a>Now that we have covered the fundamentals, let\u2019s discuss the handful of popular programming languages that are most often used in places like investment banks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-python\"><strong>Python<\/strong><\/h3>\n\n\n\n<p>The big one you should be aware of is Python. Python is a general-purpose open-source programming language useful for everything from basic scripting work to advanced artificial intelligence applications. Its basic syntax, ease of use, and thriving ecosystem make it an ideal tool for a wide variety of programming tasks, <a href=\"https:\/\/www.tiingo.com\/blog\/python-finance\/\">including finance<\/a>.<\/p>\n\n\n\n<p>We should dwell for a moment on the Python ecosystem because it\u2019s important. There are many situations in which you\u2019ll need to write bespoke code to get a particular job done, but it\u2019s often possible to use a library someone else has written in order to ship faster. Just about every language has external libraries of this kind, but Python is simply extraordinary in the range of such libraries on offer.<\/p>\n\n\n\n<p>There are Python libraries for <a href=\"https:\/\/github.com\/topics\/derivatives-pricing\" target=\"_blank\" rel=\"noreferrer noopener\">derivatives pricing<\/a>, <a href=\"https:\/\/pypi.org\/project\/option-price\/\" target=\"_blank\" rel=\"noreferrer noopener\">options pricing<\/a>, and thousands of other things. You will often need to evaluate these libraries to make sure they\u2019re high-quality enough for your situation, but that\u2019s almost always going to take less time than writing them from scratch yourself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-javascript\"><strong>Javascript<\/strong><\/h3>\n\n\n\n<p>Javascript is another language you should be aware of. Though it\u2019s better known as a language for front-end web development, it\u2019s general-purpose, like Python, and can therefore be used to build anything from simple <a href=\"https:\/\/www.grapecity.com\/blogs\/creating-a-financial-application-in-javascript\" target=\"_blank\" rel=\"noreferrer noopener\">visualization dashboards<\/a> to full-bore <a href=\"https:\/\/www.tiingo.com\/blog\/algorithmic-trading\/\">algorithmic trading<\/a> platforms. And, also like Python, it has an ecosystem of ancillary tools and libraries you can utilize, including ones aimed squarely at <a href=\"https:\/\/www.npmjs.com\/package\/financejs\" target=\"_blank\" rel=\"noreferrer noopener\">financial analysis<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-java\"><strong>Java<\/strong><\/h3>\n\n\n\n<p>Java is an object-oriented programming language that was <a href=\"https:\/\/u-next.com\/blogs\/java\/history-of-java\/\" target=\"_blank\" rel=\"noreferrer noopener\">introduced in the 1990s<\/a> by James Gosling. Today, it powers billions of devices, and the Java Virtual Machine on which it runs is available from many places, <a href=\"https:\/\/www.oracle.com\/java\/technologies\/downloads\/\" target=\"_blank\" rel=\"noreferrer noopener\">including Oracle<\/a>.<\/p>\n\n\n\n<p>Java programming has a steeper learning curve than either Python or Javascript, but it is nevertheless an enormously powerful tool. Java developers can write code for simple financial apps as well as more advanced use cases, like Monte Carlo methods and <a href=\"http:\/\/www.cs.emory.edu\/~cheung\/Courses\/170\/Syllabus\/07\/compute-pi.html\" target=\"_blank\" rel=\"noreferrer noopener\">Monte Carlo simulations<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-visual-basic-for-applications\"><strong>Visual Basic for Applications<\/strong><\/h3>\n\n\n\n<p><a href=\"https:\/\/www.investopedia.com\/terms\/v\/visual-basic-for-applications-vba.asp\" target=\"_blank\" rel=\"noreferrer noopener\">Visual Basic for Applications (VBA)<\/a> is developed and maintained by Microsoft. Unlike any of the other programming languages we\u2019ve discussed, VBA functions inside of Microsoft products like Excel and is not available by itself. Nevertheless, if you know how much of the financial industry runs on spreadsheets, you know it is still something that should be on your radar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-structured-query-language\"><strong>Structured Query Language<\/strong><\/h3>\n\n\n\n<p>Finally, as a bonus, we\u2019ll discuss the Structured Query Language (SQL). SQL isn\u2019t a proper programming language the way Java is, its sole function is to structure queries so as to get useful information from a database. Using commands like \u201c<mark style=\"background-color:#e8edf3;color:#168037\" class=\"has-inline-color\">SELECT<\/mark>,\u201d you can access tables, perform filtering operations, and even do rudimentary financial analysis, as in the (made-up) example below:<\/p>\n\n\n\n<p><mark style=\"background-color:#e8edf3;color:#168037\" class=\"has-inline-color\">SELECT AVG(returns)<\/mark><\/p>\n\n\n\n<p><mark style=\"background-color:#e8edf3;color:#168037\" class=\"has-inline-color\">FROM some_table_of_financial_information<\/mark><\/p>\n\n\n\n<p><mark style=\"background-color:#e8edf3;color:#168037\" class=\"has-inline-color\">WHERE year=2023<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-is-programming-used-in-financial-data-analysis\"><strong>How Is Programming Used in Financial Data Analysis?<\/strong><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/data-on-a-screen-1024x683.jpeg\" alt=\"Data on a screen\" class=\"wp-image-320\" srcset=\"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/data-on-a-screen-1024x683.jpeg 1024w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/data-on-a-screen-300x200.jpeg 300w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/data-on-a-screen-768x512.jpeg 768w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/data-on-a-screen-600x400.jpeg 600w, https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/data-on-a-screen.jpeg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/stock.adobe.com\/images\/stock-market-indicator-and-financial-data-view-from-led-double\/129733712?prev_url=detail\"><\/a>Financial analysis used to use a tool like Excel spreadsheets for this kind of work (and many still do). With the rise of data science, however, it\u2019s become more common for data analytics to be done with tools like Jupyter Notebooks and Python scripts.<\/p>\n\n\n\n<p>This has also been necessitated by the rise of big data, where there might be so much information that a spreadsheet is very slow to load or otherwise unwieldy. Modern data analysts are wont to do their data analytics with tools that are up to handling the load, <a href=\"https:\/\/www.datacamp.com\/tutorial\/pyspark-tutorial-getting-started-with-pyspark\" target=\"_blank\" rel=\"noreferrer noopener\">such as PySpark<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-is-programming-useful-in-financial-modeling\"><strong>Is Programming Useful in <\/strong><strong>Financial Modeling<\/strong><strong>?<\/strong><\/h2>\n\n\n\n<p>Hedge funds, experts in the banking industry, and quantitative finance professionals usually do their work based on financial models<em>. <\/em>It would be hard to overstate how important financial models are in finance. Volatility models factor into risk management strategies, capital asset pricing models are used in event studies, and models show up in <a href=\"https:\/\/www.investopedia.com\/terms\/f\/financialmodeling.asp\" target=\"_blank\" rel=\"noreferrer noopener\">equity analysis<\/a>, to name a few examples.<\/p>\n\n\n\n<p>Not all of this is done with a programming language, but almost all of it can<em> <\/em>be, which means you can bring in all the other tools that programming offers, from machine learning algorithms to version control to automation.<\/p>\n\n\n\n<p>It\u2019s hard for us to outright guarantee that programming will be useful if you\u2019re asked to do financial modeling work, but there\u2019s a very good chance that it will be.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-faqs-about-programming-for-finance\"><strong>FAQs About Programming for Finance<\/strong><\/h2>\n\n\n\n<p>Now that we\u2019ve made it through the dense material above, let\u2019s spend our remaining time answering some common high-level questions about programming for finance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-can-i-learn-more-about-programming-for-finance\"><strong>How Can I Learn More About Programming for Finance?<\/strong><\/h3>\n\n\n\n<p>There are many ways to learn about programming for finance. To begin with, there are thousands of articles and tutorials covering topics like <a href=\"https:\/\/www.oreilly.com\/library\/view\/machine-learning-for\/9781492085249\/ch04.html\" target=\"_blank\" rel=\"noreferrer noopener\">ARCH-based volatility modeling<\/a>. You can pick up knowledge by reading through code, such as the Java library for working with the <a href=\"https:\/\/introcs.cs.princeton.edu\/java\/22library\/BlackScholes.java.html\" target=\"_blank\" rel=\"noreferrer noopener\">Black-Scholes equation<\/a>.<\/p>\n\n\n\n<p>If books are more your speed, there are a few publishing houses that specialize in technical content. The best-known is <a href=\"https:\/\/www.oreilly.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">O\u2019Reilly Media<\/a>, but there is also <a href=\"https:\/\/www.manning.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Manning Publications<\/a>, <a href=\"https:\/\/www.packtpub.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pakt<\/a>, and others.<\/p>\n\n\n\n<p>If you\u2019re interested in being one of the finance professionals who can also call themselves programmers, you might consider attending a bootcamp. There are general-purpose bootcamps aimed at <a href=\"https:\/\/www.coursera.org\/articles\/data-science-bootcamp\" target=\"_blank\" rel=\"noreferrer noopener\">data science<\/a> and <a href=\"https:\/\/flatironschool.com\/courses\/coding-bootcamp\/\" target=\"_blank\" rel=\"noreferrer noopener\">software engineering<\/a> and at least a few oriented specifically at finance, such as the <a href=\"https:\/\/bootcamp.du.edu\/fintech\/landing\/?s=Google-Unbranded&amp;pkw=fintech%20bootcamp&amp;pcrid=584044281083&amp;pmt=b&amp;utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=GGL%7CUNIVERSITY-OF-DENVER%7CSEM%7CFINTECH%7C-%7COFL%7CTIER-1%7CALL%7CNBD-G%7CBMM%7CCore%7CBootcamp&amp;utm_term=fintech%20bootcamp&amp;s=google&amp;k=fintech%20bootcamp&amp;utm_adgroupid=133919801219&amp;utm_locationphysicalms=9028720&amp;utm_matchtype=b&amp;utm_network=g&amp;utm_device=c&amp;utm_content=584044281083&amp;utm_placement=&amp;gad=1&amp;gclid=Cj0KCQjwib2mBhDWARIsAPZUn_nY7-MHjDSB324XMZrlr_C_o7zuLYOxIlnZPo-wuP3CJCSNcmWgUmwaAsI5EALw_wcB&amp;gclsrc=aw.ds\" target=\"_blank\" rel=\"noreferrer noopener\">University of Denver Fintech Bootcamp<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-programming-language-is-used-in-finance\"><strong>What <\/strong><strong>Programming Language<\/strong><strong> Is Used in Finance?<\/strong><\/h3>\n\n\n\n<p>There are many coding languages used in programming for finance, with some of the more popular being Python, Javascript, and Java.<\/p>\n\n\n\n<p>In truth, however, if you\u2019re looking to do something like create a <a href=\"http:\/\/tiingo.com\/products\/crypto-api\">crypto trading system<\/a> you can probably do that in any general-purpose programming language.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-does-finance-use-c-programming\"><strong>Does Finance Use C++ Programming?<\/strong><\/h3>\n\n\n\n<p>One programming language we haven\u2019t discussed yet, but which warrants a mention, is C++. Like Python, C++ is object-oriented, which means the C++ code offers things like C++ classes that make it easy to encapsulate functionality and build more streamlined applications.<\/p>\n\n\n\n<p>C++ developers can also avail themselves of the <a href=\"https:\/\/www.geeksforgeeks.org\/the-c-standard-template-library-stl\/\" target=\"_blank\" rel=\"noreferrer noopener\">standard template library<\/a>, which contains many different data structures, algorithms, etc., for solving common tasks. If you recall the section on design patterns from earlier, this has a similar purpose.<\/p>\n\n\n\n<p>A great resource for learning to use C++ programming in finance is Daniel Hanson\u2019s \u201c<a href=\"https:\/\/www.oreilly.com\/library\/view\/learning-modern-c\/9781098100797\/\" target=\"_blank\" rel=\"noreferrer noopener\">Modern C++ for Finance<\/a>,\u201d from O\u2019Reilly Media.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-are-blockchain-and-fintech-applications-being-used-in-finance\"><strong>How Are Blockchain<\/strong><strong> and <\/strong><strong>Fintech<\/strong><strong> Applications Being Used in Finance?<\/strong><\/h3>\n\n\n\n<p>No article on programming for finance would be complete without a section on blockchain and fintech. It seems like every week some hot new startup releases a novel layer-1 blockchain oriented around a particular use case, and financial professionals should be at least vaguely aware of this space.<\/p>\n\n\n\n<p>First, it\u2019s worth distinguishing between \u201cfintech\u201d and \u201cblockchain.\u201d Fintech is short for \u201cfinancial technology\u201d and can refer to lending platforms, trading systems, and similar offerings. Blockchain is a kind of fintech, but they\u2019re not the same thing.<\/p>\n\n\n\n<p>There are now many blockchains, but the purpose of the original Bitcoin blockchain was to provide a means by which two or more parties could exchange value in a pseudonymous, censorship-resistant way. All such transactions were stored on an immutable, distributed public ledger; when combined with public-key cryptography, this ensured their validity while obviating the risk of double-spending.<\/p>\n\n\n\n<p>Blockchain and fintech more generally are fast-evolving spaces that are of great (and growing) interest to the financial industry.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-getting-into-programming-for-finance\"><strong>Getting Into Programming for Finance<\/strong><\/h2>\n\n\n\n<p>As important as programming has become for finance, it\u2019ll likely only become more important in the future. From algorithmic trading systems to volatility analysis and beyond, programming makes it much easier to build apps and software oriented toward solving financial problems.<\/p>\n\n\n\n<p>But your systems are only as good as your data, and that\u2019s where Tiingo comes in. We\u2019re a world-class provider of financial data that can help you build bleeding-edge systems utilizing the most up-to-date information. <a href=\"https:\/\/www.tiingo.com\/\">Check out our APIs<\/a>, and sign up for an account today!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Finance has always been an industry that stays up-to-date on the latest advances, from deep learning and quantum computing to the blockchain and beyond. This is why programming for finance has come to be so crucial.&nbsp; Financial analysts and finance professionals long ago started adopting programming as an important part of their toolkit, as this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":319,"comment_status":"open","ping_status":"open","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":[1],"tags":[],"class_list":{"0":"post-318","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-uncategorized","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.2 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\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=\"2023-08-17T11:09:27+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\":\"2023-08-17T11:09:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/\"},\"wordCount\":2442,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.tiingo.com\/blog\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#respond\"]}]},{\"@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\"},\"datePublished\":\"2023-08-17T07:47:48+00:00\",\"dateModified\":\"2023-08-17T11:09:27+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\":\"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\":\"required name=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:\/\/twitter.com\/tiingofinance\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.tiingo.com\/blog\/#\/schema\/person\/54fc93e1626ed221a37fcfddb597c3d6\",\"name\":\"Rishi S.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.tiingo.com\/blog\/#\/schema\/person\/image\/\",\"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\/tadmin24\/\"}]}<\/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":"2023-08-17T11:09:27+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":"2023-08-17T11:09:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tiingo.com\/blog\/programming-for-finance\/"},"wordCount":2442,"commentCount":0,"publisher":{"@id":"https:\/\/www.tiingo.com\/blog\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tiingo.com\/blog\/programming-for-finance\/#respond"]}]},{"@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"},"datePublished":"2023-08-17T07:47:48+00:00","dateModified":"2023-08-17T11:09:27+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":"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":"required name=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:\/\/twitter.com\/tiingofinance"]},{"@type":"Person","@id":"https:\/\/www.tiingo.com\/blog\/#\/schema\/person\/54fc93e1626ed221a37fcfddb597c3d6","name":"Rishi S.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tiingo.com\/blog\/#\/schema\/person\/image\/","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\/tadmin24\/"}]}},"featured_image_src":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-600x400.jpeg","featured_image_src_square":"https:\/\/www.tiingo.com\/blog\/wp-content\/uploads\/2023\/08\/close-up-shot-of-stacked-coins-600x600.jpeg","author_info":{"display_name":"Rishi S.","author_link":"https:\/\/www.tiingo.com\/blog\/author\/tadmin24\/"},"_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":4,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/posts\/318\/revisions"}],"predecessor-version":[{"id":327,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/posts\/318\/revisions\/327"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tiingo.com\/blog\/wp-json\/wp\/v2\/media\/319"}],"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}]}}