[As community content, this post reflects the views and opinions of the particular author and does not necessarily reflect the official stance of Neo4j.]Like many others in the tech industry, I occasionally come across a cool looking technology such as Neo4j and wonder – is this something worth learning?
The tech landscape is growing wider every day, and the time we have to learn a new technology really is sparse. In this post, I aim to provide some insight into the question “Should I learn Neo4j?” while giving you a glimpse into what Neo4j is and what it has to offer.
My First Encounter with Neo4j
I first learned about Neo4j around 2011 when I was in living in London. The NoSQL (Not Only SQL) movement was really kicking off around then, and eager to learn more, I attended presentations at SkillsMatter – an organisation that hosts many free technology presentations.
At SkillsMatter, I learned that there were different types of databases outside of relational databases (such as Postgres and MySQL). There were talks about document-oriented databases such as MongoDB and Couchbase, key-value databases such as Cassandra or Redis, and then of course I learned about a graph database called Neo4j.
Emil Eifrem – a co-founder of Neo4j came to the stage and drew some circles on a board. He proceeded to draw some lines that connected the circles.
“The circles are called nodes, and the lines are relationships between the nodes,” he said. “Both nodes and relationships can store data as properties, and properties are key-value pairs”. And that was it. Neo4j was explained in just a few sentences.
What I Like Most about Neo4j
To me, the beauty of Neo4j really is in its simplicity. Writing queries in Neo4j is like drawing a picture on a piece of paper, and having Neo4j do the hard work of interpreting the picture, and generating the step-by-step instructions needed to complete the query. It just makes sense.
By simplifying the database query language, there’s less cognitive overhead, you’re able to look into code and understand what’s going on faster, less code is required to achieve the same amount of work, and you still get a system that’s ACID compliant and easy to integrate with. What’s not to like?
But with such simplicity there must be some kind of catch right? Surely there must be some shortcomings with it – like it doesn’t scale, it’s not performant, or it’s not readily adopted by an enthusiastic community? …right?
In the case of Neo4j, there really isn’t any catch.
It’s simply a case of use it appropriately. If your data is tabular in nature with little or no relationships, then by all means use a relational database. If your data is document-like then by all means use a document database. But when you want to find patterns in highly interconnected data, then you would be silly not to give a graph database a go.
And the proof really is in the pudding, it’s exciting to see big name companies such as Linkedin, Walmart and Cisco adopting Neo4j for a variety of different applications that range from social networks to recommendation engines or logistics. I’ve also seen hobbyist programmers use Neo4j for personal projects such as finding correlations between musical taste and date of birth, and creating systems that merge news feeds from various sources.
How to Get Started Using Neo4j
So, if I’ve piqued your interest at all, you might be keen to start learning more. The simplicity of Neo4j’s query language Cypher means that you really can learn the basics in just a few hours.
And when it comes to Neo4j learning materials, the first port of call is the Neo4j website itself. The Neo4j GraphAcademy has interactive tutorials that introduce Neo4j concepts, along with exercises that help you practice what you learn as you go. It’s a great way to get started straight away, and allows you to do everything from the Neo4j Browser.
However, if you prefer watching videos to reading text, there are a number of online courses created by members of the Neo4j community. I’ve been through a course on Lynda.com, as well as a couple of courses on Udemy.
Having done various tutorials and built my own Neo4j-based site, I also decided to make a 4-hour long course (please enjoy the 40% discount!).
In addition to the above-mentioned resources, there are also a number of Neo4j books, the built-in Neo4j Browser help, the developer manual, Cypher cheat sheet and community Slack group. As you can see, there are a good number of resources available.
The best test, of course, is when you create something of your own and deploy to production. This is where the Neo4j community really shines. Drivers exist for virtually all modern programming languages, and production-related training covers topics such as hot-backups and master/slave configuration.
Conclusion: Get Started Today
In summary, if you’re looking at creating modern, innovative solutions such as virtual personal assistants, speech recognition engines, recommendation engines, social networks, simulations…or something even more awesome then you really should give Neo4j a go.
The modern world is a highly interconnected place, and when you have highly interconnected data, then you really do need a solution that helps create, modify and query that data in the most effective and efficient way possible. Besides being the market leader in graph database technology, Neo4j is proving itself to be a tool that can stand up to the challenge. I also can’t emphasize enough how easy it is to get started with.
I think Neo4j is a really great technology, and I’m excited to see the innovations that are helped along because of it. If you have an innovative solution that you’re working on I’d love to hear about it, please do comment below. Also, once you’ve got the basics down, make sure you sit the Neo4j Certification exam.
Lastly, don’t forget to take advantage of the 40% discount on the Neo4j Foundations Udemy course. It’s designed to be one of the quickest ways to get up to speed with Neo4j. Good luck out there!
Get the Ebook