{"id":3983,"date":"2021-09-03T18:02:28","date_gmt":"2021-09-03T17:02:28","guid":{"rendered":"https:\/\/wp-uk.mindquest.io\/?p=3983"},"modified":"2023-01-11T08:59:03","modified_gmt":"2023-01-11T08:59:03","slug":"how-to-learn-python","status":"publish","type":"post","link":"https:\/\/wp-uk.mindquest.io\/?p=3983","title":{"rendered":"How To Learn Python With Rune"},"content":{"rendered":"<p><a href=\"https:\/\/x.com\/PythonWithRune\" target=\"_blank\">Rune<\/a> holds a PhD in Computer Science and works as a freelance Python consultant specialising in big data and back-end development. When the pandemic hit, he kickstarted <a href=\"https:\/\/www.learnpythonwithrune.org\/\" target=\"_blank\">the learning platform<\/a> <em>Learn Python With Rune<\/em> to teach others how to learn Python and apply it. He tells us about his career story &amp; how to learn Python, how one should go about mastering this powerful programming language.<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-spacer\"><\/div>\n<p>?  <a class=\"has-text-color\" href=\"https:\/\/visit.mindquest.io\/mission-control-center-podcast?utm_source=medium&#038;utm_medium=b_post&#038;utm_campaign=Podcast_lp\" target=\"_blank\">Subscribe to the podcast<\/a><\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-spacer\"><\/div>\n<p>You might also enjoy this interview on <a class=\"has-text-color\" href=\"https:\/\/mindquest.io\/en\/blog\/news\/2471\/how-to-code-well-taking-breaks-and-other-pieces-of-timeless-career-advice\" target=\"_blank\">how to code well<\/a>.<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<h2><strong>How did you go from doing <\/strong>a PhD to working in tech?<\/h2>\n<p>Back in the days when I\u00a0started\u00a0university, I\u00a0actually didn&#8217;t\u00a0think of doing a PhD in the first place. I was just starting but I thought learning is awesome, so\u00a0I immediately decided I wanted to\u00a0get a PhD. <\/p>\n<p>But\u00a0while I was\u00a0studying for my\u00a0PhD, I\u00a0realised\u00a0it wasn&#8217;t really for me because it wasn&#8217;t really deeply\u00a0about science.\u00a0It&#8217;s more about publishing papers and getting funding to continue your career.\u00a0<\/p>\n<p>So\u00a0after I finished my PhD, I started as a developer mainly in the security area (I&#8217;ve been working a lot in the security business.) I\u00a0realised that the one thing that I liked was getting things done, getting projects done. So, I slowly\u00a0became also\u00a0a manager type person\u00a0and worked\u00a0a few years as a manager.\u00a0Then I continued working in a SaaS company as an engineering manager for architecture and\u00a0<a class=\"has-text-color\" href=\"https:\/\/mindquest.io\/en\/blog\/news\/1381\/back-end-developer-job-description\" target=\"_blank\">back-end<\/a>\u00a0teams and stuff like that.\u00a0<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<h2>But then you went back to development. How is that? When did you decide to kickstart <em>Learn Python With Rune<\/em>?<\/h2>\n<p>I realised I missed programming a lot, and that&#8217;s\u00a0actually where\u00a0my journey with <em>Learn Python With Rune<\/em> started.\u00a0<\/p>\n<p>I wanted to learn programming again. As a manager, you slowly lose touch\u00a0with\u00a0programming because you&#8217;re not really doing any professional code anymore.\u00a0And I kind of missed that.\u00a0<\/p>\n<p>So, a\u00a0bit more than a year ago, I got the idea. It was\u00a0actually when\u00a0the coronavirus pandemic started. I had\u00a0more time and was working from home, and I was like &#8220;I\u00a0want\u00a0to program again.&#8221; So, I started this small project.\u00a0 I started producing small projects, publishing them on a web page, and\u00a0one thing led to another. And it just escalated.\u00a0<\/p>\n<p>Now, I work as a freelance consultant and they hire\u00a0me\u00a0and I do\u00a0programming\u00a0again in a freelance manner. And the reason I like that is because you kind of get more freedom. So,\u00a0if you want to have some vacation, you just do it.\u00a0It&#8217;s more freedom.\u00a0<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<h2>Why Python?  What makes Python so great?<\/h2>\n<p>I had to start\u00a0somewhere,\u00a0right? I hadn&#8217;t been programming that much in Python professionally, but I&#8217; had been programming in C a lot. C is a really\u00a0low-level\u00a0programming language and it&#8217;s very effective, but you can make so many errors, pointers and stuff like that.\u00a0It&#8217;s just a pain when you don&#8217;t know much because you can just do what a processor can do. <\/p>\n<p>But Python is abstracted away. And what happened with Python over the last maybe 10 years is that it has so many libraries. So you can\u00a0do\u00a0everything efficiently.\u00a0It has been developed a lot, for\u00a0instance,\u00a0in data science and big data and stuff like that (I myself work with Python in the big data and back-end side of things.) And you can do all this processing now because you have\u00a0the libraries\u00a0that can do all\u00a0the heavy work, but you just manage it in Python code so it can get beautiful.\u00a0<\/p>\n<p>It&#8217;s easy to understand, It&#8217;s readable.\u00a0It&#8217;s almost super code.\u00a0That&#8217;s the main reason I love Python.\u00a0But there are also some things that I&#8217;m not so fond of.\u00a0 <\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<h2>Like what? What is Python not so great at?<\/h2>\n<p>It does hide some of the things away, some of the objects and how they are represented. When you are programming\u00a0in C you know everything exactly on a byte level.\u00a0In Python, it&#8217;s kind of hidden away. <\/p>\n<p>And I see a lot of beginners having a hard time and struggling with what an object is and what\u00a0object-oriented\u00a0programming is, for instance. Because we say that, in Python, everything is an object, but really, is it?.\u00a0I don&#8217;t know. It depends on the implementation. And then they confuse\u00a0object-oriented\u00a0programming on top of that.<\/p>\n<p>So, I think it does a really good job, but there are some areas that are not easy to understand in Python.\u00a0But the pain you get from that is way less than the efficiency and productivity you can get from writing code in Python.\u00a0<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<h2>How should one learn Python? What are your main pieces of advice?<\/h2>\n<p>Nowadays it&#8217;s difficult to start actually, in\u00a0some sense, because there&#8217;s so much information out there. So my first\u00a0advice\u00a0is to ask yourself: what\u00a0is it that\u00a0you want to achieve with Python?\u00a0What is it that you want to learn?\u00a0What\u00a0is it\u00a0you want to code?\u00a0<\/p>\n<p>If you just start thinking &#8220;I want to program in Python,&#8221; then you start a little bit here, a little bit there. All the information is available. The problem is that it&#8217;s unstructured. So you get excited about this little bit here, and then you do that, but they are\u00a0different types of using Python.\u00a0<\/p>\n<p>If you\u00a0want\u00a0to program back-end like I&#8217;m doing, then that is one kind of doing. If you\u00a0just\u00a0want\u00a0to do data science, that&#8217;s a different way.\u00a0You don&#8217;t really need to master programming that well, you just need to use some libraries and understand a little about math and so on.\u00a0 <\/p>\n<p>So\u00a0it really depends on what you want to achieve.\u00a0I think\u00a0people\u00a0often go around too much. So, advice number one is figure out what it is that you want with it.\u00a0<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<p><a href=\"https:\/\/visit.mindquest.io\/subscription-newsletter\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"367\" alt=\"Connect by Mindquest Newsletter\" class=\"wp-image-6735\" src=\"https:\/\/wp.club-freelance.co.uk\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10-1024x367.jpg\" srcset=\"https:\/\/wp-uk.mindquest.io\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10-1024x367.jpg 1024w, https:\/\/wp-uk.mindquest.io\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10-300x108.jpg 300w, https:\/\/wp-uk.mindquest.io\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10-768x276.jpg 768w, https:\/\/wp-uk.mindquest.io\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10-1536x551.jpg 1536w, https:\/\/wp-uk.mindquest.io\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10-1200x431.jpg 1200w, https:\/\/wp-uk.mindquest.io\/wp-content\/uploads\/2022\/07\/Test_MQ-New-Blog-CTA-Banner-2-10.jpg 1700w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<p>Then find one teacher, one style.\u00a0It&#8217;s just easier. If you take a little bit of this tutorial on the Internet, then a different tutorial, people can do things very differently and it can be difficult to have a cohesive approach.\u00a0<\/p>\n<p>The third issue is about managing your expectations about how fast it is to learn. When you learn a new language, you can listen to it and understand it.\u00a0But when you\u00a0have to\u00a0express yourself, it&#8217;s different.\u00a0It&#8217;s difficult. You\u00a0don&#8217;t know how to say things, but you understand it. And it&#8217;s the same with programming.\u00a0<\/p>\n<p>Suddenly, when you see the solution, how\u00a0people\u00a0solved it, you go &#8220;yeah, I understand it all and that makes\u00a0total\u00a0sense.&#8221; But when you\u00a0have to\u00a0write it, you might have no idea how to solve problems. And that&#8217;s kind of the same problem you have right when you start. You understand Python, but you cannot express yourself in it.\u00a0<\/p>\n<p>So, I think that would be my three main pieces of\u00a0advice\u00a0for beginners.\u00a0<\/p>\n<p>One: figure out what you want to do. Two: find one tutor or one style of programming, one book.\u00a0Three: manage your expectations. It takes a bit more time to learn to write Python than to read it.\u00a0<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<h2>What&#8217;s the difference between a senior Python developer and a junior one?<\/h2>\n<p>There are\u00a0actually some\u00a0aspects I think people\u00a0overlook.\u00a0<\/p>\n<p>One of them is that, when you have a junior in a work environment, you need to help them. If you take somebody straight out\u00a0of college, for instance, there are a lot of things they don&#8217;t teach in college. You know, how to do metrics, monitoring, how to ensure everything is healthy in your system. They don&#8217;t teach them that, so that&#8217;s one thing they&#8217;re lacking.\u00a0It&#8217;s the experience. <\/p>\n<p>Another thing that juniors tend to do is focus on building small systems. Most college-educated and self-taught people tend to do small projects because they&#8217;re easier and you have greater chances of success. <\/p>\n<p>But there is an enormous difference\u00a0between having one tiny system with one tiny server and a distributed system with tens and sometimes hundreds of systems that need to interact with each other and you need to figure out what to do.\u00a0<\/p>\n<p>What happens when you\u00a0make changes to this small thing here? How do you rebuild it when it breaks? How do you build systems that scales in features and\u00a0amount\u00a0of users and volume of data?\u00a0<\/p>\n<p>Juniors usually\u00a0can solve small-scale problems, whereas a senior developer can handle bigger scale problems.\u00a0<\/p>\n<p>Another aspect I noticed over the years is that juniors are often a bit afraid. When starting\u00a0in a team, when starting to develop, a junior will not be so quick to contribute to it and will want people to check the code more often and to help them more, because they are a bit afraid.\u00a0<\/p>\n<p>So,\u00a0when things go\u00a0wrong,\u00a0they don&#8217;t really have the confidence to just do stuff. and break stuff and put it back up again. They like that kind of experience and confidence.\u00a0<\/p>\n<p>My advice for new\u00a0people is to build something bigger. Build something with somebody else.\u00a0<\/p>\n<p>You might have done tiny projects in college, or you may have worked together with other people for a bit. But try to make something bigger because you need to be able to build interfaces that interact with each other., where somebody builds one piece and somebody else builds another piece. That will teach you the kind of architecture design principles behind all of it.<\/p>\n<p>I still think that&#8217;s a less important part today because there&#8217;s a\u00a0tendency\u00a0to go to all these microservices or services that are small in framework. And that makes them easier to understand, easier to debug, easier to maintain by other people.\u00a0<\/p>\n<p>So\u00a0it&#8217;s not as difficult as back in the day when you had this one big monolith that was running everything.\u00a0Right\u00a0now,\u00a0you have small services that are easier to understand, but it also moves the problem somewhere else. How do you find where the problem is when the system goes down?\u00a0You need to have really\u00a0really\u00a0good monitoring to find things nowadays.\u00a0<\/p>\n<p>So\u00a0you\u00a0actually move\u00a0some of the complexity over to the infrastructure guys or the <a class=\"has-text-color\" href=\"https:\/\/mindquest.io\/en\/blog\/news\/1114\/site-reliability-engineer-sre-job-description\" target=\"_blank\">SRE<\/a>s (Site Reliability Engineers). That&#8217;s why they are paid a higher\u00a0rate now than they used to be. A good SRE is so valuable when you need to find problems in big systems.\u00a0<\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-spacer\"><\/div>\n<p>For more tips on how to master Python, make sure to follow Rune on <a href=\"https:\/\/x.com\/PythonWithRune\" target=\"_blank\">Twitter<\/a>, <a href=\"https:\/\/www.youtube.com\/c\/LearnPythonwithRune\" target=\"_blank\">YouTube<\/a> and <a href=\"https:\/\/www.facebook.com\/Learn-Python-with-Rune-105199677837750\/\" target=\"_blank\">Facebook<\/a>. <\/p>\n<p>He&#8217;s working on a new course portfolio focusing on how to use Python for financial analysis, so stay tuned! <\/p>\n<div class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-spacer\"><\/div>\n<p><a class=\"has-text-color\" href=\"https:\/\/mindquest.io\/en\/blog\" target=\"_blank\">Check out more of our interviews from our podcast episodes.<\/a><\/p>\n<div class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Rune of Learn Python With Rune tells us about his career story and how one should go about mastering this powerful programming language.<\/p>\n","protected":false},"author":6,"featured_media":3988,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[754,9,773],"tags":[525,54,680,682,441,579,231,166,681],"class_list":["post-3983","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-about-us","category-featured","category-podcast-interviews","tag-behind-the-screens","tag-data-science","tag-how-to-learn-python","tag-how-to-learn-python-with-rune","tag-interview","tag-podcast","tag-programming-languages","tag-python","tag-rune"],"acf":[],"_links":{"self":[{"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/posts\/3983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3983"}],"version-history":[{"count":14,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/posts\/3983\/revisions"}],"predecessor-version":[{"id":6736,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/posts\/3983\/revisions\/6736"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=\/wp\/v2\/media\/3988"}],"wp:attachment":[{"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp-uk.mindquest.io\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}