Tech IndustryDec 8, 2019
Newwhistler7

C programmer planning to switch to Java

Hi, Background: I am a backend software engineer (C programmer) with 3+ years of experience in a hardware based start-up located in California. I have decent experience in Java (core Java, not the latest constructs or lambda functions etc) but I have minimum knowledge about databases and distributed systems. Aspiration: I would like to become a software engineer who actually builds pure software products in Java and later move into more advanced/updated areas such as Machine learning. Things that I am doing: Deligent leetcoding Grokking the coding interview - to identify patterns. Feedback from interviews: Latest constructs needed (Java 8) System design knowledge can be better Distributed system knowledge lacking Basics of database need to be strengthened Question: How do I improve on the above? Thank you.

Add a comment
Infosys BRY47 Dec 8, 2019

Just LC and apply to FAANG. Your system design knowledge can’t really be fixed without experience, though you can try with grokking the system design interview and system design primer. That just means you’ll start at a lower level in FAANG if you can still pass the LC questions. I’d recommend not doing LC in C. Java will be fine, and you can practice lambdas in LC.

New
whistler7 OP Dec 8, 2019

Hi, thank you for the reply. Grokking the system design is a great advice. I will look into it. Yeah, I have migrated to Java in LC. Any suggestions about object oriented programming?

JPMorgan Chase JamieMadro Dec 8, 2019

Java 8 language differences are pretty simple (and powerful) in an interview setting: Streams API Lambdas/method handles Default/static methods in interface (extra: now that interface have default methods, how are they different than abstract class still?) java.time API All these can be studied and learned pretty easily

New
whistler7 OP Dec 8, 2019

Hi, thank you for the reply. Can you please suggest some object oriented programming references as well.

Amazon UEUW26 Dec 8, 2019

Dont

New
QTdN03 Dec 8, 2019

Leetcode more deligently. 🥪

New
whistler7 OP Dec 8, 2019

Solving leetcode helps but the reason why I have posted this is because interviewers are expecting something more than solving problem. Nevertheless, I will keep working on this aspect too.

Box RedAlert4 Dec 8, 2019

Have you considered Front end engineering? Databases and Distributed systems are less important and your LC and algorithm knowledge can get you through the harder parts of the interview

New
QTdN03 Dec 8, 2019

I don’t know...CSS might be more difficult to learn than distributed systems.

New
whistler7 OP Dec 8, 2019

I would like to stick to backend as there is so much I can learn, improve and do.

American Express gandalf$$ Dec 8, 2019

I would say that database and distributed systems is the least of your concerns right now. You need to master writing web services. Best way to get your feet wet would be to work on some api project in springboot or something and host it on aws. You’ll be forced to learn some basic web concepts like dns, load balancers, etc.

New
whistler7 OP Dec 8, 2019

That sounds like a plan. Will work on it. I will checkout some open source projects which does the same. Just curious if you have any suggestions.

American Express gandalf$$ Dec 8, 2019

Pm me. I can point you to some resources

MathWorks woohoo11 Dec 8, 2019

If someone mentions a language in their resume’s title I’m not reading past the title.