31-Sam-Brannen.txt

(00:00:00):
Hey, everybody, welcome back.

(00:00:01):
This is Jim Grisanzio from Java Developer Relations, and this is Duke’s Corner.

(00:00:06):
This is where we hang out once or twice a month talking to Java developers from around the world.

(00:00:11):
And we talk about the community,

(00:00:13):
we talk about the software,

(00:00:14):
we talk about open source contributions,

(00:00:17):
things like that.

(00:00:18):
Lots of fun.

(00:00:19):
It’s the only thing I love to do around here, so I take it pretty seriously.

(00:00:24):
So if you love math,

(00:00:25):
if you love solving puzzles and problems,

(00:00:27):
if you’re interested in creating really interesting new ideas,

(00:00:31):
new opportunities in software,

(00:00:33):
you’re going to love this conversation here with Sam Brannen.

(00:00:35):
He’s an American living in Europe, actually in Switzerland.

(00:00:40):
and talks about his whole evolution in Java.

(00:00:43):
So if you’re just getting involved in Java or if you’re in school,

(00:00:48):
he gives some advice to students and things like that,

(00:00:50):
which I think you’ll find helpful.

(00:00:52):
And yeah, it’s interesting to hear the history.

(00:00:54):
And it’s also really interesting to hear how passionate he is about going hardcore.

(00:01:00):
He loves to get down in the weeds.

(00:01:03):
He loves low-level stuff, which is great.

(00:01:07):
So that’s it.

(00:01:08):
More coming as usual.

(00:01:10):
Cheers.

(00:01:11):
Sam, Sam Brennan, welcome to Duke’s Corner.

(00:01:13):
How are you doing?

(00:01:14):
Good, good.

(00:01:15):
Thanks for having me.

(00:01:15):
It’s an honor to be here.

(00:01:16):
It’s great to meet you.

(00:01:18):
We’re meeting here for the first time.

(00:01:19):
You come highly recommended.

(00:01:20):
The last few guests I’ve had on the program, I’ve gotten through recommendations from others.

(00:01:25):
And so someone said I ought to chat with you.

(00:01:29):
So that’s why we’re here.

(00:01:30):
So I wanted to have a chat with you.

(00:01:31):
So tell me a little bit about yourself.

(00:01:34):
Who are you?

(00:01:34):
Where do you come from?

(00:01:35):
What do you do?

(00:01:35):
Well, I’m a programmer.

(00:01:37):
I’m a Java programmer.

(00:01:38):
I’ve been programming Java since like, or at least using it since like 1996 or so.

(00:01:43):
And I’ve probably most noted for my work on the Spring Framework and more recently on JNIT 5.

(00:01:48):
Okay, so let’s go back further.

(00:01:50):
Why did you become a developer?

(00:01:52):
Well, I like puzzles.

(00:01:54):
I’ve always liked puzzles, even as a young child.

(00:01:56):
I also liked math a lot.

(00:01:58):
We had a computer science course in school, in high school.

(00:02:01):
And when I went off to college, I was interested in

(00:02:04):
in fractals and math.

(00:02:05):
And I thought I might use computers to help solve some things in that area.

(00:02:09):
And then I just switched straight on to computer science.

(00:02:12):
I went to Georgia Tech,

(00:02:14):
Georgia Institute of Technology in Atlanta,

(00:02:15):
Georgia,

(00:02:16):
and got a degree in computer science.

(00:02:18):
Interesting.

(00:02:19):
Oh, a couple of things there, but you’re not in Atlanta now, right?

(00:02:21):
Nope, nope.

(00:02:22):
I live just outside Zurich,

(00:02:23):
Switzerland,

(00:02:23):
and I’ve been in Europe for about 20 years now,

(00:02:26):
so quite a while.

(00:02:27):
20 years.

(00:02:27):
Okay.

(00:02:28):
So is it – how different is – this is actually a little aside.

(00:02:32):
How different is it from the U.S.?

(00:02:35):
Oh, I don’t know that we want to get into that here.

(00:02:38):
It’s quite different.

(00:02:39):
It’s a very small country, so –

(00:02:40):
I tell people the country I live in,

(00:02:42):
Switzerland,

(00:02:42):
is basically smaller than the state I grew up in,

(00:02:45):
in Georgia.

(00:02:46):
So a smaller population.

(00:02:48):
So it’s very different.

(00:02:49):
Yeah, because I’m in Japan and people always ask me, you know, what it’s like.

(00:02:53):
And it’s very different.

(00:02:54):
It’s just a different world.

(00:02:56):
Okay.

(00:02:56):
So you mentioned that when you’re younger, like solving problems and you’re interested in math and stuff.

(00:03:00):
So that was interesting that you had, you had a direction from a very, very young age.

(00:03:04):
I’m kind of envious of that because actually a lot of people,

(00:03:07):
they don’t have that direction more than they’re actually that young.

(00:03:10):
You know, they kind of grow into a field sometimes in college very, very late.

(00:03:15):
Do you think that was sort of a benefit to you in terms of your ability to focus on

(00:03:21):
sort of in general,

(00:03:22):
one thing at such a young age and then go and become a developer?

(00:03:25):
Yeah,

(00:03:25):
well,

(00:03:25):
like I said,

(00:03:26):
I always enjoyed solving puzzles,

(00:03:28):
not just jigsaw puzzles,

(00:03:29):
but lots of the little metal puzzles and wooden puzzles.

(00:03:32):
I used to get them at fairs and things like that.

(00:03:34):
So I just liked solving puzzles.

(00:03:36):
I also liked solving, coming to the solution when working on math problems all through high school.

(00:03:42):
I skipped a year of math in high school and took calculus earlier than I was

(00:03:45):
supposed to,

(00:03:46):
things like that.

(00:03:46):
And then we had the computer science course at school.

(00:03:49):
Actually, my mom was very, very sweet to me.

(00:03:52):
I wanted to take the computer science course and they said, you have to take the computer math course.

(00:03:55):
And I said, I want to take the computer science course.

(00:03:57):
And they said, well, you have to take the computer math course.

(00:03:59):
And I said, okay, how do we do it?

(00:04:00):
And my mom went with me one summer to night school to take basic programming.

(00:04:05):
So that was my first real experience with programming basic.

(00:04:08):
And then I took the computer science course.

(00:04:10):
And I just, I loved playing around.

(00:04:12):
I loved solving stuff.

(00:04:13):
I always made my output prettier than I was supposed to.

(00:04:16):
I learned how to do things in color.

(00:04:17):
A friend of mine had run into some college kids that had some

(00:04:22):
some routines and Pascal for, um, working with colors and sound.

(00:04:25):
And, uh, I actually wrote a video game.

(00:04:27):
Um, not too exciting, but, uh, that was a lot of fun to do.

(00:04:30):
So I just really, really got into it like that.

(00:04:33):
Wow.

(00:04:33):
Really envious, uh, just at a personal level.

(00:04:36):
Cause I mean,

(00:04:36):
I’m at this old age now and I’m still looking for what I want to do,

(00:04:39):
but that’s really cool.

(00:04:41):
Um,

(00:04:41):
so as,

(00:04:41):
as you were like,

(00:04:42):
when you’re going through school and stuff,

(00:04:44):
did you have any specific goal beside becoming a developer?

(00:04:49):
Did you want to use that for something specific?

(00:04:52):
I don’t know that I’ve ever been asked that.

(00:04:53):
I don’t think I actually had any particular goal.

(00:04:56):
I just wanted to program.

(00:04:57):
I liked solving problems with a computer.

(00:05:00):
Yeah, yeah.

(00:05:00):
Okay,

(00:05:01):
so I was at your website and I saw the phrase hardcore software developers,

(00:05:06):
probably at the top of your bio or something.

(00:05:08):
And I really liked that.

(00:05:10):
I thought that was, I don’t know, I just, I haven’t seen that in a long time.

(00:05:13):
I used to be at Sun on the open Solaris project.

(00:05:16):
So I was around a lot of Solaris engineers, a lot of kernel developers.

(00:05:20):
And even at Oracle,

(00:05:21):
actually,

(00:05:22):
when you hang out with the core developers in Java,

(00:05:26):
these are very,

(00:05:27):
very substantial people.

(00:05:28):
They’re very smart.

(00:05:29):
They go very much in depth.

(00:05:31):
And hardcore is a very common way that I would describe these people.

(00:05:35):
So why do you describe yourself as hardcore?

(00:05:37):
That’s pretty funny.

(00:05:38):
I’d forgotten that that was even on there.

(00:05:40):
I think, well, it wasn’t there for a long time.

(00:05:42):
So I think when I added that,

(00:05:44):
I realized that,

(00:05:45):
yeah,

(00:05:45):
there are some people out there just doing it for the day-to-day job just to make

(00:05:48):
some money.

(00:05:49):
and wanted to differentiate myself and say, you know, I really, I’m doing it because it’s my passion.

(00:05:53):
This is what I love to do.

(00:05:54):
I think about code a lot.

(00:05:56):
I had done,

(00:05:56):
you know,

(00:05:57):
coding on the side,

(00:05:58):
you know,

(00:05:58):
even when I wasn’t getting paid for it,

(00:05:59):
things like that.

(00:06:00):
So it’s kind of more like an attitude or maybe,

(00:06:03):
you know,

(00:06:03):
deeper in my soul that I really love programming.

(00:06:06):
I really love solving problems and just getting down into it.

(00:06:09):
And it’s also somewhat to do more with the fact that I’ve taken a lot of joy in

(00:06:14):
working on framework code,

(00:06:15):
things like Spring Framework and

(00:06:16):
And Jane,

(00:06:17):
it’s so kind of differentiating me from people who might work on application code

(00:06:21):
or implementing certain features for their company that I really like to get down

(00:06:25):
to the kind of low-level stuff,

(00:06:27):
dealing with things like reflection and AOP and some more recently things like

(00:06:33):
native image and things like that.

(00:06:35):
That’s kind of what I’ve been by, hardcore, kind of more low level.

(00:06:38):
But not quite to the extent of doing things like kernel drivers or anything like that for Linux.

(00:06:44):
That’s a different level.

(00:06:46):
I see.

(00:06:47):
Interesting.

(00:06:47):
So when did you get into Java?

(00:06:50):
Ah, this brings my mother back into the story.

(00:06:53):
Like many college kids, I used to go home on the weekends to do my laundry.

(00:06:57):
And one Sunday,

(00:06:58):
I was there and my mom had saved a section from the New York Times technology section,

(00:07:03):
which I

(00:07:04):
I was a bit shocked at,

(00:07:05):
and she said,

(00:07:05):
I read this this morning with my coffee,

(00:07:07):
and there’s this new programming language called Java.

(00:07:10):
It seems like you should really check it out.

(00:07:12):
It’s for the web, and, you know, the web’s growing and everything.

(00:07:15):
And I actually did.

(00:07:16):
I started playing with it before anyone else that I knew, actually.

(00:07:19):
And, yeah, I played around with, like, AWT and making some graphics and stuff.

(00:07:24):
But I did have some challenges because I hadn’t had an object-oriented programming language.

(00:07:27):
course and I didn’t know anything about pass by,

(00:07:29):
by,

(00:07:30):
um,

(00:07:30):
reference and,

(00:07:31):
and value and the differences between C sharp and having pointers and all that.

(00:07:34):
So it was a bit of a challenge,

(00:07:35):
but,

(00:07:35):
um,

(00:07:36):
yeah,

(00:07:36):
so my mom helped me get into the computer science course and,

(00:07:39):
and

(00:07:39):
high school and introduced me to java so to speak wow i was in college well i think

(00:07:44):
this is the first i mean i’ve spoken with hundreds of developers and i don’t think

(00:07:47):
i’ve ever heard that uh sequence of events that’s pretty cool that’s really

(00:07:51):
interesting okay so then you’ve seen java evolve then for quite a number of years

(00:07:56):
do you um you know you’re not exactly new to it right i mean so tell me a little

(00:08:02):
bit about the evolution as you’ve seen as you’ve worked with it do you have any uh

(00:08:07):
thoughts on how the technology has evolved over the years?

(00:08:10):
Yes, I’ve been there basically since day one, I guess you could say.

(00:08:14):
I mean,

(00:08:14):
I started learning object-oriented programming when I was getting to know Java,

(00:08:17):
so I didn’t have much to compare with the beginning.

(00:08:19):
But yeah,

(00:08:20):
initially the API was pretty small and one could actually know most of the API,

(00:08:24):
which is of course not the case today if you look at the JDK.

(00:08:28):
And initially it was really geared more towards web applications and applets and stuff like that.

(00:08:32):
And then we had servlets and JSPs.

(00:08:35):
It’s really evolved a lot in time.

(00:08:37):
So things like,

(00:08:37):
you know,

(00:08:38):
initially had better support for real collection instead of the old vector and then

(00:08:42):
hash table and stuff like that.

(00:08:43):
And then more recent years, well, years after that, right?

(00:08:46):
So Java 5 brought in a lot with enums and annotations really changed in the way we

(00:08:50):
We do things.

(00:08:50):
And then,

(00:08:51):
of course,

(00:08:51):
Java 8 was a game changer for most of us with Lambda expressions and then streams

(00:08:56):
and all that kind of stuff.

(00:08:57):
And now in recent years with the cadence,

(00:09:00):
the more frequent releases,

(00:09:01):
we’re seeing a lot more features coming in.

(00:09:03):
Java’s becoming a lot more competitive.

(00:09:05):
It’s fast.

(00:09:06):
People don’t really complain about being slow anymore.

(00:09:09):
The right ones to run anywhere has always been there.

(00:09:11):
But now we’re even focusing on different things, like having dedicated runtimes with native images.

(00:09:16):
And we have lots of things coming in the next releases with…

(00:09:19):
the crack project support and loom support, things like that.

(00:09:23):
But in the recent years,

(00:09:24):
I really do appreciate what the Java team’s been doing,

(00:09:26):
adding in new features that are making our lives easier.

(00:09:29):
Things like having records finally in place,

(00:09:31):
having switch expressions,

(00:09:33):
pattern matching and that kind of stuff,

(00:09:34):
sealed classes,

(00:09:35):
these kinds of things.

(00:09:36):
They’re really nice.

(00:09:37):
They’ve been missing for a long time.

(00:09:38):
Something as simple as text blocks, right?

(00:09:41):
I was using Perl and languages many, many years ago, decades ago.

(00:09:45):
And they had these multi-line strings and you’re like, oh, now we finally have

(00:09:49):
multi-line strings in Java.

(00:09:50):
But so it’s these small things that make the difference and kind of make our lives

(00:09:54):
easier on a daily basis.

(00:09:55):
But yeah, so it’s come a long way and it’s improving on a faster pace now.

(00:09:59):
Yeah.

(00:09:59):
And it’s interesting because I talk to a lot of,

(00:10:03):
sometimes the developers are very young and they don’t know the full history and

(00:10:06):
how things have evolved.

(00:10:07):
And they sort of just describe Java,

(00:10:10):
you know,

(00:10:10):
like essentially how you did at the very end there,

(00:10:13):
but it didn’t start that way.

(00:10:15):
And so it’s always nice to hear a little bit of the evolution and it’s nice to get

(00:10:19):
a history,

(00:10:20):
a little bit of a history when you’re talking to someone who’s been around more

(00:10:23):
often because the community seems to be thriving.

(00:10:26):
So I’m talking to a lot of young people, but yet the technology has been around for quite a while.

(00:10:32):
And what I also find interesting is I see when I go to conferences,

(00:10:35):
I see the older people mixing with the younger people seamlessly.

(00:10:39):
It’s really interesting that the older people are so welcoming to the younger people.

(00:10:44):
And some of these younger people are like 20 years younger.

(00:10:49):
And so it’s a whole different generation.

(00:10:52):
What do you see as, have you noticed that yourself?

(00:10:55):
Or do you have any opinion on that in terms of this mixing of bringing newer and

(00:11:00):
younger people into the community?

(00:11:02):
Well, let me just say for starters, I’m really happy that Java is still around.

(00:11:05):
There have been many

(00:11:06):
naysayers over the years.

(00:11:08):
I’ve always enjoyed Java as a programming language and the tools.

(00:11:11):
And one of the main things is the community and the fact that there’s so many libraries out there.

(00:11:16):
So if you need to do something in Java,

(00:11:18):
chances are there’s a library out there that’s going to help you do that.

(00:11:21):
And that’s one thing you wouldn’t really get from some new cool language,

(00:11:25):
the new kid on the block that’s just come out.

(00:11:27):
In terms of working with younger people, yeah, it’s great to see people of all ages

(00:11:32):
Working and thriving with Java.

(00:11:34):
I work on the JUnit team.

(00:11:35):
We also have a younger committer, so it’s nice.

(00:11:38):
I could probably be her father.

(00:11:39):
She might not want to hear me saying that,

(00:11:40):
but yeah,

(00:11:42):
it’s nice to be able to work with younger people and enjoy the same technology.

(00:11:45):
Cool.

(00:11:46):
So what are you doing right now with Java?

(00:11:48):
Right now, I’m a core committer on the Spring framework and a core committer on JNF5.

(00:11:53):
And in recent years,

(00:11:54):
I’ve also helped out with the native build tools support,

(00:11:57):
testing support for GraalVM native images.

(00:11:59):
Those are my key focuses, Spring, Core, and JNF5.

(00:12:03):
Do you have any, like, this might seem like a silly question, but are there any…

(00:12:08):
i don’t know favorite or you know uh in terms of features or um that you use most

(00:12:16):
or that you use most frequently or that you depend on most or that are most

(00:12:20):
productive for you and your work that is an interesting question um like i said i

(00:12:25):
do lots of uh low-level things in in both in jnn and in spring um in terms of java

(00:12:31):
features well part of my job in spring is is helping us make sure that we’re

(00:12:35):
utilizing new features when we upgrade to a new version of java

(00:12:38):
And like I said,

(00:12:39):
some of the things that I liked the most in recent years were text blocks,

(00:12:43):
being able to use those,

(00:12:44):
being able to use instance of pattern matching that really simplifies a lot of our

(00:12:48):
code because we do a lot of instance of checks and want to avoid the extra cast and

(00:12:51):
simplify the code.

(00:12:53):
Switch expressions,

(00:12:54):
those are also really nice to simplify some of the code blocks we had before,

(00:12:57):
get rid of a lot of if else or complex switch statements.

(00:13:01):
Records, I would like to use more.

(00:13:03):
I imagine that if I were writing applications in a company, I’d probably be using them all the time.

(00:13:08):
We don’t really have the opportunity to use them in something like Spring because

(00:13:12):
things have existed,

(00:13:13):
right?

(00:13:13):
We can’t just change the way things work.

(00:13:15):
But for new features, we do like things like sealed types can be useful in records.

(00:13:20):
But probably the thing that’s just,

(00:13:22):
like I said before,

(00:13:22):
the biggest game changer over the recent years since Java 8 is being able to have

(00:13:26):
Lambda Expressions

(00:13:28):
method references and the stream API.

(00:13:30):
We use those all the time in Spring and in JUnit.

(00:13:33):
If you look at the JUnit code base, we have tons of use of Lambda expressions and stream APIs.

(00:13:38):
Cool.

(00:13:39):
And you mentioned the six-month release cadence,

(00:13:43):
which is,

(00:13:44):
I guess,

(00:13:45):
four or five years,

(00:13:46):
three,

(00:13:46):
four or five years at this point.

(00:13:47):
I think the team, the engineering team has really gotten that down clean now.

(00:13:52):
And

(00:13:53):
the community is used to it and everybody i talk to really appreciates it because

(00:13:57):
you can follow the you follow the evolution of features as they come as they’re

(00:14:02):
released and um so 21 is coming i guess in september maybe i should know that uh

(00:14:07):
but it’s coming soon is there anything specific in uh specific in 21 that uh that

(00:14:13):
you’ve been following

(00:14:14):
Well, the core spring team, of course, has been following the support for virtual threads.

(00:14:18):
That’s not something I’m actively working on, but my teammates are.

(00:14:21):
That’s one of the biggest things that will be coming in.

(00:14:23):
Cool.

(00:14:24):
So tell me a little bit about your community involvement.

(00:14:28):
I saw a couple of your sessions at some conferences, and you obviously get out.

(00:14:36):
to a certain degree.

(00:14:37):
I don’t know how much because we’re just meeting here for the first time,

(00:14:40):
but I did see you do a couple of sessions someplace on YouTube.

(00:14:44):
And so tell me a little bit about contributing to this community.

(00:14:47):
You’ve been around for a while.

(00:14:48):
You’ve seen the evolution of the technology in the community itself, the conferences.

(00:14:52):
Some of these conferences are very interesting in terms of their personalities.

(00:14:55):
A lot of them are very, very different.

(00:14:58):
There’s a lot of unconferences in Java now.

(00:15:02):
They’re very, very small, sort of informal.

(00:15:06):
You know, some of them are obviously very big and very massive.

(00:15:09):
So talk a little bit about your community involvement.

(00:15:12):
What do you do there?

(00:15:13):
Yeah, I have actually been involved in conferences over the years.

(00:15:16):
I think my first one was maybe in 2007, 2008.

(00:15:18):
I originally started talking about stuff I was working on in Springs testing support.

(00:15:24):
And back in the day, some people might know what OSGI is, but

(00:15:27):
There was a Spring Source team server, OSGI, and I was heading up some of the web support there.

(00:15:32):
And over the years, I’ve traveled to a lot of conferences, speaking mainly about Springs testing support.

(00:15:37):
I still am the lead of Springs testing support since 2007.

(00:15:40):
So adding new features, keeping people up to date.

(00:15:43):
Recent years,

(00:15:44):
I’ve been giving talks about JANET,

(00:15:46):
JANET 5,

(00:15:47):
all the work we’ve done there since we started on it before we released it.

(00:15:50):
And I still enjoy going to conferences,

(00:15:52):
getting to meet people,

(00:15:53):
meet them in person instead of just online.

(00:15:55):
having some real conversations, letting people talk to me.

(00:15:59):
And it’s just nice to get feedback directly from people and see how they’re using it.

(00:16:02):
So that’s something I continue to do.

(00:16:04):
Not as much as I used to.

(00:16:06):
I have two small children now, so I try not to travel as much as I used to.

(00:16:10):
But

(00:16:11):
There were times when I used to go to like four or five conferences a year and now

(00:16:14):
I try to keep it down to one or two,

(00:16:15):
something like that.

(00:16:16):
Yeah.

(00:16:17):
I like getting out there as well, as much as possible.

(00:16:19):
There’s something that is just different about being in a session,

(00:16:23):
having the hallway session as well,

(00:16:25):
going to dinner,

(00:16:26):
all these conversations,

(00:16:27):
the technical conversations and the community conversations continue all throughout,

(00:16:32):
you know,

(00:16:32):
wherever you are.

(00:16:33):
It’s just not the same as being on Zoom.

(00:16:36):
Yes, exactly.

(00:16:37):
Yeah.

(00:16:38):
Well,

(00:16:39):
I work remotely these days,

(00:16:40):
so it’s also important to me to be able to see people face-to-face,

(00:16:44):
have some human interaction.

(00:16:46):
And it’s also nice sometimes when you’re working on open source projects,

(00:16:50):
you get to know people’s names or maybe their little profile photo on GitHub or

(00:16:54):
something like that.

(00:16:55):
And then you meet them in person at a conference and you’re like,

(00:16:57):
oh,

(00:16:57):
yeah,

(00:16:58):
we’ve spoken in quotes a few times on issues.

(00:17:01):
We’ve collaborated.

(00:17:02):
It’s nice to meet you in person and maybe get to have a beverage of choice sometimes.

(00:17:06):
with that person or dying with some of those people.

(00:17:07):
It’s definitely, it’s great to go to conferences.

(00:17:09):
Yeah.

(00:17:09):
Yeah, absolutely.

(00:17:10):
Okay.

(00:17:11):
So what I definitely want to,

(00:17:13):
one of the things I like to,

(00:17:16):
one of the things I like to talk about is,

(00:17:18):
especially with senior developers,

(00:17:20):
how you feel about young people getting involved in like at the college level,

(00:17:24):
even at the high school level,

(00:17:25):
college level now,

(00:17:27):
it’s not the same as it was,

(00:17:28):
you know,

(00:17:28):
when you were,

(00:17:29):
you know,

(00:17:29):
that age,

(00:17:30):
it’s a different world,

(00:17:31):
obviously.

(00:17:32):
And the technology has changed.

(00:17:33):
All the tools have changed dramatically.

(00:17:36):
But nevertheless,

(00:17:37):
when I was in Solaris at Sun,

(00:17:39):
I went to a lot of universities and I love to build community,

(00:17:43):
start user groups at universities simply because the kids were so much younger than

(00:17:47):
me and they had such a different perspective.

(00:17:49):
So what do you think about or actually do you think about young people in terms of

(00:17:56):
what they should or shouldn’t do at the college level for getting into technology?

(00:18:01):
Do you have any thoughts on that?

(00:18:02):
I thought about it some not as much as as others,

(00:18:04):
I would assume I do think it’s great that people are getting involved at a younger ages.

(00:18:09):
You hear about script kitties and younger kids getting into programming and I think

(00:18:13):
it’s wonderful that there’s so many tools out there it’s so much easier now to get

(00:18:16):
involved or to get started than it was when when when I started so,

(00:18:19):
for example,

(00:18:19):
with Java.

(00:18:20):
We just had a text editor and you had to use Java C from the command line and

(00:18:23):
something like that,

(00:18:24):
right?

(00:18:24):
You didn’t have an IDE and you didn’t have all the wonderful resources that are now

(00:18:28):
available on the internet.

(00:18:30):
So, right, kids, younger people getting into it now, it’s a completely different experience.

(00:18:34):
In terms of which route they should go, I don’t really have the answer for that.

(00:18:38):
I know personally, I did get a degree in computer science and I think that was good.

(00:18:42):
It gave me a basis.

(00:18:44):
I learned a lot more about computers than I would have if I had just focused only on programming.

(00:18:50):
So I think there’s some benefits in that.

(00:18:51):
But at the same time,

(00:18:52):
I also know there are lots of boot camps out there these days,

(00:18:55):
lots of people getting in or switching jobs and getting into computer science.

(00:19:00):
But they probably don’t even think of it as computer science, right?

(00:19:01):
They just want to get into programming,

(00:19:03):
solving problems,

(00:19:04):
help create web applications and stuff like that.

(00:19:07):
I think they should definitely do that.

(00:19:08):
And I think people shouldn’t be afraid of college and a computer science degree.

(00:19:12):
They don’t have to get a computer science degree if they want to be successful in programming.

(00:19:16):
That’s about the way I would sum it up.

(00:19:18):
That’s actually – I’m glad you phrased it that way because that’s actually what I

(00:19:22):
was sort of thinking of in terms of like this slightly fear because,

(00:19:26):
I mean,

(00:19:26):
I had that when I was younger.

(00:19:28):
It’s like, oh, I just can’t – it’s just too hard.

(00:19:30):
This is too much math.

(00:19:31):
I mean, it’s too abstract.

(00:19:33):
But I like programming a little bit.

(00:19:35):
I took some C and I took –

(00:19:38):
C++.

(00:19:39):
But,

(00:19:39):
you know,

(00:19:40):
all I had at the time was just a big sun monitor with the keyboard and a piece of

(00:19:44):
paper in front of me.

(00:19:44):
And that was it.

(00:19:45):
You know, it was a blank screen.

(00:19:48):
And do you think learning to program like that years ago versus learning now with

(00:19:53):
all the really cool tools that,

(00:19:55):
you know,

(00:19:55):
actually that we have now?

(00:19:57):
is different?

(00:19:58):
Does it change the way developers program at all in terms of, you know, now we have new tools?

(00:20:04):
A lot of that complexity is abstracted out.

(00:20:07):
It’s not as complex as it was years ago.

(00:20:10):
Is that accurate?

(00:20:11):
I would probably say yes and no.

(00:20:12):
A lot of things get a lot easier,

(00:20:14):
but when we have the tools that enables to do more,

(00:20:16):
then we try to do more and then things get more complex,

(00:20:19):
right?

(00:20:19):
So we have like these days,

(00:20:20):
you know,

(00:20:21):
you might have to learn about Kubernetes or native image and all these other things.

(00:20:25):
So it really just kind of depends.

(00:20:27):
And in terms of the programming skill set and what people are focused on or learning, that also depends.

(00:20:32):
We still need people to get computer science degrees to know about computer science,

(00:20:37):
to know about complexity and how to analyze these things.

(00:20:40):
But to be honest,

(00:20:41):
a lot of the things that I learned with my computer science degree,

(00:20:44):
I don’t use anymore.

(00:20:45):
I haven’t used since college.

(00:20:47):
I do have in the back of my mind complexity, things like that.

(00:20:51):
If I need to, I can analyze things, but I’m not using a lot of math on a daily basis.

(00:20:55):
I’m not using any calculus or anything like that.

(00:20:58):
There’s different skill sets.

(00:21:00):
We need people who know how to write low-level C code into our even assembly code.

(00:21:05):
interacting with drivers at the OS level.

(00:21:08):
We need people who write frameworks like code that I do.

(00:21:10):
We need people who write applications for desktops and we need people to write web applications.

(00:21:15):
So,

(00:21:15):
I mean,

(00:21:15):
there’s different skill sets,

(00:21:17):
you know,

(00:21:17):
things people can focus on and you’re not going to,

(00:21:19):
probably not going to need a computer science degree to write a lot of the web

(00:21:22):
applications that are in demand today.

(00:21:24):
One thing I’d like to reiterate is that if you like solving puzzles,

(00:21:28):
you like fixing things and you like working with computers,

(00:21:31):
using computers or,

(00:21:32):
you know,

(00:21:32):
cell phones,

(00:21:33):
mobile apps,

(00:21:33):
stuff like that,

(00:21:34):
Um,

(00:21:35):
maybe you might be interested in,

(00:21:36):
in programming and if that’s something you’re interested in,

(00:21:38):
you know,

(00:21:38):
give it a shot,

(00:21:39):
see what,

(00:21:39):
see what it’s like.

(00:21:40):
That’s, um, that’s what drives me.

(00:21:41):
I love solving problems.

(00:21:43):
Uh, my son’s Lego toy got, um, kind of unintentionally disassembled, um, without instructions and, and I,

(00:21:51):
sat down and looked at it and figured out all the pieces and put it back together.

(00:21:54):
And so if you like to do stuff like that,

(00:21:55):
like I do,

(00:21:56):
maybe you also like to solve problems on the computer.

(00:21:58):
Oh, cool.

(00:21:59):
All right.

(00:21:59):
Well, I think that’s a good way to end it.

(00:22:01):
Sam, it was a pleasure talking to you.

(00:22:04):
And hopefully we can meet live someday.

(00:22:07):
I will look for you at the next conference on that.

(00:22:11):
And until then, we’ll talk to you around.

(00:22:14):
Talk to you around the community.

(00:22:15):
Thanks.

(00:22:15):
It’s been a pleasure.

(00:22:16):
Cheers.

(00:22:17):
Thanks.