Measuring Your Python Learning Progress | Real Python Podcast #79

Real Python · Beginner ·🎨 Image & Video AI ·4y ago

Key Takeaways

The Real Python Podcast discusses measuring learning progress in Python with guest Martin Breuss, covering topics such as project-based learning, resource utilization, and mentorship. The conversation also touches on tools like NLTK, NFDK, and Micropython, as well as concepts like natural language processing and learning through trial and error.

Full Transcript

welcome to the real python podcast this is episode 79. where are you along the path of learning python do you feel like you're making progress and what are ways you can put the learning path into a more precise focus this week on the show we talked with previous guest martin broyce about his recent article how long does it take to learn python martin discusses methods for measuring your progress and the various reasons for learning the language we talk about how different backgrounds will affect your approach we also suggest resources to help you along your path we share a couple of recent python projects to round out the episode the first is a library to draw stylized maps from openstreetmap data the other is a framework for the analysis and visualization of trees which includes a set of phylogenomic tools this episode is sponsored by rev ai the most trusted way to build global speech to text to insights products and workflows alright let's get started [Music] the real python podcast is a weekly conversation about using python in the real world my name is christopher bailey your host each week we feature interviews with experts in the community and discussions about the topics articles and courses found at realpython.com after the podcast join us and learn real world python skills with a community of experts at realpython.com hey martin welcome back to the show hi chris nice to be here again yeah so it's a lot of little changes here with the the real python family and since we last spoke you've become a full-time employee with real python changing from what you were doing before i have yes indeed yeah it's cool so what are some of the things that you're you're doing now that you're part of the core team so i'm basically working here as a content creator which just means there's a lot more of what i've been doing before as an external author and video course creator so i just make more content plus and now i also do reviews articles and videos that other course creators make and a little bit of interacting with the community and answering comments and being present on the slack channel things like that and i guess as you know since we're working in a pretty small team there's always a lot of additional startup type tasks that come along that didn't just get tackled on the site yeah there's a lot of uh sort of cross pollination and different skills being used across different lines yeah i appreciate your help with the reviewing of the videos that's been great yeah it's been really fun i've been i've been doing similar things before and since i've already before joining already seen both pipelines that both the written side of content creation and the video one it's nice to be a bit in between and get a bit of an insight into into all the parts that are happening yeah it's a neat machine to kind of watch it work yeah so i wanted to have you come on to talk a little bit about the article that you recently had published on the site that asked the question how long does it take to learn python yes the question of all questions yes you have like a one sentence answer uh yeah it's it's exactly 3.4 weeks okay cool great all right i think we're good so why did you end up picking that topic so i've been working with a lot of students before and this is just a question that comes up a lot because i think it's partly because of uh how python gets presented as this like very beginner friendly easy language that you just you know you pick it up in a weekend yeah and then you're ready to write you know production-ready apps or whatever and there's quite a lot of there's actually quite a bunch of this sort of blog posts out there where someone's like oh yesterday i woke up and decided i'm going to learn python and by the evening i had a functioning mid-level startup going yeah not extremely realistic not extremely realistic no and i mean i don't know maybe there are some people who really managed to do something crazy like that but i really think that there is much more to learning anything and also to learning python obviously like is it depends a lot on what's here how do you come into starting to learn python what's what's your background also what's really your aim what do you want to do with it yeah and then also what's the you know what what are the resources that you have available both in in terms of time as well as also learning materials and and all of these factors really like influence quite profoundly i think of how fast it's gonna be for you specifically to learn python yeah i think that'd be great to kind of tear some of those apart and dive deeper into them yeah maybe we could start with a little bit of your background i know we might have talked about it earlier but we could just talk a little bit about specifically you getting into into python and um kind of like a little bit of your journey on that side sure yeah for me i started programming pretty i don't know if it's pretty late who cares right exactly who cares about time right i haven't been doing a lot of those kind of conversations i'm more like kind of been focusing on like what are people doing now with it but i think in this context it'd be kind of interesting to say like how you kind of pivoted into um specifically python yeah sure so um i started python as the first programming language that i picked up and i started programming really out of the ambition to get a bit of a better understanding of how to think mathematically i guess yeah i i kind of had the feeling um i was always more on the side of we think about literature or what's that called actually there's like a term for this the liberal arts i think that's what you call it yeah it's like like you know kind of learning for learning's sake in some cases and it's very broad spectrum like i really want to get as much as i can out of this collegiate or university experience and like very broad interest and uh you know just not very scientifically mathematically i would say okay i kind of had the feeling that this part of the world or this part of thinking about things i didn't have it as developed as the other part and i kind of at some point after school after university even i kind of decided that i'd want to invest some time and energy into developing this side of you know perceiving the world and just thinking about stuff also a bit more and it's just going into pure mathematics didn't seem accessible at all this is this feeling when you look at the wikipedia math article for me whereas where it's just spiked with formulas everywhere and it's just kind of yeah like a foreign language that that's really hard to get started on you know and programming in itself seemed like a more approachable way to go into that direction because it just has this words that you're working with like you you name something you give it a name and then you work with the name which makes it much more approachable for me at least and so i went into that and also really enjoyed the aspect of that you can actually create things and that you can build something you can be you can be quite creative with programming and make little programs that do something that work or build websites that display something and look beautiful if you've got a knack for it or train how to do that you know yeah and that's just that's always been fun and engaging for me so it's been a way for me to have project based and actionable things to look into the more mathematical side of my brain i guess and train that that's really how i got into it yeah it sounds like you have a you kind of defined two of those things then like partly why you wanted to to learn python was partly to sort of explore those areas correct yeah and i've tried to also you know lay these out in the article a bit to give readers a chance to just get their own like a good understanding for what it is for themselves like why are they really into in that and just give a couple of examples and yeah i think for me it was a lot this curiosity and just also wanting to understand how do a lot of things function you know you work with a computer or a phone on an everyday basis but how do you move from being just a consumer of these things to to a little bit a creator or at least you know an understander i know that's not a word but you know what okay yeah mine was a little more on the side from the article you were writing about where it was a practical uh very specific thing where this job position that i was looking at they were interested in someone who had much more of a python background they at least at least had started to dabble in it and so i'm kind of one of those people where i had dabbled in lots of different languages i had i've said so many times on the show like i the main one i was focusing on was working in creating lots of things in sql and creating things inside of kind of specific tailor-made applications and then i had dabbled with swift and objective c and then long time ago had done like c and fortran and things like that so it was like okay i want to hone up on these things at the same time i was dabbling in javascript and so forth so it was like kind of a hard pivot and then i do that immersion thing which i've said several times on the show where like i want to get every resource possible in front of me videos uh podcasts you know what have you and i'm gonna dive in and learn all this sort of stuff but with a specific aim of like you wanted to improve for a job yeah there's this position i wanted yeah yeah exactly yeah that's a that's a just like you know every reason for for doing this is completely valid reason for going into it but they're probably gonna make you focus on different aspects and it's probably going to mean that you're going to be faster or slower or just learn different parts of the language because the whole ecosystem around python is just so huge that learning everything is just unrealistic you know yeah i was just listening to the conversation with the the new director in residence uh wukaslanga about you know he's he's got this backlog of 1400 pull requests or whatever for the you know see python and and every time he goes in to look at one of them it potentially is a new part of the language that he's looking at you know the standard library is huge you know and this is just speaking of you know core python if you want to call it that uh versus like the expanded universe of all the different things you can do inside of python so yeah mine was like they were looking for somebody to do automation and potentially build like dashboards and so at least i was able to focus in and and look at some very specific things which i think is maybe good like it sounds like you were interested in like okay i want maybe i want to try to do some some web stuff with this so you can kind of focus on that because i think you could really bite off way more than you can chew um with all the different possible things you can jump into definitely and that's been actually kind of hard for me at the beginning because of not having such a like a clear aim i think yeah of like what why am i really doing it just for exploring you know sure there's a lot open to you but it's also it doesn't really give you any rails to go on right i guess yeah and yeah i also i started with python but then i went into a couple of other languages just very much at the beginning and played around with r and with javascript mostly those two i guess but also some other things a bit and it doesn't make it easier to learn uh the ground ideas of programming so i think if you have like some sort of this this direction beforehand it's probably really helpful yeah it may be best to sort of well maybe this isn't a good analogy i was gonna say like if you're digging a hole yourself in yourself i don't know i'm gonna go with it you may want to dig down a little deeper before you start just going across oh i see and the bad part about this is that it's just gonna fall in on the sides yeah potentially i guess i don't know maybe this is not a good analogy at all here let me break the subject up the idea that you were talking about of going to like the wikipedia for for math i saw this thing on twitter the other day and i it like kind of blew my mind a little bit because i'm the same way like you know certain things you know one of the things i like about python is the white space and and the way it looks and sort of in my opinion the readability of the the code and that's one of the things with higher order mathematics or potentially statistics that they like to use these interesting greek symbols for things right like sigma and phi and all these are kind of different things right and so there was this person who posted like those scary-looking math things they're simply for loops and they explained like how you can take the numbers from above you know okay that's your n and then this is how many times it's going to loop around and then this is the actual it's either summing or it's it's creating a product and they had it do a little conversion i'm like oh my god that was a nice explanation so i'll share that on that's awesome from twitter yeah it's actually really cool because i you know it's one of these things like if you don't live in that world and you don't have it explained well to you it can be rather hard to think and now that i've been working with for loops a lot more like that's a very easy way to kind of pivot it and change it and make me think about it and i think all those things are really helpful like the recent conversation i had with sherry eskina she wrote this series of books that are illustrated you could think of them as children's books but they're also like a really great way to do like visual learning of something in python and having very specific stuff she's kind of telling these stories so the first book was like a kind of this day in python a day in code and these kids kind of go through their whole day and the whole premise is like that you're writing the story and code to tell the computer what your day was like and what you did which was kind of interesting and then the next one is like taking fairy tales and and you know pivoting them and like the sort of if alif of like goldilocks you know this uh this is too hot or this is too cold so i thought that oh that's kind of clever you know and so there's lots of those little things where if you have this other hook to help you kind of get into it i think that might help you know especially you know somebody's younger or just starting out it's nice to have concrete examples and sometimes people coming from the cs world their concrete examples that they've been working with have been foo and bar and and you know x and y and or in mathematics or statistics like all those symbols and numbers are like that's the world they came from and so that makes sense so sometimes having a person to help kind of guide you in through that lens could be helpful yeah i completely agree it's just like explaining programming with with mathematics uh completely makes sense to a lot of people you know and it's a it's a great way of doing it if that's your background but it there's like the nice thing about i and i really love this if people try to find different approaches and different angles on it that can lead you to this understanding and just some sort of appreciation of programming whether you end up doing much with it or not you know i think it's really nice because it also increases the diversity of people who who even like find and find it accessible and then you know just this uh the more people can contribute to um an area that is so influential uh today you know the better it is i think the more people that find some sort of way to to do something there and understand that it's also relatable to them and yeah you gotta find your own way to get there i guess but also the more educators or just or just general people who are interested in in helping others out and and the more people show it from different angles and different perspectives i think the richer the whole field gets and that's something i really like so what were some of the resources that that helped you get into it from kind of your liberal arts background that you used as resources so i don't know anything specifically about resources i did a couple of courses online at that time some some moocs and free courses that i could find oh yeah that's right but i think like what helped me was text i really liked working with text okay just like the variables in themselves just giving names to things what i already mentioned before but then also you know you have like some sort of let's say a novel or even a short text it doesn't really matter and you and then you do something with this text on a programmatic basis like i don't know let's just pick out all of the vowels i don't know that's probably not that interesting you know but i don't know i remember actually one project that i did at some point at the beginning was that i took one of these data sets that i included in this nltk library the natural language toolkit yeah for python yeah and it has some data sets included some some textual data and one is the speeches of u.s presidents from i don't know forever probably all of them and then i i was reading a little bit about a language generation in general i guess i don't i don't actually remember all the way but i remember that one project that i did there that it was that i removed all of the not the vowels but i removed all of the verbs from the text okay and just kind of i think i just tried to keep the nouns in there and then just look at the text what does it you know like what's it what's it look like if you have only nouns in there and that's just something that you couldn't really do on i mean if you did that by hand just look at every word and figure out is it a noun is it a verb and then cross it out or something it's just not very accessible or maybe it's a fun maybe it's a fun you know meditative process if you want to do that but with with the nfdk toolkit you can just tag the part of speech in the text run something over it and then just remove it and then you have to text they're only made out of nouns yeah no that's cool like there's a lot of interesting language processing stuff that i've seen everything from analyzing like sentiment is one of those things that that's very common in kind of marketplace kind of stuff but then on the other side uh looking at classic literature training different models on what would be involved in trying to recreate this type of text or it it also kind of text is very i don't know i don't want to say it's finite but it's more finite than than some other fields potentially um as far as the the ways that you can kind of tokenize text and say you know what's used where and and so forth and it i haven't done a lot with it but it's something that i'm i'm definitely interested in doing a little more as far as delving into it [Music] rev ai the most trusted way to build global speech to text to insights products and workflows trained on more than fifty thousand hours of human transcribed verbatim speech data covering a wide range of topics rev ai offers developers unparalleled speech recognition accuracy with word error rates lower than similar solutions from major players like amazon and google your first five hours are on us try us out today at rev ai that's rev dot ai [Music] i think that kind of gets us into the idea of like were there other areas that that you focused on in the article of like of the why like you know why would people want to learn it were there other areas that you felt that that could be useful so i think i mean one thing that we already mentioned uh is definitely getting a job you know yeah like a career in job opportunities uh and i think like i don't know exactly what was the situation for you maybe you can say that after but i think it can be either that you're actually looking for a developer job or that you are already in a position where you want to move to be more technical and i've seen with students that i've worked with that usually if you're already in a position and you want to move to be more technical that's usually a good way to go if you know some programming then this is very often appreciated you know in your company because there's so many applications of it so career and job opportunities i would say is definitely one of those things to go and i think you've also mentioned that the job that they wanted you to do was more automation related so yeah using python for automation is definitely a way to go and and the reason for learning it i would say yeah definitely for me that was the main focus because to me in some ways it was kind of a nice jumping in point because i wasn't really creating large scale applications that required like a lot of infrastructure there were lots of processes that were still being done by hand and it felt like okay we should be able to automate these processes and make them be able to just run on their own and you know put up some form of a scheduler which kind of is a little more like a script in some senses or you know maybe a fairly simple app that can be triggered to you know run when you need it so it was actually kind of a nice starting place for some of my programming that i could definitely scale up and optimize it as i went yeah and you can see from from these examples already like your reason for starting to learn python is going to take you down a quite a different road than my reason for just i don't know just being curious or wanting to build some uh useless you know language and ltk projects yeah and then you know we've had uh several conversations lately talking about like electronics and kind of exciting kids to get into programming by having sort of physical stuff but the world of sensors have you know or affordability of like individual sensors have made the idea of creating your own weather station or creating your own other devices at internet of things kind of things inside your house with tools like micropython and circuit python are really kind of allowing that world to kind of open up and maybe that's you might be thinking of programming as a hobby or another area that you kind of can explore so that's another kind of a fun area that you kind of include there totally and just and creativity you can you can do digital arts with programming or oh yeah or just build some fun idea that you have in your head you know there's there's really a lot of things you can do yeah i i that's been kind of one of these also transit you know definitely on my side of things that i've been trying to include as far as you know things on the podcast to share projects and stuff and i have another fun one this week you know as things around like games or small projects and one of the ones that i kind of keep coming back to is like being able to build stuff that you can complete you know like tackling projects that you can kind of finish so like if that's if that's your goal keeping your sites kind of a little small initially and then building up like i've talked to a couple people about sort of game sort of stuff and it's nice to be able to make that list of things that this isn't going to do like my game is going to do these things initially but i'm not going to focus on all these other things and you know maybe those are like to do later kind of stuff i feel like that's kind of related to that idea of when you're learning a language especially something that is as vast as python that you might bite way more than you can chew and you get sort of stuck and paralyzed if you will i don't know if you've had that experience totally yeah and if you define your scope like you said at the beginning of like what do you want to learn then it's going to be easier yeah so one of the things that you focused on was how you could maybe potentially measure your progress you want to dive into that a little bit sure so i i think my main point with this article was also i mean to to give people um a way to assess it for themselves like where are they at in their learning journey yeah because um i like we we said at the beginning it's 3.4 weeks exactly and that's obviously that's obviously not true it really depends right which is but but it depends also isn't the great answer because you can't really do anything with it depends um so i was just trying to to give you some sort of a framework that you can use on yourself with assessing your background assessing your reasons and then also um this framework for assessing where are you at at the moment and what would your next steps kind of be to give you some sort of an idea of yeah what's the time or work effort that you have before you to get to the point where you want to be with with learning python yeah and the framework that i decided to go with in this article is called the four stages of competence yeah we've talked about that on the show um fairly recently with within the last five six months it kind of came up kind of naturally through one of our discussions and i think it's a really kind of good way to focus initially here yeah it has like it just really defines a couple of you know state mind states that you can't be in on a process of getting better it's something and just something that you always run through and kind of like what you need to do to get from one place to the next one i guess yeah so just as a quick overview of there's there's some scientific underpinning to this that i don't go into at all but uh just the idea of that you progress from not knowing that you don't know something right to knowing it so well that you can kind of like do it in your sleep um i would say it in quotes but just without uh putting in a lot of mental effort yeah and you kind of used a comparison pretty often in in going between this sort of unconscious incompetence to being conscious and and so forth you use the musician example a lot which of course chimes pretty well with me like at this point i i can unconsciously pick up a guitar and play a song or or repeat something that was shown to me or potentially read music or you know all these kinds of different uh concepts that that it becomes fairly unconscious but that the steps to kind of get there like not knowing what you don't know is such a huge thing with something like python and that's why you know we've already been focusing on this idea of like okay well maybe keep what you want to learn small initially and then and then kind of give you a chance to kind of move into the next thing so at least you can kind of quickly well fairly quickly assess like okay these are the things that i don't know right and move into that level of conscious incompetence totally you also wanna like this is also a process that's not going to be on the scale of everything python so like you said if you have like a more focused scope you can start there and just keep going until you're pretty good at it and then just leave the rest out for now and then you can always cycle back and then just start again at the beginning and go into a slightly different direction but go through those stages yet again and that's just i i think it's like there's no not really any way around it you know if you want to learn something you're always going to have to put in time and effort that's just because you need to establish these paths in your brain that actually help you do this like like you said like you learned the guitar at first you need to learn how to hold it right then you need to learn how to do the chords correctly and it's just it's training it's muscle training muscle memory and you need to do it over and over again and spend time until you just do it automatically and it's the same with programming there's just there's concepts that you need to kind of like look at many times and type it out many times yeah and use it in applications a lot and and only then they become so so frequent and the brain paths get established for you so that then you can kind of like they can step in the background and then you can more focus on what is the thing that you want to build or what is the song that you want to play with your guitar yeah we talked about it quite a bit with al swagger recently also just not cool the idea of he had this you know this book big book of small projects and he said that initially yes you could potentially copy and paste this code in and run it but after you've done that and kind of seen what the output is going to be of this existing piece of code you know delete that and actually physically type it in and that's something that you know i have to completely agree with the idea that that muscle memory of you know typing out is you know the the structures and and getting comfortable with where the white space goes and better than anything and this is goes back to our first conversation which is go ahead and make some mistakes that's okay it's going to maybe you know highlight the errors but that's part of the learning process too yeah and it's easier to understand with more with more you know real world things like training if you want to do some muscle training you know you know you need to do the yeah movements or guitars you know you need to hold the chords right it's a bit harder to understand that this that it's actually quite similar with a for loop you just need to write it a couple of times but there's no this this real world equivalent isn't really given and that's that works fine for some people uh obviously like they they don't struggle with this kind of like disconnect between is it just digital or is it something that you do with your hands but also for people who are maybe more more practical or visual learners like that i guess not visual more practical learners then also just keep that in mind it's it's actually pretty similar to some real world training yeah i feel like you know the best sort of training for me has been you know ones that use all these different types of things like i obviously people that listen to the podcast probably are in a way somewhat similar to me in the sense that they'd like to to hear about what's happening in the world of python but also like hear these concepts and maybe as they hear them initially and and can't see them it triggers part of their mind to remember those things and it's kind of filling in some of the conscious incompetence kind of stuff i mean that's definitely the experience that i had too of like we've said this several times on the show also the idea of going in and reading other code and looking at code that's maybe beyond your current level that that you're sort of stretching a little bit now and saying okay well i'm going to go look at this popular library or or other thing that's on github or some other projects or potentially you've just sat down at your new job and you're having to look at like the existing code that's you know the company's using you're like okay what do they do here and you know and people write things in different ways and there's different formatting and so forth in general but at that point that's where you can kind of like okay highlight like okay well okay i don't recognize these symbols and i don't recognize this style and this formatting hopefully you know you're able to kind of point your questions if you're in an organization hopefully there's someone that can you can gather up all those questions too and ask [Music] this week i want to shine a spotlight on another real python video course the course is based on an article i mentioned briefly in our discussion this week and dives much deeper into that subject you might feel you already know the basics about it but it has so much more hiding under the surface it's titled using the python return statement effectively the course is based on a real python article by leodonis josoramos and in the course instructor howard francis takes you through the basics of how to use the python return statement in your functions how to return single or multiple values from your functions differences between implicit returns and explicit returns using return to short-circuit your loops what are best practices to observe when using return statements and how to structure more advanced return statements like factory patterns decorators closures and more i think it's a worthy investment of your time to learn how to harness the power of the return statement in your python code and like all the video courses on real python the course is broken into easily consumable sections and you get additional resources and code examples for the techniques shown check out the video course you can find a link in the show notes or you can find it using the enhanced search tool on realpython.com [Music] this kind of brings me to this idea that you were involved in quite a bit of of tutoring or mentoring i should say and i'm not sure where that necessarily comes into place like i feel like mentoring sometimes okay let me take it on like down the guitar path again if you don't know what you want to play or what you want to do with this instrument or you are not going to practice when you're not there like if you're not going to practice at home then i feel like the mentoring part can be kind of fruitless in some ways like you're not making any progress and you want to kind of blame it on that other person and it's like well actually you gotta sit there and you know do the thing you know you know in between like seeing the guitar instructor every week or whatever and then giving you a set of exercises you got to actually sit there and you know practice it and and get better yeah i think for mentorship to be effective you like as a as a learner you have to know why you want to do it and you have to be ready to put in the time and the effort like if you don't have one of i think you need all three of these you need to know why you want to do it and you need to be ready to put in time and effort and but then if you are ready to do these three things then i think mentorship can be one of those factors that i also mentioned in the article further down that can like really influence it and make it make your learning journey more effective because you have someone who's gone through the process who understands what you're going through or can just get you know from the perspective of someone who already knows the answer to the question that you have right now can just keep you engaged and nudge you forward a little bit so that you don't stop thinking about it and then you know that you don't give up but you just keep going and put in a bit more time and a bit more effort and then come to this point that it suddenly clicks and those are fun experiences to have you know probably from both sides right definitely yeah it's it's always nice to see a student who just suddenly understands something that they've been struggling with and it's it's sometimes a little you don't want to be cruel and not give the answer when you already know it but that's really the important part about mentoring you know because if you just give the answer then again it doesn't put in this necessary strain i guess on your on your brain to just really build these pathways that you need to to learn this for yourself yeah that worries me sometimes with the i don't know it's kind of a joke in some cases and i understand it and i understand the concept of deadlines and trying to get things done and so forth but the sort of copy and paste culture of code sometimes scares me a little bit and i could imagine you know that that happening with in a mentor relationship i could i could see that as being one of these things were like okay i can tell you what to do are there techniques that you have to kind of add guide posts or street lamps or things that can help guide someone then is there techniques that you've developed in that process of mentoring specific techniques i think it's really just about keeping in mind that you don't want to give out the answer okay and you just keep and then just engage with the person and just see it's a little bit of you know anticipating where are they at at the moment i guess you need as a mentor you need to understand you you need to know kind of know the answer to the specific problem right or at least know how to find it i guess and then you also need to kind of understand where the student is at at the moment and then from this combination that sounds a little cloudy now but from this combination you can kind of like give this hint of i know i know you're standing over here and then now where you want to go is over there so here's a next step for you okay so maybe the guidepost would be just like okay giving them a couple of the steps to point them in the direction if they if they feel really lost at the moment you can kind of at least say okay or ask them like what what do you think the next step should be like what do you think uh-huh yeah that's good and okay and one thing you can also always do is okay let's look it up you know because that's also a habit you want to get into when you do anything with programming so it's like okay so what's your question can you formulate your question then right they formulate the question or try and then you help and at some point you have a question and then you're like let's google this question and then and then search through the answers together and just give them you know like this this essential tool of how do you how do you get to a point from from not even really knowing what your question is to having a question that you can ask and then also kind of scanning through the answers that you can find online for something that's relevant that you can try out i've i have mixed experiences with search engines and i keep moving back and forth between using things like google and duckduckgo and things like that and i've had a recent you know a couple tests that i've been trying out where the the the person that i was listening to suggested just type it all out like literally word for word exactly everything don't try to be clever in what you're asking and trying to figure out like okay what's the specific you know key word here and oh i'm including the and all these you know like extra filler words that it didn't matter like you're more likely to get there if you you know spell out how do i reinstall this you know i actually do that i i you do that's how my search queries are okay i i literally speak out the question to the surgeon that i'm using and there's people are making fun of me because of it because they're like you could just make this much shorter but it usually works okay for me you know right well like how much time are you spending you know condensing it down and trying to be clever and you know like i definitely have tried the i don't know google foo or whatever you want to call it where you're like uh you know putting quotation marks around these things and you know pushing putting a minus in front of this word and yeah that's that like i use this sometimes this if if there's you know when you see that the answer kind of like includes something all the time that you really don't want in there i don't know you talk you search something for logging and you get i don't know forests or something right then that's something that mine is foreign but or maybe you really want the word in there and use the quotes but yeah for me that's it's usually a second step like i just do a sentence and then if it doesn't work then maybe i think about something else well and then one of the things that i experienced that was a little frustrating and i haven't been using google as much partly because of it was the sort of filter bubble thing i don't know if you if familiar with that i am not so the the idea is that as you search specific things google trains itself to only show you your world of your view of things like oh he likes this and he likes that and yes it's like made a bunch of additional sort of predictions about you and so it unfortunately has narrowed off part of the internet from you which is kind of weird you know and so like that's why i kind of have switched browsers from time to time or not necessarily just browsers but you know search engines and just to see what the results are on a different platform because i was just sort of shocked like i'm always getting kind of the same thing and i'm like this is not the direction i was looking for and so yeah i'm just always kind of trying to think of other techniques to kind of get past the the mess i mean one of the most common ones that i think programmers use is they just paste the whole error message into uh there which actually works pretty well right yeah it does yeah i'm also like like i use different search engines and i've i used dr go quite a bit and sometimes sometimes i switch to google but i haven't so i wonder because in the end you always have some sort of an algorithm a search algorithm that gives you results right so but yeah i see that like you can see the one that's not customized to you versus just the general one that they use i guess yeah i wonder how they implement that with some probably some identity tracking over just yeah it's kind of weird like if you're logged in or not logged in i think partly too okay yeah yeah but probably also some fingerprinting that they there's some yep some pretty pretty amazing things that the browsers can do to kind of like lock down yeah who's making search requests yeah so as we kind of continue on the journey what are other kinds of things that you kind of noticed as you were writing the article that you were like okay well you know what student you think about and we we focused a little bit about kind of moving up that that tree of uh competence and and becoming more and more competent to the point where you have this level of expertise you talked a little bit about like sort of uh factors that might influence the journey yeah we we started talking about that with with mentorship being one of those and i think we also mentioned like that you need to have a good aim or that your aim influences it whether it's good or not just yeah whatever your aim is aim motivation and and the background i think we mentioned those already even though i think the background we didn't really talk about that much i guess i think it also like the speed of how fast you're gonna learn depends a lot on it do you already know some programming before are the basic programming concepts clear to you from another language then it's gonna be easier for you to pick up python than if this is the first programming language and the first time you're exposed to these types of concepts yeah and then there's also some interesting research that shows that people who have some experience with with language natural language learning so i don't know if you've learned spanish or mandarin you might have an easier time picking up a programming language too just because you've established some sort of you know habits or yeah brain ways that help you with that but then definitely also if if you know english well that's going to be going to make a big difference for python because what a lot of people praise python for is that it that it like reads almost like english in some ways but obviously if you don't know english then that's not going to help you as much as if like if english is your you know your native language yeah so these backgrounds yeah background things make a difference and then also because i said time and effort is essential it obviously depends how much time do you have available like are you do you work in a full-time job and you only have your evenings maybe you have a family right that's gonna severely limit the time that you have available to put into uh learning python and that's going to make it slower just that's just how it is yeah definitely i like the you definitely included a lot of resources specifically real python resources that people can kind of dive into we talked a little bit already about the idea of finding those sort of sharp edges or things that are maybe not familiar that that you're you can consciously say okay i don't know this idea like i need to learn you know the one that keeps coming up in conversations that i have with you know experienced programmers is async that comes up very often in these conversations is like well do i need to do this like where would i use it and you know like now okay now i need to get comfortable with like the structures of it and applications of it but you have a nice list of like okay just start with the syntax and talking about like the data types and control structures functions we have a lot of real deep dives on some of these things where even if you thought that you [Music] know what a return statement is there'll be an article by leonis that goes way further and and says okay well you know do you understand the idea of implicit return or explicit return and the idea of like why does none come out of this thing and all those kinds of things that you can kind of maybe dive a little deeper if you can kind of get an idea of of that focus that you you mentioned yeah to to make it also a bit practical and help people along the way i have this list in there to to how do you actually get from you know you want to learn python to to actually knowing something about like that you're able to do something and you mentioned this there's a there's a bunch of links in there of what we consider some essential things that you should be familiar with and just train so that you can then actually build something with it and then being at this stage of you know ability where you can you still have to look up stuff you're not an expert you're you're not playing songs on your guitar without having to think about the guitar at all but uh you can already play some songs or you can you know read some sheet music and make it happen that's kind of like that stage and i think that's a that's a for many people that's a perfectly fine place to be again this depends on what's your reasons and what's your aim but getting there with python i think is pretty much like that's that's doable again considering all of the other factors that we've talked about for the last half an hour or longer yeah but yeah i also give i give some concrete time uh suggestion in there with with all these many asterisks right that that says that if you put in four hours of work each day for four months then you should have a chance to get to a point where where you have some sort of ability with working with python yeah and everybody's gonna be a little different and the other nice resources that you include kind of at the tail of it is is not only like you know real python and all the resources there like the tutorials the videos but like quizzes and things like that where you can kind of test your knowledge as you go and the one that we've mentioned a couple times on here are these sort of like challenge sites or where they can present you with you know a problem it could be you know again geared toward the the interview kind of style thing or just in general like i know there's people that like to solve puzzles and you know programming is definitely the one of the higher forms of you know puzzle solving in my opinions like going in and you know figuring out how to create these solutions out of these problems and you gave like about five different sites there which i think is great for uh kind of challenging people yeah at that point it's then about finding what works best for you because you're gonna be a different learner than the person sitting next to you so you just you just gotta explore a little use different resources and see which one is the most engaging for you and then just focus on those i think that would be a suggestion i have because uh it's gonna be easier to stick with it and put the time and the effort that's necessary into it if it's engaging to you yeah cool so i wanted to share some recent projects that are out there kind of in the community stuff that you're interested in and and maybe i'll start i found a recent project it's called pretty maps and it takes several different libraries the project is by marcelo protes i'm guessing pronounce it and it uses open street map data and then it builds on top of these four other libraries osm nx matplotlib shapely and vs sketch and then it has like you know a couple other resources you need to add like some different fonts and things but it makes these very pretty like kind of work of art maps where it's plotted it out and then has like kind of nice backgrounds and then you know kind of writing on it that if you wanted to like you know maybe there's a particular area of your city or place where you live that's fairly like iconic looking i was thinking of a place i you know recently moved from hawaii and i lived on the opposite side of oahu in this area called kailua and it has a very distinctive pair of islands that are just off the side of it that you see in all these pictures and so forth and so i was like oh i could make kind of a neat little map that would actually show that area and kind of remind me of you know my time living there but they have these really nice there's actually a reddit a subreddit for it also pretty maps and they have some examples from like sweden um in france um tokyo and that couple they look really pretty yeah i just looked at them online yeah and um so i got it set up it took a little bit of work kind of getting going there's a lot of little little resources that you you need so setting up in a virtual environment ended up being a little different because i needed to get

Original Description

Where are you along the path of learning Python? Do you feel like you're making progress? What are ways you can put the learning path into a more precise focus? This week on the show, we talk with previous guest Martin Breuss about his recent article "How Long Does It Take to Learn Python?" 👉 Links from the show: https://realpython.com/podcasts/rpp/79/ Martin discusses methods for measuring your progress and the various reasons for learning the language. We talk about how different backgrounds will affect your approach. We also suggest resources to help you on your path. We share a couple of recent Python projects to round out the episode. The first is a library to draw stylized maps from OpenStreetMap data. The other is a framework for the analysis and visualization of trees, which includes a set of phylogenomic tools. Topics: - 00:00:00 -- Introduction - 00:01:44 -- Real Python Core Team Member - 00:03:13 -- How long does it take to learn Python? - 00:03:40 -- Why did you want to explore this topic? - 00:05:05 -- Python backgrounds Martin and Christopher - 00:16:39 -- What area excited you? - 00:19:38 -- Sponsor: Rev AI - 00:20:16 -- What are other areas that define, why Python? - 00:23:30 -- Keeping the scope narrower - 00:24:48 -- Measuring your progress - 00:32:49 -- Video Course Spotlight - 00:34:12 -- Effective mentorship - 00:39:02 -- Using search engines - 00:43:07 -- The journey of learning Python - 00:48:38 -- Programming challenges and practicing - 00:49:40 -- pretty maps - Minimal Python library to draw customized maps - 00:52:02 -- ETE Toolkit - Python environment for tree exploration - 00:54:30 -- Thanks and goodbye 👉 Links from the show: https://realpython.com/podcasts/rpp/79/
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Real Python · Real Python · 0 of 60

← Previous Next →
1 A better Python REPL – bpython vs python interpreter
A better Python REPL – bpython vs python interpreter
Real Python
2 Introducing large-type.com – A Utility Website
Introducing large-type.com – A Utility Website
Real Python
3 Reading Hacker News Without Wasting Tons of Time
Reading Hacker News Without Wasting Tons of Time
Real Python
4 Forward References and Python 3 Type Hints
Forward References and Python 3 Type Hints
Real Python
5 Using Sublime Text as your Git Editor
Using Sublime Text as your Git Editor
Real Python
6 Python Code Linting and Auto-Complete for Sublime Text
Python Code Linting and Auto-Complete for Sublime Text
Real Python
7 Make your Python Code More Readable with Custom Exceptions
Make your Python Code More Readable with Custom Exceptions
Real Python
8 Write Better Tests with Sublime Text's Split Layout Feature
Write Better Tests with Sublime Text's Split Layout Feature
Real Python
9 How to Use Sublime Text from the Command Line
How to Use Sublime Text from the Command Line
Real Python
10 Rename Variables with Multiple Selection in Sublime Text
Rename Variables with Multiple Selection in Sublime Text
Real Python
11 Sublime Text Settings for Writing PEP 8 Python
Sublime Text Settings for Writing PEP 8 Python
Real Python
12 Write Cleaner Python with Sublime Text's Indent Guides
Write Cleaner Python with Sublime Text's Indent Guides
Real Python
13 Sublime Text Whitespace Settings for Python Development
Sublime Text Whitespace Settings for Python Development
Real Python
14 Function Argument Unpacking in Python
Function Argument Unpacking in Python
Real Python
15 Python Code Review: Debugging and Refactoring "Conway's Game of Life" +  Automated Tests
Python Code Review: Debugging and Refactoring "Conway's Game of Life" + Automated Tests
Real Python
16 Using "get()" to Return a Default Value from a Python Dict
Using "get()" to Return a Default Value from a Python Dict
Real Python
17 A Python Shorthand for Swapping Two Variables
A Python Shorthand for Swapping Two Variables
Real Python
18 Python Code Review: Refactoring a Web Scraper, PEP 8 Style Guide Compliance, requirements.txt
Python Code Review: Refactoring a Web Scraper, PEP 8 Style Guide Compliance, requirements.txt
Real Python
19 Click & Jump to Test Failures from the Command Line (iTerm2)
Click & Jump to Test Failures from the Command Line (iTerm2)
Real Python
20 Setting up Sublime Text for Python Developers
Setting up Sublime Text for Python Developers
Real Python
21 Sublime Text + Python Guide Overview
Sublime Text + Python Guide Overview
Real Python
22 Python Code Review: Adding Pytest Tests to an Existing Python Web Scraper
Python Code Review: Adding Pytest Tests to an Existing Python Web Scraper
Real Python
23 Type-Checking Python Programs With Type Hints and mypy
Type-Checking Python Programs With Type Hints and mypy
Real Python
24 A Shorthand for Merging Dictionaries in Python 3.5+
A Shorthand for Merging Dictionaries in Python 3.5+
Real Python
25 Python Code Review Flask Web Security Tutorial + Virtualenvs, requirements.txt
Python Code Review Flask Web Security Tutorial + Virtualenvs, requirements.txt
Real Python
26 My Python Code Looks Ugly and Confusing – Help!
My Python Code Looks Ugly and Confusing – Help!
Real Python
27 Setting Up a Programmer Portfolio/Developer Blog – How To Get Started
Setting Up a Programmer Portfolio/Developer Blog – How To Get Started
Real Python
28 Do I Need a GitHub/GitLab/Bitbucket Profile as a Developer?
Do I Need a GitHub/GitLab/Bitbucket Profile as a Developer?
Real Python
29 Programmer Portfolio – Example and Walkthrough
Programmer Portfolio – Example and Walkthrough
Real Python
30 How to Get Your 1st Speaking Gig at a Tech Conference
How to Get Your 1st Speaking Gig at a Tech Conference
Real Python
31 How to Build Your Public Speaking Skills as a Developer
How to Build Your Public Speaking Skills as a Developer
Real Python
32 The Object-oriented Version of "Spaghetti Code" is "Lasagna Code" ?!
The Object-oriented Version of "Spaghetti Code" is "Lasagna Code" ?!
Real Python
33 Setting up Sublime Text for Python Developers – Lesson #1
Setting up Sublime Text for Python Developers – Lesson #1
Real Python
34 Cool New Features in Python 3.6
Cool New Features in Python 3.6
Real Python
35 "is" vs "==" in Python – What's the Difference? (And When to Use Each)
"is" vs "==" in Python – What's the Difference? (And When to Use Each)
Real Python
36 Emulating switch/case Statements in Python with Dictionaries
Emulating switch/case Statements in Python with Dictionaries
Real Python
37 Python Function Argument Unpacking Tutorial (* and ** Operators)
Python Function Argument Unpacking Tutorial (* and ** Operators)
Real Python
38 What Code Should I Put On My GitHub/GitLab/BitBucket Profile?
What Code Should I Put On My GitHub/GitLab/BitBucket Profile?
Real Python
39 A Crazy Python Dictionary Expression ?!
A Crazy Python Dictionary Expression ?!
Real Python
40 String Conversion in Python: When to Use __repr__ vs __str__
String Conversion in Python: When to Use __repr__ vs __str__
Real Python
41 Method Types in Python OOP: @classmethod, @staticmethod, and Instance Methods
Method Types in Python OOP: @classmethod, @staticmethod, and Instance Methods
Real Python
42 Optional Arguments in Python With *args and **kwargs
Optional Arguments in Python With *args and **kwargs
Real Python
43 Python Context Managers and the "with" Statement (__enter__ & __exit__)
Python Context Managers and the "with" Statement (__enter__ & __exit__)
Real Python
44 Installing Python Packages with pip and virtualenv / venv
Installing Python Packages with pip and virtualenv / venv
Real Python
45 "For Each" Loops in Python with enumerate() and range()
"For Each" Loops in Python with enumerate() and range()
Real Python
46 Python Code Review: LibreOffice Automation and the Python Standard Library
Python Code Review: LibreOffice Automation and the Python Standard Library
Real Python
47 Managing Python Dependencies With Pip and Virtual Environments – Lesson #1
Managing Python Dependencies With Pip and Virtual Environments – Lesson #1
Real Python
48 Python Tutorial: List Comprehensions Step-By-Step
Python Tutorial: List Comprehensions Step-By-Step
Real Python
49 Leveraging Python's Implicit "return None" Statements
Leveraging Python's Implicit "return None" Statements
Real Python
50 What's the meaning of underscores (_ & __) in Python variable names?
What's the meaning of underscores (_ & __) in Python variable names?
Real Python
51 Python Data Structures: Sets, Frozensets, and Multisets (Bags)
Python Data Structures: Sets, Frozensets, and Multisets (Bags)
Real Python
52 Writing automated tests for Python command-line apps and scripts
Writing automated tests for Python command-line apps and scripts
Real Python
53 How to find great Python packages on PyPI, the Python Package Repository
How to find great Python packages on PyPI, the Python Package Repository
Real Python
54 Immutable vs Mutable Objects in Python
Immutable vs Mutable Objects in Python
Real Python
55 PyPI vs Warehouse, the Next-Generation Python Package Repository
PyPI vs Warehouse, the Next-Generation Python Package Repository
Real Python
56 pep8.org — The Prettiest Way to View the PEP 8 Python Style Guide
pep8.org — The Prettiest Way to View the PEP 8 Python Style Guide
Real Python
57 My Experience at PyCon 2017 in Portland
My Experience at PyCon 2017 in Portland
Real Python
58 Pylint Tutorial – How to Write Clean Python
Pylint Tutorial – How to Write Clean Python
Real Python
59 "Reverse a List in Python" Tutorial: Three Methods & How-to Demos
"Reverse a List in Python" Tutorial: Three Methods & How-to Demos
Real Python
60 Python Refactoring: "while True" Infinite Loops & The "input" Function
Python Refactoring: "while True" Infinite Loops & The "input" Function
Real Python

Measuring learning progress in Python requires a combination of project-based learning, resource utilization, and mentorship. Learners can use tools like NLTK and Micropython to build projects and explore concepts like natural language processing. Effective mentorship involves guiding students to find answers without giving them away, and utilizing search engines like Google and DuckDuckGo to refine results.

Key Takeaways
  1. Start with project-based learning to explore areas of interest
  2. Utilize resources like videos and podcasts to learn Python
  3. Focus on specific areas of Python to improve job prospects
  4. Use tools like NLTK and Micropython to build projects
  5. Practice using search engines to troubleshoot and refine results
💡 Mentorship can be effective when a learner knows why they want to learn and is ready to put in time and effort, and guiding students to find answers without giving them away is key to effective mentorship

Related Reads

📰
How To Use Gemini 2.5 Flash For Image Generation
Learn to use Gemini 2.5 Flash for image generation by routing around its limitations and integrating it into your pipeline
Dev.to AI
📰
Why PixelToolsPro is About to Become Your Next Go-To Image Editor
Discover PixelToolsPro, a fast and private image editor that doesn't require uploading images to a server, and learn how to use it for secure editing
Medium · AI
📰
I Couldn't Find a Good Image Metadata Tool, So I Built One
Learn how to build a custom image metadata tool to solve real-world problems and improve workflow efficiency
Dev.to · Robin Hood
📰
Building a Browser-Based Image Resizer with Step-Down Scaling and Crop
Learn to build a browser-based image resizer with step-down scaling and crop using interactive tools and social media presets
Dev.to · Arhan Ahmad
Up next
Why OpenAI Is Ending Sora?
PlivoAI
Watch →