8 ms·
At full speed with Python: a book for self-learners
- jventura 9y agoChanged the book title to "Getting up to speed with Python" which is a more accurate title for what I wanted to write. Made a new release with a few corrections and the new title at https://github.com/joaoventura/full-speed-python/releases https://github.com/joaoventura/full-speed-python/releases Cannot change anymore the title or the link on HN though..
- neves 9y agoPDF is terrible to read in a Kindle. This book would be much more valuable in a ebook format. Every time I tried to generate mobi files from Tex they were terrible formatted. O'Reilly does it fine with some open source books, but I've never managed to do it myself. Are the good publishing tools for ebooks just avaiable for specialized publishers? Which techniques do you have to convert these Tex books to mobi (the Kindle format)?
- depressedpanda 9y agoPandoc[1] should do it for you. Running this -- from the root of the cloned project -- produced decent output for me: pandoc \ book.tex \ chapters/basic-datatypes.tex \ chapters/classes.tex \ chapters/dictionaries.tex \ chapters/functions.tex \ chapters/installation.tex \ chapters/introduction.tex \ chapters/loops.tex \ -o full-speed-python.epub (you may replace .epub with .mobi to get that file format, but it seems to not support TeX math properly) [1]: https://pandoc.org/MANUAL.html https://pandoc.org/MANUAL.html
- jventura 9y agoIf enough people are interested, i may try to do something with pandoc to generate an ebook!
- n0n 9y agoI would be interested
- unixhero 9y agoMe too Epub and mobi formats would be great
- anarchimedes 9y agoI would also be interested. LeanPub might also be a good shout.
- jventura 9y agoDefinitely, the problem with leanpub is that they ask for 99$ to start a book. I thought about that before, but i don't know if i could sell enough books to recover at least that inital value..
- jventura 9y agoI will check if i can produce an epub easily! Thanks for all sugestions..
- lighttower 9y agoYes. Me too
- inovica 9y agoI am :)
- dvtv75 9y agoDefinitely.
- natch 9y agoWould be interested if the focus is on Python 3.
- 9y ago
- dmlorenzetti 9y agoI've had mixed results using Calibre (https://calibre-ebook.com/ https://calibre-ebook.com/). In all, I've converted 3 PDFs to Kindle format -- one is OK, one is a slog to read, and the third I forgot I was reading a converted version. Have never tried using it to convert a LaTeX-generated document of my own, though.
- neves 9y agoSince we already have the original TeX files, any conversion directly from PDF would be of lower quality.
- jventura 9y agoI've included a pandoc generated epub at https://github.com/joaoventura/full-speed-python/releases/ https://github.com/joaoventura/full-speed-python/releases/
- ultrasounder 9y ago"become familiar with Python's syntax in two weeks and are able to implement a distributed client-server application with sockets in the third week" are there plans to extend the book to include the design of the distributed Client-Server Application?Would be super intrigued.
- jventura 9y ago> are there plans to extend the book to include the design of the distributed Client-Server Application? I do not know how I could integrate that in this book specifically, because it is not something that a regular user would need to know to be able to use Python per se, but I would like to publish something eventually. Maybe something like "up to speed with socket programming in python".. :) Basically, I give my students two files (client.py and server.py) with a basic and very simple use of sockets, and guide them to build a basic shell client app that sends messages to be evaluated by the server and to receive the result back. Other is a very basic http server with sockets. These are not production-ready things, I'm just interested that they learn the concepts. You can check something about this http server in this blog post of mine: http://joaoventura.net/blog/2017/python-webserver/ http://joaoventura.net/blog/2017/python-webserver/
- abhinai 9y agoHave you thought about releasing this book with something that makes it easier to read online? For example Gitbook: https://yumedzi.gitbooks.io/python-book/content https://yumedzi.gitbooks.io/python-book/content. I am sure here are others as well.
- deleted 9y ago[deleted]
- jventura 9y agoI've included a pandoc generated epub and it seems ok on my computer, would anyone be able to test it on a epub device to see if it works ok? https://github.com/joaoventura/full-speed-python/releases/ https://github.com/joaoventura/full-speed-python/releases/
- argonium 9y agoLooks good on my MBP. Thanks for sharing!
- ausjke 9y agojust fixed the Makefile and created a pull-request, it should build both epub and pdf as long as you have pandoc installed. The pdf file is 18 pages in total, so it is a very short one, or am I missing something?
- jventura 9y agoI've just checked your pull-request, but the resulting pdf is on article form instead of book. I'm talking about the latex document class: \documentclass[12pt, a4paper, oneside]{book} It has to be ran with pdflatex..
- knorrie 9y agoWell done, very well written! Be aware that the approach this book takes has its own type of target audience. I guess the audience that will like this book/tutorial are the kind of people that will usually just read the entire reference manual of anything to see what's in their toolbox before actually starting to build something. So by reading it, you help them as a guide to work through it, choosing the parts of the language that are best learned first. After following the exercises, the reader can already build some programs using those concepts, whatever it might be, leaving it to their own imagination. The other type of audience, which this book might be less suited for, is people who get bored after chapter 1, thinking "I want to build something fun now already!". Those might be better served by a tutorial like "we're building a XYZ game", explaining concepts along the way. Both are good, both are needed. I'm one of the first type of people, so I'm really happy to see this kind of book. The second type of tutorials only give me fragments of information if I follow it building that XYZ game, while I have my own idea of what to build, and just want to learn how those lists and dictionaries work when I discover I need them. ;-]
- chrsstrm 9y agoI've used Python sparingly in the past for tooling and helper apps and am now picking it up in a more serious way as I'm working on a Flask API app. I've been reading lots of instructional materials and the one thing that I find lacking across the board is coverage of the toolchain and it's edge cases. For starters, Macs only come with Python 2.X, tell me about installing 3.X and some of the walls I might run into in the process. Having used other package managers, pip is easy to pick up but you might get stuck if you forget you need to use pip3 instead. virtualenv is something that could use a more thorough explanation in almost everything I've read, but I'm also now seeing everyone shift to using pipenv and sorting this out yourself is not easy to newcomers (I haven't seen a text yet that discusses it other than packages using it in their install copy and paste and the pipenv site itself). The small things that seem obvious to seasoned devs are really what I'm looking for, especially in an accelerated course. This applies almost equally to most language reference material I've come across but I'm asking politely, please spend more time on the toolchain.
- jventura 9y ago> This applies almost equally to most language reference material I've come across but I'm asking politely, please spend more time on the toolchain. I have a chapter about the python installation in this book but in the documents I usually give to my students I also explain how to use pip and virtualenv. I may add something about the basic tooling, at least enough so that people can get up to speed with python. Edit: removed "spent an entire chapter on the python installation".
- natch 9y agoThat’s nice but the “entire chapter” you mention is three pages, divided into three platforms, so less than a page per platform including screenshots, which means really about one or two short paragraphs per platform. I really don’t want to take away from what you’ve done, but to say there is an “entire” chapter is not really getting the point of the comment you replied to. Installation may indeed be coverable in so few words, but I think what is missing is coverage of what it takes to go back and forth between different versions (using ‘python’ versus ‘python3’ on the command line doesn’t begin to cover it), although personally I will be happy when we no longer have to do that. I am glad to see you are basing things on Python 3.
- smortaz 9y agocongrats & thanks! would be great to have these as jupyter notebooks as well.
- arikalmen 9y agois there a slack channel that has been developed in addition to this learning?
- philliphaydon 9y agoI'm starting to learn Python so I'm super interested in this. However for me the PDF is blurry? I tried in Chrome/IE/Acrobat and the text is blurry for me, anyone else have this problem??
- jventura 9y agoI've just confirmed on a virtualbox installation of windows 7 and it is working fine on Acrobat Reader. It may be a crazy suggestion, but can you reset your computer? I've also made available an epub, so maybe you can use it instead of the pdf..
- philliphaydon 9y agoepub works great. No issues. I got alot of PDF's i donno why only this one displays weird. :( if no one else has this issue must just be my work pc being bung.
- jventura 9y agoCould you provide a screenshot? You can open a github issue if you want...
- philliphaydon 9y agoI think it’s just my work computer on it’s last legs. Worked fine at home and on the surface.
- jventura 9y agoGreat, thanks!
- JBlue42 9y agoI use SumatraPDF and it looks ok. Maybe the size of the font as well as the type isn't the best but it's legible.
- Xunxi 9y agohttps://www.manning.com/books/get-programming https://www.manning.com/books/get-programming by https://www.edx.org/bio/ana-bell https://www.edx.org/bio/ana-bell Is worth the investment!
- anara2696 9y agogood book
- ultrasounder 9y agoThanks for the reference to your blog. Will check it out. Thanks for making this book available
- ivan_ah 9y agoNice book. The simplicity of the build system for epub is impressive: https://github.com/joaoventura/full-speed-python/blob/master/Makefile#L3 https://github.com/joaoventura/full-speed-python/blob/master...
- 333c 9y agoThe beauty of Pandoc! I discovered Pandoc in the past few months thanks to a post on HN, and I've been going out of my way to involve it in my projects because it's so fascinating to me. Pandoc: https://pandoc.org/ https://pandoc.org/
- asicsp 9y agoquick suggestions: * create sub-headings, for ex: 'Basic datatypes' chapter, create numbers/strings/lists as sub-headings... * loop iteration - as you are anyway showing how to use 'enumerate', I'd suggest to not show 'range(len(mylist))' * lots of ' Finally', might want to remove some or rework those sentences ---- Resources similar to this, but full fledged books * http://greenteapress.com/wp/think-python-2e/ http://greenteapress.com/wp/think-python-2e/ * http://openbookproject.net/thinkcs/python/english3e/ http://openbookproject.net/thinkcs/python/english3e/ - based on think python * https://automatetheboringstuff.com/ https://automatetheboringstuff.com/ and for exercises (disclaimer: these are from my github repo): * https://github.com/learnbyexample/scripting_course/blob/master/Python_curated_resources.md#code-practice https://github.com/learnbyexample/scripting_course/blob/mast... * https://github.com/learnbyexample/Python_Basics/blob/master/Exercises.md https://github.com/learnbyexample/Python_Basics/blob/master/...
- jventura 9y agoCould someone suggest which title sounds better: "at full speed with python" vs "up to speed with python"? I would like to convey the idea that this is a fast way for people to learn the basic concepts of python. But I'm not sure that "up to speed with X" exists, as I cant find many ocurrences of it in google (i'm not a english native speaker, this is the technique i use to find how certain expressions are used in english).
- duarteoc 9y agoThey mean slightly different things. Sorry for the Portuguese translation foreigners. But since I noticed you are from Setubal, Portugal. "At full speed with python" -> "Chegar á velocidade máxima com Python." "Up to speed with python" -> "Chega a velocidade desejada com Python."
- drdave55 9y ago"Getting up to Speed with Python" is what you are after. "Up to speed" implies that the reader is already "there", hence, the book will be targeting readers that already have considerable knowledge and skill with Python. Clearly, your statement, "I would like to convey... that this is a fast way... to learn the basic concepts...", you are targeting those with minimal skills and experience. Therefore, they will be "getting up to speed" as they go through the book, with the implication that upon completion of the book, they will be "at speed".
- jventura 9y agoYes, that's it! Thanks! (Changed the book title to match..)
- Sileni 9y ago"At Full Speed with Python" sounds more like an intermediate to advanced book. "Up to Speed with Python" sounds more like what you're trying to achieve.