Does Knowing Data Structures and Algorithms Benefit a C# Developer?

  Рет қаралды 28,652

IAmTimCorey

IAmTimCorey

Жыл бұрын

Do I need to know about data structures and algorithms to be a good developer? Do interview questions actually apply to the real world? Do I need to know what a linked list is or how it works? These are the questions we will answer in today's episode of Dev Questions.
Website: www.iamtimcorey.com/
Patreon: / iamtimcorey
Ask Your Question: suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: signup.iamtimcorey.com/

Пікірлер: 64
@ShuklaAayushi
@ShuklaAayushi Жыл бұрын
Thank you so much for this eye-opener! Time and again I get asked these data structures and algorithms super-specific scenarios and junior developers should know the full story. Big fan of your channel! 10 years in and I still learn new stuff from your videos every single day. Says a lot about the quality of content you put out.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You're very welcome!
@titusxp
@titusxp Жыл бұрын
Thanks so much for another very enlightening video. Been a C# developer since February 2013 and have only ever used a linked list once in an interview test.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@rinzler9775
@rinzler9775 11 ай бұрын
I had interviewers ask me to code things on a piece of paper. I respond using "do I get an IDE in this job"
@IAmTimCorey
@IAmTimCorey 11 ай бұрын
Hopefully they responded well to that. I really dislike whiteboard/paper development unless you are talking logic only.
@rinzler9775
@rinzler9775 11 ай бұрын
@@IAmTimCorey these guys wanted straight code with correct syntax written out for a c# example of something like using a lambda function to special sort a list.
@michaelday6987
@michaelday6987 Жыл бұрын
I have found that a lot of interviewers are trying to ask questions that you do not know the answer to. They want to see how you respond to tough questions. How do you find answers to solve problems? So knowing the basics of DS is enough and be confident to say "I don't know.", but here is how I would figure it out.
@rinzler9775
@rinzler9775 11 ай бұрын
"Chat GPT"
@ArkamitDutta
@ArkamitDutta 10 ай бұрын
How can you be so precise and so correct at the same time. I have seen most of the people make it more confusing while trying to talk about these simple scenarios. Kudos to you and your work.
@IAmTimCorey
@IAmTimCorey 10 ай бұрын
Thank you!
@0i0l0o
@0i0l0o Жыл бұрын
Short, sweet and point, as usual. Thank you, sir.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@ag0nPT
@ag0nPT Жыл бұрын
Completely agree. Thank you so much for your work Tim! Love you
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@pavfrang
@pavfrang Жыл бұрын
Except for the List and the Dictionary, the most useful type I have used is the Hashset (and after that the Queue and Stack). The LinkedList is the most rare in terms of usage. The Hashset is extremely fast for the Contains method specifically and it saves time because it contains only unique items (no need for Distinct calls which is also very slow in comparison). The Hashset Contains method has similar performance with the Dictionary.ContainsKey method. Both can be an order of magnitude faster in terms of time in comparison with the List.Contains (or IEnumerable.Contains).
@zabustifu
@zabustifu Жыл бұрын
I've only used LinkedLists once, to implement an undo / redo buffer. I first tried doing it using Stacks, but then that made it impossible to trash the oldest items when the lists grows too much.
@therobinx20
@therobinx20 6 ай бұрын
Totally agree with you on this!! I've used Hashset a lot, mostly because it contains unique items and no duplicates.
@faisalalhoqani6151
@faisalalhoqani6151 Жыл бұрын
Thank you, dear Tim, for your quality work it's a very informative episode, and keep it up.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@chefbennyj
@chefbennyj Жыл бұрын
Have you ever watched "The Coding Train" on KZbin? The guys name is Dan, and he breaks down algorithms in some of the most interesting ways. It is absolutely incredible how he reads physics and applies it to code. He writes Java, and JavaScript mostly... But, you know Java, c#... 😉
@durgaprasadgarapati1748
@durgaprasadgarapati1748 Жыл бұрын
Thanks for sharing this video on youtube it will help me as a c# developer
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@codeme8016
@codeme8016 Жыл бұрын
Great material. Thank you very much!
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome!
@ahmadalbaz6059
@ahmadalbaz6059 Жыл бұрын
great subject, i was in amazon interview and i was asked to catch lightning in a bottle! i've been asked about things that i most probably will never use but i think the hiring system is there to ensure that everyone hired is good but not every good one is hired
@johndefore4051
@johndefore4051 Жыл бұрын
Hey Tim, this podcast episode was perfectly timed as I just started Leetcoding to prepare for interviews for internships. Great content as always! My follow up question: Obviously things like linked lists, binary trees, etc could be things not used often for most C# developers. From my studying so far, it seems like Dictionary and HashSets could be very useful though in some applications for situations like performing counts, frequency, etc. Is there anything from DSA you would consider more useful to the everyday C# developer that might be good to know in your opinion?
@foreducation408
@foreducation408 Жыл бұрын
This is such a awesome video, hey would you make a series on data structures and algorithms, that would be really helpful because your teaching style is too good.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@foreducation408
@foreducation408 Жыл бұрын
@@IAmTimCorey sorry i would have added in your suggestion site if it does not ask for my email
@williamlebron2078
@williamlebron2078 Жыл бұрын
Thank you!
@IAmTimCorey
@IAmTimCorey Жыл бұрын
You are welcome.
@RESIDENTECH1
@RESIDENTECH1 Жыл бұрын
I was thinking about lists also👍🏾
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Great!
@tanglesites
@tanglesites Жыл бұрын
It always good to have a good assortment of tools in your developer bag. Data Structures, Design Patterns etc... are just tools, heck the language is a tool. The problem is the Domain and solving problems is where you should excel at. Breaking a problem down into smaller pieces, and solving them one at a time will be a more valuable skill than any language or framework. Learn skills that have greater scope, then the kind of problems you will be able to solve will have a greater span. And a good way to develop those skills is with Data Structures and Algorithms. Amazing video.
@abhishekjadhav9289
@abhishekjadhav9289 5 ай бұрын
Hi Tim, Thank you so much. I really like approach, apart from coding you guide everyone on these important questions also which every developer comes across. I am Senior .Net Developer. Nowadays many companies which shortlisted my CV had first screening round as a HackerRank algorithm coding test. I tried that test and it was extremely difficult, the questions are so hard to understand as they are based on time-space complexity. Can you please advise how to best and easy way learn algorithms and Big O notation ?
@IAmTimCorey
@IAmTimCorey 5 ай бұрын
This is going to be region-specific advice, because different regions are different with this. In the US, I would push back and tell them no. That is an impractical and worthless way to evaluate candidates. It has little to no foundation in the reality of the job you will be doing. Now, some areas are so caught up in the craze that it doesn't matter what you say. If you find yourself in a region where most or all jobs require this type of ridiculous test, your best bet is to just study the answers and memorize them.
@abhishekjadhav9289
@abhishekjadhav9289 5 ай бұрын
@@IAmTimCorey Thank you Tim for the valuable advise. I am based in Western Europe and unfortunately many EU based companies are following these useless testing platforms which are unstable in working and do not judge the applicants fairly. So far I have ignored all companies who follow these platforms. Thank you for your great advise. I am very relieved that in US they don't follow this method. Like many IT professionals, US is my dream destination to work as well. Hopefully if I get a suitable role there, it would be a dream come true.
@ayotundeayoko5861
@ayotundeayoko5861 Жыл бұрын
I needed this...cos I always fail code tests😭😭 only thing that's stepped between me and my dream jobs
@IAmTimCorey
@IAmTimCorey Жыл бұрын
I hope it helps.
@mhndak
@mhndak 2 ай бұрын
This content should be exclusive to KZbin Premium subscribers 😁. Many thanks, Mr. Tim Corey!
@IAmTimCorey
@IAmTimCorey 2 ай бұрын
You are welcome.
@stephen9646
@stephen9646 10 ай бұрын
Hi, I'm currently trying to learn DSA. Can I ask what is the efficient way to learn this topic? and do I need to relearn basic algebra for this? Do you have any book/online course recommendation? :)
@IAmTimCorey
@IAmTimCorey 10 ай бұрын
Data structures and algorithms (DSA) aren't really a topic unto themselves. I know people sell them that way and colleges and universities test on them like they are, but they aren't. Let's start by clarifying the fancy name. DSA is really just "ways to optimize your code when it gets complicated". Now, with that definition in mind, do you see why I'm not a big fan of just teaching DSA? You need to know how to code those complicated situations before you can learn how to simplify them. If you learn how to simplify your complicated code before you learn how to write the complicated code, you won't actually know anything of value. In fact, you will try to apply DSA to situations where the code complexity does not warrant it. That will make your code worse and actually endanger your ability to write good code.
@torrvic1156
@torrvic1156 10 ай бұрын
Honestly I am feeling a bit confused. What I’ve got is that data structures in most cases are IEnumerable stuff (arrays, lists, queues and etc.) and algorithms means mainly patterns in practical domain (but not necessarily). So I should learn the very basics of data structures and algorithms solely for the interviews to got a job. Am I correct?
@IAmTimCorey
@IAmTimCorey 10 ай бұрын
The simple answer is yes. The more complete answer is that these can/will be useful as you progress as a developer (at least the more common ones). For example, knowing how to implement a linked list isn't something you need to do very often, if ever. However, knowing when to use the various list types (Dictionary, IEnumerable, etc.) is important as you progress as a developer.
@selahattinkaradogan2744
@selahattinkaradogan2744 Жыл бұрын
Read thomas cormen book
@jeremy_carver
@jeremy_carver Жыл бұрын
To be a great developer? Yes, absolutely. Understanding the tradeoffs between data structures and common algorithms (they're so closely related) will help you design a better solution from the beginning. Love your content Tim!
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks!
@0i0l0o
@0i0l0o Жыл бұрын
Tim, would you consider making a video about Expression Trees?
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@0i0l0o
@0i0l0o Жыл бұрын
@@IAmTimCorey Will do, thank you.
@bunkie2100
@bunkie2100 Жыл бұрын
I would argue that knowing about data structures and how to design them for a specific solution is more important than knowing algorithms.
@oysteinsoreide4323
@oysteinsoreide4323 Жыл бұрын
Basic linked lists etc are some of the first things they teach at universities and colleges. So yes, you absolutely should be able to produce a simple example of one quite easily if you actually has a proper background in programming.
@3rd_Century
@3rd_Century Жыл бұрын
I would have to disagree. For one thing there are a lot of software developers and engineers out there who never went to a college or university. They are self-taught. And also nearly all applications unless mathematically inclined do not require them and if they do you can learn them on the job.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
“A proper background in programming” is where I would challenge you. A degree in programming is almost entirely worthless in the real world. It is theory where the real world is practical. There are some benefits, but I would not counsel anyone to get a degree in order to have the “right background”.
@tanglesites
@tanglesites Жыл бұрын
@@IAmTimCorey I would definitely agree here, after 3.9 years at University in a Computer Science Degree, I have not learned anything in class that would help me succeed in a Developer Position. Any thing I feel confident about I have learned from content creators and actually building projects on my own. The latter is the best! Because when you get stuck, you have to figure it, sometimes on your own. Great video! Great advice.
@vudoodaddie
@vudoodaddie Жыл бұрын
In order to make it as a developer, you need to pass a data structure/algorithms class. If not, find another career.
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Nah. For the first ten years of my career, I couldn’t have passed the final exam in that class. I think I did just fine. Stop putting arbitrary rules on people.
@azgan123
@azgan123 Жыл бұрын
Dang Tim, you're amazing. 😎😎😎
@IAmTimCorey
@IAmTimCorey Жыл бұрын
Thank you.
@varunaggarwal7126
@varunaggarwal7126 Жыл бұрын
In India due to the fact that developers are available like grass they ask DSA for a $200 job 🥲
@WillEhrendreich
@WillEhrendreich Жыл бұрын
That sounds terrible. Flooded markets are hard. I remember years ago that I was trying to get into the games industry as a character artist fresh out college. Well, right when I was graduating the 2008 US economy crash was in full swing, which meant that the already difficult to break into games industry was drowning in senior level art talent that had just lost their job due to studio closures left and right. There was absolutely no way to compete with that. Needless to say I floundered for a long time. I'm finally employed, after over ten years of struggle, but not in art related work, and not in games, thank God. I'm doing programming at a company that manufactures food processing systems, doing things like creating tools to help them leverage their data to make informed decisions about their business, or interacting with their database, or automating their design processes.
@alexcosta2614
@alexcosta2614 Жыл бұрын
@@WillEhrendreich What tools or technologies do you use?
How Do You Prepare For A Technical Interview?
18:04
IAmTimCorey
Рет қаралды 35 М.
How Do I Become a C# Expert?
14:29
IAmTimCorey
Рет қаралды 26 М.
Stupid man 👨😂
00:20
Nadir Show
Рет қаралды 13 МЛН
McDonald’s MCNUGGET PURSE?! #shorts
00:11
Lauren Godwin
Рет қаралды 31 МЛН
every good programmer should know how to code this data structure (its easy)
21:08
Span of T vs. Memory of T
9:44
Jeff Zuerlein
Рет қаралды 4,5 М.
Is Global Demand for Developers Declining?
14:23
IAmTimCorey
Рет қаралды 14 М.
Top 7 Algorithms for Coding Interviews Explained SIMPLY
21:22
Codebagel
Рет қаралды 228 М.
Intro To Linked-List in C# 2022 (Step-By-Step Breakdown)
34:30
Teddy Smith
Рет қаралды 14 М.
DATA STRUCTURES you MUST know (as a Software Developer)
7:23
Aaron Jack
Рет қаралды 917 М.
What Should a Software Developer Not Do?
22:14
IAmTimCorey
Рет қаралды 13 М.
How to MASTER Data Structures & Algorithms FAST in 2023
10:21
Internet Made Coder
Рет қаралды 201 М.
Stupid man 👨😂
00:20
Nadir Show
Рет қаралды 13 МЛН