*Video Main Points Overview, Timestamps, & Summary* 1. 0:14 The "perfect" book doesn't exist. - points of potential (mis)alignment: topic/writing complexity, topic/writing detail, of writer's focuses/goals, intended target audience 2. 1:22 Reading too many books at once can lead to overwhelm. - Here's a reasonable limit to start with: a maximum of 3 books at the same time Ad break 1:44 3. 2:57 "Read thoroughly" + "Do code exercises" - get the code examples to run (if possible), ask yourself "why is the code written that way?", try modifying the code ("Are there more interesting things you could get the code to do if you changed it slightly?") - try the code exercises, especially exercises that you believe may expand your skills, knowledge, and/or comfort zone (don't just pick the easiest exercises and move on) 4. 4:01 "Pace yourself" + "Set realistic expectations" 5. 4:34 It's important to understand first, memorize second. - Don't skip topics you don't understand. Instead, do some research or ask for help. It's OK if you forget as long as you take notes and follow the recommendations above.
The best advice I’ve even been given about code books was to buy the smallest book you can find on the subject and to buy the biggest book you can find. The small one gives you the basic overview and nuts and bolts of the language and the big one gives you all the deep dives and details to help further your understanding once you have the basics down.
I have always had similar thoughts about learning (in any subject). In addition, the time it takes to read and understand the big book ALONE is probably longer than the time it takes read and understand the little book AND the big book (because the little book prepares the mind for the big book/the deeper learning).
I recently went through a lot of old and new books to pass a teaching test for java computer science. I actually think there needs to be a language agnostic book that standardizes the core concepts. So loops has a section where it shows pseudo code and then a few examples in various languages. Then sub-chapters are added for specific languages. What this does is gives the reader a roadmap to understanding that all the languages are related and syntactically similar. If they want to learn a new language, they simply download your sub-chapters for a particular language.
I think the reason why this approach does not work is because of examples. How do you teach how to program something without an example language to demonstrate? Also why bother to learn something that ultimately gives no skill when you could just pick one and get similar benefits.
@@XrayTheMyth23 the issue is that people dont get the core concept prior to diving into the nuansce of a language syntax. Seeing psuedocode and examples from various languages prior to showing the intended language helps a reader get the main idea. A lot of people find functional programming easy and OOP hard. It isnt a question of syntax difficulty. It is getting them to understand the concept and how to solve a problem using it. People want to see tangible results rather than solving math problems. I like python as it is easy to do real world data scraping and bots which can get kids excited. Telling them they can bot purchase jordans makes more sense than solving the missing side of a triangle.
But if you're a total beginner then you don't have to fully understand everything you read, as you're in the initial exposure stage and that what should be to focus 'exposure'. Just keep reading and things will start to connect the more you read and familiarise yourself with the subject. Sometimes the second read of a book makes a lot of sense specially after your have practiced some examples and run into some issues.
That's exactly my state of mind. I just started a little under a month ago. And I was seeing and reading things that intimated the hell put of me and almost turned me off to learning coding. But I kept reading and finding resources learning concepts and fundamentals and little by little it is coming together. That said I have a long way to go I've barely cracked the surface.
I think that I am one of the few people willing to read a book on a computer programming language. I have watch Barnes and Nobles computer book section shrink more and more every year. In the Atlanta area, there is a computer store called MicroCenter. They used to have a huge book section. They no longer have it. I was able to upgrade and maintain a career just from reading books I bought from them!
Nah, computer books are still written, and are still useful (or are the same mixed-bag, quality-wise). It's just that all the textbook & reference publishers have moved to ebooks, distributed through Amazon and their own in-house websites. O'Reilly, Packt, Apress, Wiley, et al are all well-represented across a wide breadth of disciplines.
I just buy whatever the hell is available on *Humble Bundle* about programming e-books which they always have, for me it's pointless to have a bookshelf full of books getting dusty when I can just have it all on my E-reader without wasting physical space...
@Unironic username, Non cynical sarcasm I haven't heard of Humble Bundle before. I'll look them up. But I prefer books on paper. You know, books. If I can download their selections and print out chapters as I read them, that would fit the bill.
I'd recommend the book published by Mannings. The style and the format of the book made you understand the concept clearly and more practical. The 2nd publisher should be O'reilly .
I've always preferred the "Why" over the "How to", well more of the why than the how to as many years passed. I have read lots of books, beginner to Intermediate that explain the how to and step by step, but in the back of my mind I'm going, yeah but WHY is it done like this, WHY am I having to do this and that, and while yes some books explain the why, they are usually 1000s of pages of stuff I've seen over and over again at a beginner level, but then with the missing "How to" after explaining the "Why". I like books that go, this is how it's done AND why it's done this way, so you go, oh I see this is why we do this and this is how to implement it. A book that goes from beginning to Intermediate to advanced cutting through the fluff getting straight to the point of the how to and why or a series from Beginner to Expert, especially Intermediate to expert would make my day, and after reading lots of books, I've yet to see this "Golden book" and I've read books that most recommend in the usual top 10 - 20 all time etc., while some are great, they just don't go to the depths I'm looking for combining what I need to know without the book being 1000s of pages long and DRY! Which yes many books repeat themselves over and over again. For me the project books are the best, as you see the language at work and then piece together the why if you can, if it doesn't explain it, and a lot of Intermediate books just don't have enough: this is how it's implemented in the work place, but here's some theory for you to grasp....eventually....sometime later....or never. Programming can be fun one day and a pain the next. Nature of the beast I guess, but after many years of programming one thing I've learned is that I'll never know everything about computers and programming. 😂 All the best to all the old and new programmers 👍🏼
@@thepurplepanda4 Yeah introductory alright lol The world of programming, well the "computer" landscape has changed dramatically in the last 6 - 8 years I'd say, especially since Covid and people working from home and looking to find work that way and it usually involves using a computer in some shape or form. I remember bk even in 2010 when I mentioned C programming to some friends and family, they were like programming oh sounds very "technical" and "geeky", fast forward today and some family are going oh do you know Python and Flask and using Github, and Java and Spring etc., because I'm doing a course and doing my own websites etc., can you help? And some friends are going, oh do you know how to use this and this language and that and that framework etc.? Lol Yeah yeah, how times have changed eh! I may know some languages and frameworks, but I don't know EVERYTHING out there! 😂 The generation of "newer" programmer I think just wants things to come to them far too quick and now with ChatGPT, yeah Mega brains incoming alert lol Things are getting very high level, VERY fast now, I'm afraid people are going to lose the underlying know how of the computer works properly and just expect answers too quick without doing proper research from the ground up. I guess we all go to StackOverFlow, Reddit, StackExchange, Quora etc for some quick code/answers, why invent the wheel again though. ..right? But learning from a book slowly, is definitely a good way to grasp the basics and solidify your knowledge better and obviously like we are talking about, some "better" structured books for the more advanced etc., but I'm getting this feeling now people will just use ChatGPT and future incarnations of other highly advanced AI chatbots etc., that people will just say ok make this and voila it's done, without even knowing if it's right, or how to debug it if it goes wrong down the line, I'm guessing just type that solution into it as well lol. I guess ChatGPT etc., isn't a bad thing, but my fear is of people losing the "know how" of how to take something apart and build it back up again will be lost, and only a certain few will have this knowledge in the future. Like a car, except we go about in automated AI controlled vehicles that steers itself, but if it brakes down, do we wait for someone to show up if we are stuck 100s of miles in the scorching heat of the desert, or would it be better if we knew how to fix it ourselves? That's the dilemma with AI in a lot of future scenarios. It has its positives but also its negatives. Anyway, sorry, waffled on a bit there lol😂 Take care, all the best. 👍🏼🤝🏽✌🏽
Nice video, but honestly, these are good tips on study skills for anything, not just programming. It's kind of sad that they don't really teach students how to build study-skills these days - once you know *how* to learn (or how you learn), you can go about learning anything.
First, I can't talk about learning everywhere in the world. Second, I don't agree! A lot of student simply won't listen to teachers (who are experienced learners) about how to learn and study; instead, they ignore their books and other things - and google useless information.
@@Tommy_007 Unfortunately ignoring teachers, books, not developing good study-skills, etc is negatively self-fulfilling - it'll lead to poor outcomes and more struggles with learning than would've been necessary. Bad enough when you're just learning a simple hobby, with no/low stakes, but if folks are aiming towards making something a profession, then flapping-about fruitlessly due to will have major life consequences. I think these are universals anywhere where sufficient resources are available for learning, excluding places with major social/economic/physical barriers to gaining access. So definitely still applicable to more than just programming.
My best CS book has always been CSAPP, not in Python, and not for beginners though! I think this book is absolutely necessary if you want to understand deeper about CS, and definitely helpful of understanding high level languages like Python and JavaScript
The 2nd suggestion is a very important one IMHO. Do not collect too many books. Focus on reading the one you have just purchased. I waste a lot of time searching for the next great book that I will never read or just start reading and move on to some other shiny object after working through 20% of the book.
If it makes you feel any better this is a VERY COMMON PROBLEM in many disciplines. Carpentry, woodworking, gardening, painting (art). Many artists are addicted to buying new canvas, brushes and paints thinking that it will "inspire them to paint". I'm coming to the realization that a cup of coffee or even a monster coffee and a hello world example is enough to get anyone through that first 20% of the book. Anything after that requires passion (something money will NEVER buy), discipline and objectives. Most people (myself included) gain satisfaction from drinking the fizz from a can of soda.
I learned Fortran programming on an ICL machine back in 1977. I had a 40 foot long bookshelf of manuals to read. So I just picked up the basics and learned from the code itself and my team mates.
the tragedy in programming is that the guys on the top level of the food chain in programming don't write books, the very talented guys past their time writing code than teaching code, the ideal book in programming should be written for a programming language as an example by the guy who made it, the main guy, and he has to have very good teaching skills, and invest a lot of time writing it, the only book that fit's all those criteria's that i found is Programming Perl by Larry Wall, very in depth it gives all things as it is, and the Perl community was flawless, i remember having thousands of pages printed of all guides on it , sadly it's very rare to find those kind of books nowadays, machine learning as an example is the worst covered topic on books, some of them have expert tag on it, yet inside there is nothing, few code samples without any context
The people who make the best programmers are not always the ones best-suited to teach/explain to others. That's why many good books on programming tend to be partnerships, or are written by someone who has experience in that specific field/domain, but isn't the creator of it. In fact, the creator may be the person *least* qualified to teach it, as they are likely to view most aspects as intuitive - to *them*.
@@mandisaw that why i said, he has to have good teaching skills too, iam talking about the creme de la creme of programming books, and i also point the fact, that very good books on programming are very rare, if you count the quantity of books on programming languages, very select few are very good, at least half of them are useless(on machine learning it's probably 70 per cent that are completely useless), to me that my belief programming is so complex that you have to have the guy who made it do an insane amount of work to write a book on it, the guy who made the Perl language is up there, and Perl is the ideal world of a programming language documentation, even the community had a smart way to put guides with a good numberings ,some guides from benevolent developers spent years on a tiny subject on Perl are write a very concise guide on that specific topic, there is Bjarne Stroustrup in C++(a very undocumented language that language in itself shows the problem iam pointing the most used language in high performance software yet very good books on it are very rare) Douglas Crockford for Javascript, iam have some others in mind but there isn't much, the last one i got impressed by a lot, not at that level but a little below it in quality by a guy didn't invent the language but did made a book on Python Marty Alchin(Pro Python 3) i still go back to it from time to time, that book is one of kind, all books i read on Python are either average or terrible, that books is the only one who give you the blueprint of how complex the function system is in python and the class system, even if your write only 10 lines of codes you can get yourself in a loophole you'll can't get out from in a lifetime, because you don't even know how deep the paradigms the language is built on, i wish Guido Van Rossum did an effort to produce a very good book on his language, there is an infinite amount of stuff i could say on the matter, compare programming to chess, in chess most books are very good books it's the complete opposite .. it's just sad, there certainly a huge amount of interesting documentation but it could be a lot better, it's just my too sense on it
Want to learn how to code? Do not use books, use small examples from ducumenteries on the laungege your using. Add more to your small program to make it do more. Use sub-ruteens often and learn functions. Then you will learn how to jump from your program code to out of the loop code and back. This is the best way to learn.
You may not know, there is tons of hobbyist not really invested in tech, so 'actual job' is unimportant. Or even teaching, researching, and even reading about something related to daily job but not to the point of changing to that field.
Find an area of python you like of practical use. Then just study that. Think in terms of if you're learning an input or output thing. Then learn the other. Like, if you learn about databases, either learn some modules to fill that database or get data from the database.
I'm both a mathematician and a computer scientist. When I compare textbooks, it is obvious that, in general, authors of programming/computer science books are rather bad at coming up with good, relevant exercises/problems. Mathematics textbooks (and probably also physics textbooks) have MUCH better exercises/problems.
That's because it's a lot easier to get pure mathematical examples than 'pure' computational examples. (Notice how the first phrase makes more sense than the second.) If you want to demonstrate how an integral works, it's very easy to simply show an integral and how to solve it. If you want to demonstrate how virtual functions work, you can show diagrams and so on, but how do show an example? There _is_ no example, because the code of the compiler that implements that is too complicated. And so on.
I got stuck in the buying this book and that book. Since having an online acct with O'Reilly you can read most of these books and many other's for free. If amazon has them in Kindle format you have 7 days to get a refund. There are so many tutorials it gets to be confusing. Pythons documentation is very good in my opinion.
Back in the 90's I used to buy many books on programming, anything I could get my hands on. Very expensive, and would often be obsolete in a couple years. Then along came this thing called "The Internet". I don't know why anyone would ever buy a book on programming ever again.
During Covid lockdown, I took time to read "Professional C++ by McGregor" I thought it would take me a short time, but failed to do so. I felt terrible, defeated and incapable. Thank you for motivating me 4:20. I'll surely read another book this year.
What prevented you from reading the book in the ways that you wanted to? Maybe, perhaps, you can read the book differently (with a study group, or with a project/exercise regimen) to boost your motivation/accountability/engagement?
How important would you say handwritten notes are? Obviously you have to code on a device (and you're not going to write line after line of code on paper) but there are various studies about the importance of handwriting notes when studying in general. Is it more factual knowledge? And conceptual too? What that line of code means, what does that function achieve?
Notetaking in a way that will help you both retain info, and refer back to it, are the main things. Handwriting does have a leg-up over typing, in that the former triggers some neuro-muscular pathways that the latter does not. However the gains from being able to index & search your notes can be beneficial. Personally, when I used print books, I'd annotate the books (write in the margins, insert notebook pages, etc), and now with ebooks, I'll keep bookmarks/eNotes linked to the book itself. That's all in addition to keeping notes alongside whatever code I'm learning to do (either text files or inline comments), and if I've sketched stuff out on paper, I'll take pics of that and save it in the same work folder. These are the approaches that've held me in good stead for 30-odd yrs, across every language/domain since I started coding as a kid, in school, and professionally.
I use books mainly as ' proof ' that my online classes worked. If I can read a book and learn almost nothing, that is the best case. I don't like learning first from books because that means you are mostly sitting at your desk reading a book, which isn't so comfortable.
I've never written Python in my life - have an aversion to any language that tells me that white-space is syntactically important. The last several years I've been writing Perl (which obvs has no such nonsense), and it's possibly the most productive language I have ever used. And I come from a background of C and C++. Aside: Perl has forever ruined me for C/C++ because I can create an 'automatic variable' in a sub, and pass back the address of that to the caller, and it works... Try doing that in C!
@@avidrucker Truly I have never yet looked at it. I probably should - I'm not getting any younger and it's about time I tried a new one :) To me at my age, all languages are similar in the sense that you're pretty much always trying to achieve the same things. The syntax to do that becomes secondary, almost. But I do know I can 'think' more clearly in Perl at the moment.
@@BytebroUK Well...Rust is like getting the repl oriented programming experience but your Repl in Rust is the actual compiler, some things are hard to do in it and some things are even better than using dynamic languages. Overall it gives you better productivity and drastically superior maintainability because you spend less times on bugs because they are much harder to even exist in the first place because of Rust's programming model. Btw...why did you not transition from Perl to Raku?
@@encapsulatio Truly because I got a job (after years of freelancing!) and Perl is the language that the company the mandates and uses. (All of that is for a bunch of reasons I'm going to go into here, and then of course there are company NDAs.) At home, I need to play with Rust and if it's as good as or better than Perl, I'm in. But when I'm knocking on towards 65 yrs old, my opinion will likely count for little in the workplace. We shall see, I guess :)
Yes practising is vital though I don't feel one will ever understand all of the concepts. Not everyone is a software architects. A lot of us maintain scripts from others; there may be certain elements we focus on while other modules are I/O black boxes. All this emphasis on software development in college, while companies seek someone to learn 'just enough' and turn their hands to something. Python is for mucky glue logic, not ivory tower pseudointellectual discourse.
Hello, thank you very much for your video, it always inspires. Please, do you think you can make a video where you specifically show how you study a technical or data science book? I mean, what methods do you use? Thanks in advance. Greetings from Peru.
I Java world there are a lot of book that have over 400+ pages If would read 10 books with 400 pages it would be take years because it's programming you chould read carefully, repeat the code.
Hi Giles, Thanks for your kindness to share so much content in your channel, it's really beneficial! Since I don't find much info about web-scraping, I wonder how important is it? I have finished reading the book python-crash-course and automate-the-boring-stuff (Part I), seeking to find a entry job of data analyst. Do you think it's a muct-have skill or irrelevant one? Thank you!
It just depends on what you (or your customer/client/employer) need(s)/want(s) to do. Web scraping is just one technique that you can use to gather data, sometimes it's more effective to solve a given problem, sometimes it's not. For example, if you want to get the product information for 1000 products, would you do it by hand, or write a script that scrapes the 1000 products for you? How about if the product infos are in a foreign language? How about if the products are of different types, and you need conditional logic to selectively pick and choose which infos you need from XYZ products. Hopefully, this expands the problem space a bit more for you, in a relevant & helpful way.
@@avidrucker Sorry for my late response, somewhat I can't make any reply on YT until now...weird. I really appreciate your help and explanation, really useful to me! Thank you & wish you a good day!! 👍👍👍
Not understanding the concepts was my problem, the other was going to a university. I asked the teacher, and he stated go ask his assistant. I go ask the assistant and he said go ask the help center. That is when I said, "I am on my own." The whole run around made angry. Then there was the part that classes tend to run, even if you are slower than the rest. It is a big waste of my money and time for going to a university. One reason to do what this guy states.
I just noticed why sponsorships that are in like the first third of the video make me stop watching. I’m still trying to see if the video’s worth watching and at that point I often bail if I’m a not very patient mood. (Also I hate ads anyway. I pay extra for the ad free versions of everything, which the creators get a cut of. And then the RU-vidrs put the ad in the video itself heh)
Well I'm now 3 years into Python learning, and it is going very slow (self taught). Sometime, I just do c/p because I don't have a will to do assignment, especially when it is functional programming in use. I hate functional programming, I really hate it. I'm also learning OOP in Python, and every assignment that I avoid, or do CP, I'll do in OOP. For me personally OOP is the best thing, that person can learn. I am constantly stressed that learning to program is slow, very slow.
I love your content, but with so many books on your left and right, I was constantly trying to read the titles. And your camera was focus hunting all the time, giving me a small headache. Thank God they gave me a pause feature, else I would have driven myself mad.
There are a bunch of RU-vidrs that make Obsidian exclusive content. What kind of note taking do you want to do? Have you tried similar applications like Roam Research or Notion?
building is big one and never giving up to solve the problem. it's basically like video games. You keep dying but surely you keep at it. You'll eventually beat the game.
What are the pros and cons of reading these books instead of watching youtube videos on the same concepts? Assuming they both go into the same depth of content.
Exactly, when you start writing a book you ask yourselves - why you write the book? An answer will be - because I read 100 and still feel like something is missed.
Could not find the Python course on Brilliant. I gave up after going through many windows answering their stupid questions about my personal life. I just want to learn Python, what a joke, thanks a lot, that was a waste of time
Yeah... then what? Lol. You gotta start reading books at some point to improve, making projects is great up until you reach intermediate level and you can code but still feel like you lack knowledge.
my dad has been nagging me for months to learn coding so I gave in and looked for a book online to try to learn it , but sadly I love in a third world country which means that only really popular books are sold i.e(blank for dummies ) so do you recommend programming for dummies?
No, for dummies books are not that great. Learn from free resources you find on youtube and read programming books that are recommended on reddit. You won't find usually good books translated in your native language. I would give actual recommendations but I noticed youtube deletes my comment so I can't recommend you anything unless you maybe use twitter/discord and i can just paste my recommendations there.
@@encapsulatio I bought a book called how to automate the boring stuff with python and its great ( i dont need transla tions i can read english just fine)
@@omarkalaf The best programming introduction ever written until now is a completely free course called A Data Centric Introduction to Computing , it is a programming education research project effort by 4 researchers and is hosted on the website that appears first in google. No other paid course or book comes even close to that project.
Can somebody recomend me book to understand OOP and functional programming. I'm newbe in coding (pytjon, 5kyu at codewars) and i noticed that my code is awful. I don't know, how to write a beautiful code :/
Most people buy these books so they can do something with the knowledge Go beyond understanding and use what you have learned until you experience its limitations
So I’m just can’t figure it out, What python books will take me from beginner to professional, in what concern AI and machine learning … I’ll be grateful for an answer
Waleed, I think the question you need to ask yourself is "What do I want to do?" in your programming. If you have a worthwhile job to accomplish, then you just go looking for the Python that will get you there. I don't think anybody gets to be a professional by finishing a book with the words "...To Professional" in the title. They get there by doing a lot of demonstrably competent and useful programming. Pick a tough project for yourself, then work back from there, would be my suggestion.
@@TheDavidlloydjones I know what I want to do with programming, I want to be able to build AI and be able to work in machine learning, So I can’t figure out what books will be useful to me to learn, and that was the point of the question . And thank you for taking your time answering .
@@waleedahmed9728 I would start with the Python Crash Course book he recommended to get the Syntax down, and then jump into the Oreilly Data Science book, and then finally work your way into the Sci-kit learn & Tensorflow ones. You'll find knowing Python isn't that necessary when doing AI but its a good foundation. I just finished a bootcamp, and they skipped Python and just did it at the end for the software engineering portion. I was confused at first when Python wasn't first, but then I understood why, they gave us a Python basics course prior to jumping in, so we all knew the syntax.
I should add while I am still on the job hunt, not a lot of companies are ready for ML & AI. Even when hiring data science roles. It's more like Data engineering & analysts roles. So definitely learn the python libraries like pandas, numpy, matplotlib, etc. Even SQL