(00:00:00):
Hey, everybody.
(00:00:00):
Welcome back.
(00:00:01):
This is Jim Grisanzio from Oracle Java Developer Relations.
(00:00:04):
And we’re back here on Duke’s Corner, where we chat about Java and the community.
(00:00:09):
And I’m here tonight with Jean Boyarsky from New York.
(00:00:12):
Jean, how are you doing?
(00:00:13):
Hi, Jim.
(00:00:14):
Welcome.
(00:00:15):
Welcome.
(00:00:15):
It’s good to see you.
(00:00:16):
We met for the first time at Java 1 in Las Vegas last year.
(00:00:22):
That was fun.
(00:00:24):
Yeah, it was a great trip.
(00:00:26):
Yeah, exactly.
(00:00:27):
Exactly.
(00:00:28):
I thought it was, you know, it just had a different feel from San Francisco.
(00:00:33):
So, yeah.
(00:00:34):
And so let’s just start with who you are and where you are and what you do.
(00:00:38):
What’s going on?
(00:00:39):
Sure.
(00:00:39):
I live in New York City where it’s morning.
(00:00:41):
I’m just getting started for my day here.
(00:00:44):
I am a Java developer.
(00:00:45):
I’ve been doing that for just over 20 years.
(00:00:48):
I’ve worked on a variety of things like web apps, DevSecOps type automation and things like that.
(00:00:54):
And I am also a published author.
(00:00:56):
I’ve written eight Java certification books ranging from Java 8 to Java 17 and
(00:01:01):
hopefully Java 21 when the cert comes out.
(00:01:03):
Wow, interesting.
(00:01:04):
So 20 years.
(00:01:04):
So you’ve really seen most of the evolution of Java, because Java is, I guess, 28 years old or so now.
(00:01:10):
Yeah, I remember doing a presentation at work on regular expressions, which were introduced in Java 1.4.
(00:01:16):
I will grant you,
(00:01:17):
we were not an early adopter,
(00:01:18):
so I had a little bit of time before I did it,
(00:01:20):
but that was a long time ago.
(00:01:22):
Yeah.
(00:01:23):
Yeah.
(00:01:23):
So how has it evolved?
(00:01:25):
I mean, that’s a long time of evolution for a technology.
(00:01:28):
And, you know, technology has come and go, but Java certainly has stayed and grown.
(00:01:33):
So what’s the evolution been like for you?
(00:01:36):
There’s been a steady stream of new features over the years, and some are more significant than others.
(00:01:40):
So in Java 5, we had for each loop, which is awesome.
(00:01:44):
In Java 8, we had streams.
(00:01:46):
In Java 11, we had more features.
(00:01:48):
Java 21, we have virtual threads coming out.
(00:01:52):
And those big things are sort of like anchor points where you can look at the code
(00:01:56):
and see if it was written before or after that feature.
(00:01:59):
which is pretty cool, but also the ecosystem evolved, right?
(00:02:02):
Spring either wasn’t a thing or wasn’t widely prevalent 20 years ago.
(00:02:06):
And now you could hardly think of not considering it for your application,
(00:02:10):
whether you choose to use it or not.
(00:02:11):
Quarkus wasn’t even a dream then.
(00:02:13):
So it’s really cool seeing the evolution of the language, but also the ecosystem.
(00:02:18):
And then there’s the stuff that people have invented multiple times, right?
(00:02:22):
Like there was EJB1, shiver.
(00:02:25):
There was EJB3, you know, that was fine.
(00:02:27):
Then there was Spring.
(00:02:28):
And it’s nice seeing that that take place over time as well,
(00:02:31):
matching the technology and what’s current and also what’s possible.
(00:02:35):
The hardware of 20 years ago wasn’t capable of doing what the hardware of today does without a thought.
(00:02:40):
Yeah, so hardware, but also the tools you mentioned.
(00:02:42):
I mean, what’s it like being a developer now versus then?
(00:02:45):
I mean, this is a question.
(00:02:46):
Yeah, I remember my first day at work, I had to install IBM VAJ.
(00:02:50):
I had no idea how to use it and it wasn’t intuitive, but that was what everyone was using at the time.
(00:02:56):
And I remember being so excited when we got to use Eclipse because that made sense to me.
(00:03:00):
So has it changed your thinking about how you code now versus then in terms of the tools that you use?
(00:03:07):
The tools, yes.
(00:03:08):
It’s so much easier to refactor.
(00:03:10):
You don’t have to sit there of, well, should I plan to do some refactoring?
(00:03:13):
You can just do it while you’re working.
(00:03:15):
Similarly, TDD wasn’t really a thing 20 years ago.
(00:03:18):
JUnit was, but you had to argue with people to convince them that it was worth doing.
(00:03:22):
At this point, people talk about what their code coverage is, not whether there should be code coverage.
(00:03:28):
And I think seeing the ecosystem mature in that way is helpful as well.
(00:03:32):
And on the Agile front, too, XP was a thing 20 years ago.
(00:03:36):
Now people are doing Scrum and Kanban and other technologies.
(00:03:39):
And there are pieces of it that still stand, right?
(00:03:42):
Pair programming retrospectives have been around as long as I can remember.
(00:03:46):
But there’s other pieces where nobody would use the word product owner 20 years ago.
(00:03:50):
So it’s not just Java.
(00:03:51):
It’s the whole ecosystem we exist in that’s changed a lot over 20 years.
(00:03:55):
Is it something like in terms of learning to be a coder,
(00:03:59):
an engineer,
(00:04:00):
is that something that,
(00:04:02):
well,
(00:04:03):
actually,
(00:04:03):
I guess two questions.
(00:04:04):
Why did you become an engineer?
(00:04:06):
And is it easier now to do that versus then because of the ecosystem has changed so much?
(00:04:13):
I’m going to say yes,
(00:04:14):
definitely easier now because I didn’t have home internet when I was learning how
(00:04:17):
to program,
(00:04:18):
which puts the damper on things.
(00:04:20):
We also didn’t have Stack Overflow, but I have a fun story as to why I’m a programmer.
(00:04:25):
When I was five,
(00:04:26):
we took a trip through Boston and they had a children’s museum and a computer
(00:04:30):
museum in the same building.
(00:04:31):
They had this discount thing where you could get a free ticket to the computer
(00:04:34):
museum if you bought a ticket to the children’s museum.
(00:04:37):
So my parents were like, all right, we’ll do that.
(00:04:39):
We’ll walk through the computer museum briefly and then we’ll go to the children’s museum.
(00:04:43):
And I wouldn’t let them leave.
(00:04:45):
I asked about what every little thing was and I wanted to play with it.
(00:04:48):
And then they had to buy a ticket to the Children’s Museum for a second day because we never got there.
(00:04:52):
And then we went back every year until it closed when I was 13.
(00:04:56):
But I remember asking my mom, what did we do there?
(00:04:59):
Because there’s nothing you can do in that museum without being able to read.
(00:05:02):
And her answer was, you drove us crazy.
(00:05:04):
You asked what every little thing was.
(00:05:06):
You made us read to you and you insisted you were going to do things that were too
(00:05:09):
hard for a kindergartner.
(00:05:10):
Wow.
(00:05:11):
As long as I can remember, computers have been awesome and I wanted to do something in computers.
(00:05:16):
And then when I was 12, I went to computer camp where you could program in C++.
(00:05:20):
It was like a game.
(00:05:21):
You got to solve problems and you got the satisfaction of seeing it working.
(00:05:26):
And that’s when I knew I wanted to be a computer programmer when I grew up.
(00:05:29):
Wow.
(00:05:30):
See, I struggled through my C++ class and you thought it was a game.
(00:05:33):
What a distinction.
(00:05:34):
Wow, that’s amazing.
(00:05:36):
I will grant you what we were writing was a little easier than what we did in
(00:05:38):
college because we were 12.
(00:05:40):
Sure.
(00:05:40):
But struggling through it and getting it to work was so satisfying.
(00:05:44):
Actually, you know, I’m with you on that.
(00:05:46):
It was it was very nice to have it actually run.
(00:05:49):
It was actually work.
(00:05:50):
But my programs were long and convoluted.
(00:05:52):
And my friends sitting next to me, they’re nice and tight.
(00:05:55):
And it just it was a lot better, you know.
(00:05:57):
So that’s really cool.
(00:05:58):
You knew when you were a little kid.
(00:06:00):
That’s amazing.
(00:06:00):
I didn’t know.
(00:06:01):
You know what?
(00:06:02):
I just knew computers were cool and fun and I wanted to do something with them.
(00:06:05):
But when I was five,
(00:06:06):
I wanted to do computers in the sense that people want to be a pilot or a firefighter.
(00:06:10):
Right.
(00:06:11):
It’s not overly fleshed out.
(00:06:13):
Once I was 12, I think I knew this is what I want to do.
(00:06:16):
So you went to college for August.
(00:06:17):
Yeah, I went to college for computer science and I fell into Java and my second internship was in Java.
(00:06:23):
My first job was in Java.
(00:06:24):
And then after that, it just started deepening my skill set.
(00:06:27):
So is that your primary language that you’re programming is in Java?
(00:06:30):
Yes.
(00:06:31):
Okay.
(00:06:31):
So you love computers.
(00:06:33):
What about the concept of solving problems and getting very,
(00:06:38):
very deeply into the math and just the technology itself?
(00:06:44):
Is that something that also came natural to you?
(00:06:46):
Well,
(00:06:47):
I’ve always liked math,
(00:06:48):
but the computer programming that I do for work doesn’t tend to involve a lot of math.
(00:06:53):
Really?
(00:06:53):
Although I volunteer mentoring a high school robotics team, and their programming involves a ton of math.
(00:06:59):
I had to relearn polar coordinates from high school when I started doing that,
(00:07:02):
which was funny because a kid referenced them,
(00:07:04):
and I asked to explain it.
(00:07:05):
And he goes, don’t you know that?
(00:07:06):
You learned it in high school.
(00:07:07):
I’m like, I did.
(00:07:09):
And the last time I touched it was in high school.
(00:07:11):
High school.
(00:07:12):
But now I’ve seen it more regularly, so I haven’t forgotten.
(00:07:15):
So definitely more math there.
(00:07:16):
But I’ve liked math.
(00:07:17):
Math has never been scary.
(00:07:19):
But I like computers.
(00:07:20):
OK.
(00:07:21):
Well,
(00:07:21):
so along with the technology evolving and along with the ecosystem evolving as well,
(00:07:26):
there’s the community.
(00:07:27):
Back when Java started, there was obviously no community.
(00:07:30):
And it grew to something massive now.
(00:07:33):
And you’ve been involved all along the way.
(00:07:35):
So let’s talk a little bit about the community, how you interact with the community.
(00:07:39):
It’s grown.
(00:07:40):
You’re obviously a Java champion, which
(00:07:42):
basically a community within a community.
(00:07:44):
And then there’s user groups all over the world and things like that.
(00:07:47):
The New York user group is one of the oldest ones.
(00:07:50):
So for me, there’s a user group pretty much as long as I can remember.
(00:07:54):
But for other things, I do remember the evolution.
(00:07:57):
I started answering questions in my free time at a website
(00:08:01):
Maybe J. Guru.
(00:08:02):
I don’t remember.
(00:08:02):
It was so long ago.
(00:08:03):
It might have been something else.
(00:08:04):
And then I started on Code Ranch.
(00:08:06):
And I like Code Ranch better because Code Ranch has the byline, a friendly place for Java greenhorns.
(00:08:12):
And I really like that philosophy for the same reason I like writing books and mentoring people.
(00:08:16):
You get to teach and you get to help people through those problems.
(00:08:19):
So Code Ranch has people who are brand new to Java and people who have been doing
(00:08:23):
it a long time all answering questions.
(00:08:25):
But the spirit of the answer is,
(00:08:27):
you know,
(00:08:27):
we’re going to work together and we’re going to help with this.
(00:08:30):
Sometimes on Stack Overflow,
(00:08:32):
there’s unwritten rules and it’s like I said something wrong and I don’t know what
(00:08:36):
it is.
(00:08:36):
And now my thing is downvoted.
(00:08:37):
I don’t know what to make of that.
(00:08:39):
And Code Ranch took the opposite approach.
(00:08:42):
We’re going to coach you on this.
(00:08:43):
We may tell you you have to rewrite your post because it breaks some rule,
(00:08:47):
but you’re going to know what the rule was so that you can fix it.
(00:08:50):
And I spent a lot of time on the Code Ranch forums helping people and answering questions.
(00:08:54):
So there’s definitely community there.
(00:08:56):
And then when I started going speaking to conferences,
(00:08:59):
I met people outside my area,
(00:09:00):
and that was cool as well in terms of community.
(00:09:02):
So when did Code Ranch start?
(00:09:04):
A long time ago.
(00:09:06):
No, it’s probably like 15, 20 years ago.
(00:09:08):
Oh, okay.
(00:09:08):
Okay.
(00:09:09):
I was not involved in it from the beginning.
(00:09:11):
Okay.
(00:09:11):
So I don’t remember how old it is off the top of my head,
(00:09:13):
but I’ve been involved in it for at least 14 years.
(00:09:16):
Okay.
(00:09:16):
So CodeVenture is like, it’s like a stack overflow sort of.
(00:09:19):
It is, but it’s a forum instead of a pure Q&A service.
(00:09:23):
And that’s where the discussions come in.
(00:09:25):
So you do presentations and conferences and things like that?
(00:09:30):
Yeah, I try to present two or three times a year publicly.
(00:09:33):
So what do you primarily present on?
(00:09:35):
What do you focus on in terms of your public presentations in terms of the technology?
(00:09:40):
It’s mainly core Java.
(00:09:42):
So I’ll do things about the certs or Java idioms or do you know.
(00:09:45):
But I have a few others.
(00:09:46):
I did one on regular expressions last year.
(00:09:48):
I did one on continuous integration tools in Docker as a hands-on lab at Oracle Code One many years ago.
(00:09:57):
I would never do that again, expecting people to have stuff installed on their machines.
(00:10:01):
It did not go well.
(00:10:02):
That was a little overwhelming.
(00:10:03):
I’ve presented on Agile, so a number of topics.
(00:10:06):
MARK MANDELMANN- So what about contribute?
(00:10:09):
Well,
(00:10:09):
actually,
(00:10:09):
let’s just go back to the community a little bit in terms of Java Champions,
(00:10:14):
which is a group that I’ve been a little involved in recently through Oracle.
(00:10:19):
Obviously, it’s a, you know, it’s a community of almost, it’s about 400 people right about now.
(00:10:24):
What’s that like?
(00:10:25):
How did you, you know, you had to become nominated and voted upon and things like that.
(00:10:30):
So talk a little bit about the process and about that community specifically.
(00:10:34):
Well, the process is someone nominates you.
(00:10:37):
So you don’t know that much about the process until after you’re a Java champion.
(00:10:41):
But I was nominated by Victor, who’s one of the New York people.
(00:10:44):
And it was interesting because we were at a conference,
(00:10:47):
and he goes to me,
(00:10:48):
why aren’t you a Java champion?
(00:10:49):
I don’t even know the process for becoming a Java champion.
(00:10:53):
And then he actually nominated me.
(00:10:55):
And then you find out later, someone seconds it, and people vote on you, and then you’re in.
(00:10:59):
But what’s really interesting about it is when you become a Java champion and you
(00:11:03):
look at the names on there,
(00:11:04):
it’s like,
(00:11:05):
wow,
(00:11:05):
all of those people are really impressive,
(00:11:07):
and I’m one of them.
(00:11:08):
That’s cool.
(00:11:09):
It was also interesting how I found out, because sometimes you just find out on Twitter.
(00:11:17):
But sometimes the people in your community locally try to make it special if
(00:11:21):
there’s an opportunity to announce it.
(00:11:23):
We’ve announced numerous people at the New York Java User Group.
(00:11:26):
I got announced on the stage at QCon New York.
(00:11:28):
The timing happened to work out for that, and I was a track lead, so I was on the stage anyway.
(00:11:33):
They announced it right before I did my announcements.
(00:11:36):
Luckily,
(00:11:36):
Victor gave me a heads up so that I wasn’t standing there with my head spinning
(00:11:40):
while I was supposed to be announcing my track.
(00:11:42):
But it was really cool having it announced in front of friends and people I knew
(00:11:46):
and have it on the Internet.
(00:11:47):
That’s interesting you say that because I was always wondered because I sort of
(00:11:50):
facilitate the process on email in terms of the voting and everything.
(00:11:53):
I send the emails out and,
(00:11:55):
you know,
(00:11:55):
the applications come in and I just,
(00:11:57):
I wondered,
(00:11:58):
you know,
(00:11:58):
is the person actually aware this is happening?
(00:12:00):
You know, I never asked anybody.
(00:12:02):
There’s nothing to stop someone from telling them,
(00:12:04):
but I get the feeling people generally don’t because if you’re voted down,
(00:12:07):
it’s a little awkward to know you’re considered and didn’t get it.
(00:12:10):
Yeah.
(00:12:11):
I didn’t know until Victor told me they were announcing it tomorrow because the
(00:12:15):
only conversation we had about it is,
(00:12:17):
so why aren’t you a Java champion?
(00:12:18):
I don’t know.
(00:12:19):
That wasn’t particularly memorable.
(00:12:22):
But also you don’t need to tell the person because if you can’t provide enough
(00:12:26):
evidence of what they’re doing in the community without asking them,
(00:12:28):
they’re clearly not ready yet.
(00:12:30):
Yeah.
(00:12:30):
Some of the applications are very impressive.
(00:12:32):
They’ve got like a hundred links in there, you know, to various things that they’ve done.
(00:12:36):
Tutorials, videos, conferences, books, things like that.
(00:12:39):
Yeah.
(00:12:40):
So what’s the community like?
(00:12:41):
So there’s a mailing list.
(00:12:44):
We use it for nominations, but also for things that get discussed.
(00:12:47):
And also when you go to conferences or when you’re on Twitter or Mastodon,
(00:12:51):
you have that connection to,
(00:12:53):
oh,
(00:12:53):
okay,
(00:12:54):
that person isn’t a stranger.
(00:12:55):
They’re a fellow Java champion.
(00:12:56):
Maybe you’ll recognize their name or their picture.
(00:12:58):
And there’s that networking that goes on.
(00:13:01):
And sometimes when people are visiting New York City,
(00:13:03):
they’ll reach out of,
(00:13:04):
oh,
(00:13:04):
I saw that you were in New York City.
(00:13:05):
Do you want to meet up?
(00:13:06):
So in terms of the community dynamic, is that something you, it sounds like something you really enjoy.
(00:13:11):
Obviously you’re out there and stuff,
(00:13:13):
but what’s it like in terms of,
(00:13:14):
you know,
(00:13:15):
the value of interacting with the community?
(00:13:17):
It’s really hard to quantify because a lot of the time it’s not useful and then it’s super useful.
(00:13:23):
And it’s just like, oh, I heard this fact in passing four times and now I need to use it.
(00:13:28):
The most useful time I can think of is when Log4j happened because there was an
(00:13:32):
extremely active discussion about it on the Java champion list.
(00:13:36):
And because Java champions are worldwide,
(00:13:39):
I would wake up and the people in Asia and Europe had summarized the happenings of
(00:13:43):
what I would call the night.
(00:13:44):
So I was able to get moving first thing in the morning rather than have to recreate
(00:13:47):
the research that everybody had been living for the past X hours.
(00:13:51):
That was super helpful.
(00:13:53):
I start work early,
(00:13:54):
but I was able to start work early and start doing things and not start with a
(00:13:57):
research project.
(00:13:58):
And someone was very helpful for those first couple of days,
(00:14:02):
provided a summary right before business hours on the East Coast.
(00:14:05):
It’s like, all right, y’all are awake now.
(00:14:06):
Here’s what you want to know.
(00:14:08):
like that was super cool and super helpful so like would you say the same same
(00:14:12):
dynamic exists with user groups and conferences as well just in terms of the
(00:14:16):
community interactions oh definitely yeah but conferences are localized in time not
(00:14:21):
in space you meet people from all over but they are localized in time right i
(00:14:25):
wouldn’t expect if there is a big security thing to happen tomorrow that i would
(00:14:29):
get a conference networking to help me with it but local community yes and
(00:14:33):
obviously the java champions exist over time
(00:14:36):
So what do you think about this concept of contribution?
(00:14:39):
I mean,
(00:14:40):
I talk a lot about communities and everything from code contributions to just
(00:14:46):
participating in a user group,
(00:14:47):
answering questions,
(00:14:48):
or even just going and being a seat there.
(00:14:51):
having hallway conversations.
(00:14:53):
To me,
(00:14:54):
the most important thing in the community is this concept of contribution,
(00:14:57):
because this is how you can distinguish yourself,
(00:15:00):
if that’s what you’re looking to do,
(00:15:01):
because your contribution is the real value.
(00:15:04):
That’s the signal and the noise.
(00:15:06):
And I find,
(00:15:07):
although communities can be very loud and noisy and maybe appear to be disorganized,
(00:15:12):
I find that the top people are always looking for people who are going to
(00:15:17):
contribute something of value.
(00:15:18):
Yes.
(00:15:19):
Right,
(00:15:19):
because all of these things are unpaid volunteer work,
(00:15:22):
so the people who contribute are how it gets done.
(00:15:24):
So that seems to be thriving in the job community.
(00:15:28):
I mean, it seems that there’s all kinds of contributions that go far beyond code.
(00:15:33):
Yeah, articles too, whether they’re blog posts or articles on a formal site like JobDev.
(00:15:37):
Yeah.
(00:15:38):
And blog posts and even just Twitter and even just,
(00:15:41):
you know,
(00:15:41):
Twitter interactions or X or Macedon or whatever you want or,
(00:15:45):
you know,
(00:15:45):
whatever platform you’re going to be using,
(00:15:46):
you know.
(00:15:47):
Interesting.
(00:15:47):
So what part of the Java technology is something that you value the most or use the
(00:15:55):
most or is the most innovative or.
(00:15:59):
I’m going to say streams.
(00:16:01):
I like streams for the same reason I like regular expressions.
(00:16:04):
You can write code that is concise and expressive.
(00:16:06):
And yes, I know I just said that about regular expressions.
(00:16:09):
I break mine up into variables so it’s English by the time you get to the regex.
(00:16:13):
But it’s the same idea with streams,
(00:16:15):
that you can have less code,
(00:16:17):
but it’s just as clear,
(00:16:18):
or if not more clear,
(00:16:19):
of what you’re doing.
(00:16:20):
And I also like that Streams makes it easy to parallelize.
(00:16:23):
I do a lot of things that involve calling REST APIs on COTS products,
(00:16:27):
and the REST APIs are often super granular,
(00:16:30):
which means your machine is sitting around waiting for I.O.
(00:16:32):
and network a lot,
(00:16:34):
which means parallelization helps because if I have to make 10 network calls and
(00:16:37):
I’m waiting on something to happen,
(00:16:39):
great.
(00:16:40):
And Streams makes that trivial.
(00:16:41):
You get it to work and then you change stream to parallel stream and all of a
(00:16:45):
sudden it’s multiple times faster.
(00:16:46):
In fact, I did that this morning.
(00:16:48):
And it happens often enough that I really appreciate the ease of doing that.
(00:16:52):
You do have to remember while you’re writing the code that you might make it
(00:16:54):
parallel later so that you don’t write a thread safety bug.
(00:16:58):
But knowing that and keeping it in mind makes it easy to do.
(00:17:01):
And I remember having to do that manually with executors before that and threads before that.
(00:17:05):
And those were both a lot of work.
(00:17:07):
So you were thinking about how to do the mechanics of it instead of what you were trying to accomplish.
(00:17:12):
With streams, you get to focus on what you’re trying to accomplish.
(00:17:15):
I also, in terms of newer features, I really, really, really, really like TextFox.
(00:17:19):
Explain that.
(00:17:20):
I like TextFox because you can keep your code together.
(00:17:24):
If you have a SQL statement or a little XML thing or an expected value in a JUnit test,
(00:17:29):
you can have it with the rest of the code and have it still be readable.
(00:17:33):
And I look at my older code and I see the SQL.
(00:17:36):
It’s like,
(00:17:36):
all right,
(00:17:37):
well,
(00:17:37):
the SQL is in a property file because I couldn’t put in the Java code because it
(00:17:40):
would be unreadable.
(00:17:41):
So now I look at the Java code.
(00:17:44):
Then I have to go on a treasure hunt to find the sequel.
(00:17:46):
And I read the sequel.
(00:17:46):
Then I go back to my other tab and forget what I was doing.
(00:17:49):
And that’s a lot of back and forth for no good reason.
(00:17:52):
I like that TextBlocks let me embed the code without having the formatting issues or the escaping issues.
(00:17:57):
And that allows it to happen.
(00:17:59):
So it seems like just listening to you talk about
(00:18:03):
not only how you became an engineer,
(00:18:06):
you were interested,
(00:18:07):
you know,
(00:18:07):
actually when you were a kid,
(00:18:09):
went to school and some of the things you like in Java and some of the things that
(00:18:13):
you appreciate it.
(00:18:14):
And I’m trying to get a sense of what it takes to or how engineers think,
(00:18:20):
you know,
(00:18:20):
how they think about,
(00:18:21):
you know,
(00:18:22):
complex things,
(00:18:22):
because writing code is not,
(00:18:24):
you know,
(00:18:25):
it’s not a non-trivial thing.
(00:18:26):
And so it seems that you really value the quality of something, you know, the organization of something.
(00:18:33):
I think that’s because I like to compartmentalize.
(00:18:35):
Whether it’s time management or Java coding, you can only think of so many things at the same time.
(00:18:40):
So if I can minimize the number of things that I have to think about while doing something,
(00:18:44):
I can accomplish more.
(00:18:46):
And that’s why I like not having the SQL in a separate file.
(00:18:49):
It’s one less thing I need to think about.
(00:18:51):
And there’s never going to be a small number of things to think about.
(00:18:54):
As you mentioned, this is not a trivial thing.
(00:18:56):
We’re working on things that are inherently complex.
(00:18:58):
But there are pieces of them that don’t have to be complex.
(00:19:02):
And having those pieces be better makes it easier.
(00:19:05):
I see that sometimes I’ll get a new person and they’ll write code and the variable
(00:19:09):
names are terrible and it’s all one large method.
(00:19:11):
And when I ask about it, it’s like, well, it doesn’t matter, it works.
(00:19:13):
And then I then I watch them debug it and they spend hours trying to figure out how
(00:19:17):
this thing works because,
(00:19:19):
you know,
(00:19:20):
it does.
(00:19:20):
Well, it used to work right now that you have a problem.
(00:19:22):
It doesn’t work anymore.
(00:19:23):
But not realizing that pain wastes so much time.
(00:19:26):
That’s what I’m getting at.
(00:19:27):
I’ve always been interested in process improvement,
(00:19:29):
so I’ve always been looking for ways to optimize that sort of thing.
(00:19:32):
Yeah.
(00:19:33):
And I hear that from from almost every engineer I talk to.
(00:19:36):
And it’s just been it’s been something of a journey for me, too, because I’m just attracted to that.
(00:19:40):
You know,
(00:19:41):
I used to be in the construction business and engineers make sense to me,
(00:19:45):
even though the complexity is a bit beyond me.
(00:19:47):
You know, construction is a it’s a similar mindset, actually.
(00:19:51):
And so when I talk to engineers, they just make sense.
(00:19:54):
And this this seeking of organization to simplify the complexity because things are very, very complex.
(00:20:00):
And as you said, you can only keep so much in mind.
(00:20:03):
And also knowing what tools are available to you.
(00:20:05):
Like with my whole regular expression example,
(00:20:08):
when regular expressions were fairly new,
(00:20:09):
it was JavaScript for this.
(00:20:11):
But someone on my team shows me this, like, page and a half of validation code in JavaScript.
(00:20:17):
It wasn’t working.
(00:20:18):
It wasn’t really clear what it was supposed to do.
(00:20:19):
And she asks if I compare with her to help with it.
(00:20:22):
Okay.
(00:20:22):
What is it supposed to do?
(00:20:23):
And she tells me.
(00:20:24):
And
(00:20:25):
It was three lines.
(00:20:26):
It was three lines of a clear, regular expression.
(00:20:29):
So I rewrote it that way, and it works, and I get up because I think we’re done.
(00:20:32):
And she’s like, well, can you help me get my original working?
(00:20:34):
No, no.
(00:20:36):
The new one is fine.
(00:20:37):
We can add comments to it.
(00:20:38):
We can make it clearer to you, but no.
(00:20:41):
And she’s like, well, I don’t like regular expressions.
(00:20:43):
They’re hard to understand.
(00:20:44):
It’s like, we can add comments.
(00:20:45):
We can make it more readable,
(00:20:47):
but I’m not debugging this page and a half of code that doesn’t work for something
(00:20:50):
that could have been three lines.
(00:20:51):
Wow.
(00:20:52):
And it wasn’t three lines of Perl type code.
(00:20:54):
It was a really, really short, simple, regular expression.
(00:20:57):
So,
(00:20:57):
you know,
(00:20:58):
the fear of learning something new or the fear of the technology doesn’t always
(00:21:02):
help people because now they don’t know what they don’t know and they’re happy to
(00:21:05):
do things the old way and just suck up time.
(00:21:07):
So do you think that has to come naturally to people or is it easily learnable?
(00:21:12):
I think it’s interest and desire to learn.
(00:21:15):
You get some people who go to Java user groups and they’re reading the blog posts
(00:21:18):
and they’re reading the social media and they’re reading books or videos or however
(00:21:22):
they want to learn.
(00:21:22):
And those people don’t have that problem because they’re continually exposed to new ideas.
(00:21:27):
And then you have people who are in the field because they heard it paid well or
(00:21:31):
it’s a job and I learned everything I needed to in school and why should I ever
(00:21:35):
have to learn something again?
(00:21:36):
That’s not the way our industry works.
(00:21:38):
You heard the long list of things that happened over the last 20 years.
(00:21:41):
So if you’re relying on what you learned in school a long time ago, it’s stale and it’s inefficient.
(00:21:46):
And I think that’s some of how we get into this boat.
(00:21:49):
So how do you keep up with it all?
(00:21:51):
Some of it is helping other people.
(00:21:53):
When I’m answering questions on Code Ranch, I’m exposed to new ideas, but I do read regularly.
(00:21:57):
I make sure to read 10 technical books every year.
(00:21:59):
I read social media.
(00:22:01):
I interact with people at conferences.
(00:22:03):
So I am continually learning things.
(00:22:05):
And, you know, it’s interesting.
(00:22:07):
I want to.
(00:22:08):
But it’s not just the Java stuff.
(00:22:10):
When I volunteered at the high school, I learned the things that younger people are doing.
(00:22:13):
That’s how I learned about Slack.
(00:22:15):
It wasn’t until a few years after that that grownups were using Slack for things.
(00:22:19):
But when they said they were going to use Slack, I’m like, cool, what’s Slack?
(00:22:22):
And it was the same thing for Discord.
(00:22:24):
The first time I ever used Discord was for a robotics meeting.
(00:22:27):
And you hear the slang.
(00:22:29):
A lot of kids will use the phrase search it up, which I didn’t know what that meant the first time.
(00:22:33):
And then,
(00:22:34):
you know,
(00:22:34):
after a few years had passed,
(00:22:35):
I started hearing the younger people in the workplace doing the same thing.
(00:22:38):
So it’s kind of like early adopter for cultural stuff by working with the high schoolers.
(00:22:44):
Interesting.
(00:22:45):
So the young kids really actually affect you.
(00:22:47):
They actually influence you.
(00:22:48):
Yeah, learning definitely happens both ways.
(00:22:51):
I love how you said that because I’ve always said that, but no one’s ever repeated it.
(00:22:56):
And I said it unprompted.
(00:22:57):
How cool is that?
(00:22:58):
Yes, you did.
(00:22:58):
Absolutely.
(00:22:59):
Yeah,
(00:23:00):
because,
(00:23:00):
I mean,
(00:23:00):
I’ve always been fascinated with,
(00:23:03):
which is another reason why I’m interested in engineers and scientists in general,
(00:23:07):
basically,
(00:23:08):
is the learning process.
(00:23:09):
Because I always struggled when I was a kid learning.
(00:23:11):
I mentioned the C++ stuff, but, I mean, I struggled through math and chemistry and stuff like that.
(00:23:16):
But I actually was attracted to those subjects for some bizarre reason,
(00:23:20):
even though I struggled through them.
(00:23:22):
And now,
(00:23:23):
you know,
(00:23:23):
all these years later,
(00:23:24):
I’m fascinated with the concept of how humans learn things and how they go very,
(00:23:29):
very deeply into complex subjects and master them.
(00:23:33):
I’m interested in this concept of mastery, basically.
(00:23:36):
And engineers, you know, in general, master really, really hard things, to me, anyway.
(00:23:41):
Something I find really interesting with the learning is the younger kids,
(00:23:45):
the high schoolers,
(00:23:46):
and the entry-level people are often able to learn,
(00:23:49):
not always,
(00:23:49):
but often able to learn stuff way faster than people who have been doing it for a while.
(00:23:53):
But we who have been doing it for a while have things to anchor on,
(00:23:57):
so we have less things to learn because you can relate it to something you already know.
(00:24:02):
And those sort of cancel each other out that you get to the same end state of
(00:24:05):
knowledge at basically the same point.
(00:24:08):
But they went faster and did more brute force learning.
(00:24:11):
And we did, oh, that’s things like this other thing, except for these six things that are different.
(00:24:15):
I’m good.
(00:24:15):
And like I saw that early in my career with the people who are more experienced
(00:24:18):
than me,
(00:24:19):
but I didn’t realize what was happening.
(00:24:20):
I just noticed that they were taking all these illogical shortcuts and I had no
(00:24:23):
idea how they made those deductions.
(00:24:25):
And then when it started happening to me, it’s like, OK, I get this now.
(00:24:28):
We’re learning in a different way.
(00:24:30):
Is that learning in a different way inherent simply because of the age and the experience level?
(00:24:34):
I don’t think it’s age.
(00:24:35):
I think it’s experience.
(00:24:36):
Experience.
(00:24:37):
Okay.
(00:24:37):
Because I’ve worked with some career changers and they learn a lot more like the entry level folks do.
(00:24:43):
Interesting.
(00:24:43):
I’m just learning everything brute force because I don’t have those connections to make it.
(00:24:47):
There was one guy recently who was a little older than me and he was definitely
(00:24:51):
learning the same way the high schoolers and college students do.
(00:24:54):
Fascinating.
(00:24:55):
Yeah, I hadn’t thought about that.
(00:24:56):
Well, it seems like you’re interested in learning as well.
(00:24:59):
And that goes way back.
(00:25:01):
Yeah, I tutored when I was in high school.
(00:25:03):
I’ve always been interested in teaching people.
(00:25:06):
So you find that teaching actually helps you to learn as well?
(00:25:09):
Yes.
(00:25:10):
And it gives you the enjoyment of seeing other people learn.
(00:25:12):
That’s one of the reasons I always wanted to write a book, because it was like teaching at scale.
(00:25:16):
Oh, okay.
(00:25:17):
Yeah.
(00:25:18):
And what was that like writing a book?
(00:25:19):
I mean, that is at scale for certain.
(00:25:21):
I mean, how long did it take you to write?
(00:25:22):
Writing a book is a lot of work.
(00:25:24):
I knew that.
(00:25:24):
So I danced around it a long time.
(00:25:26):
I wrote reviews.
(00:25:27):
I contributed to someone else’s book.
(00:25:28):
And then when I had the opportunity,
(00:25:30):
I asked my friend Scott to co-author with me because I knew how much work we were
(00:25:33):
getting into.
(00:25:34):
And that definitely made it easier.
(00:25:36):
We balance each other really well.
(00:25:37):
We have different, you know, we have some strengths in common.
(00:25:39):
We both have developers, but we have a lot of different strengths.
(00:25:42):
And that definitely helps with the process.
(00:25:44):
My favorite is that Scott is really good at images.
(00:25:47):
The first book,
(00:25:47):
I would draw an image in PowerPoint or Visio,
(00:25:50):
and he would basically rewrite it because it wasn’t as good as he could make it.
(00:25:53):
And then I go, could I just give it to you like a paper drawing and take a picture?
(00:25:57):
Yeah, that’s fine.
(00:25:57):
Because if he’s remaking it anyway, there’s really no reason for me to make it.
(00:26:01):
And it’s easier for me to do it as a napkin drawing of like, all right, here’s what I want to look like.
(00:26:05):
Can you make this look nice?
(00:26:06):
And I’m very big on like the detail logistical stuff.
(00:26:09):
But it’s good that we have that because we both get to do the activities that we
(00:26:13):
like and the other person gets to do the activities we don’t like.
(00:26:16):
And the same thing happened on the book.
(00:26:18):
When we’re dividing up chapters,
(00:26:20):
we start out with,
(00:26:21):
are there any chapters you really,
(00:26:22):
really,
(00:26:23):
really want to do?
(00:26:24):
Or are there any chapters you really, really want the other person to do?
(00:26:27):
And we’ve both picked chapters on our really want to do list that were on the other
(00:26:30):
person’s I would really wish you would do this list.
(00:26:34):
That’s awesome.
(00:26:34):
You have to take the cert and you do have to know about these topics.
(00:26:38):
But for the writing part,
(00:26:39):
it’s good because you get to write about the parts you’re passionate about and the
(00:26:42):
other part just gets written.
(00:26:43):
It’s pretty cool.
(00:26:45):
Okay.
(00:26:45):
So is there anything that I haven’t asked you that I should have asked you?
(00:26:49):
Is there anything that we left out here?
(00:26:51):
Not really, although I would like to say something about open source.
(00:26:54):
Yeah.
(00:26:55):
I don’t contribute much to open source, but I have a tiny bit.
(00:26:58):
I’ve done some bug fixes over the years,
(00:27:00):
but I’ve also done documentation fixes and I want to encourage people to do those.
(00:27:04):
When you’re working on something, you’re reading docs online and then you notice a typo in it, right?
(00:27:09):
You could move on with your life or you could create a PR.
(00:27:12):
And it’s really nice to create the PR.
(00:27:14):
The people working on it appreciate it,
(00:27:15):
and it gets accepted really easily,
(00:27:17):
and you’ve made the thing better for other people.
(00:27:19):
Sometimes it’s English typos,
(00:27:21):
but sometimes it’s variable names,
(00:27:23):
or they put the wrong port number or whatever.
(00:27:24):
And I really like those because they’re easy to do.
(00:27:28):
I don’t do them during work because it’s not my job to create PRs for things,
(00:27:31):
but I’ll send myself a link at home and then that night I’ll create the PR.
(00:27:35):
And what’s awesome is documentation PRs are super easy because you don’t even have to pull the projects.
(00:27:40):
It’s a one file.
(00:27:41):
You get to just do it in the branch and directly create the PR.
(00:27:43):
So it winds up being five, 10 minutes of effort and making something better.
(00:27:47):
And you’re still contributing.
(00:27:48):
It’s in a minor way, but it’s easy and it benefits people.
(00:27:51):
Yeah, and it’s a part of the whole concept of community too, that contribution, you know.
(00:27:56):
Okay, so you’re really into learning.
(00:27:57):
You have contributed.
(00:27:58):
You’re obviously contributing to the community.
(00:28:01):
Is this field today something that you would recommend college kids get into?
(00:28:06):
Oh, absolutely.
(00:28:07):
Technology keeps changing.
(00:28:09):
We’ve been hearing about the so-called death of Java for 20 years.
(00:28:12):
Java is clearly alive and one of the most popular languages.
(00:28:15):
And we’ve also been hearing about the computer is going to generate all the code for over 20 years.
(00:28:21):
And I say over because I heard about it in 2019.
(00:28:26):
1999 when I was graduating high school, and I can’t imagine that was the first iteration of it.
(00:28:31):
But for a couple of years,
(00:28:32):
there’s a,
(00:28:33):
oh,
(00:28:33):
there’s this technology advance and the business people are going to generate the
(00:28:36):
code and we won’t need programmers anymore.
(00:28:38):
And, you know, here I sit with 21 years of experience.
(00:28:40):
And the reason that AI and Cogen and all of that aren’t going to replace the
(00:28:45):
programmers is the same reason that you have business analysts.
(00:28:48):
The business has not been able to write 100% non-ambiguous requirements since the dawn of time.
(00:28:54):
And I don’t see why we expect with AI that they’re suddenly going to have that skill.
(00:28:58):
And it’s hard.
(00:28:59):
It’s a different skill than the business.
(00:29:01):
It’s a skill we have as programmers that being super detailed and finding the edge
(00:29:04):
cases and saying,
(00:29:06):
you know,
(00:29:06):
I know you said X,
(00:29:07):
but you really want Y.
(00:29:08):
Is that right?
(00:29:09):
And the business is like, yes, I do.
(00:29:11):
Right.
(00:29:12):
There’s no way you’re going to get artificial intelligence or co-agents deal with that.
(00:29:15):
It’s going to give you what you asked for, whether you want it or not.
(00:29:18):
And it’s not going to realize that you omitted some information, right?
(00:29:21):
Like, oh, you know, years of 365 days.
(00:29:24):
Cool.
(00:29:25):
Well, what do you want to do for leap year?
(00:29:27):
Oh, right.
(00:29:28):
I need to have a requirement for that.
(00:29:29):
The computer is just going to do something and it probably isn’t going to be what you want.
(00:29:33):
So I definitely think people should get into technology, recognizing that it changes.
(00:29:38):
Right.
(00:29:38):
It’s changed over the last 20 years.
(00:29:40):
It’s going to change over the next 20 years.
(00:29:42):
And that’s OK.
(00:29:43):
Right.
(00:29:43):
We have more data science stuff now.
(00:29:45):
We have more stuff.
(00:29:46):
There’s going to be something else 20 years from now.
(00:29:48):
Who knows what it will be?
(00:29:50):
And as long as you like learning and change, this is totally fine.
(00:29:53):
OK,
(00:29:53):
so I asked the question in the context of a kid getting into computers or software
(00:29:58):
or whatever in college.
(00:30:00):
What about older people?
(00:30:02):
Older people?
(00:30:02):
Well, like, for instance, like exactly.
(00:30:05):
It’s like, you know, like you have like it’s a career change.
(00:30:07):
You know,
(00:30:08):
you’ve so you’ve had one or two different industries that you’ve been into and you
(00:30:12):
get laid off and,
(00:30:13):
you know,
(00:30:13):
you got a little money.
(00:30:14):
You can take a year off and you, you know, you’re going to retool yourself.
(00:30:18):
You’re 40, you’re 50, you know.
(00:30:18):
Yeah.
(00:30:21):
I think it’s definitely possible.
(00:30:22):
It’s harder for career changers.
(00:30:24):
I have less exposure to them, so I have less opinions on it.
(00:30:27):
But there’s definitely the whole,
(00:30:29):
well,
(00:30:29):
you’re competing with high school and college students that learn really fast.
(00:30:32):
And if you’re not going to be able to keep up, it’s going to be hard.
(00:30:35):
But the other thing is you do have experiences in something, right?
(00:30:39):
You can’t get to the age of 40 or 50 without knowing something.
(00:30:42):
So finding opportunities to link those things works.
(00:30:46):
If you can find a programming job in the domain you know a lot about,
(00:30:49):
those questions that I just asked,
(00:30:50):
you’re going to have them on day one.
(00:30:52):
You’re not going to have to wait until you have years of experience as a programmer to know what to ask.
(00:30:57):
So I think that’s the way to get into it, to take the things that you do know and add technology to them.
(00:31:02):
I mean,
(00:31:02):
it’s sort of what I was thinking in the sense of if you’re 50,
(00:31:05):
you’ve got 50 years of life experience,
(00:31:07):
you know,
(00:31:08):
certainly say 30 years of work experience,
(00:31:10):
you know,
(00:31:10):
that you’re bringing to the technology.
(00:31:12):
The technology might be brand new to you, but your thinking is different.
(00:31:15):
You’re not 20 or 18.
(00:31:16):
And that’s the making connections thing I was talking about earlier.
(00:31:19):
If you can finagle a way for you to be able to make connections with what you know,
(00:31:23):
you’re going to be successful.
(00:31:24):
In these conversations,
(00:31:25):
I’m always asking these questions primarily for me because I’m always thinking
(00:31:28):
about what I’m doing.
(00:31:32):
I mean, everything’s personal to me.
(00:31:33):
I’ve had 400 of these conversations.
(00:31:35):
I’ve done 400 interviews at Oracle since 2018 or so.
(00:31:39):
which is a bizarre thing for me to say,
(00:31:41):
because I mean,
(00:31:42):
I had a profound stutter up until I was like age 35 or so.
(00:31:46):
So like when I was younger,
(00:31:48):
this conversation could not have taken place,
(00:31:50):
because I would go into 40 different seizures.
(00:31:53):
And so that’s,
(00:31:53):
you know,
(00:31:53):
it gets back into like all my learning issues when I was younger,
(00:31:57):
you know,
(00:31:58):
that’s how I fell behind a lot.
(00:31:59):
So I was always sort of retooling myself.
(00:32:02):
And that, you know, stems from my interest in learning and changing.
(00:32:05):
I’ve worked in six different industries.
(00:32:08):
So I know what it’s like to jump.
(00:32:10):
I know what it’s like to go into a space,
(00:32:13):
be much older than everybody in there and have to work your way up.
(00:32:17):
I’ve done that multiple times.
(00:32:19):
But learning more coding is absolutely an avenue for someone like me.
(00:32:24):
Since I’ve already been in the business, I joined Sun and actually I joined 3Com in 98.
(00:32:29):
So I’ve been around for a while.
(00:32:31):
So that’s a little bit background on why I’ve asked you these types of questions.
(00:32:35):
And that’s why I enjoy having these conversations.
(00:32:37):
So it’s been a pleasure.
(00:32:39):
I’ve really had a good time.
(00:32:40):
Thank you very much.
(00:32:41):
If I’ve left anything else out, now is your opportunity.
(00:32:44):
Shoot it at me.
(00:32:45):
I think we’re good.
(00:32:46):
Okay, cool.
(00:32:47):
Jean, it was cool.
(00:32:48):
Talk to you soon.
(00:32:48):
Thanks.
