---
title: "You Must Unlearn What You Have Learned"
description: "Embrace the wisdom of Yoda to succeed in technology and project management."
canonical: https://www.vidyasource.com/blog/you-must-unlearn-what-you-have-learned/
type: article
published: 2014-03-14
author: "Neil Chaudhuri"
tags: ["Java", "Ruby", "Rails", "Python", "Scala", "PMP", "NoSQL", "Cassandra", "MongoDB", "Neo4J", "CAP Theorem", "Clojure", "PostgreSQL", "Programming", "Functional Programming", "Project Management", "Big Data", "Agile", "Software Engineering"]
image: https://www.vidyasource.com/img/blog/yoda.jpg
---

# You Must Unlearn What You Have Learned

> Embrace the wisdom of Yoda to succeed in technology and project management.

- Canonical page: https://www.vidyasource.com/blog/you-must-unlearn-what-you-have-learned/
- Structured data (JSON-LD): https://www.vidyasource.com/blog/you-must-unlearn-what-you-have-learned.json
- Published: 2014-03-14
- Author: Neil Chaudhuri
- Topics: Java, Ruby, Rails, Python, Scala, PMP, NoSQL, Cassandra, MongoDB, Neo4J, CAP Theorem, Clojure, PostgreSQL, Programming, Functional Programming, Project Management, Big Data, Agile, Software Engineering
- Video: https://www.youtube.com/watch?v=BQ4yd2W50No

While in the middle of his [Jedi](http://starwars.wikia.com/wiki/Jedi) training with Master Yoda, Luke Skywalker discovers
his ship has sunk into the [Dagobah](http://starwars.wikia.com/wiki/Dagobah) swamp. Ever the whiner, Luke complains about
how difficult it will be to salvage the ship. That’s when an exasperated Yoda bestows some unforgettable wisdom.

[Video: Do. Or do not. There is no try.](https://www.youtube.com/watch?v=BQ4yd2W50No)

The iconic line from this scene in [The Empire Strikes Back](http://www.imdb.com/title/tt0080684/) is *“Do. Or do not. There is no try.”*
That’s an awesome line worthy of every t-shirt and [Big Bang Theory reference](http://www.youtube.com/watch?v=J_iH5H_jFco).
But I think Yoda’s line before that is just as awesome and maybe even more pertinent to someone like me.

> You must unlearn what you have learned.

If you want to grow and succeed as a technology professional, embrace this fundamental truth you must. I’ve found this to
be true several times in my career.

## Learning NoSQL databases

I have spent most of my career working with relational databases like Oracle, SQL Server, PostgreSQL, and MySQL. This
meant formal and informal training in normal forms in table design, SQL, stored procedures, and other critical topics
for storing and modeling your data as efficiently as possible.

All of that stuff goes out the window with NoSQL databases like MongoDB
and Cassandra. In order to understand how to model data well, I’ve had to cast aside all
the relational concepts I’ve grown accustomed to and instead learn new ones like column-oriented storage, the value of
denormalized data, the [CAP Theorem](http://en.wikipedia.org/wiki/CAP_theorem), and whole new query languages. In the
case of [Neo4J](http://www.neo4j.org/) and [Titan](http://thinkaurelius.github.io/titan/), I’ve had to disregard
tables altogether and consider the implications of storing and querying data in a big graph. It’s hard, but you
need to unlearn all the old relational rules if you want to be an expert at modeling cloud-scale data.

## Learning new programming languages

You can write a love poem in any language, but it sounds a lot better in French than it does in German.

I have spent most of my career writing code in Java, and I have gotten pretty good at it. I have two Java
badges on [Stack Overflow](http://stackoverflow.com/users/1347281/vidya), and I even
[teach a course in Java](https://www.vidyasource.com/course/software-engineering-in-java/). You can use Java to build
anything, but that doesn’t always mean you should.

For web applications, Ruby on Rails is far superior. For standalone projects you want to get running fast,
Python is far superior. For Big Data analytics, Python, Scala,
and Clojure are [far superior](https://www.vidyasource.com/blog/java-is-dysfunctional-with-big-data/).

I’m simplifying a bit, but the point is that I’ve had to unlearn a lot of the concepts that became second nature in Java in
order to excel in other languages. I had to ignore everything I knew about static typing in Java and get used to the
pros and cons of dynamic typing in Ruby and Python. Forget those cumbersome null checks in Java; I had to understand
how to use [Option](http://danielwestheide.com/blog/2012/12/19/the-neophytes-guide-to-scala-part-5-the-option-type.html)
for a more elegant way of handling null in Scala. I still find myself falling back into old Java habits when I write code in other
languages, but as Luke knows, unlearning is never easy.

## Passing the PMP certification exam

This is less about technology and more about project management, but Yoda’s words ring true here too. Whether you like
it or not, [PMP](http://www.pmi.org/Certification/Project-Management-Professional-PMP.aspx) certification is
[kind of a big deal](http://www.youtube.com/watch?v=6KSFlkSU5rE). Whatever you think you know about project management,
you need to unlearn it fast if you want to pass the PMP exam. Not because it’s wrong necessarily. But because you need
to be able to articulate the project management principles defined in the [PMBOK](http://marketplace.pmi.org/Pages/ProductDetail.aspx?GMProduct=00101388701)
rather than in your head.

The PMBOK breaks every project down into process groups and knowledge areas, and each project management process has inputs, tools and
techniques, and outputs--all with official names. You need to memorize these precisely to pass the exam and become a
certified PMP. What you call a “Risk Report”? You better know the PMBOK calls it a *Risk Register* on the exam, and don’t
be surprised if “Risk Report” shows up in the choices to mess with you. If you are a proponent of
agile software development and think another season of [American Idol](http://www.imdb.com/title/tt0319931/)
sounds more appealing than the idea of a Change Control Board, [you better check yourself](http://www.youtube.com/watch?v=5aAbOgdbTbM&feature=kp).
If you are a successful project manager (especially an experienced one) hoping to get PMP certified, you have to unlearn
the practices and even the terminology you’ve adopted so successfully in favor of the PMBOK’s. At least for the four hours you’re taking the exam.

So if you want to succeed in technology and project management, listen to Yoda and be ready to unlearn what you have learned.
Otherwise, [that is why you fail](http://www.youtube.com/watch?v=fLrpBLDWyCI).

---

Vidya is a certified small business in Northern Virginia that modernizes legacy systems, builds enterprise AI, and designs cloud and data architecture for commercial companies and federal agencies. Vidya documents its delivered engagements in case studies and publishes courses, tutorials, and articles for engineers and the people who lead them. The company name is Vidya. Its website is vidyasource.com. Start at https://www.vidyasource.com/llms.txt for the index of everything Vidya publishes, or https://www.vidyasource.com/contact/ to talk to Vidya.
