Getting Started With LibreOffice Development: Object-oriented Programming and C++ Introductions

Turned around and found the right line

— No Leaf Clover, Metallica

So, for getting started with LibreOffice development e.g. with an EasyHack four things are needed:

  • Understanding of Object Oriented Programming
  • C++ Language Fundamentals
  • Completing a Build from Scratch of LibreOffice master
  • Understanding git and gerrit to submit your changes

We traditionally have covered the latter two quite well in our Wiki:

However, we did not have hints on where to find good documentation on object oriented programming in general and modern C++ programming. At most universities these days programming is taught with Java, JavaScript and Python, which leaves a missing piece on getting started with C++ programming. So Eike and me started looking for good resources on these topics too. Here is what we added to the General Programming Guidelines:

The OOP books are using Java as reference language, but they do not get lost in language details and intentionally allow using the concepts on other languages like C++. The university lecture starts off expecting basic knowledge of programming (e.g. in Java/JavaScript) so both together should yield a reasonable coverage of what is needed for your first EasyHacks.

Finding a good and modern starting point for C++ development was by far the hardest topic to cover of those named above. However, looking for them prompted Eike to dig out his personal “developer bookmarks” — a treasure trove that I will keep exploring further for other good content (this is where the “C++ Annotations” link came from).


P.S. As a sidenote and additional motivation: All those books — but especially “Head First: Design Patterns” should provide the context to understand many of the in-jokes found on the oldest wiki ever, the C2 WikiWikiWeb which can be an quite entertaining read once in a while.