The computer science concept we all love to hate. However, it is vital to master them to pass tech interviews, especially those at Big Tech.
I'm pretty good at leetcode (was able to pass some 3 to 5 rounds of interviews), I got good at by practicing and continuous learning. Now I want to be good at software engineering in general like debugging, building components, understanding complex things/systems, etc. I see one of the suggestions is to improve on fundamentals of software engineering, how do I do that? and What action items can I follow consistently? Any concrete suggested steps will be great instead of just some general bullet points. Thank you all.
Hope you're doing well! I'm reaching out to you today because I'm currently trying to wrap my head around recursion, but I'm struggling to grasp the concept fully. I've tried learning it before, but it just never clicked for me. Now, after taking a few weeks to refresh my mind, I'm diving back in and hoping to find some top-notch resources that will help me succeed.
Recursion is a prerequisite for many data structures and algorithms, including trees, dynamic programming, graphs, sorting, searching, and traversal algorithms. Understanding recursion is essential for working with these structures and implementing efficient algorithms that operate in them.
Please offer some guidance or advice on how to approach this problem. I would be incredibly grateful for any help you can provide.
I work at a startup hiring senior software engineers. I have less than 1 year experience but I was asked to take technical interviews. I explained that they have wide skill set and I might not be the best person to interview them. They told me it's not a problem and that I can ask them questions related to what I already know.
So I interviewed a PayPal software engineer today and he has 6 years of experience. I've asked JS/TS specific questions like "here's a sample code, tell me what's wrong with it?" and I noticed that the candidate couldn't answer these questions. He started to get defensive and said that I shouldn't be asking these type of intricate questions given that it's easy to resolve the problematic code by relying on code editors' intelligence or simply googling the bug. In the end, we gave him a DSA question which he solved in 15 min.
I want to hear opinions of engineers here because I was expecting a senior engineer to know the "gotchas" of languages they have experience with and not just be good at DSA. I know it's important to have confidence in interviews, but is it okay to straight-up tell the interviewer to not ask language specific questions? Is asking language specific questions not the right way to evaluate someone's knowledge?
I have recently joined a team which works in Go (no frameworks). My team handles multiple backend services ( exposed through REST APIs ) which are like a platform for various other services.
I have picked up the language grammar and have enough understanding to write working code. However, I feel I don't "get" it. I don't understand how to organise the code into a well-defined folder structure and interfaces.
I would like to understand what are some of the good ways to learn a new language. It's been 2 months since I started learning it and feel like I am working with incomplete knowledge. Maybe at 50% level. I know there's no point in understanding all the features of a language but I would like to understand design patterns, best practices and how to write high-quality code.
I really need to be able to ramp up in another month's time.
Majorly need advice on
Both in the context of a data structure and algorithm problem and in the context of a software problem or any problem really it is important to weigh the pros and cons and have arguments to back your decision making.
Having the knowledge to come up with several solutions is challenging - how do you get good at this? Is experience the only answer? Do you have any techniques you put in place to help with this?
I haven't touched leetcode yet and don't have a CS background. I'm not sure whether to use my free time to work on a personal project or if I should use the time to take up a DS & Algos udemy course, Algoexpert, etc and just leetcode until I can apply for the big G. I guess where I stand with that is I'm wondering if there is more value in it than a skill that just vaporizes after passing the leetcode interviews.
I’m currently working as a Data Engineer for a mid-sized (1500 people) investment-services corporation. The company has been around for a long time and makes money, but it definitely isn’t a tech-first company (e.g. it refers to the software side as “I.T.”, has tons of meetings, approvals needed to install almost anything on my computer, including VSCode).
I want to get into FAANG as a software engineer because I want to move away from the business/data side of things and closer to the engineer side of things. On my current team, I’m the lone data-engineer (will be joined by another in a few months) and as someone with <3 years of experience, I know that my growth is being stunted.
I’m currently grinding AlgoExpert to prep for interviews.
How should I think about the circumstances under which it would be worthwhile to quit in order to prep (full time) for FAANG interviews? Here’s what I can come up with in terms of current pros/cons of quitting:
Pro’s of quitting:
How does the answer change (if at all) if I manage to land interviews with a bunch of different FAANG companies (say 5+) and I’m struggling to schedule all the time for interviews, prep for them, and do minimal work at my current job?
Thoughts are appreciated!
I'm a self-taught, aspiring Android engineer, looking to land my 1st full-time role. I have around 4 hours a day to learn software development, and I'm wondering how I can spend my time the most efficiently. Here are the 2 core things I want to understand how to balance my time between: