Daniel Duffy
C++ author, trainer
- Joined
- 10/4/07
- Messages
- 10,790
- Points
- 648
My recommendation is to first focus on 1) learning language features, 2) Monte Carlo application using my Domain Architecture approach which successfully rounds off the course.Hello!!
I am MeowminiMeow. I recently had finished a quant dev internship at an HFT and was humbled by my lack of C++ knowledge ( I did not get the return offer) . So I have decided to fix that.
Objective : To learn C++ along with design patterns
Programming Experience: C++ (competitive programming) , Python ( mainly ML and DS)
Current Status : ML engineer working with LLMs/AI products at Oracle
Intended Pace: Jan 2026 (ish)
//
"Bonus project" (when course has completed) (student-driven project)
Now, by all means you "morph" MC into an application of yoir choice (ideally, you can formulate the problem to be solved ). I can help with some dessign support.
One option fot a mini HFT prototype is event model (in my forthcoming 2026 book)
A command encapsulates information needed to perform an action or trigger an event at a later time. This information includes the method name, the object that owns the method and values for the method parameters. In a sense, a command is similar to a function object which is called or executed by other objects in a program and the analogy is one of sending a request to an object which then executes the request. Both books GOF (1995) and POSA (1996) implement the Command and Command Processor patterns using the traditional object-oriented style based on subtype polymorphism (inheritance) and composition. These patterns have limited applicability in their current form in modern day software development. In order to make them applicable in a wider context we devote chapters 16, 17 and 18 to extending these patterns. The main use cases that we discuss are:
. U1: Command and Command Processor as special examples of the Resource Allocation and Tracking (RAT) domain architecture. Descriptions using UML class and component diagrams.
. U2: Implementation in C++, C# and Python using a combination of the object-oriented, functional and generic programming styles.
. U3: Command pattern in combination with Proxy patterns (for example, shared memory and remote objects). Extended access control systems.
. U4: Multithreading, active object and actor implementations of Command pattern.
. U5: Integration with libraries and advanced functionality, for example Boost C++ signals2, .NET and Python event models.
. U6: Understanding how the multi-paradigm Command and Command Processor patterns were designed and implemented and using this knowledge as a foundation for other problems.
We have written three chapters in order to do justice to these use cases. They represent extensions and improvements to the GOF design patterns which were in need of a face-lift. There are several advantages to this approach. First, we employ features that allow us to implement design patterns that avail of developments in C++, C# and Python during the last 30 years (we should remember that the GOF patterns were developed at a time when OOP was relatively immature). Second, design patterns can be implemented using functional and generic programming styles in addition to OOP (again, GOF design patterns are focused on OOP). Finally, Command and Command Processor can be seen as building blocks in the design of event-based asynchronous architectural models (Shaw and Garlan, 1996). Such models are not present in the GOF pattern repository.
Last edited: