What separates mcoding from the rest of the Python UA-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 😀
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
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.
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! 💪
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.
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!
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
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
#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 :)
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
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.
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.
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
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.
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?
#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.
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!
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
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 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.
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 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
one cool trick I saw recently was (ab)using conditional breakpoints to introduce transient print side effects, eg. a condition of "print(f'{user} logged in') and False"
What separates mcoding from the rest of the Python UA-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 😀
More basic than the usual, but still a nice refresher :)
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
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.
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
I swear every time I think about wanting to learn something, #mcoding posts a video about it the next day
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
#mcoding
Man, 6 years into Python development and never knew about conditional breakpoints in PyCharm. Sweet!
Really been enjoying your videos alot more recently as I've been diving deeping into Python. Thank you for the upload.
Genuinely had no idea about conditional breakpoints. Big time saver! #mcoding thank you much for going in to this topic!
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
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.
As a professional print debugger user, I'm absolutely amazed that these live debuggers exist :D
You did a great job explaining them #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!
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
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.
I am always surprised how many people don’t know about live debugging, also big PyCharm fan 🎉 #mcoding
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
Great video ! Love the last advice about unit testing! I've personally had to debug asyncio app and it's really hard!
#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 :)
Breaking on uncaught exceptions is very handy as well!
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
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.
Another great video from the best-produced Python channel on UA-cam!
#mcoding
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
Thank you #mcoding for this!
I can't believe I never used the python debugger. Can't wait to try it out.
Thanks, Jetbrains, for providing the licenses!!!
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
Thanks for all the great content!
Noice, this is a holy grail of python vids!! :D
As a professional print debugger myself I found this video super helpful! #mcoding
Reminds me of VBA debugging. Very good explanation #mcoding
Love a nice debugging session breakdown, when I joined the industry, live debuggers truly are king! (That and good logs) #mcoding
@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?
Just started to use vscode, so your hints are very helpful. Thank you, #mcoding .
#mcoding is a truely useful Python programming channel. Thanks a lot.
Thank you for yet another great video. Quite nice you showed both vscode and pycharm!
#mcoding
em stupid question .. do you have some python course? Udemy or similar
Hey! Thanks for the videos (as always). Been a long time vscode user but would be super happy to try pycharm! #mcoding
I didn't know the conditional breakpoints. Thanks for the explanation.
#mcoding
I'm surprised of how much I can learn from these videos. #mcoding
What about testing code that might not get run in normal circumstances?
Also, is there a way to step back in program state? #mcoding
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
5:28 *ten items, it even tells you at the bottom with __len__; classic off-by-one error
and again at 9:56 *eleven
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.
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?
This was immensely helpful. Thanks #mcoding!
#mcoding need more videos like this. Preferably on more complex code base where the issue is on the import code
#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 are the best beginner projects to fill your portfolio and to gain experience that you can recommend? #mcoding
I recently started learning python so this was very helpful. Thank you. #mcoding
What an excellent video. Thanks a lot.
Wonderul video as always. I learn a lot new things every time. Thanks for all your effort that you put in those videos! #mcoding
very nice job highlighting the usefulness and ease of use. Course I'd also love a piece xD #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!
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
PyCharm licence you just said? I'm all in! #mcoding
Sometimes info from videos shock me. Keep going, James! #mCoding
What is the efficient way to debug a function that is used in threading?
Please give us some insights on this topic.
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
Great work #mcoding
Big time fan!
Awesome vid, thanks 👍
pycharm has the best debugger in the business!!
#mcoding
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.
Woo-hoo! Another contest! #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
I learned something new. Thanks for the high quality content #mcoding
This is gold! It would be amazing if you make a series of how to use pycharm the way is intended #mcoding
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.
your videos are gold for self learner ! #mcoding
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 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
It worth mentioning that before debugging, engineer must read log message first, maybe he can get some clue there
I always find your videos so helpful. Thanks so much! #mcoding
Need more beginner tips !! #mcoding
Pycharm is where it's at!!! ❤❤ 🙏 #mcoding
I love #mcoding videos!
Knowing how to debug makes life so much easier #mCoding
Throughout this tutorial I thought to myself, at least five times - "Oh, how exciting video this is!"
What a nerd I am.....
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 😅
Great debugging guide, thank you #mcoding
I love your videos, #mcoding !
Nice. How do you like the new UI of PyCharm? #mcoding
Thank for your videos man!!!!
#mcoding
I'#mcoding and debugging so much better thanks to this channel (padum tsssss)
#mcoding only doing to get pycharm, btw video is as it always is, great, thanks for it.
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 :(
#mcoding is one of the best UA-camrs in the python space. His videos are simply amazing.
what computer are you using ? #mcoding
Those are some good examples, esp helpful when forwarding to friends who just started learning :) #mcoding
Yes please forward to many friends :). Also, you WIN! You get a license, please contact me via email to claim.
@@mCoding Thanks so much! The number is 199
I love your videos! Always recommend to my coworkers. #mcoding
one cool trick I saw recently was (ab)using conditional breakpoints to introduce transient print side effects, eg. a condition of "print(f'{user} logged in') and False"
You can set the pycharm debugger to break on exceptions!
As always, going the other mile to show everything deeper than the surface level content #mcoding