pro amore scientiam !
C / C++ is the language for performant algo dev. It also has a higher barrier of entry than C#. While C# is elegant, it is targeted towards LOB apps and it is very easy to pick up à a proliferation of decent NET code monkeys is a career race to the bottom. It is a wise time to move back to C++. Note: I am about to revise this all again !
· C# to C++ guide – a good refresher
· Revise Kinnect API
· WMF from Pavels course - I worked with this API for 2 months this year – non-trivial !
· ConcRT & PPL – I went through everything on msdn + Alon's course materials. Unlike TPL you can control priority. The agent paradigm is quite similar to Axum, TPL DataFlow.
· AMP – see my post here: http://geekswithblogs.net/JoshReuben/archive/2011/12/04/c-amp.aspx
· Book: C++ AMP http://amzn.to/WWxC2J – a great book with much practical advice.
· Win32, strings, pragmas, intrinsics, lbs vs dlls, project settings, etc etc etc
· COM, ATL – be prepared for a lot of dead code out there !
· STL / TR1 – I wrote a set of exercises for a course on this
· Book: Windows via C/C++ http://amzn.to/WWxO1S - essentially thread management – I never realized how insecure Windows was until I read this !
· WRL & C++/CX - just in case pigs fly !
· C++ 11 – some amazing changes to the standard.
3D is an interesting & non-trivial problem domain. I hope to do further work in this area.
· SIGGRAPH – http://www.siggraph.org/asia2011/hong-kong I attended this conference 1 year ago – an eye opening trip into the future! I participated in intense courses on OpenGL & OpenCL.
· Book: Mathematics for Computer Graphics http://amzn.to/WWxwZ2 - I used this to build an XNA course (before it died)
· Book: DirectX http://amzn.to/WWxj81 - see my summary here: http://geekswithblogs.net/JoshReuben/archive/2012/03/14/d3d-11-programming-in-a-nutshell.aspx
· Direct3D tooling – I'll blog on this sooner or later
· RasterTek DirectX tutorials – http://www.rastertek.com/tutindex.html - the only way to learn DX !
· Book: Unity3D http://amzn.to/WWxbph - I built the island, shot coconuts at the hut door, and started a particle fire !
Trading Systems Infrastructure
· I did a fair few consults for trading firms – they have unique high performant scalable infrastructure requirements – leave your NET hat at the door ! see my blog post here: http://geekswithblogs.net/JoshReuben/archive/2012/03/26/low-latency-high-performant-financial-app-infrastructures.aspx
· Onyx FIX - http://www.onixs.biz/ – a low latency API for messaging with the FIX (financial information exchange) protocol. Critical for trading systems.
· LMAX – I blogged about this trading API here: http://geekswithblogs.net/JoshReuben/archive/2011/07/08/lmax-.net-api-walkthrough.aspx
· Book: Big Data Glossary http://amzn.to/UpRaJs
· NOSQL – did an investigative comparison
· LMAX Disruptor – amazing ring buffer architectural paradigm: http://lmax-exchange.github.com/disruptor/
· Redis - http://redis.io/ - an incredibly fast distributed in memory cache
Maths, Computation & Cognition
Going through life, I feel it is a core personal goal to understand as much as possible about the nature of reality.
· Book: Physics http://amzn.to/WWA610 - a great coffee table book detailing the greatest 500 discoveries in physics
· Schuams Computer Architecture http://amzn.to/UpNXte - an in depth drill down into registers, microcode & memory hierarchies. Very worthwhile read. Hadn't looked at this since my first degree 20 years ago !
· Book: Schaums Vector Analysis http://amzn.to/UpO9IV - nice refresher on linear algebra + some interesting stuff on Stokes Theorem & intro to Tensors
· Book: Schaums Mathematica http://amzn.to/UpPAHm - while this has very little penetration in the Israeli market, it is an amazingly powerful symbolic mathematical programming language environment. I will delve deeper. See my blogpost here: http://geekswithblogs.net/JoshReuben/archive/2012/07/04/mathematica-programming-languagendashan-introduction.aspx
· Book: Excel Scientific Computing http://amzn.to/UpPGyG - everything you need to know about programming excel
· Book: Language instinct - http://amzn.to/UpPPCm - amazing coverage on how language works – will serve me well if I ever head into NLP
· Numerical analysis videos - http://numericalmethods.eng.usf.edu/videos/ - an awesome resource.
· Book: Short Intro to Reality - http://amzn.to/UpQ5Bf - philosophical questions regarding the simulated universe hypothesis – stop thinking like an ant, & read this.
· Book: Short Intro to Sociology - http://amzn.to/UpQbsO - a bit wishy washy, but a good analysis of how & why aspects of cultures are socially constructed
· Book: short intro to Game Theory http://amzn.to/UpQQub - will serve me well if I ever head into constructing a probabilistic reasoning system for decision support.
· Book: Short intro to Nothing http://amzn.to/UpQP9s - Is the Higgs Field the new ether ?
· Book: History of Modern Computing http://amzn.to/UpQV0V - gives you perspective into how fast paradigms can shift
· Book: The Quest for AI http://amzn.to/UpRIPi - a good refresher after reading Norvig & Russell
· Book: C# numerical computing http://amzn.to/UpT9xm - a nice overview via a toy language
· Book: millennium problems http://amzn.to/UpTccv - it is quite amazing to grasp the current limits of our understanding
· Extreme Optimization Library – the strongest C# maths library - http://www.extremeoptimization.com/
· Book: C# ANNs + Encog http://amzn.to/UpTikt - see my blogpost here: http://geekswithblogs.net/JoshReuben/archive/2011/02/04/c-neural-networks-with-encog.aspx
Finance & Economics
The world is rapidly changing – we don’t live in a bubble – its worthwhile to understand the patterns in the undercurrents.
· Book: How the west was lost http://amzn.to/UpTro1
· Book: Cartoon Guide to Macroeconomics http://amzn.to/UpTDUj
· Book: After America http://amzn.to/UpTxMd
· Book: Crash Course http://amzn.to/UpTQql
· Peak Oil http://amzn.to/UpU3K6
· JS WebWorkers – true parallelization on the client
· Book: HTML 5 & CSS 3 http://amzn.to/UpUO67 - good overview of whats new
· KnockoutJS – a descent MVVM framework with binding support
· EmberJS – the strongest client side platform – feature rich
· Book: JQuery Pocket Guide http://amzn.to/UpUVP8 - another good refresher
· QUnit – client side unit testing
· HTML5 Boilerplate
· Book: ImpactJS HTML5 game programming http://amzn.to/UpV9Wc
· SocketIO , Pusher – WebSockets APIs
· REST API design – consulted on this for a trading client.
· FireBug – amazing debugging capabilities – a must know.
· WebStorm – a great IDE for webdev without the VS bloat
· JSLint / JSHint - code quality tools
· NodeJS – beginners guide http://amzn.to/UpViZR
· NodeJS baby steps & toddler steps - http://elegantcode.com/category/node-js/ - a great blog series
Conclusion: Groundwork laid for 2013
It was definitely a great year in terms of knowledge acquisition.
It is true that I need to consolidate – that’s exactly what I am doing now !
Now, this may all seem freaky to your standard LOB dev tradesman drone, who micro-specializes in XAML & WCF.
I have indeed absorbed a lot of disparate information, and I definitely need to revise & get practical hands-on; however once something is conceptualized, it is yours to rapidly refresh on demand forever. Besides, I have made detailed summaries on various topics.
The whole is greater than the sum of the parts – a worthwhile goal in life is to be a renaissance man: http://en.wikipedia.org/wiki/Polymath
I am not just a jack-of-all-trades – I can quickly drill down & become an expert in many topics.
Maths & C++ have opened up many new worlds for me – which I can now dive into in 2013.
Anyone who thinks I have spread myself too thin is just under-estimating me – don’t tell me what I cannot do !