Reddit Reddit reviews Fluent Python: Clear, Concise, and Effective Programming

We found 34 Reddit comments about Fluent Python: Clear, Concise, and Effective Programming. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Science
Fluent Python: Clear, Concise, and Effective Programming
O Reilly Media
Check price on Amazon

34 Reddit comments about Fluent Python: Clear, Concise, and Effective Programming:

u/bcorfman · 53 pointsr/Python

Fluent Python. I've learned more per page from that book than any other Python resource I've come across. For example, studying the book's material on hashable objects got me over a problem I was having with a planning algorithm. When I finished, I had successfully implemented a knowledge base and a total-order planner that could directly leverage the A*-search in the AIMA-Python code base. Kudos to the book's author, Luciano Ramalho, as that is just one example that helped my problem-solving skills in Python.

u/YeWenjie · 31 pointsr/Python

In case you're unaware, or anyone else is loo8for a more substantial book, Fluent Python covers Pythonic usage through 3.5, that should at least get you most of the way there.

u/victorioushermit · 24 pointsr/learnpython

I'm working my way through Python Crash Course right now and recommend it. It starts from basics but doesn't treat the reader like an idiot. And the exercises are good for helping you to think through how to format your code. From there I'm planning to go through Automate the Boring Stuff with Python, and after I get a bit better at it, Fluent Python

Python Crash Course

Automate the Boring Stuff with Python

Fluent Python

u/____candied_yams____ · 20 pointsr/learnpython

OOP in python is a bit different than other languages because of how python doesn't necessarily advocate for private data members as in many statically typed languages like C++ and Java. Additionally, the keyword decorator property eliminates the need for getters and setters up front in class design.

I have lots of python books but the two that helped me write pythonic classes were Effective Python (I actually only have the 1st edition) and Fluent python. The first book is probably a great crash course so if you get just one book get that one, but the latter book is good too and goes into much more detail without coming across like a dense reference text.

James Powell also has some great videos on pythonic programming, a lot of which involves OOP style.

u/gatewaynode · 14 pointsr/pythontips

A nice learn as you build web project is : https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

If Python is just a new language this is a really good book for hitting that next level: https://www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1491946008

Here's a site worth reading most updates: https://www.planetpython.org/

And definitely subscribe to r/learnpython, it's a friendly place for all levels of Pythonistas.

u/jpjandrade · 11 pointsr/Python

In my personal opinion any python book list that doesn't include Fluent Python is pure garbage.

u/arsenalbilbao · 9 pointsr/learnpython
  1. if you want to LEARN how to write programs - read "Structure and interpretation of computer programms" on python - SICP (project: you will write an interpreter of "scheme" programming language on python)

  2. if you want to TRAIN your OOP skills - Building Skills in Object-Oriented Design (you will code 3 games - roulette, craps and blackjack)

  3. Helper resources on your way:
    3.1. Dive into python 3 (excellent python book)
    3.2. The Hitchhiker’s Guide to Python! (best practice handbook to the installation, configuration, and usage of Python on a daily basis.)
    3.3 Python Language Reference ||| python standard library ||| python peps

  4. if you want to read some good python code - look at flask web framework (if you are interested in web programming also look at fullstackpython

  5. good but non-free books
    5.1. David Beazley "Python cookbook" (read code snippets on python)
    5.2. Dusty Phillips "Python 3 Object Oriented Programming" (learn OOP)
    5.3. Luciano Ramalho "Fluent python" (Really advanced python book. But I haven't read it YET)

  6. daily challenges:
    6.1. r/dailyprogrammer (easy, intermediate and advanced challenges) (an easy challenge example)
    6.2. mega project list

  7. BONUS
    From NAND to tetris ( build a general-purpose computer system from the ground up) (part1 and part2 on coursera)
u/TheMiamiWhale · 6 pointsr/battlestations

If you are a CS major I'd go with the $15 package just so you can get the two books on security. In terms of helping your job prospects, I'd think about the following:

  • Code as much as possible (be very comfortable with at least one language)
  • Practice algorithms
  • Have a project or two that isn't trivial

    Assuming you already know how to program in a handful of languages, you might find the following useful:

  • Fluent Python

  • Coding the Interview

    Of course depending on what your interested in (e.g., mobile, web, systems, etc.) there are additional great resources but these will at least get you moving in the right direction. The biggest thing is just practice writing code as much as possible.
u/s-ro_mojosa · 4 pointsr/learnpython

Sure!

  1. Learning Python, 5th Edition Fifth Edition. This book is huge and it's a fairly exhaustive look at Python and its standard library. I don't normally recommend people start here, but given your background, go a head.
  2. Fluent Python: Clear, Concise, and Effective Programming 1st Edition. This is your next step up. This will introduce you to a lot of Python coding idioms and "soft expectations" that other coders will have of you when you contribute to projects with more than one person contributing code. Don't skip it.
  3. Data Structures and Algorithms in Python. I recommend everybody get familiar with common algorithms and their use in Python. If you ever wonder what guys with CS degrees (usually) have that self-taught programmers (often) don't: it's knowledge of algorithms and how to use them. You don't need a CS degree (or, frankly any degree) to prosper in your efforts, but this knowledge will help you be a better programmer.

    Also, two other recommendations: either drill or build pet projects out of personal curiosity. Try to write code as often as you can. I block out time three times a week to write code for small pet projects. Coding drills aren't really my thing, but they help a lot of other people.
u/OverQualifried · 4 pointsr/Python

I'm freshening up on Python for work, and these are my materials:

Mastering Python Design Patterns https://www.amazon.com/dp/1783989327/ref=cm_sw_r_cp_awd_kiCKwbSP5AQ1M

Learning Python Design Patterns https://www.amazon.com/dp/1783283378/ref=cm_sw_r_cp_awd_BiCKwbGT2FA1Z

Fluent Python https://www.amazon.com/dp/1491946008/ref=cm_sw_r_cp_awd_WiCKwbQ2MK9N

Design Patterns: Elements of Reusable Object-Oriented Software https://www.amazon.com/dp/0201633612/ref=cm_sw_r_cp_awd_fjCKwb5JQA3KG

I recommend them to OP.

u/CrimsonCuntCloth · 4 pointsr/learnpython

Depending on what you want to learn:

PYTHON SPECIFIC

You mentioned building websites, so check out the flask mega tutorial. It might be a bit early to take on a project like this after only a month, but you've got time and learning-by-doing is good. This'll teach you to build a twitter clone using python, so you'll see databases, project structure, user logons etc. Plus he's got a book version, which contains much of the same info, but is good for when you can't be at a computer.

The python cookbook is fantastic for getting things done; gives short solutions to common problems / tasks. (How do I read lines from a csv file? How do I parse a file that's too big to fit in memory? How do I create a simple TCP server?). Solutions are concise and readable so you don't have to wade through loads of irrelevant stuff.

A little while down the road if you feel like going deep, fluent python will give you a deeper understanding of python than many people you'll encounter at Uni when you're out.

WEB DEV

If you want to go more into web dev, you'll also need to know some HTML, CSS and Javascript. Duckett's books don't go too in depth, but they're beautiful, a nice introduction, and a handy reference. Once you've got some JS, Secrets of the javascript ninja will give you a real appreciation of the deeper aspects of JS.

MACHINE LEARNING
In one of your comments you mentioned machine learning.

These aren't language specific programming books, and this isn't my specialty, but:

Fundamentals of Machine Learning for Predictive data analytics is a great introduction to the entire process, based upon CRISP-DM. Not much of a maths background required. This was the textbook used for my uni's first data analytics module. Highly recommended.

If you like you some maths, Flach will give you a stronger theoretical understanding, but personally I'd leave that until later.

Good luck and keep busy; you've got plenty to learn!

u/Earhacker · 4 pointsr/learnprogramming

Websites are built with HTML, CSS, JavaScript, and that's it. You can have a back end (the bit that handles and serves up the data) written in any language, but every website you see is just HTML, CSS and JavaScript.

If you're underwhelmed by Python, I don't think you'll like JavaScript. It's like Python, only weird. But if you really want to get into web development, I'd recommend Eloquent JavaScript which is free online, but the paper book is a slightly older version until later this year hopefully. It's an excellent book on JavaScript, but a little too terse for total newbies. It's great for someone learning JavaScript as a second language. If it's too much for you, then the best choice for newer readers is The Modern JavaScript Tutorial.

But I suspect that you haven't taken Python as far as you think you have. It's a great language for beginners because it offers quick wins, and you can build cool little apps very quickly. But that belies its depth. You can build website back ends with the Flask framework for Python. Miguel Grinberg has written the gold standard of Flask learning in the Mega Tutorial, and has expanded it into a paper book in Flask Web Development on O'Reilly. Or, if you want to explore the nerdy depths of Python and know it inside out, get Fluent Python.

If you really weren't impressed with GCSE Python, the next level up is probably learning Java or C#, maybe even Go or Rust if you fancy something a little more cutting edge. I'm not an expert in these languages and I haven't read much on them, so I'll defer you to other answers.

u/jungrothmorton · 4 pointsr/learnpython

Fluent Python. This book took my Python and coding in general to the next level.

u/YUM_BlueberryMuffins · 4 pointsr/learnpython
  1. Code more.
  2. Watch Raymond Hettinger videos on youtube.
  3. Watch David Beazley videos on youtube.
  4. Read Fluent Python.
  5. Podcasts? Talk python to me.
  6. Code more again.
  7. Repeat.
u/JollyRogers1503 · 3 pointsr/learnpython

I recommend Fluent Python

u/chillysurfer · 3 pointsr/Python

Whereas I don't think Fluent Python woudld give you the "nitty-gritty" parts of Python, I seems like it would be a great book for an experience Python developer looking to polish Python programming.

Disclaimer: I haven't read this book yet, but it is no kidding in the mail on the way to me. Like you, I'm looking to polish certain parts of my Python programming, and just become and all-around better Python developer.

u/ajkn1992 · 3 pointsr/Python

This book. It contains recipes on how to write idiomatic python code.

u/lemontheme · 3 pointsr/datascience

Fellow NLP'er here! Some of my favorites so far:

u/chra94 · 2 pointsr/learnpython

How about https://learnxinyminutes.com/docs/python3/ ? It's a webpage which covers the basics at least. Might be smaller than you want but it's something you can start reading right now at least.

E: Learnxinyminutes has some book suggestions at the bottom which might interest you.

E2: You might be interested in Fluent Python. It goes into the nitty gritty parts of Python and shows (to my knowledge) idioms in Python. Book here

u/xPolydeuces · 2 pointsr/learnpython

My friend who was getting into Python recently asked me about the same thing, I've made some research and this was what I came with. Just for the record, I'm personally a book dude - can't really focus much when learning from Udemy courses and stuff like that, so I will only cover books:


First book:


Python Crash Course by Eric Matthes
Very solid position for beginners. The first part of the book covers Python's basics - data types, lists, functions, classes, pretty much everything you need to get a good grasp of Python itself. The second part of the book includes three practical projects, mini-game, data visualization and an introduction to making web apps with Django. From what I so, it's a pretty unusual approach to beginner friendly books, since most of them avoid using additional libraries. On the other hand, it's harder to get bored with this book, it really makes you want to learn more and more once you can actually see the effects of all your work.


Automate the Boring Stuff with Python by Al Sweigart
Best alternative if you want to spend 0 bucks or want to dive all into projects. Even though it covers basics as well, I still recommend to read it, even if you have done Python Crash Course before, even just for the sake of all those projects you can make to practice your Python. He also has a Youtube channel where he has a loooot of Python content and sometimes does cool things like streaming and helping people make their code better, really cool guy, be sure to check his channel!


Second book:


Writing Idiomatic Python by Jeff Knupp

Very solid book, filled with examples what you, as a Python developer should do, and what you shouldn't (and why not). Sounds like not much, but it is actually a lot of useful knowledge that will make your code shorter, cleaner and better.


Effective Python by Brett Slatkin

A bit easier to understand and easier to approach than a previous book, but still has a load of knowledge to share.


Third book:


Fluent Python by Luciano Ramalho

One of the best Python books overall, covers all of the things that previous books could have missed or didn't have time to introduce. My personal favorite when it comes to books for advanced Python developers.


All of those recommendations are my personal opinion, so if anyone has anything to add, I will gladly listen to any comments!

u/invictus08 · 2 pointsr/flask

First of all, applause for the great start.

Here are some criticisms/suggestions I would like to offer. Keep in mind, I am not assuming your level/experience as a software developer:

  1. Functions with smaller size. You see, most of the functions that you have written is lengthy because of the sql statements. Here comes my second point.

  2. Separate business logic, application code, data storage related stuff etc. Keep things modular. That separation is important because you want things to be maintainable and reusable. Your code should be open for extension, but close for modification. If that does not make sense to you, that's perfectly fine, just start from this

  3. On that note, since you are using flask, might I suggest using flask-sqlalchemy instead of sqlalchemy? You may like it better. I know you have mentioned

    > I force myself to write raw SQL Request to get better with SQL

    while that is commendable, it is not really a good idea to write raw sqls in production code if there are ORM library alternatives available. Remember, it's not always you that is going to read/modify the code. While ORM syntax will be fairly universal, your style of writing SQL may vary starkly from other people - which is what creates confusion and lets errors sneak in. Even if you want to do that, maybe keep the raw sql in separate modules (point 2).

  4. Instead of computing everything and then sending the result along with the page, maybe create api endpoints for specific sections; render page with bare minimum info and from the webpage make multiple calls to update the page sections when required. This way, it will be far more responsive, user will not be waiting for you to finish all the computation and if you detect any change in any section of the page, you can just update that particular section with an appropriate api call, thereby avoiding a whole page reload. Design choices.

  5. PEP8. You don't have to blindly follow every rule - just make sure you understand why those rules are there, and that if you are breaking any, you know that it is absolutely necessary for accomplishing what you want. Again, what you want may not always be what you actually need - so be really careful.

  6. This is something I wish I knew earlier - Design Patterns. Without going into much details, I would recommend reading these books to start with and really understand instead of memorizing:
  7. Documentation is also important. Follow the good practices there. A remarkable reference would be Ken Reitz's Requests library.

    Finally, remember that all these are just suggestions, and you may already know them. You will decide which ones to take and which ones to leave behind based on your situation.

    Again, great job (I also learnt something from this). Just make sure you keep running.
u/iznk · 2 pointsr/Python

Not a bible though, but one of the best books on Python I've read. A lot of real life examples https://www.amazon.com/Fluent-Python-Luciano-Ramalho/dp/1491946008

u/iAbortedFetus · 2 pointsr/learnpython

There has been many sources. I'll just copy and paste my comment above regarding some of the more helpful sources I've come across.

> I'd say Corey Schafer's YouTube channel has been a huge help with visualizing and understanding the basics.

> Fluent Python by Luciano Ramalho has had an impact on me as well. There's a lot of advanced topics in that book that's out of my level, which I try my best to understand, but there's also tons of good examples for beginners to pick up on.

> I've watched hours of CS lectures regarding python. This lecture by Raymond Hettinger helped me break out of some bad practices.

u/Rhemm · 1 pointr/learnpython

Start with idiomatic python. That's a very good, short book of important pythonic features. Also make sure to learn standart library. You can refer to docs for exact arguments, but you have to know all of functions and what they do. After you can read fluent python. It will show you how python works, python data model and I think overall it's the best python book. Then practice, read others code. When you use some library or whatever don't be afraid to dive into source code. Good luck and happy programming

u/enteleform · 1 pointr/Python

Part of thinking logically is knowing what tools are available to you, so I'd recommend reading some books to gain an overhead view (data structures, standard libraries, design patterns, etc) of Python.  I put together a list that I'm working through @ this Gist.  Based on your question, I'd recommend reading Fluent Python to start, and then check out Problem Solving with Algorithms and Data Structures (along with any others that interest you).
 
In addition to 3burk's math-based suggestions, Project Euler is another good option.
 
Some interactive coding-challenge options:

  • CoderByte
    This is the more beginner-friendly of the two. The questions are well-balanced for all skill levels, and they have well-explained official solutions.
  • LeetCode
    This one is a bit more advanced, but definitely worth checking out once you're ready since the solutions are ranked by efficiency (in milliseconds & Big-O complexity) instead of arbitrary points.  You can learn a lot by figuring out your own solution, and then checking out more efficient solutions to learn what you could have done better. There's also a forum where you can discuss how/why certain methods are more efficient.

     
    Also, check out this post I wrote in response to a similar question for a bunch more coding resources (challenges, books, projects, etc).
u/KennedyRichard · 1 pointr/learnpython

Python Cookbook 3rd ed., by David Beazley and Brian K. Jones, has a dedicated chapter about metaprogramming. The book is so good the other stuff may also give some insight on metaprogramming or alternatives. I already read it and it gave me insight on my code about metaprogramming and other topics, so it is pretty useful. You can also find a lecture from Beazley about the topic with a quick google search with his name and the "metaprogramming" word.

There's also Fluent Python by Luciano Ramalho, which has three dedicated chapters about metaprogramming. Didn't read the chapters myself but I'm half way into the book and it is awesome, so I'm having great expectations about those chapters.

Don't mind the metaprogramming "chapter count", it is just a piece of information. Quality is what you should be looking for. And I believe those books have it. Even though I admit an entire book about metaprogramming would be neat.

u/mitchell271 · 1 pointr/Python

Been using python for 5 years, professionally for 1. I learn new stuff every day that makes my python code more pythonic, more readable, faster, and better designed.

Your first mistake is thinking that you know the "things that every python programmer should know." Everyone has different opinions of what you should know. For example, I work with million+ entry datasets. I need to know about generators, the multiprocessing library, and the fastest way to read a file if it's not stored in a database. A web dev might think that it's more important to know SQLAlchemy, the best way to write UI tests with selenium, and some sysadmin security stuff on the side.

If you're stuck with what to learn, I recommend Effective Python and Fluent Python, as well as some Raymond Hettinger talks. You'll want to go back through old code and make it more pythonic and efficient.

u/autisticpig · 1 pointr/Python

If you were serious about wanting some deep as-you-go knowledge of software development but from a Pythonic point of view, you cannot go wrong with following a setup such as this:

  • learning python by mark lutz
  • programming python by mark lutz
  • fluent python by luciano ramalho

    Mark Lutz writes books about how and why Python does what it does. He goes into amazing detail about the nuts and bolts all while teaching you how to leverage all of this. It is not light reading and most of the complaints you will find about his books are valid if what you are after is not an intimate understanding of the language.

    Fluent Python is just a great read and will teach you some wonderful things. It is also a great follow-up once you have finally made it through Lutz's attempt at out-doing Ayn Rand :P

    My recommendation is to find some mini projecting sites that focus on what you are reading about in the books above.

  • coding bat is a great place to work out the basics and play with small problems that increase in difficulty
  • code eval is setup in challenges starting with the classic fizzbuzz.
  • codewars single problems to solve that start basic and increase in difficulty. there is a fun community here and you have to pass a simple series of questions to sign up (knowledge baseline)
  • new coder walkthroughs on building some fun stuff that has a very gentle and friendly learning curve. some real-world projects are tackled.

    Of course this does not answer your question about generic books. But you are in /r/Python and I figured I would offer up a very rough but very rewarding learning approach if Python is something you enjoy working with.

    Here are three more worth adding to your ever-increasing library :)

  • the pragmatic programmer
  • design patterns
  • clean code

u/danysdragons · 1 pointr/learnprogramming

As others have said, Automate the Boring Stuff is a good place to start.

Down the road if you really want to go deep into Python and want an advanced book, [Fluent Python] (https://www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1491946008/) is fantastic.

u/Drago0909 · 1 pointr/learnpython
u/Krudflinger · 1 pointr/learnpython

Try out python koans for the basics.

Once I got that out of the way, I grokked through Fluent Python.