I'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.
Have you tried 'The Hitchhiker's Guide to Python'? It strives to be exactly this -- a guide on installation, configuration, and usage of the Python runtime and development toolchain.
Thanks. I feel like I have read sections of this guide but going back and seeing some of the now relevant section titles, there appears to be some good info in here I could use. I hope I didn't skip over some of these when I was looking for relevant material.
> 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".
That’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.
Oh, you're right, I've edited my answer because "entire chapter" seems a very big thing considering the size of the document, and it probably makes me be seen as quite arrogant. To my defense, I'm not a native English speaker and it's 2:30 am here, so the quality of my answers are not the best at this moment.. :)
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.
PDF 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)?
Definitely, 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..
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.
Could 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).
"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".
"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.
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. ;-]
Have 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. I am sure here are others as well.
"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.
> 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/
Changed 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
Cannot change anymore the title or the link on HN though..
just 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?
I'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..
epub 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.
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.