
Foojay Podcast #40: Making Java Attractive for Beginners in Programming
“Public static void main string array” are the first words everyone sees when they start their first Java Hello World experiments.
Some teachers explain them, while others say you will understand each word later.
Is this a problem to attract more Java developers?
And how can we make the Java language more attractive for newbies? Let’s ask some experts…
Video
Podcast Apps
You can listen and subscribe to the Foojay Podcast on:
- Spotify
- Apple Podcasts
- And most others…
Guests
Elvira van der Ven
Matt Raible
Frank Delporte
Podcast Host
Deepu K Sasidharan
- https://www.linkedin.com/in/deepu05/
- https://deepu.tech/
- https://mastodon.social/@deepu105
- https://twitter.com/deepu105
Content
00:00 Introduction of the topic, guests, and host
02:40 Is Java a good language for beginners?
07:38 What other languages should be taught?
12:10 First languages learned by the guests
14:51 Does Java have a boilerplate issue?
24:01 Which Java version to learn for teaching?
26:41 How to make Java more attractive to beginners
35:54 Python versus Java
43:34 Tips for starters
49:23 What language gives the best job opportunities
56:55 Outro
Music
- Barbershop John
- Hermine Deurloo
- Synapse by Shane Ivers - https://www.silvermansound.com
Transcript
Automatically generated from the audio, so it can contain errors in names and technical terms. Suggest a correction.
[0:00] Hello folks welcome to another edition of the food J podcast today we will talk about making Java attractive for beginners in programming and we have some amazing guests joining us for this welcome to the f j podcast all your news about OpenJDK Java gets some unfair you know bad rap these days even though it’s younger than Python and only as old as JavaScript well some of the criticism may be valid most of it comes from ignorance of Java’s Evolution as a language at least in my opinion but it does affect adoption you know of java especially by newcomers in programming and it also scares away students to an extent because of all this wraparound so how can we make Java more attractive to students and newcomers so let’s ask our amazing guests my name is Al feran I’m a lecturer at University of applied science in Ram our main track is technical engineering and that’s actually a really good question how can we make Java more attractive for students that’s that’s the question we are all asking ourselves to teach the students my name
[1:27] Is Matt Rabel I live in Denver Colorado currently a developer advocate for OCTA and I’ve been doing Java since the late ’90s so quite some time and I have many opinions on what we can do to make Java easier for new developers I’m Frank Porter I’m a Java developer a senior technical writer at aul normally I’m hosting this podcast but I’m very happy that deu you proposed this topic for the podcast and that you are hosting it but I’m also doing some Cod Dojo coding clubs for kids where we are not using Java we using scratch and stuff like that and indeed that’s a really good topic why are we not using Java in that club why do we think that it’s maybe too difficult to get young people interested in this programming language we should talk about it and I’m deu Kash I’m a poly developer and a Java Champion so I work for OCTA as well as a developer Advocate and I also co-lead J hipster I’m a open source fici ad author speaker know all the developer Advocate stuff and yeah as Frank mentioned I’ll be hosting this today maybe let’s start with this so in your in each of your opinion is Java
[2:46] A good language for beginners and regardless of what you think yes or no please explain know why you think that so I think it’s a good language for beginners if the environment is set up because what I’ve seen leading devox for kids and doing other programming classes especially for younger people and even older people Deo and I experienced this at devox Belgium this year is getting the environment set up is the hardest part writing the code is actually one of the easier parts so if you happen to have an operating system that comes with Java boy would that could be convenient right I know that Mac OS comes with like Ruby by default and it comes with python maybe as well which can lead to very difficult like problems for developers when they need to upgrade those built-in languages but I don’t know that javascripts with any operating system by default and so that’s the hardest part right is actually getting people to have everything set up so all they have to do is type you know the code and run it well I have a little bit different opinion about pre-installed well about how hard it is to install Java
[3:58] We start with say with C that’s pretty hard to install because you have different compilers you have different OS systems that’s takes around two classes to install it at everyone’s computer well Java if you use a good Eda you can just install it and start it and you can you’re ready to go in maybe half an hour with a full class of 30 30 students so I guess Java is easy to start with especially because yava takes care about a lot of things you don’t have to yeah I agree that the installation part can be challenging I have been doing this the job on Raspberry Pi stuff for some years now and you have one Raspberry Pi operating system flavor if you can call it like that which has Java and then that’s the full option they call it but indeed those were the challenges I had when I started experimenting with Java and Java F under P how to get this bloody thing running with Java the first time now it’s simple you have SD common which is I think a wonderful evolution of installing Java and the tools on different platforms and recently I just discovered gbang which is even a more
[5:21] Greater tool which allows you to run single file Java applications with dependencies without the need to install Maven or Gradle so I think we have gone through some Evolutions there but it was indeed a bit of a challenge I agree but I think we’re making progress and also with some of the jeets but we’ll probably come to that later yeah and I also personally think Java can be a good language for beginners especially I mean it may not be the fanciest language or you know doesn’t may not have the most fancy language features but in my opinion the greatest strength of java is its ecosystem and the availability of help and other resources because it has been around you know for a long time it’s a very stable ecosystem of libraries and stuff we don’t have you know like these framework fatigue as in JavaScript or something right so I mean spring for example has been around for quite some time right it’s we are not seeing something replacing it every other year so there is like a constant you know Evolution or addition of resources help and all those things so for a
[6:29] Beginner I think Java is one of those language where when they get stuck they can definitely find answers quite quite fast they don’t have to spend too much time trying to find solution they will definitely find something because somebody would have figured out that so and I agreed to the point that Matt and you know you all mentioned about the environment and I think for Matt’s point about not like the OS having this I think the only OS I have seen Java I know coming pre-installed is some Linux distributions maybe Manjaro and Fedora but even then that’s the default Oracle version and then if you want to change from that it’s yeah but I think STK man has been a great help in that aspect I think that should kind of become the official Java you know management system like you know like other languages comes with these within the language right like rust has cargo which manages everything rust up to manage versions and stuff and we have have the you know Ruby version managers and these kind of things so think SDK managing man man should be you know thought along with
[7:35] Java as the starting point in my opinion so yeah along with Java do you think there are other languages that should be thought along side Java to beginners if you look closely at the whole programming scene you can specify different approaches objectoriented functional imperative I’m not sure how you say that in English and last year’s gvm environment is evolving you have all those flavors inside gvm so actually I guess to make Java special more attractive to the people it’s really nice to show them that it’s not only Java you can run all those possibilities inside one system one platform and use them with each other interact with each other and use the specific language there where it’s needed and that’s the nicest thing of java of the last years I think if I can add SQL I think that’s a nice one to learn I have seen a whole discussion the last days about hibernate and that spring GPA is hiding a lot of complexity for developers who want to work with databases but that databases are pretty important and I think SQL is I’m from the age that I really needed to
[9:00] Learn SQL yes I’m that old oh we still teach it still because that’s an important one how do you get the right data out of a database without overloading your Java application with too many objects I think that’s a nice one and then yeah the web language yeah is HTML language CSS language I’m GNA be controversal here and say HTML and CSS are the easiest ones to learn for a new beginner and that’s what I learned and you can be you know say they aren’t languages but they worked for me so you can build a lot of stuff with it so yes it’s language if you look at it from that they together are touring complete right I mean with HTML and CSS together you can pretty much do everything these days MH yeah I also kind of have the same opinion as Matt that know when you’re learning a backend language it kind of helps because most of the you know use cases are like web related so I think it makes sense to also learn something for the front end like you know JavaScript and HTML and CSS I think and that that’s kind of a very common combination as well right and of course SQL also but
[10:19] Yeah kind of spring kind of made it a little bit unnecessary to kind of learn like full flesh SQL because it kind of abstracts everything and you can pretty much do everything with sping data right you don’t even have to touch hibernate or you know SQL I can’t remember the last time I actually wrote any SQL like by hand probably like maybe when I started out my career probably but once I started doing Springs spring yeah I don’t remember writing SQL by hand yeah maybe like an odd like to do a report maybe you know even then you just add an annotation and do the jpa equivalent but yeah I think another way to look at it because I do think there’s other languages besides just HTML and CSS but I bought books for my family I bought one for my wife I bought one for my son and one for my daughter like the languages that I thought they should learn and one was HTML CSS the other one was Python and the other one was Java but I do think JavaScript like belongs in the same sort of camp like if people come to me and they’re like I want to be a programmer right then I
[11:30] Will typically recommend like you know I love Java it’s probably going to pay the best but JavaScript and python I think are good entry languages and then HTML CSS if you just like visual right because I’ve been a front-end developer most of my career and the frontend developers always get the Kudos right the backend developers never get praised on how good their stuff is yeah yeah they get blamed if it’s something don’t work it’s stuck yes Matt you make me curious which book did you buy for your wife oh I think I got my daughter python the son Java so she got the HTML CSS one I’m curious now what was the first language you all learned like no my case it was basic oh I’m from the Commodore 64 age so 10 is print something and 20 is go to 10 and you’re stuck with results okay okay I think you shouldn’t count basic I think everyone would have you know got a little bit of basic somewhere but what else other than basic for me it was action script and C at the same time I think my basic experience was in the Backwoods running off a generator on a Commodore 64 so I think that’s kind of relevant
[12:48] Right it was my dad being like come on you should be a programmer right so this is like you know five years old or whatever and I never did anything with it right Pascal was a first first one I ever took a class on and that was in 8th or nth grade right before high school and I never did anything with that so like when I actually did something with the language that was like HTML and CSS and JavaScript right like building my own website and then I started getting paid for that when I went into the real world but my first job that I got paid for was a Y2K consultant and so I did a lot of squel because I was building an access database to record all the inventory of all the software that they had at storage Tech was the name of the company my first language was actually as well basic official Studio basic the one you had to install on 12 CDs and then your computer was just full unfortunately I’ve never had experienced Commodore by the way it’s still downstair here but it doesn’t work anymore and later on in high school we made some websites HTML CSS and later on it was Java oh Java is a
[14:01] Little bit my mother language nice nice yeah I think I also started with the JavaScript HTML and CSS that was the first probably probably JavaScript first and then know then I realized okay I also need HTML and CSS to do get stuff done so yeah then I think Then followed by probably C++ and Java yeah and Doctor scheme actually doctor scheme is the one where I actually learned programming before that I just learned bits and pieces to get the job done whenever I needed but when I actually learned to program and I when I realized that I actually like programming was Dr scheme but then yeah I learned that then I realized okay nobody actually uses it was fun it was fun to learn using that you could learn a lot and you know apply it in other languages so that was nice okay let’s let’s get into some of the controversial things you know when it comes to Java for beginners and stuff right so okay I don’t know if you all will agree to this but I think Java has a boilerplate issue right as a modern language or as an evolved language which is quite modern now right it has a
[15:11] Boiler plate issue compared to other mainstream languages you have to write a lot of boiler plate and I would love not you know I would love to you know be in a I mean for Java to be in a place where you actually don’t have to write you know two string hash codes sets and sets unless you need it I mean of course it’s nice to have those options when you want to override it but by default you shouldn’t have to do it right there should be you know primitive you know inherited methods or whatever like however there they should be there the default version should be there so you can just get get going write your actual code for your logic or whatever and don’t have to worry about you know adding all these things around like this boiler plate and the ceremonies around right so I would love to see that and I don’t know what your opinion is on that but my question is how do we tackle this boiler plate issue right because it’s a it’s a it’s one of the first complaint you hear for from people who are kind of you know against Java or people who
[16:22] Criticize Java this is the first thing you will hear right boiler plate verbosity right so how do we how do we tackle that and how do we and do you think the language will evolve keep evolving to reach that place where we don’t have to do all this ceremony I think the language will involve that far but that’s that’s really question which we are asking at the University where do we start to learn because you have two approaches the first one is you learn it the high level way you can use everything and it’s like we say Auto auto magic it happens and you don’t know how it’s magic so you’re programming fast you can make things fast but when something is broken or you want something out really special or really complex or really efficient if you don’t know how it’s built you can’t so if you have to change that two string method and you don’t know it even exists that’s the problem the other approach is start learning from the basics really hardcoded you have strings you have charts you have hash codes that’s the link list that’s how you make it and then you make it step by step
[17:46] Easier and going to higher level the bad things about that is that we only have a few years and a few hours to get the students there so actually or they don’t pay attention enough to get there or they are just hijacked by other languages and companies so they don’t get so if one of you have have opinion on which approach is the best I’m really curious a few months ago I was at High School here in Belgium talking about what has evolved in Java and I had a group of 30 students and about eight teachers and the teachers came to me we didn’t know that Java had changed so much they were and I think that’s a bit the same ID they stick to a certain version of java I think it was even because they want to focus on the basics how do you do object object oriented programming but the whole evolution in the switch cases for instance that we have in Java they heard about it but they don’t use use it in their courses so they ignored it the whole thing with the records that came to Java which removed a lot of the two string and equals stuff I have some Library I’m working on a pet project a personal thing where I only
[19:14] Use records and it’s amazing with the minimal amount of codes you need to have a lot of objects that you can combine I love it I love the records and then I made a video and a post also from Foojay some time ago about JEP 445 where you have the whole whole simplified main which is now yet still a preview in Java 21 and it will also be a preview I think in Java 22 so it’s not there yet but I think that’s one of those Evolutions in Java that will make it easier you don’t need to understand and explain the whole private static final main string arcs stuff but still there are also opponents to that approach because you don’t need to explain it so it’s both an advantage and a disadvantage so I think yeah to get more people into Java all this new stuff like records and the simplified mean are improvements but we must not forget that at some point people need to take a step forward and do learn what’s hidden there so I actually think there’s been a boilerplate problem with Java since I started with it in the late 90s and you might notice that I’ve been trying to solve it the whole time with Frameworks
[20:41] Like appfuse and J hipster right that generate that boiler plate for you so yes like it’s bothered me right and Frameworks kind of help with that but then you’ll see through like the jhipster efforts like we’re taking it even a step further where we generate the whole app for you so the one thing I do like with the framework space is a lot of start. spring.io like launch. Micronaut Dio and corus has code. corcus doio those all give people a better place to start because they create the dependencies they need in just the basic shell of a project right instead of starting from scratch and what I’ve seen with Oracle is even on their dev. Java site I’ve noticed that a lot of the articles that they will host on there if they’re from third party they don’t allow Frameworks to be discussed and so in that sense it’s kind of like oracle’s very good at promoting Java and trying to get people to use Java but when it comes to Frameworks they’re like eh don’t use those and like Frameworks are my love and joy right like if there weren’t Frameworks in Java then I wouldn’t be here and so I think
[21:47] You know yes we have a boiler P problem but there’s also things like records right records come into play and they’re awesome and you can’t use them with jpa and you’re like what like that that’s why I want records is to use with a jpa project and to be fair like you might say well what about cotlin it has data the data class is not supposed to be used with jpa either there’s plenty of articles that Explain why both of them are bad and it’s like for me that’s like well the Frameworks are holding us back now right like the language has evolved but why can’t we use these new features so it’s kind of a you know yin and yang I actually you know want to come back to the point that Ela mentioned actually never never thought about the learning aspect about the boiler plate right because I maybe because I don’t have a computer science background right like I learned whatever I needed from here and here like Frankenstein and after a few years they all came together and okay okay I know the language right so that never occurred to me that when you’re actually learning it’s it’s
[22:49] Actually useful to learn okay why do you have these right why do you have a hash code method why do you have an equals why do you why do you have the two string and all these things and how do they go in the hierarchy and all those things right so yeah that’s that’s a that’s a very interesting point of this boiler plate and of course like still I think still we shouldn’t have that because of course there are many other languages where you can do everything without any of without needing all this right and also all this made sense in an objectoriented world and I don’t think we are in a at least currently we are not in a objectoriented kind of setup it’s either hybrid like like yeah I don’t remember seeing any project which is like pure objectoriented there is always some functional programming some imperative programming there so yeah I think to evolve with the you know Trends or to evolve with the whole industry I think yeah we should think about how to teach those Concepts but we should also see how we can make it easy because once you have learned it those
[23:56] Are still going to annoy you right when you start producing code those are still going to an so we also have to think about okay how to teach the concepts but also how to simplify the language and I like the approach of unnamed classes and all those things but I think getting rid of these would have been much more value than getting rid of the static vment because you don’t write that a lot you write this a lot so yeah well actually you all bring me to ideas to just switch the learning curve instead of starting from the basics and going up to the modern start from the modern language and add kind of advanced class the history of java and tell there everything about about the how it started and why yeah we recently there was someone recently asked me yeah this was I think Muhammad was doing this was going around interviewing people and asking which version of java should people a beginner start with and I was like 21 the latest start with the latest like forget about all the old stuff start with the latest and if you ever have to do something then learn those right so because at
[25:09] Least it’ll it’ll it’ll be you know they’ll have more features to get excited about they won’t feel you know they won’t feel left out if they are coming from another language or if they are looking at other languages they won’t feel that you know left out so yes that’s why I think that Java gets a bad name in the industry is because everyone’s using Java SV right like most people like most Java jobs are working on a legacy system that your job kind of stinks right like it’s no fun because you’re just fixing bugs you’re never writing new code and so I think you know there’s kind of there’s this problem in the Java ecosystem where a lot of people are not using the latest stuff because they can’t true true I mean it’s true even for the J hipster right like we even though we support all the new versions we never could actually rewrite the code let’s say to use switch or deconstruction or whatever we could not because we are still afraid that okay someone might want to use it with the previous version and then we won’t be compatible right so I think that baggage yeah that baggage is
[26:16] Definitely holding a Java back but I appreciate the Frameworks that have said Java 17’s our minimum version right so that has helped I think a lot lift the ecos system where people are trying to migrate to new ones and especially when someone like pivotal now broadcom right says actually we’re not going to support Spring 2.x after this date and if you want to do it you’re on your own you know to continue with the same discussion right so I would love to hear what each of you have ideas you have to make Java more attractive to beginners and students what could we do to make it more attractive what I’m trying to do is creating some videos and blog post with gbang so as Matt said getting your stuff set up the first time and you need to install Maven and then build it and jbang helps you a lot there and I created some some examples with my stuff here behind me with my Rasberry pies and Le strips and stuff like that you just have one file and everything is in that one file to Define your dependencies and then just run the application and have something on a let strip some blinking
[27:35] Lets stuff like that so fancy things which you can do with one single file actually a bit what you can do with python but I never loved python I always ended up with problems with Pip install and then suddenly it was pip Tre install and things were broken so having issues with your system setup to program that happened to me also with python so I don’t think it’s only Java Java which has a problem there I think gbank for instance and having a lot of content available dur between Christmas and New Year I had a live feed live video with Almas Bim who created fix gel the game engine in Java fix and we also created the gbang example so now you have a game which is only one single file one single file and you have shooter game so I think if we can make more of these and show the Java which was born as a language for setup boxes and user interface design is now considered to be a backend thing but you can do a lot more than that and I think if we can show that more to the world that we can also convince more people to try it out and see what they actually can do with
[29:05] Java so I don’t really know that we have a problem getting new people to like Java because as a consultant before I joined OCTA I was always trying to get people to use simpler Frameworks like Grails or even while I’ve been adoc to trying to educate people on cotland as e alternative to Java and what I found for the most part is the people that are transferring from some other language back in my Consulting career around 2010 it was cold fusion they didn’t want to learn groovy because guess what there’s not a lot of groovy jobs they wanted to learn Java so they could uplevel their skills and go get a better job so maybe if Java speakers just started telling people how much they made then people would be like oh yeah I want to do Java because that’s what I found is a lot of people want to do Java because it pays really well and a lot of the Alternatives that the Java ecosystem has in cotland and stuff that only really appeals to Java developers it doesn’t appeal to the other people that just want to get a good job in the ecosystem now when it comes to students I think the problem there is the
[30:12] Teachers no offense to you like I know this is a us thing and I don’t think it applies to other parts of the world but in the US they’re teaching C and C++ both my kids have taken computer science classes at their University and they haven’t been able to ask me any questions because I don’t know anything about those languages right I can’t help them and so they’re kind of stuck with you know actually struggling through figuring out how to use them and so I think in the universities there could be just Java right as an intro language and that would help it tremendously and there is something I wanted to make you aware of in case you weren’t that there’s a project called what is it it’s a it’s a project to enhance undergraduate computer science curricula in the US and it’s basically trying to initiate a long-term partnership between the computer science Industry and software industry and Academia right and I think it’s very important because like there should be professors that are up to dat on the Technologies and teaching those not teaching them something that they can’t use when they get out into the
[31:16] Real world right couldn’t couldn’t agree more most of the time the now I wouldn’t say problem not to offend my colleagues but most of the time we are teaching students things we know and how longer you’re working as a teacher how more is the danger of not being updated on the new things so yeah that is really a danger right now we are offering actually well different languages we start for with C by the way we are not only programming Bachelor we are technical programming so we are making robots and some some races between some some cars to finish first and avoid obstacles and things like that a little bit playing around but we start with C then our second language while on which we spend a little bit more time is Java in second here they are getting C++ and a little bit of don’t be scared H schol and in the meantime they can apply for the extracurricular courses of python because it’s it’s actually everywhere py I would like to add to that right like Matt said he doesn’t know of a problem right so this comes from the fact that there are other
[32:54] Options for people right now like at least maybe not for students even for students right like I’m I’m a strong advocate of sunsetting c and C++ and just using rust we we’ll be we the industry will be way better off we’ll have way especially I think People Like Us in the cyber security industry we be way better off less issues to worry about just they’re good to learn they’re good to learn Basics just forget them move on to rest and forget that they anyway but there you know there is also go which is a very viable option for anyone doing Java right so similarly like yeah there are many other newer programming like Julia and all these things then 100 other newer languages right which kind of solves a lot of issues that we have with other languages then we have of course the elephant in the room python I want to come to python in the next question so let’s let’s spark it for there but yeah that that’s why I think that there are other options right and when there are other options and when we have some negative
[34:08] Press or you know this sentiment around something it doesn’t help that’s why so what can we make to what can we do to make it more attractive and how can we reduce that negative sentiment I guess adding people like Frank and the projects and then podcast he’s doing and show them really to the students or people who are starting with the language that’s a big Advantage a big addiction to make the language popular and maybe we should invite the teachers to the J and stuff like that because Evolutions are shown and you get demos of what is possible with the Java of these days and not Java yeah well actually in a few months I’m organizing a few days course for my colleagues on Java given by we are still in D about two companies to learn teachers the newest Java from pre- AG Java eight until the modern Java 21 and some preview features of java 21 so yeah work in progress thanks thanks Frank you brought up jugs and I think that’s an excellent point not just getting the teachers to join the jugs but actually going to the teachers I would like to see a lot more jugs
[35:31] Started on campuses by the students or the teacher whatever because that’s where students are going to show up for right I went to school here in Denver and we host our Denver jug meetings downtown and for me that might have well has been in another country when I was a college student right it was so far away and so if I just had to walk across campus to a meeting chances are I would have done it a lot more okay the elephant in the room by python so yeah like it or not we are in the post machine learning AI world right like so it’s it’s not going to slow down or anything it’s just going to you know expand expand until it eats up everything else probably and python is at the Forefront right of that so I’m not a fan of python I don’t like the semantics of the language actually I don’t have anything against the console but it just like doesn’t you know trigger any happiness if I write python code but yeah and Java unfortunately is quite behind right we don’t have anything to offer in much we don’t have much to offer in that space especially AI space of course we
[36:46] Can offer a lot in the ml space in terms of data processing you know like I mean Hadoop and all those things it’s it’s there right so we Java has offered a lot in the machine learning part of it but in the AI gen or AI whatever that space we don’t have a lot to offer right and I would blame 90% of that to the jn9 on all those the fiascos around there and I’m hoping project Panama will address some of it but still we have to agree that Java doesn’t have big presence there right so what is your opinion on that and where do you see Java in a post ml AGI world you have been to the latest jall right yeah there was an a lecture or a talk about machine learning with Lego bricks yeah yeah that that’s the biggest example because yeah python is famous inside machine learning but I also don’t like python by the time I learn python it was the between Python 2 and Python 3 it felt like a it’s a language with identity crisis you’re not sure the things which are forbidden and two are must be used in p and 3 at so actually I tried to use Java in the early States for
[38:17] Machine learning and it was really hard and right now it’s still becoming better the language is evolving and I think that people don’t know it can but actually Java can be used for machine learning and right now in April we are starting with a course machine learning to learn system to drive a simulated car with Torx M and I am planning to do it in Java and to motivate us most people as I could to do it in Java instead of python mat you’re wearing a t-shirt of devox the 20 year T so was at devox I’ve seen there a talk about L chain for J which is okay we have to admit it is a lang chain which was made in Python which was then remade in Java yeah but whoa I’m I’m doing a talk at fosdem in a month about searching through the docs that I write for aul with a chat GPT like interface so I’m feeding that little Java vix application with my real docs so it is not linked to some trained model of two years ago and wow again it’s Java what you can do with so little code because there is a powerful Library created by amazing people for free again and you can just add a dependency to
[39:49] Your project and you have this whole thing that’s available in open Ai and okay you have have to need a you need a key and you have to put at least $1 in that account of open AI to have some kind of thing that you can call there but yeah python has grown a lot thanks to machine learning AI but it also inspired a lot of java people to do similar things and I’m only mentioning Lang shame for J there’s a whole list of libraries projects then we have Evolutions in Java in djna and stuff like that so the vector API is also I think improve that so if someone asks you again which Java version should people learn it probably will be 23 is not there yet that will be the starting point because a lot of these things will be there but I me hopefully we cannot predict that we have to wait Vector AP has been like fourth incubator I thought like three after three they it will be stabiliz but it’s like fourth incubator okay so yeah I think we have things which are in the sixth preview fion it sometimes takes some time before Java evolves but if it arrives then you can be very sure
[41:17] That it’s good stuff that you’re getting and same with the library so I yes we are behind with machine learning definitely but there’s a lot of things going on there I think it’s it’s somewhat the nature of the language the where I’ve heard it from the people that work on it at Oracle that they want to be the late followers right of the trendiest things in languages so they can get it right and so I think you know from that perspective yeah python might be aead on the AI stuff but I think we’ll catch up right and from a new beginner perspective like I don’t hate python in fact you heard that I gave books to my family and there was a python one in there right but career-wise the funny thing is as a consultant for 20 years before I joined OCTA I never saw Python and I never saw it as a threat and I never encountered it at any companies right there might have been CIS admins that knew it and might have automated some stuff with it but it was never really even on my radar until I worked with other developer Advocates that loved it and promoted it Randall was on our team at OCTA and then at ozero we
[42:25] Have just temporal and both of them are such huge enthusiasts of the language that it’s a little catchy right like I’m a little bit of an Enthusiast just because of them and but I haven’t written any python code so I think from a beginner perspective it’s people like that will make beginners attracted to it not the language itself it’s just people that are gung-ho about it so same thing with Java if we have more Java Champions or Advocates that are just like this language is great without being a framework fanatic like I am then chances are it won’t be as much of a threat yeah and I’m definitely excited for you know when all the Panama stuff lands like properly and then actually you can start doing Java on GPU because currently we cannot do jav on GPU unless you want to kill yourself by trying to do it with jni so yeah I’m definitely hopeful that once you know we have the vector API and we have project Panama stabilized I think yeah we will catch up with all the GPU stuff and all the kudas stuff and everything so for someone starting out and trying to learn Java what
[43:39] Advice would you give them use intellig agree 100% And it’s funny because when I started right creating my appfuse project it was all ant-based and I had a very strong stance at that point that do not use an IDE but I was also a guyy whose’s homite which is like an HTML editor right I would look up the Imports and copy and paste them and they’ve gotten so much better right in the last 20 years that I almost laugh at people who don’t use an ID now right and so I think you know the ID is going to help you greatly I think you know maybe if you’re going to use a framework start with something that’s been out there a while right like spring boot has so much documentation and so many tutorials and they’re so good at backwards compatibility that it’s pretty easy to pick up for a beginner versus some framework that came out last year or last month like it’s going to be tough to get started with that so yeah use your IDE and you know use a framework but again if you really want to learn the language then using a framework might not help you do that for a beginner I guess a good advice is watch
[44:48] Out which resources you’re using when you’re Googling stuff because just Google things and oh it works and then just implementing it and it appears to be the wrong code or just an python 2 code then you’re wrong because you’re not programming you’re like we say not program but Google Googling and programming and you are not learning anything or actually you’re learning the wrong stuff so choose your resources I feel attacked I even have macros for copy [Laughter] raise your hand if you are a full stack Overflow developer St overflow yeah can I continue with the IDE if you’re at a new company has a new job and they not willing to pay immediately for an intelligy license that’s a really P red flag you can gain so much efficiency if you’re using the right tools it’s not only intelligence it’s all the right tools if a company is not willing to give you the right tools for a new job that’s red flag you should ask that before joining getting started with Java how can H actually I have a we have a tutorial on Foojay a quick start tutorial gives you 10 lessons a half an hour for really the basics and then yeah
[46:23] Learn from other people learn how others are doing something there are amazing tutorials online a lot of them for free on YouTube on wherever on Foojay of course but I have to admit on Foojay we may be focusing a lot on very experimented developers and Diving deep into certain topics so we don’t have that much content and maybe yeah you’re right maybe we need to create more of these create more simple examples how do you do stuff with a few classes and not a full project that’s maybe something we as as Java Community could help but developers themselves like the best way to learn is build something right like doing tutorials only get you so far and it’s not really going to stick you’re just going to be like wow that worked and now I can clone the get repo and my code matches right but building something that you want to use in your life that’ll that’ll make you learn and it’ll stick and it’ll be great for the advice I want to add something as a PO developer right and this is what helped me learning multiple languages so for Java specifically I still
[47:41] Recommend people to start with the latest version and what I know so what I see working especially if you’re coming from another language or even if you want to go to another language after Java right so learning the basics of this these will be the basics of any language like learn about the type systems learn about operators learn about you know functions control flow generics pattern matching these kind of things first before you start learning the language specific things and then go with the say Java specific things of inheritance polymorphism all that things and then go with you know functional programming or oop or the I know or I mean of course you know imperative pring by now but then yeah of course I think it helps to learn both not just one I think both are quite valuable and I’m a strong believer that don’t go with just one use both like like don’t just do functional programming if you want to have if you want to tune your program to be as fast as possible you will end up writing imperative code so learn all the methodologies and use
[48:48] You know what works for that particular situation so use the right tool for the job so and yeah as Matt mentioned I don’t know if Matt mentioned that but don’t start with the framework but do the language for learn the language first and then of course learn some Frameworks at least some basic Frameworks because I don’t think you will be writing code in pure Java in real world cases you’ll be you will be using framework you’ll be using if you’re writing a web app you probably will be using like spring micr or something not going to write pure Java code right so yeah the final question I have what Lang languages do you think have best job opportunities these days from what you have seen last year I’ve seen more and more students getting away with python because machine learning is getting big and actually every small company wants to do something with machine learning so I guess the shortterm short projects is python but I know a lot of big companies who are doing some of gvm languages so I guess it’s it’s more the question what are your interests are you more interested in
[50:05] Data or in back end or in front end or in security what kind of job do you want is my question because if you want to be a consultant and you actually want like latest and greatest kind of languages and Frameworks right so I would say in the Enterprise space that’s probably Java and go you know at ozero we have a lot of our infrastructure written in go but a lot of it’s also in node so Java go in JavaScript probably not rust sorry deepo yeah I know but like as a consultant but a lot of people don’t like Consulting because they’re like you know I might have you know an issue where I need Healthcare and I need benefits and I live in this place called the US where I don’t get that just by living right and so I want to go work at a company for a long time and have those good benef benefits in that case it’s what does a company have right if you want to go work for Google then chances are you know you could learn angular right and typescript and you don’t even need to know any backend languages or stuff like that or go I think they have a lot of stuff in go and I know they have a ton of
[51:11] Projects in Java right and at OCTA we have two main clouds our Workforce cloud and our customer identity Cloud the workforce cloud is all Java all spring boot the identity Cloud’s all JavaScript in like hoppy and node so it kind of like it depends on where you want to work and what you want to do MH and maybe also the type of company if you go to the old established companies then chances are you are getting with an old language meaning a language which already exists a long time like Java C maybe and then the other startups they are typically somewhere in that typescript JavaScript notes environment or some other fancy thing that the founder probably knew when he was developing the project all own so yeah it depends also a bit on the company but I think if you have a good understanding of a language you can pretty easily switch I made a switch from action script to C to Java which are different but still the same somehow so being a good developer is understanding how you structure your code how you can talk to the clients internal or external understanding what the problem is how you can solve a
[52:39] Problem so being a good programmer is not only knowing a good language actually I had someone who said yeah I chose programming because I didn’t want to speak to people and then I found out that speak a lot to people to understand what they really want to be faed so being a programmer is much more than just typing code so which language of course it’s Java if you ask me but probably there are a lot of others which will give you a nice job and hopefully a big b of money as was saying before but I think the best money is with the Mainframe and [Laughter] cobore they have a lot of stability with cobal and Main FR and it pays a lot the first company I work with we had Mainframe developers and for the same level they used to get twice the pay for the same level just because they knew main frame so yeah but I would say to keep yourself as like an enthusiastic developer look at open source projects because even if you can’t use your favorite language at your company in your job chances are there’s an open source project out there that either you could start to use your
[54:01] Language or that you could join and really help those people out and that will transcend into your next job and you won’t just be tied into your experience from that job as as you know someone who’s been a new developer before without a computer science background I got degrees in Russian international business and finance and when I decided my senior year to switch to being a programmer like you know it was kind of difficult getting in and what really you know helped me in my career was conferences and open source right so doing a lot of Open Source really helped me learn and especially because I did it wrong a lot and people would be like your two string sucks right or your hash code is wrong for hibernate Stu so I kind of learned through Community feedback but then I made friends who seem like old College friends from going to conferences and speaking at conferences and just networking with people and it’s still a joy to go to a lot of the Joba conferences because people have been doing it for 20 years and it’s tough to get new people in but I think at the same time that’s that’s
[55:02] What deepo and I are trying to do it developer advocacy and Foojay is trying to do it as well right is just and you’re educating people on you know how to be programmers so I think we’re all you know doing our part and I think you all have had a good experience like with this career so I would encourage everyone to you know just be a part of the community and go out and even though it kind of you know can be nerve-wracking to talk to people and especially when you have social anxiety like it’s very rewarding yeah I 100% agree I think open source has yeah I don’t think I would have been in the industry or I would have learned all multiple languages or you know whatever had a career if it wasn’t for open source so I think open source kind of helped me learn like most of what I learned so and the point what Matt said right if you like some something and even if you don’t can’t do that in your work yeah you can always do open sour that’s what I that’s why I write code these days like because I want to write rust code so I’m doing a lot of Open Source projects the Java Community is really
[56:09] Warm Community a really wellcoming Community even if you are a newcomer or you’re just fresh first year second year students it’s they all feeling welcome and they all feeling helped it yeah yeah yeah I don’t I don’t think any other language has the kind of jet networks that Java has right the consistency and the interconnectivity of that right and they all have music groups but yeah we have hundreds around the world and you know there’s part of me that wish is like it was originally started by Sun and invested in by Sun I wish Oracle would invest a little more right but otherwise you know there’s plenty of companies are investing so I think they’ll continue to thrive thank you so much everyone and especially our amazing guests and all our amazing audience for tuning in keep an eye on Foojay for future articles about development and everything related to the Java world so thank you and adios give me a give me a j give me the friends of OpenJDK
Found a mistake, or something to add? Edit this page on GitHub







