So in short, EPI will be helpful to improve java skills, however make sure to refer other materials to learn OOP with java. I ultimately decided to go with java for leetcode because I was more comfirtable with java and did not want to get confused by keeping track of different data structures etc. Beyond algorithm part, this OOP programming concepts also come up frequently during system design interviews. However, the book is not intended to teach OOP patterns ( inheritance, implementation, polymorphism). You will learn all of java data structures and important library function etc. So, improving java and C# skills is definitely helpful.ĮPI is a great book, I have personally used the java version.
I was also ambivalent about python or java for leetcode, honestly for most of the software development Java, C# ( for established companies) and Javascript (for cool new startups) are more prevalent than python. So my question is if I get the book in java, will it help me improve my java skills more than getting the book in python and then just going back and redoing some of the problems in java? I think that getting the book in java will help me improve in java (I currently write automated tests in c# and javascript) which may help me on interviews in the area.
I'm going to be applying for positions outside the area and programming practice is always a good thing so even though many employers in my area don't have you work on leetcode problems, I think getting better at algorithms is still worthwhile.
The problem is that most of the jobs in my area are for java developers with a little c# mixed in and in my experience most job interviews are more functional (tell me about how to do this in java or what is on push change detection in angular) than algorithm based. Not because I want a job in python but because it has limited boilerplate and is a little easier to work the problem without the language getting in the way. I haven't been consistent with it like I should but in my interview prep with leetcode I usually use python. I'm currently working as a tester but want to start preparing to apply for development jobs.