5 ms·
Show HN: "100 Page Python Intro" eBook
- asicsp 6y agoHello! Author here. This book is a short, introductory guide for the Python programming language. This book is well suited: * As a reference material for Python beginner workshops * If you have prior experience with another programming language * If you want a complement resource after reading a Python basics book, watching a video course, etc --- The post link takes you to the free online version of the ebook. PDF/EPUB versions are currently free (for about a week) along with some of my other books. You can get them from gumroad/leanpub, links are given below: * 100 Page Python Intro: https://gumroad.com/l/100pagepythonintro https://gumroad.com/l/100pagepythonintro or https://leanpub.com/100pagepythonintro https://leanpub.com/100pagepythonintro * Python re(gex)?: https://gumroad.com/l/py_regex https://gumroad.com/l/py_regex or https://leanpub.com/py_regex https://leanpub.com/py_regex * Magical one-liners (grep/sed/awk/perl/ruby): https://gumroad.com/l/oneliners https://gumroad.com/l/oneliners or https://leanpub.com/b/oneliners https://leanpub.com/b/oneliners
- NDizzle 6y agoThe first thing I'd tell you is that people who are looking to learn python with 0% knowledge of python are most likely not using linux as an operating system. Windows/Mac instructions up front make a lot of sense. Other hangups newbies have: where to type things? Where to run commands? Hell, what's a command? These are the things one of my kids asked me when I was showing them python last night.
- poisonborz 6y agoAs OP stated, the book is for beginners in Python, not in development. I don't think your remarks would apply to that group.
- ghaff 6y agoThat's how I read it as well. That said, I think it's fair to note that anyone who has only ever used their computer for browsing, word processing, and gaming who gets dropped into most Introduction to X courses really has a whole (somewhat operating system and tools-dependent) course worth of material they probably need to go through first. I've seen the discussion boards of a couple nominally-intro MOOC courses filled with people utterly bewildered about basically how to use a computer for programming.
- dharmab 6y agoWeb IDEs are great for these intro-to-programming courses. Ideally the students get a couple of weeks of material on how to set up a local development environment later.
- asicsp 6y agoThanks for the feedback. I have Linux only, so can't give Windows/Mac instructions. That said I do show how to use IDLE, so command line knowledge isn't strictly necessary to follow along this book. I also mention links for websites you can use as an alternate. Given that knowing another programming language is a prerequisite, I hope getting started won't be an issue. I'll see if I can improve on the current instructions.
- t0mmyb0y 6y agoMac is almost identical to linux.
- interestica 6y agoThis is a pretty good framework for learning. > I have Linux only, so can't give Windows/Mac instructions. That said I do show how to use IDLE, so command line knowledge isn't strictly necessary to follow along this book. You bring up IDLE but don't define it. It's mentioned that it's related to IDE only. > Given that knowing another programming language is a prerequisite... Is that mentioned at all? And which ones? Why?
- asicsp 6y ago>Is that mentioned at all? And which ones? Why? I mention it in the preface chapter: https://learnbyexample.github.io/100_page_python_intro/preface.html https://learnbyexample.github.io/100_page_python_intro/prefa... There are plenty of books teaching Python for beginners to programming (Think Python, Automate the Boring Stuff, Python Crash Course and so on). And those are all 200+ page books, requiring a lot of effort from the author to teach programming concepts. I've seen a few people wanting a book that assumes the reader is already familiar with programming basics. The official Python tutorial is awesome for that purpose and there are a few books as well (A Whirlwind Tour of Python, Python 101, etc). I had started another book on Python projects and I felt I needed to improve my Python knowledge, so I wrote this book. >You bring up IDLE but don't define it. It's mentioned that it's related to IDE only. I'm assuming reader already knows IDE. I can add a wikipedia link to make it easier to look it up for those who don't know about it.
- 6y ago
- serjester 6y agoGoogle Colab is amazing for speeding through these early roadblocks. Controversial opinion but a beginner’s goal should be accomplishing a task - not learning about software development. A few wins later, they’re going to run into some friction and that’s when you can teach them about the standard to write code. Most importantly, they’ll understand the underlying “why” at this point.
- samstave 6y ago>* beginner’s goal should be accomplishing a task* Yup - I learned Photoshop in the mid 1990s because I was given a task to make some marketing material for the architecture firm I worked for... and they paid hourly for me to go to the Kinkos near the office as they had workstations with Photoshop on them. If you have a goal/task that you need to create then you will learn faster. You can't just sit down in front of a piece of software, such as Autocad or Photoshop and "learn" it unless you have a goal... There is a bad-ass piece of software called "Bartender" By Seagull Scientific and its used extensively in the cannabis industry to make labels - I love that software and I had to learn how to use it as I needed to design and print Cannabis labels...
- dddddaviddddd 6y agoI recently read The C Programming Language, and the paragraph about the difficulty of writing a 'Hello, world' resonated with me: > This is the big hurdle; to leap over it you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, everything else is comparatively easy. For beginners, getting the development environment figured out can be a significant roadblock.
- mszcz 6y agoSeconded. When my brother was learning front-end developement those were the kind of things that caused most problems in the beginning but were the most glossed over in the tutorials. I personally think that learning the nuts and bolts of how things work is where one should start. What compiles what, where is what stored, what process executes what, how does that thing know where that other thing is located etc.
- musingsole 6y agoMost people who code will need an inverted triangle of knowledge in relation to the software stack. Starting with some subset of software fundamentals is great, but it's easy to lose the forest for the trees in that approach. If I love websites and now I want to build one, spending more time on fundamentals than is necessary to impart a general scheme and more importantly the metaphors of those fundamentals would be a waste.
- geephroh 6y agoExactly! React and node are just simple JS, right? Simple JS, after you figure out which toolchain to use and how to configure it for your development and deployment environments...
- bigwavedave 6y ago> Exactly! React and node are just simple JS, right? > Simple JS, after you figure out which toolchain to use and how to configure it for your development and deployment environments... And god help you when any of your dependencies undergo a major update ;).
- nathannh20 6y agoMy partner has tried learning Python multiple times. What hung her up the most each time was the installation and setup on a Mac. After finally finding a Python course that held her hand through the installation phase, the next hurdle was finding a project that was interesting to her.
- sixhobbits 6y agoWe tried to solve both of these problems with https://codewithrepl.it https://codewithrepl.it - an ebook and set of tutorials. Setup - use an online IDE Projects - learn by building If she tries it I would love any feedback!
- asicsp 6y agoIf you are still interested in exploring projects, here's some: * https://github.com/tuvtran/project-based-learning#python https://github.com/tuvtran/project-based-learning#python * https://github.com/karan/Projects-Solutions https://github.com/karan/Projects-Solutions * https://github.com/norvig/pytudes https://github.com/norvig/pytudes * What do you automate with Python at home? - https://www.reddit.com/r/learnpython/comments/k5k1h0/what_do_you_automate_with_python_at_home/ https://www.reddit.com/r/learnpython/comments/k5k1h0/what_do... * Books: https://www.manning.com/books/tiny-python-projects https://www.manning.com/books/tiny-python-projects, https://nostarch.com/impracticalpythonprojects https://nostarch.com/impracticalpythonprojects, https://nostarch.com/real-world-python https://nostarch.com/real-world-python
- jhloa2 6y agoThank you for posting this. I've been meaning to get back into programming for fun recently but have been struggling to find something I wanted to work on.
- joveian 6y agoKitty terminal is about half python as well with extension opportunities and would probably be a good early project opportunity for some people. https://github.com/kovidgoyal/kitty https://github.com/kovidgoyal/kitty Also, renpy is used for a number of games, including some commercial games, so modifiying an existing game would be another option. (As a side note, I wish someone would make a python point and click adventure equivalent of renpy since for being such basic games they very often have major technical issues).
- jpm48 6y agoA lot of talk with issues of setup here. I have been using https://trinket.io/ https://trinket.io/ with my lecture notes / students as a good way of getting started. Especially now we are teaching online and not using our dedicated labs with python already installed. It works well and you can use turtle.
- usrme 6y agoGreat work! One minor nitpick would be to move the "In-place editing with fileinput" section to "Dealing with files" as it seems only tangentially related to command line arguments. At first glance I thought it was put there in error...
- asicsp 6y agoThanks for the feedback. I put fileinput in CLI chapter since it is a good example for a cli app and I'm introducing sys.argv in that chapter. I link this section in Files chapter as well. That said, putting it in Files chapter would work too.
- healeycodes 6y ago(n.b. I gave feedback on an early draft of this book.) It's very thorough, written with care, and presented in a way that makes sense. Even as an intermediate Python programmer, I found use in this book.