What separates mcoding from the rest of the Python TH-camr crowd is the fact that even before watching the video, I know my time won’t be wasted. Love your work, hope you consulting company is doing well.
I am just replying to reinstate your comment, I couldn't agree more. He also is the only one who dives deep into 'boring' subjects, but which are essential for developers. For example this video, but also logging, packaging and testing.
As an entirely self-taught software developer, I can attest that these kind of introductory videos are always great. It never assumes "well known knowledge". #mcoding is a very nice resource for all skill levels. Love the channel.
Finally a video on debugging for Python. Haven't even watched it yet but I've got big hopes that this will be the video I'll send to every new intern & junior in our team at work 😀
I've found setting up the debugging in VS Code to be surprising. Now I know it's not just me! Thanks for the clear explanations and work-arounds for the quirks in the PyCharm and VS Code debugger settings.
Wanted to say thanks. I didn't know any of this, and it seems super useful. Bonus tip for anyone who has to run their code from the command line, you can add the call breakpoint() in your source file and then use the debugger from the terminal
Using the debugger is something that I've procrastinated learning since I began programming in university 10 years ago. Nice to see such a comprehensive video about that topic #mcoding
Since you recommend testing, I'd love to see more content on testing the hard stuff like API's, files, databases with pytest. Testing static code is easy the IO stuff is more complicated. Thanks for the nuggets! 💪
Super useful to people who aren't from a cs background, as a physicist i use Python all the time but I've never learned how to debug, I just place print statements everywhere haha
As far as a beginner live debug tutorial is concerned #mcoding has done an excellent job in this vid. I am a seasoned quant programmer and tend to often develop code in live debugging mode. With interpreted languages like python and matlab this is not as important, but with something like C/C++ its very handy.
good video, you'd be surprised how many people never learned to properly debug and just use print debugging. Nothing against print debugging if it gets the job done, but in my experience it takes more trial and error because you have to know what to print first - while debugging gives you the chance to inspect all variables during runtime and see them go through different states and values. You end up finding the problem so much quicker, and never have to delete your print statements after you're done debugging. thank you #mcoding
Wow super helpful video! I've used the debugger for a while but seeing your methodology to it was insightful. I would have changed the data in the file rather than the function, but you don't always have that luxury.
This is the main problem I had with my university's Python course, we did 12 weeks of it, and they introduced lots of concepts - variables, strings, types, functions, classes, etc. It wasn't bad for an intro-to-programming course taught with Python. But they didn't mention how to use our IDE's debugging tools _once_ . I found out about it later and I was baffled that they willingly let us believe there was no better alternative than littering our code with print statements (this was even encouraged) to figure out what was going on.
Alas I can’t place a comment in the main thread, so hope someone or #mcoding is able to answer how to debug when starting from the command line with arguments. Otherwise I’m forced to use the print statements
Conditional breakpoints is a big new one for me. Will be using that! Only thing I don't understand is why your pycharm debugger doesn't drop straight into a breakpoint upon exception?
Conditional breakpoints in VSCode also allows for hit counts and triggered breakpoints instead of expressions. Hit count based breakpoints are good for loops and triggered breakpoints are good when you want to break only when a previous breakpoint was hit. #mcoding
#mcoding after 10 years with python, I still learn new stuff with your videos. I pushed my C-board to give us professional pycharm licences, wished I had a personal one as well :)
Awesome video as usual! I never knew about conditional break points, seems super useful, I’ll have to try them out! Also I’ve been learning and implementing testing lately. It’s hard to write good tests, but once tests are written it is such a joy to refactor and improve code knowing you have your tests as a sort of safety net. Thanks for the video #mcoding!
Why are there comments in the .json file that vs code creates? If I try to put comments like that in my .json file, I get a warning they’re not permitted.
Next logical step to cover would be remote debugging, and maybe some cli variants, like pudb. Also a neat feature is python cells in VSCode (denoted by #%%) #mcoding
So you're saying that as far as the contest is concerned, the winners are determined by random draw, so the quality and relevance of my comment doesn't matter? All I need to do is type #mcoding somewhere in my comment? Awesome!
I finally ripped the bandaid and used the debugger for the first time 😅. I was like wow all these print statements are so useless. I'm glad mCoding is scratching the itch further. He said to debug in his python nooby video, but it still doesn't mean that we got that full tutorial #mcoding
Print statement debugging is never *entirely* useless. Code can behave differently when you're in the debugger. To give but one reason: Each step of the code takes longer (because you're reading what the debugger says, for one), things have all the time in the world to resolve before moving on. When you actually run the code normally that may not always be the case.
I can safely say that the debugger, any debugger as a matter of fact, has been my best tutor. Not only regarding my own code, or my college's code, but also down there in the nitty gritty of things. But then I'm a 100% autodidact - which means that I've stared at some amount of exceptions through my years... Debuggers ftw.
My only issue with debugging is that it’s super slow compared to running properly. I’m using Python to do physics computation so I normally do print debugging instead unless I absolutely have to! Also, I have no idea how to debug numba-jitted functions lol
Nice, learned few new things when it comes to debugging :) - btw what does mean in your test code for e.g.: „actual = load_recipes(…)” - the three dots as arguments? #mcoding
I use python for Data Science, so in this case I use both, VS Code for coding in Jupyter Notebbok and PyCharm for Python, and this combination works like a charm to me #mcoding
I just converted to an ide. I'm an old time coder and just used an editor. Ide found typos straight away. Took me a few days to realize I'll never go back.
tbh I find that the breakpoint() function is a bit of the best from both worlds of a live debugger and print debugging I usually put it behind an if :) #mcoding
Print debugging is sadly so popular that people don't even care about real debugging and don't know its capabilities. But this doesn't mean that I'm not using print debugging for some specific purposes. #mcoding
If I am 99% sure I know where and what the bug is I'll print debug to verify. But if im not sure where or why a bug is happening live debug is the way to go.
Of course I want a license too #mcoding but still thank you for producing such useful and polished content. We can see that you care about making it better.
#mCoding, usually I enjoy your videos because you really go deep into the details, but I felt that you only touched the surface on this one. I don't use pycharm or vscode but I imagine that you can also use pdb commands, I think these are really useful for proper debugging. For example, in 15:12, you could have just used the "until" command to exit a loop instead of setting a breakpoint that you have to remove immediately after.
What separates mcoding from the rest of the Python TH-camr crowd is the fact that even before watching the video, I know my time won’t be wasted. Love your work, hope you consulting company is doing well.
Totally agree, I feel like he's the only Python youtuber who's able to teach me something new on every single video
I am just replying to reinstate your comment, I couldn't agree more. He also is the only one who dives deep into 'boring' subjects, but which are essential for developers. For example this video, but also logging, packaging and testing.
As an entirely self-taught software developer, I can attest that these kind of introductory videos are always great. It never assumes "well known knowledge". #mcoding is a very nice resource for all skill levels.
Love the channel.
I am always impressed how I still learn things from your videos, even on topics I'm familiar with already (TIL about conditional breakpoints).
Finally a video on debugging for Python. Haven't even watched it yet but I've got big hopes that this will be the video I'll send to every new intern & junior in our team at work 😀
I've found setting up the debugging in VS Code to be surprising. Now I know it's not just me! Thanks for the clear explanations and work-arounds for the quirks in the PyCharm and VS Code debugger settings.
Wanted to say thanks. I didn't know any of this, and it seems super useful. Bonus tip for anyone who has to run their code from the command line, you can add the call breakpoint() in your source file and then use the debugger from the terminal
More basic than the usual, but still a nice refresher :)
Using the debugger is something that I've procrastinated learning since I began programming in university 10 years ago. Nice to see such a comprehensive video about that topic #mcoding
Since you recommend testing, I'd love to see more content on testing the hard stuff like API's, files, databases with pytest. Testing static code is easy the IO stuff is more complicated. Thanks for the nuggets! 💪
13:47 really nice to see him laugh at something goofy like this 😄 #mcoding
Great video ! Love the last advice about unit testing! I've personally had to debug asyncio app and it's really hard!
Super useful to people who aren't from a cs background, as a physicist i use Python all the time but I've never learned how to debug, I just place print statements everywhere haha
As far as a beginner live debug tutorial is concerned #mcoding has done an excellent job in this vid. I am a seasoned quant programmer and tend to often develop code in live debugging mode. With interpreted languages like python and matlab this is not as important, but with something like C/C++ its very handy.
good video, you'd be surprised how many people never learned to properly debug and just use print debugging.
Nothing against print debugging if it gets the job done, but in my experience it takes more trial and error because you have to know what to print first - while debugging gives you the chance to inspect all variables during runtime and see them go through different states and values. You end up finding the problem so much quicker, and never have to delete your print statements after you're done debugging.
thank you #mcoding
Breaking on uncaught exceptions is very handy as well!
Wow super helpful video! I've used the debugger for a while but seeing your methodology to it was insightful.
I would have changed the data in the file rather than the function, but you don't always have that luxury.
Whoa! Another gem from #mcoding! 🌟 Clear, conceptual, and oh-so-needed. Keep 'em coming! 🚀
Genuinely, I applied some new things I learned from this video within half an hour. Thank you for all you do. #mcoding
This is the main problem I had with my university's Python course, we did 12 weeks of it, and they introduced lots of concepts - variables, strings, types, functions, classes, etc. It wasn't bad for an intro-to-programming course taught with Python. But they didn't mention how to use our IDE's debugging tools _once_ . I found out about it later and I was baffled that they willingly let us believe there was no better alternative than littering our code with print statements (this was even encouraged) to figure out what was going on.
@mCoding The code you have given in the git repo is the already fixed version. Is that by decision or should the buggy version be in the repo?
Thanks for the info about PyCharm's setting for Python 3.12 debugging. That will be useful in a near future for sure! #mcoding
Alas I can’t place a comment in the main thread, so hope someone or #mcoding is able to answer how to debug when starting from the command line with arguments. Otherwise I’m forced to use the print statements
I swear every time I think about wanting to learn something, #mcoding posts a video about it the next day
Conditional breakpoints is a big new one for me. Will be using that! Only thing I don't understand is why your pycharm debugger doesn't drop straight into a breakpoint upon exception?
em stupid question .. do you have some python course? Udemy or similar
#mcoding
Man, 6 years into Python development and never knew about conditional breakpoints in PyCharm. Sweet!
Genuinely had no idea about conditional breakpoints. Big time saver! #mcoding thank you much for going in to this topic!
I am always surprised how many people don’t know about live debugging, also big PyCharm fan 🎉 #mcoding
Conditional breakpoints in VSCode also allows for hit counts and triggered breakpoints instead of expressions. Hit count based breakpoints are good for loops and triggered breakpoints are good when you want to break only when a previous breakpoint was hit. #mcoding
Really been enjoying your videos alot more recently as I've been diving deeping into Python. Thank you for the upload.
Again and again you manage to talk about things that I dealt with but never knew how they should be applied. Thanks for your content!
#mcoding
#mcoding after 10 years with python, I still learn new stuff with your videos. I pushed my C-board to give us professional pycharm licences, wished I had a personal one as well :)
What about testing code that might not get run in normal circumstances?
Also, is there a way to step back in program state? #mcoding
Awesome video as usual! I never knew about conditional break points, seems super useful, I’ll have to try them out! Also I’ve been learning and implementing testing lately. It’s hard to write good tests, but once tests are written it is such a joy to refactor and improve code knowing you have your tests as a sort of safety net. Thanks for the video #mcoding!
Why are there comments in the .json file that vs code creates? If I try to put comments like that in my .json file, I get a warning they’re not permitted.
What is the efficient way to debug a function that is used in threading?
Please give us some insights on this topic.
As a professional print debugger user, I'm absolutely amazed that these live debuggers exist :D
You did a great job explaining them #mcoding
Thanks, Jetbrains, for providing the licenses!!!
Nice video. I noticed that, for some reason I don't understand, Pycharm debugger doesn't work if code is async and I have to use pdb :(
Next logical step to cover would be remote debugging, and maybe some cli variants, like pudb. Also a neat feature is python cells in VSCode (denoted by #%%) #mcoding
So you're saying that as far as the contest is concerned, the winners are determined by random draw, so the quality and relevance of my comment doesn't matter? All I need to do is type #mcoding somewhere in my comment? Awesome!
Jetbrains debugger is why I fell in love with jetbrains products in the first place vs code can’t compare lol
Well I’m sure it can but I don’t feel like learning until now lol
I finally ripped the bandaid and used the debugger for the first time 😅. I was like wow all these print statements are so useless. I'm glad mCoding is scratching the itch further. He said to debug in his python nooby video, but it still doesn't mean that we got that full tutorial #mcoding
Print statement debugging is never *entirely* useless. Code can behave differently when you're in the debugger. To give but one reason: Each step of the code takes longer (because you're reading what the debugger says, for one), things have all the time in the world to resolve before moving on. When you actually run the code normally that may not always be the case.
@@Ignisami That's true. I think I'm still getting used to the capability and am having "everything is a nail" syndrome at the moment t
you can put import pdb;pdb.set_trace() in your code to debug it without using editor. I think it's at least worth mentioning
I can safely say that the debugger, any debugger as a matter of fact, has been my best tutor. Not only regarding my own code, or my college's code, but also down there in the nitty gritty of things. But then I'm a 100% autodidact - which means that I've stared at some amount of exceptions through my years...
Debuggers ftw.
very interesting, printing can become unbearable. this is also a great way to learn coding. i'm a vscode user but wouldn't mind trying pycharm.
My only issue with debugging is that it’s super slow compared to running properly. I’m using Python to do physics computation so I normally do print debugging instead unless I absolutely have to!
Also, I have no idea how to debug numba-jitted functions lol
#mcoding is a truely useful Python programming channel. Thanks a lot.
Just started to use vscode, so your hints are very helpful. Thank you, #mcoding .
Another great video from the best-produced Python channel on TH-cam!
#mcoding
Thank you for yet another great video. Quite nice you showed both vscode and pycharm!
#mcoding
Nice, learned few new things when it comes to debugging :) - btw what does mean in your test code for e.g.: „actual = load_recipes(…)” - the three dots as arguments?
#mcoding
... is the ellipsis literal. It's an object of type EllipsisType, similar to how 1 is an object of type int
As a professional print debugger myself I found this video super helpful! #mcoding
Thank you #mcoding for this!
I can't believe I never used the python debugger. Can't wait to try it out.
I use python for Data Science, so in this case I use both, VS Code for coding in Jupyter Notebbok and PyCharm for Python, and this combination works like a charm to me #mcoding
I just converted to an ide. I'm an old time coder and just used an editor. Ide found typos straight away. Took me a few days to realize I'll never go back.
How do you debug your code when the application just closes with some random exit code number, without any exceptions raised?
Just start debugging from the beginning 😅
#mcoding is one of the best TH-camrs in the python space. His videos are simply amazing.
tbh I find that the breakpoint() function is a bit of the best from both worlds of a live debugger and print debugging
I usually put it behind an if :)
#mcoding
I'm surprised of how much I can learn from these videos. #mcoding
You can set the pycharm debugger to break on exceptions!
Knowing how to debug makes life so much easier #mCoding
Reminds me of VBA debugging. Very good explanation #mcoding
It worth mentioning that before debugging, engineer must read log message first, maybe he can get some clue there
Print debugging is sadly so popular that people don't even care about real debugging and don't know its capabilities.
But this doesn't mean that I'm not using print debugging for some specific purposes.
#mcoding
If I am 99% sure I know where and what the bug is I'll print debug to verify. But if im not sure where or why a bug is happening live debug is the way to go.
pycharm has the best debugger in the business!!
#mcoding
I didn't know the conditional breakpoints. Thanks for the explanation.
#mcoding
Debugging is especially valuable when working with old code. print debugging is still fine in most of my hobby projects though..
#mcoding
Love a nice debugging session breakdown, when I joined the industry, live debuggers truly are king! (That and good logs) #mcoding
Hey! Thanks for the videos (as always). Been a long time vscode user but would be super happy to try pycharm! #mcoding
Thanks for all the great content!
I recently started learning python so this was very helpful. Thank you. #mcoding
#mcoding need more videos like this. Preferably on more complex code base where the issue is on the import code
This is gold! It would be amazing if you make a series of how to use pycharm the way is intended #mcoding
Of course I want a license too #mcoding but still thank you for producing such useful and polished content. We can see that you care about making it better.
What are the best beginner projects to fill your portfolio and to gain experience that you can recommend? #mcoding
Noice, this is a holy grail of python vids!! :D
what computer are you using ? #mcoding
As always, going the other mile to show everything deeper than the surface level content #mcoding
Nice. How do you like the new UI of PyCharm? #mcoding
What an excellent video. Thanks a lot.
#mCoding, usually I enjoy your videos because you really go deep into the details, but I felt that you only touched the surface on this one. I don't use pycharm or vscode but I imagine that you can also use pdb commands, I think these are really useful for proper debugging. For example, in 15:12, you could have just used the "until" command to exit a loop instead of setting a breakpoint that you have to remove immediately after.
This was immensely helpful. Thanks #mcoding!
5:28 *ten items, it even tells you at the bottom with __len__; classic off-by-one error
and again at 9:56 *eleven
I am not a developer but I use python on a daily basis. And I am a "print guy". This will surely be very helpful for me. Swag. #mcoding.
Need more beginner tips !! #mcoding
PyCharm licence you just said? I'm all in! #mcoding
very nice job highlighting the usefulness and ease of use. Course I'd also love a piece xD #mcoding
I'#mcoding and debugging so much better thanks to this channel (padum tsssss)
Wonderul video as always. I learn a lot new things every time. Thanks for all your effort that you put in those videos! #mcoding
Pycharm is where it's at!!! ❤❤ 🙏 #mcoding
Sometimes info from videos shock me. Keep going, James! #mCoding
Would like to tryout PyCharm and use pro license features. #mcoding
Throughout this tutorial I thought to myself, at least five times - "Oh, how exciting video this is!"
What a nerd I am.....
Woo-hoo! Another contest! #mcoding
I learned something new. Thanks for the high quality content #mcoding
I didn't even know there WAS a free edition of pycharm. Hope they treat you well #mcoding!
I personally prefer VSCode so that I can have the same IDE for all my projects and languages. #mcoding
#mcoding Nice, very informative. everyone should prefer pycharm.
I always find your videos so helpful. Thanks so much! #mcoding