- 117
- 31 215
Timothy Lee Grant
United States
Приєднався 29 бер 2016
I absolutely love the amazing potential which engineering has. In my opinion, engineering is the field which brings the most positive changes to our lives.
The world we live in today is infinitely better in almost every single aspect, life expectancy, standard of living, access to knowledge and information, and elimination of major ailments which previously plagued humanity. These advancements were brought about through the steady advancement of technology and science. This is why I am so passionate about engineering and am so excited to be a part of this
Out of all the fields of engineering, I enjoy software the most. I think I am drawn towards it because it really fits my interests and personality. I like logic puzzles, mathematics, and analyzing problems.
The world we live in today is infinitely better in almost every single aspect, life expectancy, standard of living, access to knowledge and information, and elimination of major ailments which previously plagued humanity. These advancements were brought about through the steady advancement of technology and science. This is why I am so passionate about engineering and am so excited to be a part of this
Out of all the fields of engineering, I enjoy software the most. I think I am drawn towards it because it really fits my interests and personality. I like logic puzzles, mathematics, and analyzing problems.
Three Ways To Solve Leetcode 217: Contains Duplicate
Three Ways To Solve Leetcode 217: Contains Duplicate
Переглядів: 23
Відео
Exploring Graphs: Leetcode 530 Minimum Absolute Difference in BST
Переглядів 867 годин тому
Exploring Graphs: Leetcode 530 Minimum Absolute Difference in BST
Exploring Open Source: JOS operating system | Part 1
Переглядів 947 годин тому
Exploring Open Source: JOS operating system | Part 1
Software Engineering Fundamentals: Virtual Environments
Переглядів 707 годин тому
Software Engineering Fundamentals: Virtual Environments
Depressing Reality of Engineering (Real Depression Starts @21:50 )
Переглядів 5739 годин тому
Depressing Reality of Engineering (Real Depression Starts @21:50 )
Singleton Design Pattern: Software Engineering Fundamentals 2
Переглядів 1859 годин тому
Singleton Design Pattern: Software Engineering Fundamentals 2
Dumbest Leetcode Problem I've Ever Seen: 1025. Divisor Game
Переглядів 35514 годин тому
Dumbest Leetcode Problem I've Ever Seen: 1025. Divisor Game
Lazy Leetcode: 1971 Find if Path Exists in Graph
Переглядів 13016 годин тому
Lazy Leetcode: 1971 Find if Path Exists in Graph
Low Stress Leetcoding: 367 Valid Perfect Square
Переглядів 14119 годин тому
Low Stress Leetcoding: 367 Valid Perfect Square
Leetcode 20 Valid Parentheses (An Old Friend)
Переглядів 12721 годину тому
Leetcode 20 Valid Parentheses (An Old Friend)
Software Engineering Fundamentals | Part 1
Переглядів 530День тому
Software Engineering Fundamentals | Part 1
Low Energy Leetcode: 108. Convert Sorted Array to Binary Search Tree
Переглядів 174День тому
Low Energy Leetcode: 108. Convert Sorted Array to Binary Search Tree
Final Machine Learning Video (As of Now)
Переглядів 150День тому
Final Machine Learning Video (As of Now)
Cozy Graph Problem: Leetcode 997. Find the Town Judge
Переглядів 140День тому
Cozy Graph Problem: Leetcode 997. Find the Town Judge
Don't Give Up LeetCode, It Gets Better! (Proof @14:42) 169. Majority Element
Переглядів 498День тому
Don't Give Up LeetCode, It Gets Better! (Proof @14:42) 169. Majority Element
Steady Leetcode Progress: 2363. Merge Similar Items
Переглядів 277День тому
Steady Leetcode Progress: 2363. Merge Similar Items
Low Stakes Leetcoding: 88. Merge Sorted Array
Переглядів 10414 днів тому
Low Stakes Leetcoding: 88. Merge Sorted Array
Attempted Dynamic Programming: 70. Climbing Stairs
Переглядів 18214 днів тому
Attempted Dynamic Programming: 70. Climbing Stairs
Software Project Organization: Machine Learning From Scratch | Part 5
Переглядів 17414 днів тому
Software Project Organization: Machine Learning From Scratch | Part 5
Machine learning Coding Session | Part 4
Переглядів 17014 днів тому
Machine learning Coding Session | Part 4
Chill Leetcoding Session: 409 Longest Palindrome
Переглядів 16214 днів тому
Chill Leetcoding Session: 409 Longest Palindrome
Machine Learning From Scratch | Part 3 (Chill Coding Session)
Переглядів 9314 днів тому
Machine Learning From Scratch | Part 3 (Chill Coding Session)
Machine Learning From Scratch | Part 2
Переглядів 17314 днів тому
Machine Learning From Scratch | Part 2
An Actual Leetcode Success: 374. Guess Number Higher or Lower
Переглядів 43014 днів тому
An Actual Leetcode Success: 374. Guess Number Higher or Lower
Learning Machine Learning From Scratch | Part 1
Переглядів 1,7 тис.14 днів тому
Learning Machine Learning From Scratch | Part 1
Stumped Again Leetcode 33. Search in Rotated Sorted Array
Переглядів 19214 днів тому
Stumped Again Leetcode 33. Search in Rotated Sorted Array
The comments in this video dont seem to get how tough this is. To be in a field where you are not working in your natural element. To want to be a developer but not have the mental framework or capacity to problem solve like your peers or colleagues do. Not sure if you read the comments Timothy man, but good on you for still sticking with this field, the sheer determination to go through 1000 applications is well deserving of a spot at a company. You have strong character, dont give up now you're really almost there, you also work in embedded systems which to most programmers is already a round of applause. Stay persistent your thirties are prime years, anything can happen!!!! Just take care of your health, dont let it slip away especially at this age. All the best man, your persistence is literally the tell tale sign that you DESERVE to be an engineer, a normal person would have quit, but you havnt and that is an extremely redeeming quality you ARE qualified, you have a blessing that cannot be taught and thats persistence and GRIT.
He is usually asking questions on the very topics the callers are saying that they are familiar with. I am not even a software engineer , and I know what an array is and understand recursion. So , you mean to tell me someone who spent four yrs in a computer science degree program cant answer basic questions about the one or two languages they studied in college. The problem is lack of passion, lack of interest, laziness and now using ChatGPT to pass computer science courses. Excuses. Excuses. and even more Excuses. I love computer networking and system architecture and the more I study those topics the more I want to learn more, that passion lead me into cloud computing, cloud security, and Cloud Architecture. I work in a non tech industry and can now hold a decent conversation on BGP, OSPF, Virtualization, DHCP, SDN etc. What they are , how they work, their use cases, and how would I properly scale a database system in the cloud. All on my own time. All on Passion. After all of that, I still know nothing compared to how much more there is to learn in my tiny area of focus. But I can tell you one thing, I have the fundamentals on LOCK. Before summer, I will be the one interviewing employers. My soft skills are good and still improving, I can present and explain the technologies I do know relaxed and with confidence. Once I get settled in Tech this yr, I will be replacing my non tech bachelor’s degree with a Computer Science degree, not because I need it , but because I cant help it. If my younger competition spent 40-50% using ChatGPT to pass his classes, and we’re both interviewing for the same position, I will surely be thanking him after it’s all over. I’m sure you mean well. But when you listen to a lot of the callers on his show, there’s just something missing, and that something makes a big difference. Chao!
Dont worry, actually solving this problem using binary search makes it hard, you can simply solve it using a set(), Here's the Code : class Solution: def missingNumber(self, nums: List[int]) -> int: numset = set(nums) for n in range(len(nums)+1): if n not in numset: return n Step 1: Create a set() from the given array. Since all numbers in the array are unique, a hash set allows us to check for the presence of a number efficiently in O(1) time. Although we could directly search for the missing number in the input array, using a set improves performance by reducing lookup time complexity. Step 2: We know the numbers in the array range from 0 to n, where n = len(nums). When iterating through the numbers, we must include n in our loop. To ensure this, we use range(len(nums) + 1), because the range() function in Python does not include the upper bound by default. Step 3: Iterate through numbers 0 to n. Since one number is missing from the sequence, our loop will eventually encounter it. For each number, we check if it exists in the hash set. If a number is not present, that means it is the missing number, and we return it immediately.
29:50 btw, jensen huang went to oregon state university.
i have solved more than 1500 leetcodes and recently i bricked hard on writing a binary search implementation. it's alright, dude. happens to the best of us. 🫂
Solution worked on first commit attempt? Sheesh! Good job man
This isn't an easy question. Nice job!
He is right, you are wrong, the US education system is cooked and cooked you and cooked me too.
"if previous" is essentially saying "if previous == True", it doesn't mean "if previous exists". "If previous is not None" explicitly checks that previous is different from None. There's cases where a value will be false even if it exists because of how the value is converted to a boolean. You can check this simply with stuff like if 0: print("Hello") else: print("Else") if you substitute this 0 for a variable, such as x, when x is 0 you'll fall into the else as it will result into a false value (since 0 == false, something you can also check on python really quick). Furthermore, where your code especifically messes up is in thinking that "None == False", which is wrong, as None can't be True nor False.
Consuming hours of your time without anything to show is brutal. Easily the worst part of engineering. Even worse when you are younger and seeing your youth wither away.
Fi rst step is to not get a mac
My advice, don't jump into pytorch it's too convoluted for you right now.
We're gonna make it. Keep at it.
Think before you code, write your solution out on paper. Try to visualize the algorithm so your train of thought is clear. Only then implement it, and it will be much easier.
Always think about what values you can fix. For this problem, fix the right index of pair. Call it r. Now if you're trying to find an element to the left of r that makes a good pair with r, you should choose the rightmost value < r such that arr[l] == arr[r]. You can keep track of the indexes you should use for the l values by using a hashmap. It's easy to go down a wrong path, spend 20+ minutes on it, then feel dumb when it doesn't work out. That happens to EVERYBODY who solves these problems. Even at the highest level. Also, you don't have to know everything to be a software engineer. You're right that there are lots of things you can be expected to know and the topics can go very deep. Nobody knows everything and nobody can be expected to know everything. I don't know a lot about your situation, but it kinda sounds like you're spreading yourself too thin. You mentioned a lot of stuff that you want to be able to do like getting your projects to succeed at work and not letting your team down, working on open source projects, doing leetcode. That's a LOT of pressure you're putting on yourself. Advice: find either some niche or some discipline you want to specialize in. (Frontend, Backend, Fullstack, embedded systems, devops, machine learning, game development, ...) and do only that. Then you'll start building a career aligned with what you're interested in and your relationship with your employer will feel more like a two-way street. And find a job where you can get mentorship or a teammate who who does the same type of work as you do. Your employer shouldn't be assigning solo projects to an inexperienced developer. That's just bad management.
Give yourself some grace, man. I know you're not happy with where you are in life, but constantly doubting yourself and going through cycles of negative self-talk will just make it harder to act and move towards a better life. Life is already hard, so don't be mean to yourself. That doesn't mean there are no standards you hold yourself to, but at the same time, meet yourself where you are. If you can't solve an easy LeetCode problem, don't have negative self-talk like "I'm worthless, I can't even do a medium question?" This is dumb. A better way to view such a problem is to say, "Okay, I’m not competent right now, so what can I do to take one step forward in the right direction?" Often, we are tormented by our goals, like a cyclist on a hill-the top seems so high and far that we feel we can never make it. Instead, take it one day at a time and define small successes for yourself. When I started doing LeetCode, my goal was to give it a shot for 30 minutes, and if I didn't get it, I wouldn't hurl insults at myself. I'd just say, "Okay, I don’t know it, let’s look at the solution and understand it." Then I would try the solution without looking at the code, and maybe do it again the next day without the solution. The same applies to software engineering and firmware engineering-break it into small chunks you can actually achieve, and build confidence through those achievements. A practical example of breaking down the goal of being a good SWE engineer is to ask: What skills do I need to learn? What resources are available to learn them? What is some achievable daily/weekly progress on those resources? For example, if you want to be a Python developer, you need these skills and their accompanying resources: 1. Skill: Get good at the core Python language - Resource: *Fluent Python* 2. Skill: Build desktop projects - Resource: *Tkinter documentation* 3. Skill: Build web apps in Python - Resource: *Django video course* or *Django in Action* book, and so on. Basically, look at roadmaps online, ask GPT to generate a roadmap for your goal with the needed timelines and resources. The most important part is to do it every day for a certain amount of time-1-2 hours. Remember, you may be weak on an individual day but are strong in the aggregate. TL;DR: Stop smashing your head against the wall until you understand it. Nobody learns just by looking at code-they read a book, watched a video, or had a teacher explain it. The same goes for LeetCode, SWE, and firmware engineering. Recognize what resources you need and what constitutes daily success so you're not tormented by not being the person you want to be.
Thank you for telling me what quant is. Ive been wondering what quant is.
Hey for leetcode I would suggest going through the neetcode roadmap so that you can do 1 topic at a time and really learn each concept and so that you can look at his solutions. Jumping from topic to topic is really hard and will make you feel like you know less than you rlly do!
I believe the trick lies in the plays optimally appraoch. I seen a problem that was similar on Hackerrank that spoke about n towers with height m and you had to return who would win. That problem is very similar
Hey man, just want to say I’m in the same boat. I can’t seem to solve technical problems. Feeling totally overwhelmed. CS degree, no friends, no job, living with my parents. What you’re saying really resonated with me. Idk what to do either. Hopefully we both figure it out.
What's your favorite Python change is such a troll question
At around 20 minutes you asked if we can spot the problem: One thing I see is your window size is too big. When k is 3, your first loop works while the right index is <= k. But k is the length of the window. If the index is 3, the window is 0,1,2,3. This has length of 4. There might be some out of bounds stuff in the second while loop because the right+1 check looks mad sus, but I'd have to code and I watch this to relax :D Gonna keep watching now!
Seems my thought about the first issue was wrong since u immediately move the left pointer in the second while loop! :D but hey u asked for thoughts and it looked weird 😅
As for the firmware problem, I dont know if you tried or not but mby try asking in online communities(reddit etc) we all do at some point no one knows everything
I'll write here how my thought process worked to find out a solution to this problem, maybe it helps with how to think on it? Note: Since the info for this problem is only the existence of said number, Set could be used instead of HashMap. But HashMap was what came to my mind first. It went like this: Ok, I need to find duplicate elements. This gives me 2 info: 1. I need to traverse all elements in the worst-case scenario (if the last element is part of the answer, for example), so my solution is no better than at least O(n). 2. For duplicates, it's always good to have a way to look up the info about a number in O(1). So a HashMap would be awesome! I could use the HashMap to check if a number already appeared, and if it already did, we have the answer! The problem is: This doesn't quite get all of the problem. Because we have a maximum difference possible. It wants us to check only what is on a certain scope. To solve that, I thought about using a sliding window. The windows starts at 0,1. Whenever the window is not yet the biggest possible size (k), I slide its right part and add a new element to the HashMap and verify if the solution was possible. If the windows is the biggest size, I diminish it's left side and take out that element from my HashMap. So now I am sure I'm not counting elements outside my window. If my window ever reaches the last element, and it does not give an answer, then this means there's no solution.
I think you're taking things in several wrong ways, honestly, so I'm dropping a huge comment. About software engineering in general: Yeah, it's a huge field. You won't learn everything there is about "being a software engineer". Sure, there's some stuff that's universal in theory like DSA and Design Patterns as you mentioned, but when you actually start working you find out that these aren't really that big of a deal (AKA Knowing how to do a Red-Black Tree and knowing how the Singleton pattern works isn't actually going to keep you in your job or make you feel like a good programmer/software engineer). Plus, it becomes very specialized, and you can be a good software engineer and have zero understanding of something outside of your field of work. If you're a backend developer making .NET applications why do you need to know how React works? About leetcode: Leetcode is cool, but cool in a different way than you think, I fear. Leetcode is really cool as the equivalent of small puzzle games. There's very few things in leetcode that would translate to showing that you're good at software engineering, and there's lots in Leetcode that feels more like memorizing than actually programming. It's useful for coding interviews, but I'm pretty sure everyone who's done it would agree that it is by and large useless for the actual work itself. In other words, Leetcode has toy problems. Nothing in it is real. You practice it because it might show up in your interview and because they're quick-ish problems that help remind you of DSA stuff (that a lot of people won't even be using at work), not because it's going to make you a better engineer, because past a certain competence point it really just isn't. About open source: You don't "go do open source to learn software engineering", or at least as far as I know that's not a thing. You contribute to open source software when you find an open source project that you like, potentially that you use, and that you are already good enough to identify a feature that is lacking and that you think would be nice, and then you slowly interact with the project to see whether there's even an interest in that feature, and whether someone has already started a pull request for that, and etc. You don't just pop your head out of your pillow and go "yeah you know what would teach me software engineering? Interacting with an open source project", as that is unlikely to be fruitful. Open source projects that are reputable and large are gigantic and have an entire ecosystem around the maintainers, people who regularly contribute, etc, etc. They're large projects and understanding all of it is a thing that is often left up to the maintainer themselves; you don't even need to understand all of it to contribute, so long as you know enough about the tiny tidbit you yourself want to contribute. All this is to say, don't beat yourself up if you airdrop yourself into an open source project and don't understand it entirely. Reading through all of it takes time, and understanding how everything works exactly would take time. Also, contributing to open source software isn't a metric of professional success or quality as a software engineer by any means, as much as the internet would have you believe otherwise, so if you don't want to do it you also just don't need to. Finally, about "not knowing what to do" or "not being good enough to be an engineer", the second part of not being good enough is more depression/panic talking than anything else. You clearly are able, you just need practice - like most people. "Not knowing what to do", on the other hand, is absolutely normal. It's a bit contradicting because usually in "engineering" you kind of have to know. A civil engineer can't just NOT know how to do X. But in software engineering, if you ALWAYS know how to do what the job throws at you, that means less that you're really skilled and means more that you're either doing extremely repetitive or easy work, or both. Pretty much the one thing every programmer should be comfortable with is not knowing how to do something, and understanding that that's not depressing, you just have to learn it, research, read about it, analyze it, and that's the fun part of it. Wanting to solve stuff first try in a short time isn't realistic nor feasible. Everything else about society and money and etc is deeply personal and I can't speak on it, but at least try to work out and stuff. Healthy body healthy mind, yadda yadda. I can say however that I did Comp Sci uni just like you and, much like you said, I found it to be mostly worthless and a waste of time. The actual job has pretty much nothing to do with the single-file shit you said which, again, is pretty much true; I did few projects that were larger than a few files while at uni. Upsetting, yes, but not the end of the world. Don't stretch yourself too thin, do projects and code stuff that you think feels nice, don't hyperfocus on solving something, don't outsource thinking about your solution to chatGPT or copilot unless you're really on a timer, and take things one at a time and you got this, dude.
Bro I feel your pain, I somehow landed myself in an environment where all my peers are super achievers - I'm taking top in the world type stuff, and I feel soooooo dumb just to be living - waking everyday to the same reality, I'm accepted the fact that there are some things I just can't do. I didn't come to terms with it since it feels sooo demoralizing and humiliating, I've been sooo depressed that in the class even if some ask me to do very basic math I'd be soooo zoned out and depressed I would mess that up. I subscribed cuz I could relate a lot to this grind and the hopelessness and still keeping on grinding. I kinda understand why people unalive themselves.
bro what the fuck is that last sentence, dont even think like that, the ARE things you CAN do, you just have to grind, wake up every day,put how many hours you can on learning, and comeback to me in a year.
Everyone has their own superpower; it just needs to be discovered. Not everyone can or should be a programmer. And honestly, when you think about it, there are so many better professions out there-jobs where you’re not chained to a desk, where you can directly help people and see their smiles. I’m 45 years old and currently work in the gaming industry as a 3D artist (though I’d really like to change that, but that’s a whole other topic). I have a lot of admiration for people who work in skilled trades like electronics, plumbing, mechanics, or construction. It’s tough, honest work, and there’s no shame in getting your hands dirty. In fact, many of them have managed to afford homes or apartments much faster than their peers in game dev or IT. I’m assuming you’re younger than me-try lots of different things, not just those in front of a computer. You never know what you might fall in love with. Good luck!
@@FallinIsCutechallange accepted brother giving myself one more year before taking everything out ¡ see u in a year
okay lets fucking do it, im gonna grind too this year, when we talk to each other again, we will be comparing our older selfs and accomplishments will thrive
so its more important to learn random leetcode tasks than actual programming/computer science fundamentals? i wonder how this whole industry existed prior to leetcode
Don't feel bad about what the Chinese think man, it's not like they're Japanese or something.
you speak very very well. You're very well versed and articulate
Love this series, keep up the good work!
Voice is quite low
second year SWE student here with slightly above average grades, I gotta say that I watched a couple of his call-ins so far and I've genuinely never stumbled upon a question I didn't know the answer to instantly the questions he's asking are very basic and the recipients are students that are so far into their education that they should already be experts compared to the average joe or a guy like me who's still relatively new to it all, let alone answer introductory level questions the constant sugarcoating needs to stop, people that are clearly uninterested shouldn't be encouraged to keep going like that and people that are interested but still amateurs shouldn't be hailed as good until they actually become good
This is a fundamental graph problem - understanding this will unlock a ton of other problems (even non-graph) in the future. Set Theory + Graph Theory is super powerful. Good luck!
remember that a lot of these tasks can be solved through math concepts, hence not having learned them or understood why they matter will cost you in problems like these if you studied, say, discrete math, your brain would instantly default to a number theory type of solution for the missing number problem and you'd semi-instantly also realize that you can just use use n(n+1)/2 to get the sum of every number and subtract the actual sum (which you'll get by iterating through the array) from it to get the missing number don't beat yourself up because this isn't an issue with programming itself but rather a lack of practice and expertise in other fields; keep practicing and it will get better and never forget to diversify what you do so it's a good balance between projects and raw algorithms
Yep sometimes questions are just dumb (but also sometimes you need to know the dumb ones anyway 😅). In the beginning up to 120 done, I recommend just skipping over questions that have the same amount of likes as dislikes. They removed dislikes on LC but you can still see them using an extension. Would highly recommend
Getting better🎉🎉
Entertaining!
learn it together huh?
LET’S GOOOO!!!!
Hey Let me know If you need a editor for your videos. Help you get more Subs Love this video.
It makes sense because if nums[mid] > mid, then mid could be the one that's missing, so you want to keep mid to check again when you look at the left side. But if mid is in the correct spot, there's no reason to include it in the new partition since you would know it's already correct.
Listen to the expert in this vid
Keep going🎉.
Love this series
bro turn your volume up its been like this for like 30 videos lmaoo
turn your volume up
Good stuff man!
Hi Timothy! Thank you for the video, I'm happy to see someone learning about computer vision at the same time as I am, I subscribed to see what kind of software you'd make next. Well done!
Nice job .keep it up 👍👍
Nice job .keep it up 👍👍
Good luck brother!