This week we discuss Venkat’s philosophy on learning and work. Don’t miss this insightful episode!
You’re listening to the No Fluff Just Stuff podcast, a JVM conference series with dozens of dates around the country. There will be one near you. Check out our tour dates at nofluffjuststuff.com.
I have the pleasure of being joined once again with the legendary Venkat. How are you?
Very good. Pleasure, always, to see you.
Speaking all day, I assume?
It was fun day.
One thing that really stands out, spending as much time with you as I’ve been privileged to do on the tour, is that you have kind of a level of wisdom that really stands out. It’s very rare. I wonder how do we be more like Venkat. You just have a very unique perspective on things that I think a lot of people would value from. How do we get some of that?
I don’t think I have a unique perspective, so it’s a bit surprising to even hear that I do. I’m pretty humbled to hear that. One of the things that I try to do along the way is…I had a pretty late start in my career. I was one of the worst students anybody could ever know, so my youth was pretty spent on something useless.
Once I had a start, I came back with vengeance, if that’s the right word to use, because I had to make up for all the lost time.
I’m just curious — I don’t want to take us on a tangent — but what was the useless thing, if you don’t mind me asking?
Oh, nothing really. Just goofing away as a kid, playing childish stuff, not paying attention to studies, didn’t care about what I want to do in life. Just being a typical child. I never did anything illegal or bad, but…
Certainly nothing we’ll talk about on the record.
[laughs] …but on the same token, I didn’t do anything that was remarkable as a child, to say, "This kid has an aptitude to become a scientist, an engineer, or whatever." I just liked playing, as simple as that. If you were to draw a line and see where I was going, it was not going to be in a good place.
Then, I was thankful to…Adolescence is a beautiful age. When I went into the ninth grade, I was a different person than I came out of the eighth grade. Until eighth grade, nobody ever who knew me would ever look at me and say this kid would do anything useful.
Ninth grade was very different. I was always last in the class, changed to coming thoroughly in the top of the class starting in the ninth grade.
I couldn’t speak a sentence in English when I was in my 11th and 12th grade. I realized if I have to survive in this world, I have to learn English. I’ve got to speak pretty fluently. I started speaking English to everybody, whether they understood English or not, doesn’t matter. [laughs] Then I started really feeling the love for math. I had not done that before.
Once I felt the love for math, I realized this is actually fun stuff where you can imagine these equations and solve them. Then you realize you create a world for yourself in which you can love. You don’t have to go out to the streets to play in that world.
To a great extent, I would say, I became more isolated. Than being out on the street, it was more sitting at a desk and solving problems. Started with math, then started with engineering. Everybody thought I would be a mechanical engineer. I did a lot of that, then got introduced to computer science, and then algorithms and data structures. Able to read the abstract concepts was very exciting to me.
All along the way, one of the things I really enjoyed was just being with yourself. The critical thinking is what I really like. Almost every hour in the day, there’s a little thread that spinning in mind that’s thinking about and talking within me about software, computers, programming, the aspect of being a programmer.
Even though I’m getting older, these things contributed to me continuing to be a programmer than going into a management path or a career because that critical thinking and the result you get out of it.
The aha moment, all goes in your mind all the time, when you begin to unearth the next level of complexity, or you get to know something a little more than you did before. Keeps you as a kid in the candy store all the time. I think that’s basically what it is — the excitement of the learning. Getting to know things more is what I think I’m more happy with than anything else.
Definitely, I find that natural curiosity is something that drives me. I can relate to this. I’m trying to map your experiences from my perspective to understand them. That natural curiosity, learning new things all the time certainly drives me.
It’s one of the reasons I liked being in this industry. You’re certainly very prolific in terms of languages and all these things that you have a pretty good grasp on…The question — I think a lot of people they wonder is — how do you have time for this?
You’ve got a family. You’re a professor, you’re speaking, you’re consulting, you’re an author, I think I mentioned that. How do you fit that in? How do we’d be better at continuing to grow in the way that you’ve done?
There are two answers and one is not a good one. The other one I think is the better one. The not a good one is unfortunately comes with sacrifice.
That is something we need to be willing to, and I don’t think we can put the word worth in this conversation because being away from the family, spending late nights, early mornings, tinkering things on the computer than going out and playing with the kids or spending the time with the wife or hanging out with your friends and relatives.
Some of those you have to sacrifice. I wouldn’t say that I have sacrificed everything, thankfully not, but I’ve sacrificed a lot, and they have sacrificed a lot. I go mountain hiking with my family. I hang out with them, but these are pockets of time.
This is not regular… "Hey, it’s evening, let’s go and hang out with the family." It’s more like, "Oh, this week Daddy is going to be home. We could probably go out to the mountains." And lot of weeks it’s like, "I’m sorry. Something has come up. I have to work. I won’t be joining you guys."
That’s the sad part where you become more isolated. You’re more doing stuff that are technical, and you don’t get to enjoy the family a whole lot. That’s something that…There’s no good way to put that…That’s just the way it is. That’s the sacrifice you make for doing these things.
For doing this for all of the things?
For all the things, that’s correct. But it’s very fulfilling from other angles. You’re able to inspire and motivate very young people who can go off and do better software. I have friends in the community who are respectable authors, who are doing phenomenal work, but they were once my students.
Having these students as colleagues, nothing more is fulfilling to me, where I can hang out with them not as once they were student but as the respectable member of the society and knowing that you played a small role in their journey towards that is very fulfilling.
I absolutely believe that you’re reaching, you inspire a lot of people. I have a friend in fact, when I was mentioning that I was going to one of these conferences a while back, they were speaking at. He went and looked at the agenda and he says that he’s a .NET developer and I said, "Well this is mostly a JVM conferences."
He says, "I don’t care. I like learning stuff." He’s looking at it. His eyes got real big and he was, "Holy crap. Venkat’s gonna be there. Oh, I’m definitely going!" He didn’t go in the end, but he got very excited and he cited you as one of the biggest influences when he was going to school in Houston.
The positive aspect of things are…this is one of the journeys for myself. I actually have learning disability. I mean, I mentioned that I was a child goofing away, not learning. I didn’t go through a methodical process of how do you learn, that was never given to me.
As a result, my speed of reading is extremely slow. In fact, I actually make the computer read stuff for me most of the time because my ability to read is actually extremely slow. That puts a big dent on your ability to absorb and move fast. But on the outside people will look at me and say, "You are learning things extremely fast." Well, the reason is…
I agree with that.
I figured out a few things and one of them is we don’t learn in big chunks, we learn in deltas. One of the things I quickly figured out was, if I have to learn importance things, I can’t postpone it, I have to learn the deltas every single day.
While some people who are really good, who have good ability to learn, maybe can sit down in a week and learn a lot of stuff, I won’t be able to do that. I have to learn continuously every day. But what I do is, my neural networks if you will, is constantly making those connections.
Every day, I often read or experimental or play with something that I’ve never done before, or something that is really unknown and hurting my head and I got to get better at learning that.
What that does to me is, it keeps those deltas really connected all the time, so when I come across a new topic, it’s usually, "Oh, I’ve seen this before in another context." Rather than asking, what it is, I’m mostly asking, "How is this different from what else I know?"
For example, when…see Sharp introduced the yield keyword, my question was, "How is this similar or different from the yield in Ruby?" When ECMAScript 2015, introduced generators, it immediately was like, "Gosh, these guys are doing what C# has been doing with generators before and how does this relate to infinite streams that’s available in Haskell and Erlang, and more recently in Java?"
What you’re doing is, when you at concepts you are immediately drawing similarities to other things you know, we all do that. When we know a lot less, we have a lot less to compare with. When we know a lot more, we have a lot more to compare with. Learning new things become easier when we’d learn continuously.
I had once tweeted about this, I was in a class, and I saw two people about the same age, one was able to absorb the concepts really fast, the other one wasn’t able to. The one who was not able to absorb the concepts was heavily or mostly with one language.
The other one who had easy time has been programming in six or seven languages. My tweet from that experience observing them was, "The time you take to learn something new, is inversely propositional to the number of things you have learned over time."
I absolutely believe that.
That’s been my effort is to learn continuously. I also feel there is one flaw in our society in terms of how we approach to learning, and that is, people often come to me and say, "I’m gonna learn this because my job needs it." I think there is a problem in it because if my job needs me to use, name it Groovy, Scala, Erlang, Elixir, what have you.
Well, now you’re going to ramp up and learn what your job needs, but a lot of times you need to invest a certain amount of your time learning things you don’t currently need. Because when you do, you’re connecting that network, and you’re learning the delta.
In doing so, either that becomes necessary in the future or something tangential, but something that can build upon your knowledge that you’ve gained in this other area, it can accelerate your learning a lot.
For example, I learned Erlang for absolutely no good reason, I had no reason to use Erlang. I took it on myself that I wanted to learn Erlang, but when the need came for me to learn Scala, it became extremely easy. Even though Erlang is a dynamically typed language versus Scala is statically typed, the act or model of Erlang is what has been carried into mostly in Scala.
Well, a lot of people complain that Scala is really hard to learn for them, Scala was extremely easy for me to learn. The reason for that is, I came with the knowledge of Erlang, I didn’t need to know Erlang, but I had to know Scala. But learning Scala became extremely easy the fact that I knew Erlang.
I’ve seen this again, and again, and again happening. That’s one of the reasons I went off and learn to program in Haskell, not because I had a project to work in Haskell, but by learning Haskell had made my way that I approach functional programming so different.
Even in the languages I use, which are imperative, but off a functional set of programming. I’m writing code a lot differently today than before I learned it, so I actually seek out to learn things I have no use for.
Now, I want to ask you question bounces off of you. What about learning things that aren’t even in our domain? You mentioned a lot of languages and how that’s help, do you believe things you’ve learned outside…that aren’t directly inside the technology domain has helped you as well in the same way?
I think that’s extremely important. Some of the things I draw in my talks are actually from nontechnical books. Recently, I was in a conference where somebody came and said, "This is what I’m doing at work." We’re talking about architecture, we’re talking about design, we’re talking about technology, and then I said, "Well, here are the reasons we should change this, and if you go back and do cultures…"
Even in my sessions today, I was mentioning about one of the most beautiful books I’ve read is Guns, Germs, and Steel. In Gun, Germs, and Steel, he talks about how civilizations came into existence. He talks about how there were times when one culture would be wiped out by another culture due to infection being spread through, and these things are fascinating to me because this talks about human aspect, it talks about how we were in the past, the cultures, the psychology.
When I come back to writing code, I quickly realize, even though what we do is extremely technical, we can’t forget the fact that we are humans. We can’t forget that programming is yet another human activity, it’s more of a modern activity, but never the less, it’s very much a vital human activity.
Then you realize, we are not disconnected from how we behave as humans when we write code compared to when we fought those wars or when we built societies, and our emotions, our ability to cope with each other, all of these things can come back and connect it.
When I read non-technical books…this is one of my problems is, I cannot spend a time spend a minute doing stuff where I don’t think of programming, I’m wired that way.
When I read a non-technical book, I would read a page, read a paragraph, and I would pause. I would go to this mode of thinking, and then I would start thinking about, how this applies to what we do as programmers. How this applies to what we do as computer people.
Those times I spent thinking critically builds a story, builds a relationship in my mind. I don’t prepare for talks honestly. I actually don’t anymore. Not because I’m good. It’s because I like a bit of spontaneity in what I do.
In a way, a lot of these talks create themselves in the middle of the talk because a lot of these other things I’ve read or thought about or thinking about it in a train ride or a bus ride or Uber drive, those things get into your subconscious mind. Then, when I’m in the middle of the talk, it immediately comes out to give a relevant metaphor or a relevant story from the past, from the history. I think, that’s very fascinating.
That also not only makes the talks more entertaining, but it also gives a basis for…here we’re not living in an isolation as a programmer. It’s a human activity and we need to be cognizant about that.
You do have a way of making a lot of your points relatable to the entire audience. That’s one thing I’ve always admired, that you do exactly that. It’s clear that you’re drawing upon all these different things.
It is something that really roots the concepts much better in my mind. I’m not a visual person in drawing pictures, but I’m a very imaginative person in my mind. I try to come up with these metaphors, the stories and how these relate to.
I think these things help us to not only retain the concepts a little bit better it, I think, uses a motivation to say, "Here are the reasons I should change the way I code," or, "Here are the reasons I should maybe go write more automated test," or "Here are the reasons why I should go learn this other language." I think it gives a context for us to go and do.
In a lot of ways, computer programming concepts are like vegetables. You go to children and say, "Eat the vegetables." No child is interested in eating it. When I learn concepts, the concepts of vegetables to me, and when I teach the concepts, they are vegetables to other people. If I don’t spice it up or make it flavorful, it’s not going to fly.
For myself, first of all, if I am not excited in learning, I’m not going to be excited in teaching this. That’s what I try to do when I come across these concepts is to go back and say, "How do these things relate, what is the motivation for doing this?" Then, driving on those motivation to go back and build these examples, build these analogies, build this metaphor.
One of the things about extreme programming itself is it does say we should rely on metaphors. I think it’s only natural that we do it. It just really helps us to relate to these ideas and to really make use of them in the long run.
We’re the story society. As a people we respond to stories more than facts and things in the world. It’s how we’re all wired…Actually I got distracted by that. I’m going to cut this out.
Build up on the last part I would say. Stories are what drives us.
I’ve always felt that we’re story society. We respond to stories more than we respond to facts and figures. My talk today and I acquired one of the points in the bath tonight about…If you want to be persuasive, you need to dramatize your ideas. It’s the same thing in the magic. It’s the same thing in everything.
As a performer doing magic, what I think about and what I don’t think about, the magic in this vacuum of — this is the effect and this is what happens — this happens, and this happens, and this happens. I think of it as this is the story somebody is going to be telling a year from now. It didn’t occur to me. It took years for that to occur to me.
It was until I realize this that was happening over and over again that people come up to me and they would say, "Oh, I saw a magician once and they tell this grandiose story from 10 years ago about this miracle that they witnessed." I remember the day that they’ve done that and it was almost depressing that I’m the story somebody’s going to be telling in 10 years so I better be a good story.
That was really when I first started to think about how much stories play part in our lives.
If you want people to listen and to react, you have to tell a compelling story. Whether you’re presenting an idea, whether you’re presenting a framework to your team, whether you’re presenting an architecture to management, whether you’re doing anything at all, this is just how we’re wired. It’s how we respond.
I use a lot of storytelling in my talks. That’s the big tool that I use a lot of. It keeps people engaged because nobody wants to hear a lecture, but everybody wants to hear a story.
[laughs] I couldn’t agree more. One of things that I come to realize is when…I admire lot of people who are out there, some of them thankfully are my friends, but I learn, I derive inspiration from them. I always say that some of the people I admire the most have completely different style of speaking between each other.
I admire the way they present, the way they communicate, the way they carried themselves around. Then you listen to people who are not really good at presenting, they’re trying, they’re learning. One of the clear distinctions between the two is exactly what you’ve said. One can deliver the technical ideas, but with the good story in it.
Whereas the other one is trying to lay the facts down and in the process everybody loses interest in hearing it. Storytelling is extremely important in that regard I couldn’t agree more. There are two things to consider when it comes to that. The first is the material you’re presenting is not often unique. There is most likely hundreds of people who can talk about it than you do.
The question you should ask is, what makes you the presenter that’s unique at that moment? That’s your story. When I come to listen to you, I want to hear about you in addition to the talk you’re giving, because I can read about design patterns in 70,000 books.
I can listen to it in 3,000 videos, but when you talk about patterns, I want to know your story, your struggles, how you got pulled into it, how you came out of it or maybe didn’t, sometimes that happens too, so that I can learn from your stories, and either repeat successes or avoid the failures.
That’s one reason. It’s you, the presenter in the talk is important. But also, one of the things that I often think about is, I want to hear the story but not a tale. This is where sometimes you take a story, but the speaker has gone on to tell a tale about it.
There is a point of diminishing return. You have no story, you don’t have a good talk. You got a story, the talk gets better. The story turns into a tale, the audience are no longer interested.
I’ve spent a lot of time trying to fine-tune that.
Yeah. That takes a bit of a practice, I think. This is where I think that stories we tell have to be extremely crisp. They got to drive the home, not take the focus away from the technical detail, but to be on the side so that it supports.
I think the vegetable idea…metaphor works really well here. Feed the vegetable, people are not interested in eating. Eat the vegetable with a good amount of spice, people are interested in eating it.
Almost take the vegetable metaphor further but go on, finish that thought.
Increase the spices to the extent where the spice takes over, the vegetable is no longer the dominant. We’re not interested in having that meal anymore. It actually becomes a burden to have the meal and something we begin to hate.
I think that applies the right degree of the story before it turns into tale is something we should practice and get better at as a speaker, as a communicator. This applies to almost everything. It doesn’t have to be a technical talk in front of an audience, could be where you’re trying to convince a team to adopt a particular design. I think that story not turning into a tale is very important.
I think it’s worth mentioning that, OK, we’re professional presenter, speakers. I think it’s easy for somebody who’s listening right now to say, "Well, this doesn’t really apply to me. I’m not giving presentations. I’m not giving technical talks."
But I think absolutely having basic presentation skills, basic speaking skills are vital to be successful and competitive in life. You may not be on the stage like you said but you are speaking all the time. You are persuading all the time.
I think that’s a key. The word persuasion, I really like it. Because that’s what you’re doing. You are persuading your family. You’re persuading your boss. You’re persuading your driver to get you to the place where you need to get on time.
You’re persuading your colleagues to accept your design, ideas or persuading your colleagues to take on a slightly different approach than what they are trying to persuade you.
This one thing, as programmers I think we tend to lack on a little bit and we need to work on is we often get frustrated that others are not convinced of our ideas but why would they be convinced of our ideas if we have not taken the time to actually convince them?
I think we need to do our share to persuade them, convince them. That’s where the communication becomes really important.
I actually do an entire talk on this subject with the influential engineer we talked about. The key points of persuasion. The point that I make is we’re very good at making a logical argument. We’re engineers. We think about these things in certain way. We can logically prove that this is the right direction to go but people aren’t logical.
I will say that it’s not enough to have a good case. Success actually goes to those who make the good case well.
It’s very interesting you mention it because this is been my maturity process, my learning process. I work with engineers. I work with technical people. When you and I sit down, you and I can talk about facts. I can tell you, "Michael, that doesn’t make sense. Here are the reasons for it."
You could say, "Venkat, no, no way. Here’s the reason why. Think about this," and you can present the ideas with me. But there are things in life where the logic doesn’t matter, in all honesty. There are times in life when you do want to go often do things because it feels good, because it doesn’t matter.
Having that ability to wear that logic hat on our heads, and having the ability to remove that logic hat and say, "Here is when emotion needs to be listened to and not logic" I think makes us as better people in the society as well. Then, only focus on facts and logic.
I think, overall, that can make us even a better developer because when we come back we realize it’s not always about facts and logic we have to worry about. There are times when you want to compromise. Design has aesthetics, for example. Sometimes we have to really accommodate that, I think. Sorry, go ahead.
No. I think you’re absolutely right. The truth is, to be a really effective software engineer, to be a really effective developer, sometimes facts don’t matter at all.
Because if you’re looking at the software from the perspective of the user, feelings are facts, and if they feel that it’s lower, they feel that it doesn’t work, then it doesn’t work. It doesn’t matter if it does or not.
Having that perspective, understanding, I love that expression that feelings are facts because to another person they are. This goes back to what you were saying in the beginning about learning things that don’t even have any direct benefit.
We get asked a lot on the panel discussion, for example, what should I be learning next? Maybe, the answer should be whatever you want because truthfully everything you learn builds a platform for everything else that you learn.
We could even look at it as three parts. One is learn what is relevant to your work.
Because that’s important. That has a place.
That’s important. I’m already using this tool, but I want to get better at it. One-third of my learning should be what I need today, tomorrow, the day after, the next month. The second part of learning is something a little bit related but a little outside.
I’m going to go learn about this other technology people are talking about. That’s the other second one-third. Something still in your area, but it may not be directly what you’re working on but something could be become relevant.
The other one-third, go out and think completely wild. Learn something that has no direct impact on what you’re doing.
I almost guarantee that it will, that it will actually have a direct impact on what you’re doing.
It just takes time. The funny thing, a lot of talks that I do, I talk about…I draw again and again my experience as a magician, as a performer that there are so many skills that I learned in this completely tangential discipline that have made me a more effective software engineer.
I feel like we should take the time to pursue these things, have a curiosity about everything, learn everything. It sounds like that’s the approach that you’ve taken. Going back to one other point you made, you said that part of the skills that presenter is you and your well-roundness, as a person, is what drives that.
I remember going back to the magic years and years ago, there were two things that mattered in my world, magic and computers. That was it. That was my entire world. I took a master class. I went to Las Vegas, and I sat down with one of the masters, and I took this master class.
He was talking about making your performance more about you instead of just about a handful of tricks that you’re stringing together. He says, "All right. In one column, list all the tricks that you perform, all your routines, pieces, whatever you want to call them, illusions. Everybody knows what I mean when I say tricks. Write down that list."
I wrote down that list. I’m like, "OK, I got this." I made this nice long list of everything I’ve learned, everything I can perform competently.
Then, on the other side, he said, "Write down a list of everything that you’re passionate about, everything that you’re interested in, everything that’s part of you. I wrote down magic and computers. Everybody else is writing all these things down, and I was looking at them.
It was the first time I realized that I needed more, that this is not a whole life. The exercise was to draw a line just randomly from one thing to the other, and just as a creativity exercise make that magic trick about that thing, that passion. I couldn’t do it. It was a really depressing time.
I stopped for a little while, and I started exploring all these other things. Now, I have all these things that I’ve pursued, and they’ve all made me better at everything. Sometimes, it takes time. Just really inspired hearing about your journey and your approach to all these things.
I love hearing your stories as well. So that makes for a wonderful conversation. Thank you for that.
Is there anything you want to close with, any other parting bits of wisdom?
The only thing I would say is I look back at where I came from, and I see other people taking that journey. I always say, "If I can do it, others can more easily do it." I came from a background where my future was not certain. My future was extremely bleak.
One thing that made a difference, I can tell I’m not the smartest person in the world. I am definitely not. In several ways, I can say there’s a lot of things I don’t have, but I can definitely say with…
In fact, let me put it this way, sometimes you hear about yourself from other people that confirms about you. Last week, I accidentally ran into somebody from my past. Somebody I had not seen in decades.
Sitting down with this person, pure by accident, and we just started chatting about the past and where we came from. Then, I suddenly blurted out. We were talking about families and what children are doing.
Then, I finally said, "You know what? If I did it, I’m sure everybody else can do it." Then, quickly he said, "Don’t make less of it because I know you, I’ve seen you. You worked hard for what you did." That’s one thing I can definitely say for what I did, is the hard work.
Things did not come to me easily. Things did not fall on my way, but everything I did I worked really hard. I continue to work very hard every day. That’s probably the only thing I value.
When I was a child, my mom always told me one thing and I remember it even today. She said, "Don’t worry about the results. Just focus on putting the effort. You will get the result one day." I work hard today, and I can say that her words did not waste. I think working hard, there’s no compromise for it.
Even today, I wake up in the mornings, go through my presentations. If I’m going to a client project, I’ll sit there and work for a little bit of time. Getting prepared in my mind towards what’s the day’s work? And thinking about what we’re going to do before we go on to do it.
Setting that context and then realizing there is stuff you need to do. Waking up three, four, five hours earlier and then doing your work. That, I don’t think there’s a compromise for. I’m getting older, but I spend nights, I spend early mornings. I would work six, seven hours before I show up to work.
When I come in, I get things done, but not because I’m smart. It’s because I spend the time working hard. That’s what I would say. Let’s spend the time. Let’s work hard. You’re not going to get results if you don’t put in the effort.
Somebody once said, "Smart and a buck fifty will get you a cup of coffee." Lots of people are born with great potential, great gifts, whatever, but nobody wants the epitaph on their gravestone saying, "Had lots of potential." Potential, smarts, all these things are worthless if you’re not putting the work into using it.
That’s a beautiful way to say it, you’re right.
Well, I really want to thank you for your time and for your wisdom, in sharing these things.
This has definitely been inspiring for me. I look forward to spend more time with you in the future.
Thanks you, pleasure.
At No Fluff, Just Stuff, we bring the best technologists to you on a road show format. Early bird discounts are available for the season. Check out the entire show lineup and tour dates at nofluffjuststuff.com. I’m your host, Michael Carducci. Thanks for listening, and stay subscribed.