Oftentimes, people want to know about “That One Place” to get all their learning and training resources for PostgreSQL. When I get such a question from a colleague, my typical response it to tell them to look it up online. But I know as soon as they hit the “.com” highway, they will be confronted with a barrage of resources about PostgreSQL from blogs, articles, whitepapers, videos, webinars, cookbooks for dummies, cheat sheets, and more.
In this blog, I am going to take you on a journey of some of the important avenues to quickly obtain most of the knowledge you would need to know about PostgreSQL.
Here we go…
Read the PostgreSQL Manual
The first stop are the online manuals of PostgreSQL. The official documentation (or docs as they are referred to in short) of any product is the best place to find the largest wealth of information. For most people nowadays, manuals are typically the last place to look for help. It should, however, always be the first stop on the list for various reasons as listed below:
- Official docs explain the internals of various components of a product and how they relate to each other
- They link to various other sections of manuals discussing a concept when a new concept is introduced
- There is sample code to be executed and its expected output with explanation
- There is a logical flow from one idea to another
- There is a “Tip” and “Quick Setup” section wherever required that gives bonus information for newbies
- Most of the other online resources lead you to official documentation in one way or the other
- The manuals are divided into appropriate sections as per the need such as developer oriented, administrator related, programming focused, utilities, command reference, internals and appendices etc.
One excellent feature of using manuals that I liked the most is the “Supported Versions” subtitle on top of the page which provides links to other versions of PostgreSQL where a concept is available. It makes it convenient to navigate between various versions of PostgreSQL for the same concept, especially when you want to compare default settings across versions, parameter names, and error conditions etc.
I once wanted to play around with “Logical Replication” when it was first introduced in PostgreSQL 10. I found a dedicated chapter in the manuals on Logical Replication that explains the architecture, components involved, configuration settings, and a quick setup. All I did was follow the steps of “Quick Setup” and had a working Logical Replication setup on my test virtual machine in no time.
These docs are like the owner’s manual for a home appliance. Any error code from the appliance can only be understood by referring to the owner’s manual to take necessary action to troubleshoot and remedy the issue. The notion sounds like a cliche but it holds true about manuals.
The other benefit of getting used to online manuals is by attaining first hand information about the added and/or enhanced features in a newly released version of PostgreSQL (called Release Notes). Online manuals may give you a comprehensive account of enhancements, added features, and deprecated features, but Release Notes give you the “introductory gist” of what the new feature is, what enhancements have been made, and what features are no longer supported. A quick glance of Release Notes across major release versions also gives you an understanding of what developments have been made in a specific PostgreSQL version since the earlier release.
In addition to online manuals, there is a repository of all stuff PostgreSQL in the form of WIKI pages. This has supplementary information covering tutorials, guides, how-tos, and tips ‘n’ tricks related to PostgreSQL. It also serves as a collaboration area for PostgreSQL contributors. You can also get access to automation scripts developed by various users on installation, administration, and management of PostgreSQL, which could be utilized in your environment under GPL notice.
Using the PostgreSQL Distribution Lists
The next top learning and training resources are the community distribution lists. This is where you can interact with other PostgreSQL enthusiasts from across the globe. There are over 45 community distribution lists divided into 7 broad categories (listed below).
- User lists
- Developer lists
- Regional lists
- User groups
- Project lists
- Internal lists
There is a dedicated distribution list for every type of PostgreSQL professional for you depending on the regional language, experience level, and background of PostgreSQL interest. But as PostgreSQL gains more and more momentum this may quickly build up to be over a 100 distributions lists across even more categories.
To stay up-to-speed on PostgreSQL you have to subscribe and follow some of the community distribution lists, because you will see a lot of action around PostgreSQL. There is an audience of various levels of expertise starting from newbies requesting a little hand-holding to industry and community heavy-weights offering suggestions to solve complex issues being faced in production environments.
The best way to participate in these community distribution lists is to start with a PostgreSQL database instance running in your own local virtual machine (VM). This will help you to know the terminologies and nuances of PostgreSQL. You are also in a position to offer help to the community when someone confronts a PostgreSQL situation you may have already faced and successfully resolved.
PostgreSQL Partners & Software Tools
There are many tools that can be configured to work with a PostgreSQL database. It is not possible for a new user to truly get a grasp of the whole market out there, but it does get easier if you narrow down to a specific concept and evaluate the most popular tools related to the concept of your choice.
My personal interest around databases is Backup & Recovery, Replication, High Availability, and Monitoring. I have spent enough time learning and implementing some of the open source tools around these areas, and when a fellow community member gets into a bind, and I know what could be the cause, I offer to help with a quick explanation and plan of action by citing references from the respective documentation.
Official PostgreSQL Webinars
There are also online webinars conducted by various registered organizations (note: you will need a PostgreSQL account to view these), with their members forming part of a core team of contributors or committers of PostgreSQL code. Some of the other core team members manage their own personal blogs publishing technical content from time to time such as know-hows, white papers, case studies, tutorials or simple tips and tricks of working with PostgreSQL internals. The other forms of engaging with the PostgreSQL community members online include IRC, Slack, GitHub and several other online networking portals.
A List of PostgreSQL Events
Now that you have started learning and exploring the possibilities of PostgreSQL, it’s time to meet some real people in person. One way of achieving that would be to attend events and technical symposia organized by various local PostgreSQL user groups within your region. These events run anywhere from a few hours a day to one full week of activities revolving around PostgreSQL development, PostgreSQL hacks, bootcamps, and workshops etc.
There are plenty of conferences held all year round across the globe such as listed below:
- Postgres Vision
- PostgreSQL Developer Day
- FOSDEM PGDay
- PG Down Under
- FOSSASIA PostgreSQL Summit
The sponsored conferences listed above are held at various geographical locations and they are named after the region being conducted at, such as PGDay UK, PGConf Asia, PGConf EU and so on (note that some of them are only held in the region’s local language).
If you can only attend one, the most important conference is the PGCon. This is an annual conference for users and developers of PostgreSQL held during the last week of May every year at the University of Ottawa in Ottawa City, Canada. This is where the top developers and committers of PostgreSQL meet each year to discuss enhancements, new features, and the development activities of PostgreSQL (in addition to presenting and conducting training bootcamps). It is during this event the community recognized developers and committers that have contributed immensely to PostgreSQL. Some are also formally inducted into the panel of contributors.
The bootcamps and trainings conducted during PGCon are handled by industry experts who have developed the core features of PostgreSQL, which means you get to know the internals of PostgreSQL from the people who designed it. While a good reason to attend the community events is so you can expand your technical network, the other good reason is to collect the PostgreSQL shirts which can be worn to work with pride in order to get others interested in PostgreSQL. The events calendar can be accessed from here, and each of the events will point you to its unique website managed and maintained by the respective event organisers.
PostgreSQL Local and Regional User Groups
The User Groups such as PUG (PostgreSQL UG), SIG (Special Interest Group) and RUG (Regional UG). They give you an opportunity to bump into the PostgreSQL enthusiast next door. These are casual meetups organized by its members who meet on a regular basis. The frequency of these quick meets can be as often as once in a fortnight (which means two weeks for those who don’t read English literature) to once every quarter.
The main purpose of these user groups is to keep its members informed of the latest news around PostgreSQL and on upcoming global events. The members can be seen presenting technical content to a smaller group of individuals to cut their teeth for presenting at the global events. The topics of these meetups can get intriguing, especially when you have a bunch of IT engineers from varied technological backgrounds all discussing issues, limitations, and advantages of various database products and the ways to reduce costs, etc. These events also give you an opportunity to present a topic of your choice, which further widens your horizons within PostgreSQL. Most of the local group events are managed via the popular meetup platform as can be seen from the Local User Groups page.
In addition to all the above, there are the official international websites of PostgreSQL, hosted and maintained in the local language of the region. The international websites tend to add more content on training and learning; catering to the needs of local audiences in a regional language. An excellent benefit of having such local and regional language sites is, you get to meet like minded individuals that can collaborate together to build systems and solutions using PostgreSQL.
The PostgreSQL Planet
Did you know that PostgreSQL has its own planet, where everything exists only related to PostgreSQL. It is like the master portal consolidating all the information from community distribution lists, PostgreSQL developers network, PostgreSQL bloggers, news, latest releases, and GitHub repositories. In planet.postgresql.org you could come across small projects of interest which can give you a quick hands-on experience of a specific feature of PostgreSQL. There are some basic projects in this site which can get you started in developing your skills of PostgreSQL.
My own personal favourite is the consolidated record of a real world computing issue within PostgreSQL applications, discussed within the distribution list with plenty of inputs and replies from various PostgreSQL enthusiasts. These real world issues gain traction by way of someone trying to create a use case out of it, in order to discuss the possible solutions and come up with a quick fix. The quick fixes are published on the GitHub repositories with further enhancements by other community members. What starts as a problem for a PostgreSQL user ends up being a minor feature enhancement.
The PostgreSQL Planet is also a one-stop-shop for various maintenance scripts that are developed and tested by notable community bigwigs. One can build a repository of tool-sets out of these code snippets to manage and monitor PostgreSQL implementations. Most of the code comes with a default disclaimer that the developer is not liable and/or responsible for any damage, service failure, or performance degradation caused to the systems (but most of the code snippet is safe to run on production workloads for monitoring and learning purpose).
As you start following all the resources around PostgreSQL, after getting a firm grasp of its internals, you might want to develop something on your own and share it with the rest of the community members. A step forward would be to put various similar enhancements and functionalities together in the form of a PostgreSQL extension. PostgreSQL extensions are an extended feature set that can be included in a PostgreSQL database system as a ‘plug and play’ option. PostgreSQL extensions undergo an exhaustive process of review before being published on the official PostgreSQL extensions website. More on various PostgreSQL extensions and their uses would be discussed in another post in great detail.
I hope this blog gave you an idea of where to seek more information about PostgreSQL and how to enhance your PostgreSQL skills on a self taught, self learned basis from using the various types of resources. Make sure to reach out to our team of experts for your PostgreSQL management needs.