{"id":1619,"date":"2021-01-29T12:38:59","date_gmt":"2021-01-29T11:38:59","guid":{"rendered":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/?p=1619"},"modified":"2021-01-29T12:40:23","modified_gmt":"2021-01-29T11:40:23","slug":"learn-python-free","status":"publish","type":"post","link":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/learn-python-free","title":{"rendered":"Learn\u00a0Python For Free: 6 Tips"},"content":{"rendered":"\n<p>Getting started is hard, no matter what subject it is. Especially if you don&#8217;t want to spend money. You want to find Python learning resources that are both free and of the highest possible quality, so I\u2019m sharing these tips to get started properly and learn Python for free!<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_16 counter-hierarchy ez-toc-grey\">\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/python.land\/learn-python-free\/#1_Dive_into_the_basics\" title=\"1. Dive into the&nbsp;basics\">1. Dive into the&nbsp;basics<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/python.land\/learn-python-free\/#2_Use_the_REPL%E2%80%8A-%E2%80%8AAll_the_time\" title=\"2. Use the REPL\u200a\u2014\u200aAll the&nbsp;time!\">2. Use the REPL\u200a\u2014\u200aAll the&nbsp;time!<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/python.land\/learn-python-free\/#3_Ask_for_help\" title=\"3. Ask for&nbsp;help()\">3. Ask for&nbsp;help()<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/python.land\/learn-python-free\/#4_Ask_for_help_from_a_human_this_time\" title=\"4. Ask for help (from a human, this&nbsp;time)\">4. Ask for help (from a human, this&nbsp;time)<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/python.land\/learn-python-free\/#5_Dont_procrastinate_learning_about_classes_and_objects\" title=\"5. Don\u2019t procrastinate learning about classes and&nbsp;objects\">5. Don\u2019t procrastinate learning about classes and&nbsp;objects<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/python.land\/learn-python-free\/#6_Build_something%E2%80%8A-%E2%80%8AAnything\" title=\"6. Build something\u200a\u2014\u200aAnything!\">6. Build something\u200a\u2014\u200aAnything!<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"1_Dive_into_the_basics\"><\/span>1. Dive into the&nbsp;basics<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>You\u2019d think the Python website itself would contain a good tutorial like most other languages do. However, they mostly link to other sites, or dive in deep, assuming you are a seasoned programmer already.&nbsp;<\/p>\n\n\n\n<p>Python Land offer a free and easy to follow tutorial to the language, with topics like<\/p>\n\n\n\n<ul><li>A little <a href=\"https:\/\/python.land\/python-tutorial\/python-history\">Python history<\/a>; the language is actually quite old!<\/li><li><a href=\"https:\/\/python.land\/installing-python\">Python installation instructions<\/a> for all the major platforms<\/li><li><a href=\"https:\/\/python.land\/python-tutorial\" rel=\"noreferrer noopener\" target=\"_blank\">A beginner&#8217;s tutorial to Python<\/a> covering basic like variables, functions, for-loops, etcetera<\/li><\/ul>\n\n\n\n<p>If you prefer videos, there are many high-quality and free courses on YouTube. Just use the search function and watch some of the more popular ones to find something (and someone) to your taste.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>You\u2019ll have to get your hands out of your pockets and start experimenting and coding&nbsp;yourself<\/p><\/blockquote>\n\n\n\n<p>Unfortunately, you don\u2019t become a programmer by just reading or watching movies, just like you won\u2019t become a carpenter by just reading about it. You\u2019ll have to get your hands out of your pockets and start experimenting and coding yourself. If you ask me, there\u2019s no better way to start experimenting than using the Python REPL.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"2_Use_the_REPL%E2%80%8A-%E2%80%8AAll_the_time\"><\/span>2. Use the REPL\u200a\u2014\u200aAll the&nbsp;time!<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><a href=\"https:\/\/python.land\/introduction-to-python\/the-repl\">The Python REPL<\/a> is awesome, and it&#8217;s free! It\u2019s an interactive environment in which you can use and try the language. REPL is an abbreviation for:<\/p>\n\n\n\n<ul><li><strong>R<\/strong>ead: Python reads your command<\/li><li><strong>E<\/strong>valuate: Python evaluates the input<\/li><li><strong>P<\/strong>rint: it prints out the result<\/li><li><strong>L<\/strong>oop: and it\u2019s ready for the next input<\/li><\/ul>\n\n\n\n<p>It allows you to quickly try stuff. Some examples of what you can do:<\/p>\n\n\n\n<ul><li>Enter simple commands, like <code>1+1<\/code>&nbsp;<\/li><li>Enter complete functions or even classes<\/li><li>Import and use libraries<\/li><\/ul>\n\n\n\n<p>Basically, you can do everything Python can, but interactively. And because it\u2019s so interactive, you directly see the results. Thanks to auto-complete, it will even help you find the right methods without looking up the documentation. And thanks to the <code>help()<\/code> function, can explore further without opening a manual or google.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"3_Ask_for_help\"><\/span>3. Ask for&nbsp;help()<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>That\u2019s right. You don\u2019t need to google everything, and often, you don\u2019t need to ask others either. All the core Python libraries have so-called docstrings included.&nbsp;<\/p>\n\n\n\n<p>Quoting from <a href=\"https:\/\/www.python.org\/dev\/peps\/pep-0257\/\" rel=\"noreferrer noopener\" target=\"_blank\">PEP-0257<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>\u201cA docstring is a string literal that occurs as the first statement in a module, function, class, or method definition. Such a docstring becomes the __doc__ special attribute of that object.\u201d<\/p><\/blockquote>\n\n\n\n<p>Basically, most documentation is included with the code. And since Python is not compiled, but interpreted, it\u2019s easy to pull up this documentation.<\/p>\n\n\n\n<p>Python has one particularly handy built-in function to use these to your advantage. In the REPL, you can view a docstring, and more, with:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">>>> help('mystring')<\/pre>\n\n\n\n<p>Just try it, and you\u2019ll see a nicely formatted and scrollable document about Strings, including the docstring, plus the available methods and their descriptions.<\/p>\n\n\n\n<p>In this list, you\u2019ll also see the so-called \u201cdunder methods\u201d. They start and end with double underscores, like <code>__add__(self, value, \/)<\/code>&nbsp;. If you\u2019re a beginner, ignore them for now.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"4_Ask_for_help_from_a_human_this_time\"><\/span>4. Ask for help (from a human, this&nbsp;time)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" src=\"https:\/\/python.land\/wp-content\/uploads\/2021\/01\/img_6013f3d411e35.jpg\" alt=\"\" width=\"540\" height=\"360\"\/><figcaption>Get some real help\u200a\u2014\u200aPhoto by <a href=\"https:\/\/unsplash.com\/@brookecagle?utm_source=medium&amp;utm_medium=referral\" rel=\"noreferrer noopener\" target=\"_blank\">Brooke Cagle<\/a> on&nbsp;<a href=\"https:\/\/unsplash.com?utm_source=medium&amp;utm_medium=referral\" rel=\"noreferrer noopener\" target=\"_blank\">Unsplash<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>Sometimes, you just need a little guidance from a fellow programmer. Before you ask a question, please read these tips. They will benefit you and the ones you ask.&nbsp;<\/p>\n\n\n\n<p>Developers have the reputation to get a little cranky when asking questions that you could have found the answer to with a simple google search. Always start with extensively trying to find an answer in other ways. Before you ask a question:<\/p>\n\n\n\n<ul><li>Read the documentation\u200a\u2014\u200aalso called RTFM, short for \u201cread the f***ing manual.\u201d<\/li><li>Search Google for the answer if the documentation is not clear enough or does not solve your problem.<\/li><\/ul>\n\n\n\n<p>This should solve about 80% of your questions\u200a\u2014\u200aseriously. And you\u2019re still stuck, consider where to ask for help first:<\/p>\n\n\n\n<ul><li>A bug tracker is <em>not<\/em> the place to ask questions that are not about (potential) bugs.<\/li><li>A developer mailing group is intended for developers <em>working on<\/em> the product, not developers <em>using<\/em> the product.<\/li><li>Many projects have a page instructing you how and where to ask questions. Look for such a page.<\/li><li>There are large Facebook groups dedicated to Python programming. I\u2019ve also seen several Telegram groups about Python. In my experience, they can be messy and have a lot of noise, but often you\u2019ll get your answer, so it\u2019s worth checking those out.<\/li><\/ul>\n\n\n\n<p>Finally, before writing down your question, take these points in mind:<\/p>\n\n\n\n<ul><li>Be kind, be grateful. The people that answer you and try to help you often do so in their spare time, for free.<\/li><li>Be as detailed as possible. Provide context: what are you working on, why, what have you tried so far?<\/li><li>Include error messages, (parts of) log files, and the code giving the problem. Don\u2019t dump entire files. Only include what is needed to get proper help.<\/li><li>Making a screenshot instead of photographing your screen<\/li><\/ul>\n\n\n\n<p>Beware of people asking you money for &#8216;tutoring&#8217;. As you know now, there are enough ways to ask your Python questions for free.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"5_Dont_procrastinate_learning_about_classes_and_objects\"><\/span>5. Don\u2019t procrastinate learning about classes and&nbsp;objects<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Python is inherently object-oriented. Everything in Python is an object, even numbers and strings. It is best to learn about objects and classes early on because it will greatly increase your understanding of the language.&nbsp;<\/p>\n\n\n\n<p>Believe me when I say you\u2019ll reap the benefits of this very soon. Python Land has a large section on <a href=\"https:\/\/python.land\/objects-and-classes\" rel=\"noreferrer noopener\" target=\"_blank\">objects and classes in Python<\/a>. It explains the concepts to beginners, but it also shows some of the inner workings to remove the \u2018magic\u2019 from the subject. Try it!<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"6_Build_something%E2%80%8A-%E2%80%8AAnything\"><\/span>6. Build something\u200a\u2014\u200aAnything!<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The best way to learn is by building something. You can learn all the theory you want, follow all the tutorials you want, but you have to get started on a project at some point. And the beauty of programming, especially in Python, is that you can build the most wonderful things without spending a dime.<\/p>\n\n\n\n<p>Don\u2019t beat yourself up though. It doesn\u2019t have to be perfect, especially if it&#8217;s one of your first projects. And remember, you can always start over and do better on the next try. Don&#8217;t be afraid to throw away what you have and start fresh.<\/p>\n\n\n\n<p>\u201c<strong><em>But what should I build?!<\/em><\/strong>\u201d Good question. If you can\u2019t think of something yourself, try the Medium article I link to below. It&#8217;s behind the Medium paywall, but with this special link you can read it&#8230; that right&#8230; for free!<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/tech-explained\/6-python-projects-to-improve-your-skills-and-kill-some-time-a93b47134f13?sk=255353c3129bf5060f5f2e1ac5397f15\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">6 Python Projects to Improve Your Skills and Kill Some Time<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Thank you for reading and good luck, you can do this! The hardest part is getting started, so <a href=\"https:\/\/python.land\/python-tutorial\" rel=\"noreferrer noopener\" target=\"_blank\">get started right now<\/a> on our tutorial and learn Python for free!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Dive into the&nbsp;basics2. Use the REPL\u200a\u2014\u200aAll the&nbsp;time!3. Ask for&nbsp;help()4. Ask for help (from a human, this&nbsp;time)5. Don\u2019t procrastinate learning about classes and&nbsp;objects6. Build something\u200a\u2014\u200aAnything! &#8230; <a title=\"Learn\u00a0Python For Free: 6 Tips\" class=\"read-more\" href=\"https:\/\/python.land\/learn-python-free\" aria-label=\"More on Learn\u00a0Python For Free: 6 Tips\">read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1624,"parent":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[56],"tags":[55,72,25],"modified_by":"Erik","_links":{"self":[{"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/posts\/1619"}],"collection":[{"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/comments?post=1619"}],"version-history":[{"count":4,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/posts\/1619\/revisions"}],"predecessor-version":[{"id":1628,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/posts\/1619\/revisions\/1628"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/media\/1624"}],"wp:attachment":[{"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/media?parent=1619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/categories?post=1619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/python.land\/wp-json\/wp\/v2\/tags?post=1619"}],"curies":[{"name":"wp","href":"https:\/\/web.archive.org\/web\/20210301182913\/https:\/\/api.w.org\/{rel}","templated":true}]}}