Hello Java Challenger today it's a privilege because I have here Jean boari Jean is a Java Champion she is the co-author of the famous certification book ocp it's the Oracle certified professional Java books and she wrote the certification books for Java 8 Java 11 Java 17 and she recently launched the OC B for Java 21 and that's a beautiful book those are amazing books many Java Developers are using them to get the certification Jean is the best writer for certification books so definitely recommend her books you probably know her I don't need to introduce her
to you and she has more than 20 years of experience as a developer she's also the co-author of the real world Java helping you navigate the Java ecosystem and she is also the moderator of the Java Ranch website and she lives in New York so Jean you're very welcome To the Java Challengers Channel thank you so much for being here how are you I'm good very good so Jean I'm curious about your career can you tell me a little bit about your cier trajectory sure it's hard to remember when I started becoming interested in my
career because when I was in kindergarten my parents went to the computer Museum in Boston you got a free ticket if you bought a ticket to the Children M Museum so they're like we'll just stroll through and the little 5-year-old Jean refused to leave I asked my mom when I was older what I did there because I remember going when I was teenager and you had a breed to do anything oh my God you asked a million questions and you tried to do things that were too hard for you when you refused to leave so
then we went every year until it closed so I've always loved computers I don't remember that Starting when I was 13 I took a programming class for the first time and it was like it's that that's the thing I want to do because it was so much fun you get to solve puzzles and you get that satisfaction of when things work and you hear that enthusiasm because I still have that I still have that moment of yes got it to work so I I started out as a developer I interned at pain Weber and JP
Morgan Chase and then I started working full-time after that and I Started out as I actually my first first job was C++ but I didn't know much C++ and it was just an internship so it was fine and then my second internship was Java and I've been doing Java ever since at this point in my career I do a mix of java groovy and python on pretty much a daily basis which means I'm always mixing up VAR and Def and a few other things between the languages um so that's a lot of fun but you
you catch it very quickly I'd like to get to the Point where I can code correctly in the right language all the time but it doesn't seem to work that way it seems to be whichever one is the last one I use this is the one that stickies in my head what do you mean by coding correctly like not using a keyword from another language as I'm typing right so like when I'm typing in Java if I was doing Java at the end of the day yesterday I will sit there and type bar blah blah
blah blah blah and All will be good if I was doing groovy is the last thing I did yesterday I will type def a and it will take me a second to be like why doesn't that work oh right I'm doing groovy now and that happens to me between all three languages fairly regularly which is interesting but then as soon as that happens it only happens once and then I'm coding in the language I'm using now until the next time I switch languages but switching all the time is very Interesting what are your favorite programming
languages it's got to be Java it's the first one the first one I know we know because we been doing Java the longest so I feel like I'm the most fluent in it although I'm starting to get there with the others groovy was interesting though because everything almost everything that's legal in Java is also legal and groovy so when I was first learning groovy it was Java disguised as groovy in that every time I Didn't know how to do something I wrote it in Java and then came back to it later and then over the
course of time I got comfortable with The Groovy adms as well and felt like I was actually programming groovy and then the same thing happened with python that I started out writing a lot of long form Loops instead of list comprehensions because that's the way you would do it in Java and then over the course of time I started using the correct idioms there As well at this point I feel like I know all three languages decently awesome I Used to Know JavaScript too but I use it so infrequently I know have to look everything
up so I think I can't claim I know it anymore and what do you like the most about grovy I like that it's a scripting language because with certain tools like Jenkins they provide a scripting console So you can do everything anything you want as long as it's groovy whereas with Java I have to write it and then I have to compile it and then I have to deploy and upload it and then I have to run it so for quick things like a query or you know find which of the Thousand jobs here are
meeting certain criteria it's really nice to be able to use groovy awesome and I'm curious to know about your tax stock what's the current STX stock you use on your day-to-day job I Do a lot of tools so it really is a mix of java groovy and python depending on what tool I'm working on but I'm not deploying business applic so I can't tell you I'm doing lamp or whatever and do you work with microservices or I do not work with micro Services okay I do have one web service which is a Hello World web
service which is used for testing something else uh but no no um actual web services these are all tools that Run either on the cicd system or get deployed um to various places but they're not full-fledged web apps or consumer apps in this sense that you would need a web service are those us to do web services though are those on premises like you would deploy your software locally some are on people's workstations some are on premises and some are in Cloud it really depends I work on a very large number of different things which
is why I work in three Languages on a regular basis awesome so you work with Java groovy and python yes and what do you like the most about python I think I like with python that a lot more stuff feels built in and I don't know if it really is or if it's the nature of the work that I'm doing but I don't feel like I have to look for libraries as frequently as I do in Java and I think that's by Design right because with Java that since we're so adverse to deprecating and removing
Everything there's a very high bar for stuff to actually be in the ecosystem so like if you want to paramel in Java you pick a library I like Jackson right if you want to parse it in Python you import one library and you're done you don't have to use it there's also an aspect that's a bad example because it might be a library but there's also an aspect of I tend to use the same libraries in Python so they're already in my requirements that text and Therefore I don't have to go seek them out whereas
in Java I'm usually the first person to touch it so it's like okay we need this so you know I think it depends but I'm going to say built-in libraries because there does seem to be more stuff in the python documentation that I need very very good and what college C did you do I studied computer science and minored in business mhm it was funny because the business Minor goes to me well you might change your mind about your major like nope I I've known since I was 12 or 13 I wanted to do this
well a lot of people go to college and change their mind NOP not changing my mind it mattered because there was a computer appreciation course that you had to take if you were not a computer science man major so I was trying to get her to check it off at orientation and she was more from the camp of let's wait And see if you're really a computer science major awesome and how do you feel about the college education do you think that was crucial for your career as a developer at that point in time yes
I think now boot camps are equivalent and it depends on the person which one is better for them but at that point in time either self-study or college were pretty much the only ways of getting that experience I think I learned a lot And I like that I learned about being quotes more theoretical stuff like State diagrams and all all of that I liked that I learned about how to optimize a database so I was happy with what I learned it was a little more spread out than it needed to be because it was college
but also I was 18 I did College in three years instead of four so that helped the spread out thing but overall I learned what I needed to I also like that I was able to work while I was in College aside from the two internships all my other jobs were not relevant to my career but it was good to be able to get that work experience before the first internship and the first job and you did your college degree in New York yes I went to Queens College which is part of the City University
of New York it is the second to closest School from my where I lived the closest was a community college which is a two-year program and then you have to transfer The one I went to is a four-year program and it was free at the time New York City had a program where the highest ranked student in each of the major New York City high schools could go to City University of New York for free I was ranked eighth and luckily the seven people above me did not want to go to City University of New
York wow that's amazing yes so graduating college no debt awesome I was able to live at home because it was Nearby only child had plenty of space it was wonderful wow feel differently about the college thing if it cost me $50,000 yeah because I know that it's very expensive the college in the US it's like 50k or more yeah so can't beat free and my mother went to City University of New York back in the 50s when it was free for everybody that's excellent so Jean I talked with Rodrigo garciano and he Mentioned that you
were a mentor to him because you helped him to give his first talk yes and you were excellent on doing that so I would like to know more about your opinion of having a mentor for Java developers because it's so important right yes I I think having him Mentor is very important for anybody whose early career and then over the course of time having a mentor is useful but it doesn't need to be quite as formal because when You're new you don't really know what questions to ask I'm mentoring a new hire now she has
about a year of experience and she just joined our team so I'm her buddy AKA her mentor and it's helpful because you have someone who knows what's coming and can help look out for next steps or here's the next thing you can do in terms of growth or it would be really helpful if you read this same thing for people transferring languages another one of my current Mentees used to not be a Java developer and now is and I volunteered to Mentor her for the same reason it's the same problem of like you know we've
both been doing Java for a while when Java 25 comes out you don't need someone to handhold you you can read the docs and be like okay this is what's important right if you're new to Java it's like which of these many things do I even care about right so helping them get the lay of the land is super useful and for Me because I was entry level my mentor also helped me understand how to work work in a business so for example people generally ask you in the morning how are you and I used
to say fine Apparently that is tur and people don't like it that's in New York your mileage may vary anywhere else and and someone S Suggest my mentor suggested to me if you say fine how are you are fine thank you for asking people like that better and I'm sitting there thinking this question is A waste of time people don't care how I am why are we making this longer but I started doing it and people react better to that so it's like okay that's now in the list of things that I do so there
are definitely busy things like that or you know from the political landscape of every company is different so it's you know well with this happens you know I advise you not to bring up the next thing because this isn't the time or the place type stuff and of course all the Technical things a lot of code review a lot of oh you could write this more concisely or more clearly or there's a library who does that we were talking about libraries so super helpful but honestly I think the biggest thing that I Mentor helps with
is helping you grow and try harder tasks because you don't want to try the most difficult task there is on your first day and they can help you get there by suggesting things that are progressively More difficult but you can handle so that each one is a stretch but it's not overwhelming awesome I also Mentor at a high school I Mentor a high school robotics team so I'm constantly exposed to new programmers there what's really interesting to me about that is both at the high school and entry-level people at work is different than mentoring somebody
who's experienced exped because the experienced person comes in with a Lot of you know experiences so that you know they need to know about your organization but they already know how to establish themselves and how to speak in a business and how what comes next and how things work what's fun about the younger people aside from the fact that they don't always know that is that they have more enthusiasm and Curiosity on average and they'll question things that don't seem to make sense to them and sometimes it's a learning opportunity And you can make it
make sense but I've been at my current job for a good number of years so sometimes the reason is well in 2019 that made perfect sense here's why but we really shouldn't do it anymore let's talk about changing the process so we're not doing that thing so I and experienced people sometimes notice that stuff but I feel like experienced people tend to take that stuff for granted of a shrug that's how you do it here whereas someone who has Less experience will have more of that Curiosity and because they're not questioning why you're doing it
they just don't know and like I like that because it helps us become more efficient and constantly improve the process and the other great benefit of helping beginner Java developers is that you learn so much so many things you don't know right because so many times the beginners ask us yeah A very basic question that we never thought about and then we we stop and think oh yes I don't know that either let me research here and then I will explain to you uh and you also learn about tools from the newer people I learned
about slack and Discord from the robotics kids before people started using slack professionally which is awesome and I see over the next year or two that happening with AI I think that the students are going to be more Advanced than we are just because they have so much time to learn and play with it and you know develop intuition so I'm look for looking forward to seeing some of the things they use it for and then copying off them yeah nowadays you can develop code using AI obviously we need to know what's going on but
we can do basically everything with AI it's kind of Scary so for Eugene what is a senior software developer I think a senior software developer is someone who is pretty self-sufficient not to say they don't talk to every anybody because we work on teams we're obviously talking to people and pairing and learning and exploring ideas but I feel like you're a senior developer when you're at the point where when you you're given a story your task to do you can figure out what needs to Be done and do most of it I feel like a
junior developer needs to have a lot more fleshed out they're not going to know what questions to ask they're not going to know which requirement doesn't make sense they might not know how to go about approaching it where is I think a senior developer is going to look at that same story and be like you know I think this requirement is wrong let's talk about it and there's three ways of doing it and here are some pros and cons Let's talk about which one is best I I think a junior developer is more likely to
either have a question or think of one way to do it and probably po plop it out whether it's the best way of doing it or not interesting so a senior developer is a developer who is self-sufficient who somewhat self-sufficient because nobody is self-sufficient I'm certainly not self-sufficient I rely on my teammates For different things because everyone has their own strengths but I could do that stuff myself if I had to and I think that's the difference I just like that our industry uses the word senior for that because you would think senior means like
you know very experiencing the top of their career and it very clearly does not because we had to invent new words for that what are those words they vary by organization the Fangs you seem to use staff for that I've heard principal in the banking industry there's the whole you know everybody as a vice president nonsense so it you know definitely depends and you just have to know what the titles are but it's a little scary that senior seems to mean like oh you have three years experience you're senior and it's like okay well there's
that um because it's you you know you're not at the top of your career at that point you're just Not entry level anymore but it's very rare that a developer would become senior L three years there's a lot of title inflation so I I do see positions advertised as that because they're taking it to mean that you know junior is the first couple years of your career and then your senior uh I noticed that the banks have a lot more levels which I think helps because then you you have like okay well you're in the
senior bucket externally But you know you're at level senior level one and you know there's several senior levels so I think and some level every organization has their own vocabulary but senior does not at least in the United States senior does not mean like 20 years of experience it's still a pretty jior position so in a senior developer position the developer should be able to get a very abstract Story be able to ask the right questions the right people figure out what are the pros and cons figure out what could be the technical Sol solution
figure out the big picture yeah that is my opinion of senior and part of the problem with our industry is that's my opinion of senior this shouldn't be something we have opinions on you know if you say you're deploying to Tom Cat nobody has a bunch of questions about What you're talking about right whereas here it's like oh senior well let me Le the job description to see what this company means by it like that I feel like that makes things harder than it needs to be I I wish we were more like some other
professions like in the union things have very specific names and I wish we had a little more of that where there was some standardization of what these things meant across the industry yeah but from what you told me It makes sense it's quite aligned from my experience as well like senior developer someone who gets a task and takes ownership of this task and break it down MH understand what's the big picture and if the sener developer needs help ask for it don't waste time and solve the task right and of course it's a Continuum there
are stories that in tasks that I flushed out for junior people where I did it wrong and some of Them will come back to me and be like you know reforms one and two seem to conflict with each other and that's great and some of them will plot along and turn something in that isn't right because the requirements weren't right so you know they start evolving towards that and I love when they question it because that you know that's the skill you want them to develop and also we're human beings I make mistakes right so
it's like if I give you a requirement That doesn't make sense I don't want you to implement it I want you to come back and be like you know are you sure this is what you want because when you get that the answer is almost always no that was not what I wanted let's do this again yeah so as a Senor developer we needs to question requirements sometimes as well I suggest them too you know back when I was on a project for an accountant it would they would request things and it' be like you
know based on The requirements you've given me I think you might also want and describe it and most of the time they'd be like I want that I didn't think of it you know so developing that relationship and that understanding of what the actual needs are and not just being the inakerya done but what about Technologies what technologies should a senior Java developer study so that the developer says I am a senior developer I don't think there's an Answer to that because I think it depends on your job right so you could say oh well
they should know Java and SQL and spring and how to tune in a database and how to deal with a Q and all of that stuff but I think you could get to senior developer without knowing you know for example Q's or for example seq because it depends on what you're working on that stuff is learnable so you need to know some set of things in that space But I don't think there's a Checklist of you learn these Technologies and now you can say you're a senior developer what are those set of Concepts so there
there's the ones I listed the Javas spring database Q performance testing security all the non-functional requirements I think are important but again it depends on what you're doing so you might not need like you might not have exposure to Performance I think it's good to read About it at least even if you don't have hands-on experience so that you can pick it up faster if you need to know it and so that you're aware that it exists and that it's important for some people but it might not be for you performance was very important for
me early in my career I did a ton of database tuning but I really think it depends you know if you're a full stack developer obviously the UI is far more important but you could also easily reach Senor without Being a full stack developer so it on some level it's what you're exposed to and what you use and then there's a lot of reading about stuff and you know figuring out what is most useful to you and what the next step is but I think learning how to learn things quickly is an important thing as
a senior developer regardless of that set of things because of the whole like you you heard him doing Python and groovy right I didn't sit down and be like okay I'm going to Take six months and Learn Python you should be able to learn enough quickly in order to get started and then get better at it over time you mentioned something very interesting to me you mentioned about how to learn quickly what is your strategy basically what is your strategy to learn things more quickly I think the first thing is having a solid foundation so
whether that's in college or Boot Camp or just on your own learning a few languages early in your career is important um in college this helps because they make you do it like when I was in college you had to do lisp which was one of the languages with the parentheses but when then when I tried to do something with cloes clure and I I just to be clear I do not know closure I came up with two examples for a presentation but I was able to do it because I used to know lisp so
being Exposed to the different types of languages helps you learn stuff it also helps let let you be less fixated on the way your primary language happens to do things because you're thinking more about the concepts of things that are in common or it's like oh it's like that other thing so that definitely helps the other one is spending some period of time each week or each month learning something new whether it's useful or not just exposing yourself to new stuff Regularly helps you keep those mental Pathways of learning new things and then when you
do need to learn something in more depth like my python example make a plan of how you're going to do it because without that plan it just sort of happens upon well you know I have this task and then I did it and then I have the next task and then I did it and yes you learn new stuff that way of things you happen to come across but you don't learn more new things that way and Then you don't have a bigger set of things to draw from so the fifth time I learned python
yes the fifth time I every week I spent a bunch of time doing catas I spent a lot of timeing libraries and you know actually internalizing it and the reason it was the fifth time is the first four times I did python I didn't use it enough professionally afterwards so it didn't stick what was interesting to me though is each time I learned python I learned it far faster Stuff would come back to me like I would remember Concepts I would remember where things were I would remember what I needed to look up like the
fifth time it flew back and this time I use it regularly so I shouldn't have to learn it a six time but it you know having that practice definitely helped and I did that with Java too with the new versions when the new file libraries came out in Java 7 or eight I knew I was going to use them a Lot because I do a lot of file IO in my job so one weekend I spent a couple hours and I just practiced for with the code for reading and writing files so I got super
familiar with it and then the next time I need to read a file it was like all right files read all lines and people like how do you know that it's like cuz I did it over know was part of me I think that advice changes a little with AI though because with AI it's not so important to know the name it's Important to know that the thing exists so I think people are going to need to learn things at a little bit of a higher level with more things so that they know what the
prompts are but it's still going to be the same thing of practice it a bunch so that you're fast and you know what it is that you need in your scenario yeah I think it's super important to know that a certain technology or certain feature exists because as you said with AI basically I but I fore for the future is that we're going to become we are kind of dast trators already but we're going to be more of the orchestrators rather than the implementers so we're going to be we're going to orchestrate our solution then
say AI do that for me yeah and I think some of the skills we talked about are going to be even more important like the suggesting requirements and knowing What's really needed being able to specify them well and Bug reading code and debugging is going to be more important too because it's going to be hard for the AI to determine what's wrong like for easy algorithm sure but we don't write easy algorithms we use libraries for that for your custom code that doesn't do what you want it to I think AI is going to have
a lot more of a struggle yeah and the other thing is That we work with systems it's not only small part right so for AI I think to reach at that level of analyzing a system complexity it will take some time to reach this label yet it's not at that point so we developers we need to be orchestrators and using AI as a tool is going to be crucial I think practicing without AI is still going to be important though because people still are going to need To know how to write code so that they
can read into bug code and I'm really curious to see how this generation of programmers that's learning how to program with AI deals with that like how do they understand things deeply enough while still using AI for the majority of work yeah there was another thing you mentioned that it's very important so you mentioned that you need to create a plan to learn things Faster how do you create a plan to learn a programming language or a concept or a new technology I write a lot of ideas and then I pick from my list of
ideas so like I like K do a lot I like books that have exercises in them a lot because somebody has taken the time to think about what would be useful to do right like you see that with thinking in Java and a few other books Merck has a lot as well that you know I don't have to sit There and think of exercises you can get them from college classes online a lot of them put up their exercises for free you know maybe you want to do a pet project maybe you want to read
a book or read a blog or watch a video I don't think it matters what the plan is I think it matters that there is a deliberate plan and it's not just you know whatever you happen to be exposed to in your job for that language or tool because again that helps you do the task Sure but it doesn't help you become faster and more confident and know what's available to you so I feel like that requires some deliberate practice yeah so when you say daily practice do you mean daily practice no frequent doesn't matter
although like annually is not often enough but it what it means is time that's spent on learning rather than the objective being delivering the software right when I get a story or task at work my boss would Like me to hand it in they don't really care about the exploratory journey I took along the way when I'm focusing on learning it's like I'm going to spend two hours and I'm trying to learn a bunch of stuff but it doesn't matter what I produce at the end of it I might produce nothing I might not be
trying to produce something and that's fine how many followers would you dedicate yourself to Learn Python or any other technology you need it depends on How fast I need to learn it if I need to learn something quickly I will spend 10 20 hours a week on it when I was a student I spent more because I had more time if I'm learning something because it seems like fun I'll probably spend an hour or two a week on it right like I spend a little bit of time with go I'm not planning on using go
for anything but I wanted to learn enough to have an appreciation there's also it's hard to count because it's not the same every Week and there's sometimes you learn a lot like when we go to conferences you learn a ton and you come home with all these ideas that you want to try and you have a lot of stuff and there's some weeks that you're busy and you don't also when I'm writing a book I'm spending all my free time on that so I am learning stuff but it's a deep dive into the things that
I didn't know that were on the topic of the book and nothing else so just it depends and I Don't think there's a right or wrong for that I think it depends on what people's goals are yeah yeah because you know that's a big pain point for many developers because you know they work from 9 to five and they have their personal lives some of them have their families it's difficult to manage time this is so I am very good at time management which helps and you you can find time and places um if you're
Not driving there's your commute there's lunch there's you take an hour in the morning or the evening you you have you have to be very deliberate in making time for yourself because technology constantly changes right someone who only thinks about programming from 9 to 5 is not going to have enough time to be successful but that doesn't mean that it should take over your life either so definitely being intentional about when you're using that time but I'm also a Big fan of I like paper books because I like reading on the train and I don't
feel comfortable having a tablet out on the train that's time that exists right I'm commuting to work a certain number of days a week regard less of whether I stare at the wall in front of me or take a nap or read a book about Java I'm choosing read a book about Java iaz and it makes me nuts when you read books and they're like and now let's pause and do this exercise on the Computer now that you know the results I'm like I'm sitting on a train this is not helpful you know and I
like exercises but I like exercises that are at the end of the chapter and I can do when I want to not ones that are in the middle of the chapter and require me to understand them in order to move on yeah amazing that's very good yeah I also prefer like I don't want to see the answer right away it's much better like you see the code challenge the question And then you need should think and process yes airplanes are good for reading too airplanes yeah airplanes are excellent waiting at the doctor's office there there's
lots of opportunities of time that is typically wasted that are great for learning thanks what other time window would you recommend for developers rather rather than commuting time so you know like everything it depends on your life when after work when if you live alone when You're eating you're not really your brain isn't occupied then so you can do it then waiting for things is awesome waiting for friends waiting for doctors whatever for people who have kids I think picking an hour in the morning or the evening that is not all the kids are awake
is good for trying to get stuff done lunchtime is really good A lot of people work through lunch that's a gift to your employer right that time belongs to you maybe not so much for you I think People in Europe are better about that than in the United States but here people are like oh yeah it's great and when I tell a commute I can work for 10 hours because I don't need to commute it's like why are you donating two hours a day to your employer that time Belongs To You Right my employer doesn't
know my commute time and thinking about it that way gives you a lot more time I don't get me wrong I am super productive during the time I work but I'm also very good about not giving them extra time obviously yeah I think that's very important otherwise like you can't grow very much in your career because you're so focused on techn is on your job yeah and you forget about all the other things happening in the tech industry and it's huge like there's so many things happening and that's a very common trap from many Java
developers because they are afraid of losing their Jobs but at the same time they're not studing something else to get another job and then they get trapped in the cycle and they are working over time with the fear of losing their jobs and they don't study the things they need to pass right and then they get slower they get slower they get stressed out and it's horrible this happens a lot yes yeah so now J let's talk about your certification books because they are Awesome how did you start writing them I've wanted to write a
book for a long time because you've heard I like teaching people things and writing is teaching people at scale so it's awesome but from java Ranch I knew enough people that had written a book to know that it was this very large overwhelming amount of work so I was a little afraid to get into that and then with the Java 7 book Bert had too much to do so he offered a couple people the opportunity to write a Chapter I wrote one chapter of Bert's book and the teeny bit extra and it's like that was
awesome because it gave me enough experience to understand what writing was like and you know that I did want to do it and you know this is something I want to pursue but of course it was still an overwhelmingly large amount of work so I didn't seek it out packet had approached me a couple times about writing a book and I both wasn't ready and it wasn't a topic that I knew About so I didn't do anything with that but then a little after the experience with Bert I was approached by two Publishers about writing
a book and both of them were personal recommendations Ben and Martin approached me about the second edition of their well-rounded Java developer book updating it and wly approached me about writing a Java eight certification book and being a developer I chose the Greenfield project at that point I had not actually taken the Certification so I went and took the certification and I asked my friend Scott to co-author with me because we had both talked we blogged together and we talked about in principle writing a book together one day so he was the first person I
thought of where one day is now and then we wrote a book we worked really well together so now we've written a series of books and then for the other book real world Java Victor had the idea of writing the book and he Asked me if I wanted to co-author I said yes as long as we are using one of the big Publishers I think writing a self-published book is a tremendous amount of work and I don't have time for that so we approached my publisher and they said yes and the book comes out in
January yay it's January now comes out in late January I'm excited to see that one because I'm excited to both it's always fun to hold your book in your hand but also the first book is super Exciting and it's Victor's first book so I'm looking forward to seeing his excitement when he gets to hold his book The Day The Java 8 certification book came out I got no work done I showed it to everybody and what was funny about it is at that point the publisher copies came after Amazon they fixed that now the publisher
copies come first but I didn't have a copy of my book and my friend Elena Felder did so I borrowed my own book from her and used it to show Everybody I could find so it work at I was just like see my book I wrote a book it's book and um I I wound up working on Saturday because I didn't do my actual job that day but then when the I got my copy of the book I Elena mine because I her book was not in such great condition from showing everybody and and she
goes no I want your copy it's a genuine author copy that was actually used in Love by the author so she got this dogar book back I I did sign it but it was not In the best condition I showed it to so many people amazing yeah like so many books Java 8 Java 11 Java 17 Java 21 now that recently released so those are high quality books and like it it's so important for Java developers right so can you tell me more well I know that it's you we learned so much about Java studying
about this the certification mhm but I want to know your thoughts about the Importance of having the Java certification I'm going to split studying for the certification and having the certification into different things studying for the Java certification I think is great for everybody it gets you to understand the language deeper it gets you exposed to Features you might not know about and it gets you thinking about things more because the questions are hard and you know designed to really into things so Like the challengers so by thinking about them and being like oh it
does that well now when you encounter this technology at work you're not going to be surprised you're going to save time you're going to understand it better you're going to be like oh I could use switch expressions for that because I read about it in the book so it gets you very good on the new features and it also gets you an appreciation for some you may never use like not everyone's Going to use modules but they have a good working understanding of how to use it and how it helps with actually taking the exam
is valuable for some people it's valuable early in your career and it's valuable if you work or want to work at a place that cares about certifications some large companies in the United States do because it's a way of them showing continuous education I know of a company where all their testers were going to start using Java And selenium they needed to learn Java and they all said they knew Java and their management believed them and then when it was time to actually do stuff it turns out that none of them do Java and then
the next year they're like all right you're all getting ocas it certified which was the easier job CT exam because it's like now you have an independ body saying you know Java there's none of this yeah yeah yeah I know Java it's like you either do or you Don't so that that was an example of where it was useful to the employer and some employers like CS for jobs especially in certain countries so you know it's useful for that if you're not working for an employer or wanting to work for an employer who cares about
the certification I still think studying for the certification is valuable but actually paying to take the certification not so much the nice thing about employers that care about the Certification is that they pay for it so my employer pays for a bunch of my certifications appreciate that saves money each time yeah I think that's something useful for Java developers to figure out to know if their employers will pay for a certification usually they pay if you pass in the test well yeah and appreciate like at our group's Town Hall quarterly meeting they put up the
names of every you's gotten a Certification what it is like you know it's nice for visibility and to be proud of your work yeah I got the old certification I got the certification from java 7 I got the OCA and ocp and for me it was an incredible experience I learned so much about Java so like all the important features we learn we learn a lot more about objectoriented programming there's so many details that we wouldn't know if we Don't take the certification and that helped me a lot to create a better code yeah because
I could organize the code and use all the knowledge all the features I learned when I was studying for the certification so it was incredibly worth it it helped me a lot as a developer and also it helped me to have the certificate because like the companies they valued that yeah helps with like getting a lot of material in one place Because like you could read everything in my book on the well not the questions but you know the concepts you could read it all in the public internet for free but it would take a
long time to find said material and understand it and digest it and here it is in one convenient place but the questions are also helpful because they really help reinforce knowledge I use them when I do talks at conferences sometimes of like all of a style of okay you know we're Going to talk about a thing we're going to do some practice question of the C style and then we're going to write some code and like those three things help really get a like I feel like I know this feature because you've underst it at
all three of those levels so you know it's good for confidence and gaining quick experience as well it's amazing for confidence because when you see a weird keyword in Java if you've taken the certification you're going to Know yeah you're going to know what's going on there you're going to know like you won't reinvent the wheel and that happens a lot happens more often than we think like even for senior developers like to do something very simple they don't know about the specific Jaa feature and they're going to recreate they're going to reinvent the wheel
cre that happen to me when I had a teammate who she was writing this validation thing and it was like two pages of code It should have been one line it was an easy regular expression but she didn't want to use a regular expression so she WR this long mess of stuff and then it's broken so she shows it to me I asked what it was supposed to do and she tells me so I write it with the one line of regular expression and the unit test passed and I walk away and she's like wait
we're not done what do you mean I don't want to use a regular expression I want to do it the long way at which Point I was like I can't help you you know it was a readable regular expression it was short it was clear it was the correct tool for the job I'm like I'm not helping you with your unreadable two page mess of code that doesn't work and you know why it didn't work is because it was two pages it's like you can't be afraid of the tools and I know regular expressions are
something some people love and hate but it's totally possible to make them Readable and not scary and having it as a tool in your bucket sometimes it's the right tool sometimes it's not but in that case it was the right tool like you had to be using that tool the alternative was terrible exactly so like two pages of code and you know imagine test that it didn't work oh my God that was why she called me in the first place because it didn't work and she needed help and I did provide help and I got
something to Work but it was not the two-page thing and I think there was some level if she felt bad that she spent a long time on those two pages of code and then it was gone but I don't want to maintain that no I want to maintain one Co one line quote please sometimes my to be fair sometimes my regular expressions are more than one line because I'm a big fan of having human readable variable names so like if I have to do you phone number I'm going to write open parentheses plus three digits
plus closed parentheses plus Dash like all in English so the line with the regular expression is just those variable names chain together and all those sub things are variables but that that makes it longer but it doesn't make it more complex it just you know provides Clues as to what's going on and I do that because so many people are afraid of regular expressions or they're Hard to understand when there's too much together so that shows the intent because if I have a variable named three digits and my short regular expression for that is anything
other than matches three digits someone doing code review is going to be like you said three digits and this is four digits which one is right if I just do it in on line regular expression I don't get that sanity check so when I say one line it's not always one line but it's Spirit of One line and the complexity of one line yeah and that's the big harm of not knowing the Java features and I wouldn't even say Java features because this is a programming language feature yes at time we were on Java 14
and it was brand new to Java which is what I'm away with calling it a Java feature yeah so but I learned about it in college in Pearl so I I agree with you that it's not a Java specific concept yeah so like this is the Damage that happens when someone doesn't know about the Java features I've seen people doing searching algorithms because I didn't know there was the collection sort method in the jav API yeah and it's going to affect performance too right now that we have virtual threads if people don't know about virtual
threads boy is their concurrent code going to be slow yeah so it's extremely important you know the Java features get the Certification because I'm fully sure that if your coworker if she had got the certification she would know and what feature to use even if she didn't know she wouldn't have been afraid and that would have made a difference yeah and you know that's the attitude of we our coworker it seems to me that it's not only technical issues like she had very you know very strong soft skills issues as well because I know that
we take proud In our code but she was arrogant yeah not accepting the solution of a senior developer like cute part of the problem is at that point I wasn't a senior developer so she had a lot more experience than me but it's not years of experience that matter that said I like getting rid of my old code when we have a story about getting rid of something I was like oh I want to do it I want to do it I want to say goodbye to the thing it'll be a trip Down memory lane
because code you get rid of is code you don't need to maintain and you get right new yeah so in your opinion what are the important soft skills for developers being able to communicate about requirements being able to communicate nicely and effectively at code reviews that people are receptive to what you're saying I think presenting is important I'm in Toastmaster so I present a lot That's a speaking group but that's helped me a lot it's helped with conferences but it's also helped with you need to present a design document or you need to sell an
idea and being more effective at that being able to bring stuff up at Team meetings in a way that people are happy about so you know not too brief not too long bring not bring stuff when it's off topic getting a sense of when to bring things up and also pairing requires a different set of Communication because you have to understand like what pace you can go I'm a New Yorker I talk very fast we're all getting them know of that right now and some people need more time to think so when I'm pairing I
have to be very deliberate of making sure I'm not just this fire hose of information and that I'm going at the pace that the person that I'm pairing with is able to absorb because some people think very quickly but process information verbally Slowly and vice versa and people just have different Paces within the United States New Yorkers talk faster than anybody else in the entire country so if I'm pairing with somebody from the south like if I go that fast they're just going to be frustrated and annoyed with me you can still think very fast
that you can use that time where your mouth is not moving to to think about what the next thing is or what the problems might be but you can't overwhelm people um Similarly people who don't have English as their native language are unable to process verbal information in English at a constant stream of fast talking so when we're coding they're thinking about coding and the problem we're trying to solve and translating what I'm saying that's a lot to expect somebody to be able to do wow you've said so many parts and things fast in New
York English fast yeah I understand like New York I think it's even more fastpaced than S Paulo like it's the capital of the world I think so it's things are crazy there yeah but it varies by person there are some people I pair with that I have to ask them to slow down because they're saying every word they think and like not all of that is important so it's like take a moment think about what you want to say and then say it so lot lots of stuff skills about Communication and then there's also the
stuff that's true for any in an office you know emotional intelligence and how to interact with people but I think that's something that isn't really specific to programming so I tried to have my examples be more about stuff that we do okay so you mentioned about communicating nicely in a pull request how do you do that a pull request or code review it's harder in a verbal code Review because people tend to be more like on Edge when you're talking to them real time but for both of them it's you know remembering to talk about
things that are good and not just having a pile of complaints talking about you know here's an alternate way to do it being clear on when you want something changed and when you're just sharing something for educational purposes because there are many times in a code review that it's like I want you to know there's a Better way of doing this but I don't particularly care if you change the poll request that I'm actually looking it um and separating those lets people know that it's like okay I don't have to change everything being respect ful
when you talk to people right this algorithm sucks is something that should never be said or written down when you're reviewing somebody's code like you know I don't think this works in all scenarios let's take a look at how to Deal with this edge condition and like just being very conscious of that verbiage and sometimes it just doesn't work sometimes you have the other person who's so nonreceptive to feedback that nothing you can say will matter I had a meeting in my manager's office with a contractor we had where he wrote this code that was
is bad and when I suggested something at a code review that I think he had to do it's like you know I think we should change it to blah Blah blah because what whatever he goes he's an experienced developer and he's worked a lot of places and you don't know and and then and I I was like you really have to change this because it's going to causes problems and he's like no I'm going to talk to the manager and then he proceeds to explain to the manager that he's knows Java and I don't know
Java and he's not changing his thing at this point I had already written several books and was a Java Champion so this Jean doesn't know Java argument and didn't get him very far he was definitely not a team player but it's not about experience if in junior person has an idea it's not wrong because they're Junior but it was nice using my accomplishments against his Gene doesn't know Java argument because it's like we're not having that conversation that's ridiculous like it's and this is a very this is more common than we think Arrogance in our
area right it's also awkward to me because if someone's doing a code review and they say anything I wrote is hard to read I'm going to change it because it doesn't matter whether I think it's clear it matters whether other people think it's clear that's who's reading The Code by definition so like even even if somebody who is new the language or you know I think that their thing is silly I'm still going to change the code to make It easier to read because that's important yeah so in this specific situation you had with your
coworker how do you deal with such an arrogant person in that case we didn't um he was a contractor and everybody agreed he would be happier not working there okay so the problem solved itself and the nice thing for me was he initiated it and that he was the one who wanted to evolve our manager so he kind of complained about himself and I didn't Need to do anything but with people who are employees and you want to coach it it's explaining you know that this is not about you this is not about the code
this is about making something that can be supported by the team and making sure that everybody's perspectives are included and you know over the course of time you get people to a place where they become better at it I think pairing helps with that because when you're pairing you're getting that stuff real Time when you're not so attached to the code right if you type something eight seconds ago you're probably not going to be like oh my God I love this code we can't get rid of it so I think pairing with people like that
for a while helps them understand that this is a collaborative thing we're doing and when you see it in the poll request okay you're not getting it when you typed it but you're getting it before we merged it in while it's still easy to change And you know get some appreciation for what we're trying to do yeah you mentioned something that's also very important for senior developer which is how to influence other developers with your technical ideas so what is your strategy when you want to bring up for example a new technology or a new
solution or anything that you benefit to the project first is figuring out the time and the place to bring it up because if You bring it up in a meaning where it's not appropriate or at a time where people aren't going to be receptive to new ideas you've lost before you started and the other big one is start small you know C can I do a prototype of this or I tried this in my free time can I show it to people like make sure the first thing you're asking for isn't a big ask because
if you show up and are like I want to change all of our Java stuffs Scala everybody's going to be Like that's nice but we're trying to get something done here right so like looking for examples to get a foothold in is really helpful I did that when I was a junior developer with unit testing I I was always very gung-ho about unit testing and know my team was and I had the least experience on the team and I'm like I want to bring this up so what I did I explained why unit testing would
help us and what I got agreement on was that I would write tests with my code And everyone would agree to not break my tests I didn't get anybody to agree to write any tests but I got them to agree if they were changing code that had tests they would fix the tests so I got them some experience with tests and then people started seeing that you know this is helpful we have regression on this part of the code and then hopefully another coworker wrote some code that was essentially an all pointer um list L
equal null blah blah blah blah blah L Equal whatever l. add whatever it's like this code could never have worked he clearly didn't run it once little untested and it became a problem and then the manager's like let's talk about this testing thing like oh I am a test right and then we're were able to grow it from there U this was 21 years ago when testing was not so popular but that was an example of the time and the place right I started small I didn't start with we should all write tests and I
Think you can do that for a lot of things it's like oh let's try out this new technique let's try it out in one place you know see what happens it's a lowrisk thing if it doesn't work we'll rewrite it if it does work great we'll do it everywhere right and and like it's easier to get agreement on stuff like that but there's also some things where it's like politically this is not the thing up to bring up ever so it's like you know while you disagree with it just Keep the thought in your head
because it's like this is not something you're going to be able to change and you know focus on things that you can yeah there's even more difficult in big companies because politically people are you know people are playing the politics game and I don't like I don't actually like this game I don't like it either but it exists and got be aware that it exists because whether you want it to be there Or not it is and a lot of the time for political stuff I have to ask somebody for a second opinion usually a
manager because they're more astute to that sort of thing so it's like hey I want to run this by you you know my 101 with my manager or I'll ask a different manager like I have this idea what do you think people will think of it and you know judge the reaction from that of how do I want to proceed but there's also influencing People on a person level about 15 years ago we had a new contractor who wanted to tell me he didn't have time to write tests and that was after we were all
writing tests like you don't have time to write test so I went over we're in person then and I discussed it with them every day like every day we had a about a 10 minutes of discussion about his lack of tests and then after a while I go to him you know if you saved up all the time we spent discussing this we Could have written some tests and he's like he just looks at me he's like you're not going away on this are you nope and then he agreed the next day to pair with
me for an hour and learned how to write some tests and like that that was good so I was a little annoying but it was persistence and it totally worked and the reason I bring that up is having a lot of tools and ideas and just trying different things some of them are bound to work and you just got to try it and Figure out what they are in the situation you're in awesome what was fun is that same guy moved to a different team where he proceeded to stop writing tests and one of my
friends was on that team and she goes to me what did you do to get him to write tests I told her and she goes that seems like a lot of work it's like yeah yeah but you don't have to do that you just have to tell him the story about what happened with him and me and ask if He wishes to repeat that experience oh he did not he agre start writing tests for her as well amazing but there's a timec consuming way of doing this or you could just write test people yeah I
think that's a great way to show leadership you are a leader by doing that so you show what developer should do to create a better project to create a better code more maintainable code Yeah so coming back to the book writing subject M how are you so consistent to write so many books high quality books with you know very robust content how you need to know to pass in the Java certification which is a very difficult test the first thing I do is Scott and I brainstorm what we think is important to know for the
chapters um we split up the chapters um we do it by first we rank from 1 to 10 How much we want to write each chapter or update each chapter depending on whether it's a new book or not um because there are some chapters where it's like I really don't want to do that so Scott was at one for modules he's like I really want you to write modules I think I was at three like I don't really want to do it but I will because neither of us use modules professionally so that one was
a nuisance to write and there there are some where like I was I Was 10 on streams I was like I really want to write streams but for the new book we ended it there for updated books we also list out on a scale of like 1 to five how much work it is to up at the chapter because some chapters have a lot of updates and some don't so you know even if you really like all the new stuff that's not going to be balanced for each chapter we do our updates ourselves and then
the other person proofreads and edits it and when I say Edits I mean extensively that helps us have the same style throughout the book and it makes sure that we both think it's really solid then we have two technical people edit it and then it becomes a book but I think the reading each other's work and editing in detail helps a lot and Victor and I did that for real world Java as well it helps it sound like the book comes from one person and it helps ensure you're consistent across the book because you Don't
want to say like you have a forward reference that leads nowhere or you don't want to in one place recommend one thing and another place recommend the opposite it also helps having two people have to agree to everything because sometimes there's the I recommend you blah and if both people don't feel that way it's like okay this isn't something that we really should be recommending or we should phrase it weaker like an option is rather than Like an actual recommendation so that's definitely helped a lot the other thing that helps Scot and me a lot
is how we break ties when we disagree on something like not a fact but like you know I think we should word it that way or I think we should word it that way we also vote from one to 10 10 is this is the hill I will die on and one is do whatever you want so that way it and this is for stuff that's opinion based like I think we should cover X First or I think we should cover y first if one person feels strongly they win and if we're both about the
same we discuss it some more because Scott and I both have the tendency where we could debate a topic until the end of time so we did this to try to move things along because we both like interesting technical discussions so at the beginning we were spending a lot of time debating stuff that really didn't matter um or one person was important to and The other was just like well I'm going to bring up the thing anyway so the voting on how important it was thing helped a lot and we also agreed that we would
use our editor as a tiebreak we rarely need to do that but it had happened where we were both at 9 or 10 and it's like all right we don't really have a solution here so we're just going to have Jenise pick for us and we both agree that we will go with whatever Jenise says so while we hardly had to do That having it as you know we have an escalation approach has helped because it's like how do you get two people the tie break it's kind of can't and that you know spending a
lot of time on it trying a lot of things it's fun when one of us will update a chapter and the other will try something and be like there's this weird screwy thing here why does this happen like going need to go back and learn more about this future so definitely fun and then over the Course of time Scott and I figured out what our strengths are so he now does all images for the book and I do all of the organization stuff I not good at images and don't like them and I used to
spend a lot of time drawing them on the computer and then Scott wouldn't like them because they weren't good enough and then would redraw them anyway so for the second book I was like can I just submit them to you on paper so now I draw them on napkins and envelopes and Take pictures and he turns them into actual images I appreciate that greatly awesome how many years did you take to write the first book I know probably the first book was the most difficult yep we did it in nine months like having a baby
wow really nine months time to Market is super super important for a z book wow it was a very intense nine months nine months it's so fast and Victor and I did Real World job In 10 or 11 months I forget so you wrote the Java a certification book in nine months almost we reused about not only you material from the guy who wrote a different Wy book we got permission to do that so that gave us a teeny bit of a head start but yes we wrote the majority of the book in N months
so you and Scott rast the book in nine months that's amazing wow so how many hours a day did you Dedicate to write the book I don't even remember because it was a decade ago but but a lot I spent most of my weekend time writing the book and some evening time wow that's very impressive that's very impressive I did mention that I was scared to write a book for the longest time because it was a lot of work it was a lot of work right and everybody always said to me who would written a
book you know however much time you think it's going to take it's going to take more And they were totally right yeah yeah I wrote a couple of books and it's just so so much work like you need to write the book you needs to think about the structure of the book you need to review yourself ask others to review you need to think about the cover you need to think about how you're going to Market your book the the nice thing about using a publisher is there are a Few things you don't need to
do like think about the cover why the cover yeah that's really good actually yeah so one question Jean because like when I took the certification like who was writing the top of books for for certifications was Kate Sierra and ber Bates yep what is your relationship with them I know them from code Ranch both of them were moderators at code Ranch I contributed the chapter to Bert's book Which I had the opportunity of because of code Ranch I've edited some stuff for Bert over the years and also Bert used to be a trainer of editors
at Manning and I've done a bunch of editing for Manning so I worked with him a little in that space awesome and like from java a onwards you took over like you and Scott you are the top Java certification books writers like there is no one who with we worked Our butts off to do this book in nine months because we knew we needed to be first to Market if one Mala was also writing Javas books for Java 7 and we knew that if she or Kathy and Bert printed before us no one would buy
our book right so we knew we had to be the first ones to Market and then it wound up that Kathy and Bert sort of lost time and interest in writing CT books and we got lucky and then Mala started writing the Java 8 book or 11 I forget which one And then Oracle I think it was 11 and Oracle yeah it was 11 Oracle changed after she started writing how the exam was like and she sort of abandoned it at that point so again we got lucky because her books are also very good yeah
you definitely took over the market like it's fully yours yes amazing that's which is gonna be interesting for real world Java where I actually had to Market it because on some level a certaint book markets Itself exactly yeah that's amazing uh and your book took the World by storm that's excellent that's you you could retire from your job leave this bank I don't need H it was a lot of fun to do and I'm glad we're doing it it is the teaching at scale thing that I talked about at the beginning of this call and
I really like that yeah it's amazing like it's such a difficult book to write it's so yeah our Java developers like it's it's a great gift to every Java developer because it put so much work on that yeah awesome so I know that you are having involved in Java Community as well so how important do you think it is for a Java developer to get involved in Java user groups I think it's really important it's continuous learning the Java user groups are cating information that you want to know but that argument could be Said for
oh I can just watch the videos of the Java user groups online I think also going is important because it helps you establish a network and it helps you know if you're looking for a new job it helps you with finding people who are having the same problems as you are hopefully that are a little further along and have conquered them it helps you understand what's going on in your local ecosystem you've heard me mention a few times in New York or in the United States markets vary and it's good to know what's going on
in your area and your neck of the woods so that when you are looking for a job or a Next Step you know you know this is what the market is like where I actually live because presumably that's where you wish to get your next job and you're developing those connections over time being able to help out being able to learn from others I think that helps you know while people gather before the speaker starts And after the speaker is done a lot happens there it's like going to a conference except it's free yeah and
that's what I tell my mes that they need it's highly important that they go to jaiser groups because by going to jaiser groups they know how the gamees played for example when I came to Dublin for the first time that was the first thing I've done I was Talking to the jaaz a group leader from dub jug and you know I I met him online before coming here to Dublin and it was the first thing one of the first thing that I've done after coming to Dublin was to meet them and it was amazing like
I met them I was representing I I am representing so Java and that made things a lot easier for me to approach them and I I remember in the beginning I even Volunteered for award here I was mentoring a lady to help her build the dub jug website m and it was amazing for me because I could improve my English and I could get involved Marly in the Java Community here and you know by going to those Java group meetings I understood how the market works here and talking to people is critical like you can't
just go and listen to the lecture and not talk to anybody and then leave that you could Have done that from home you know talking to your neighbors getting to know people asking them questions is where the value really comes from exactly so that's what I did like I remember that the J leader said Rafael it's a group of Brazilians talk to them and then I just reached out and said hi I just started talking to them and said and they said oh you're looking for a job and I said yes and then they said
oh man I can't believe you're Looking for a job you should definitely get a job because I see the content you are sharing you know and then I noticed the importance of sharing knowledge because people who I met at dub jug they already knew me because of the content I was sharing and because of that I created trust so they trusted me even before talking to them and that was amazing because they recommended me like they said oh I trust I I like your content I would recommend you since you mentioned Brazil I have a
funny short story about that when I was mentoring Rodrigo he was presenting in um the online Brazilian conference in Portuguese first so he practice in English because I only speak English but I asked him if I could see his actual presentation in in Portuguese and I would comment on layout and I I did it was like you know this is too small or whatever and then I found the Grammatical error in it I was so proud um he used the same phrase twice but it was like one character different so it's like I have no
idea which of these are right but I think one of them was wrong and I was in fact correct that he made a typo so like it was so cool and I found an ER in a language I don't know oh my God that's so difficult I I don't think I would do that I would have be able to do that in other language that's yeah that's pretty good And yeah the conference gave the talk was CDC the developer conference yes that's the one yeah it's the biggest one in South America and yeah so it
was so important to get involved in the Java User Group it is so important and it's important to also take the courage to reach out to people and talk to them yeah like like form a book club form a discussion group you know contribute to one try to get The technical people to talk to each other a book club up turning ours into a discussion group because we're having trouble getting people to read the book but we started as a book club and then it turned into a discussion group which turned turned out to be
just as effective but you know I work at a big company so getting people from different parts of it to talk to each other is good and since it's voluntary the people Attend that sort of thing sort of self- Select and those are the people you want to know so you have a a discussion group as so but you discuss on technical subjects or subjects in general since it's voluntary we don't limit ourselves to what we do so most of the time it's about things that are actually relevant to our jobs but sometimes it's not
one month we talked about toy robots for little kids my boss had a 5-year-old and He had this little toy robot he couldn't go to the group so he lent it to me and I made the mistake of not trying it at home so I tried it for the first time in front of the group and like you know I I said to it oh hi robot it speaks it says hello back I was like oh it talks but you know so like we'll do stuff that's fun like that we talked about 3D printing once
someone talked about a video game they were working on for an emulator because it's about you know It's about fun and expanding your understanding too so it doesn't have to be work stuff but most of it is work stuff yeah that's a very good skill to have to discuss something because we are so often discussing Technology Solutions at our day-to-day jobs that having the skill of having a high level discussion it's so important and you are deliberately practicing That which means that every time you have an important discussion in your job you are very sharp
yes so yeah definitely helps to to participate in such a group I don't but it's a good idea it's something to keep in the back of my mind actually we are having kind of a discussion here but it's not exactly about one subject it's that a lot of subjects you have a lot of discussions yeah so Gan can you Tell me a little bit about how is life in New York I like living in New York I like density I like that there's so much to do I can go to a Broadway show I can
walk to the US Open I can there all sorts of museums and things that you know they're traveling tours and they tour through New York I love how much there is to do I like the busyness of it I like the lights of Time Square New York is definitely home for me it's your home and you lived in New York like Since you were born yeah I grew up in the suburbs and I moved to a more dense part I like that I can take the subway to a lot of places from where I live
now but I did live in the New York City Limits my entire life amazing and so Jean as an Al what books obviously we're going to recommend yours because yours are amazing books I 100% recommend because I know you're the top Writer for the J certification books you and Scott and so what books do you recommend for JV developers I think books that cover specific Technologies are good like spring in action if you want to learn those Technologies and then also General books like the new design patterns book clean code effective refactoring effectively refactoring Legacy
code which I don't think is the name of the book but it's got all those words in it so you know Regardless of the order so books like that that help you become better at the craft of programming are super useful I try to read a book every month um it's not always a technical book sometimes it's a about agile but I try to read something in the space of my career once a month I actually succeed at reading about nine books a year um but it's still you know it's good thing to Aspire to
so that I'm always reading new things and I also try to read some books that Are not terribly relevant to what I do like I read a book about blockchain you know it was interesting I expanded my knowledge about the ecosystem I probably never going to use it but you never know what inspires you so being able to read about a good set of things is super helpful amazing let's show your book as well please let's show your newest book yeah yeah put yeah please yeah so this is the latest Java certification book it's amazing
how you can learn with this Book say again it's heavy so I'm going to put it down now it's heavy yeah so you can see just under a Pages because the publisher said we can't go over a thousand Pages wow so it's the Java Bible right is it the Java Bible you're going to learn the main features of java you're going to learn about objectoriented programming functional programming you're going to learn about the main Java features streams Exceptions record threads super important yeah virtual threads you're going to learn about the amazing things of java and
that's going to also prepare you for the Java certification so it's definitely the best in the market you won't find any book that comes closer to Jean and Scott's book so buy this book like this is a musthave book and I recommend I even created a post on my blog that some must have book for every Java developer It's amazing like so much work you put on it you and Scott put on it and incredible yeah so okay so we talked about the books and what are the career lessons you can give to Java developer
always learn new stuff don't be afraid to speak up don't be afraid to ask questions I think that last one hurts a lot of people like if they don't know something sitting around in ignorance is not going to tell you and hoping you're going to find out Later is a little risky like it's okay to ask it's okay to say you know oh can you explain that more or you know can we meet later and like give me a tip on how to learn this because once you know it you have more things to draw
from and you have more things that you know and you're going to go faster overall I think that you know showing that and always showing that I I think sometimes people come in it's like oh you know everything it's like nobody knows Everything right it's okay not to know things you got to be comfortable with that so that you can keep learning more things but nobody's ever going to know everything the ecosystem is just too big exactly it's just insane so many things to know and we need to be humble I think that's very important
never stop learning right recognize that we never know everything and like you said ask questions like I will make like a caveat Here because for example if you are a senior developer there is a fine line here look a little first exactly because if you ask two basic questions we're going to be judged for example oh you're are senior Java developer and you ask oh why is the hashmat class then like people see right if you're pairing it is okay to be like oh I forgot the name of the thing right because people forget all
sorts of easy things I've forgotten my friend's Name on occasion and that's something I know right so like when you're pairing you don't want to be like let me pause and look this up but yeah when you're on your own you know Google it first search the company Wiki first the other one and the other caveat with asking questions is don't ask the same question twice when I was in my early career I had a notebook organized by topic of questions I had asked and I consulted it before I asked anybody a question because it
is Annoying if you ask me it it's like oh how do I deploy and I tell you and the next day you're like how do I deploy it's like we did this already right I don't want to keep answering the same question that's why documenting operations is important because once you're documented like you have it there they don't need to ask someone else so the reason I don't have the notebook anymore is that like the wiki is now my brain But when you're new a lot of your questions are common knowledge so you're not going
to put them on the wiki because everyone knows them right so the had to deploy probably wasn't the best example but it's like how do you launch the web PA console it's like that's something that everyone who works with the your nose so it's like it's kind of awkward putting it there so like I just had stuff of that sort and then over the course of time my knowledge tended to be More company specific stuff that did make sense to document it and now it's like I don't have any private docs they're all on the
wiki amazing Gan thank you so much for your time thank you so much for your insights your career insights talking about your books and it's being a privilege to have you here thank you so much thanks hi hi bye J