What Does It Take To Be An Expert At Python?

Поделиться
HTML-код
  • Опубликовано: 20 дек 2024

Комментарии • 1,2 тыс.

  • @lolaplolap1
    @lolaplolap1 7 лет назад +1781

    metaclasses: 18:50
    metaclasses(explained): 40:40
    decorator: 45:20
    generator: 1:04:30
    context manager: 1:22:37
    summary: 1:40:00

    • @mateos12sons
      @mateos12sons 7 лет назад +6

      thanks

    • @zbzb-ic1sr
      @zbzb-ic1sr 7 лет назад +30

      His logical progression of how decorators came about is nice.

    • @DanielTateNZ
      @DanielTateNZ 6 лет назад +1

      You forgot ruclips.net/video/7lmCu8wz8ro/видео.html

    • @emanuelcastanho470
      @emanuelcastanho470 6 лет назад +3

      Saitama you know Python too?

    • @faisal5265
      @faisal5265 6 лет назад +1

      Faisal
      does anyone know the plugin he is using for vim

  • @d4ferris
    @d4ferris 7 лет назад +895

    Was shocked when the camera panned out to reveal only a handful of people in the room. The quality of this presentation deserves a larger audience!

  • @sbarter
    @sbarter 7 лет назад +3034

    The first man to wear a suit to a python conference.

    • @atahirince
      @atahirince 6 лет назад +18

      because i am so seriously an expert wuuuuuu :) don't under estimate me situation..

    • @lukeschollmeyer8811
      @lukeschollmeyer8811 6 лет назад +58

      James has a dedication to certain style. Good dude.

    • @phpn99
      @phpn99 6 лет назад +30

      The guy is a Wall Street quant

    • @gobeksalata
      @gobeksalata 6 лет назад +9

      cmon :) hes a good fella

    • @Micktion
      @Micktion 6 лет назад +16

      You didn't notice the big Microsoft logo on the podium? Microsoft is all up for python, R and Machine Learning these days

  • @felipeeduardobravosilva6980
    @felipeeduardobravosilva6980 7 лет назад +460

    the guy is the perfect teacher
    methodical, precise, clear and direct to the point
    i feel like i learn a 3 months worth in classes, in just 1 video

    • @Zig285
      @Zig285 6 лет назад +4

      I wouldn't put a check mark in the concise column, but I agree on all other points.

    • @chaugen1
      @chaugen1 6 лет назад +15

      Over the last year, I have rewatched this video 5 times to capture the full depth of information.

    • @rct999
      @rct999 6 лет назад +1

      @@chaugen1 Yeh, I was just thinking I have to re-watch this at least once :P

    • @cperzam7700
      @cperzam7700 3 года назад +1

      @OuaishBolosse I think it is because of the time he had to cover all that in the presentation, I couldn't be happier I stumbled with this video, you can just rewatch this until it is clear enough.

    • @supertran28
      @supertran28 3 года назад +1

      @OuaishBolosse it’s a presentation lol he has to go fast to fit everything in the time frame

  • @red-o7
    @red-o7 7 лет назад +257

    This guy is an exceptionally good orator. What a treat to listen to!

  • @DiptangsuGoswami
    @DiptangsuGoswami 7 лет назад +341

    This is one of the best python movies I've ever watched!

  • @6s6
    @6s6 3 года назад +36

    I remember OOP seeming intimidating until someone explained it in one simple phrase: OOP is giving data behavior. Instead passing data through functions, we can simply ask the data to tell us something about itself or do something to itself.

  • @abraxasnl
    @abraxasnl 3 года назад +16

    James Powell teaches how I love to be taught. Bottom up, first principles. It strips away all the magic. Awesome, awesome talk!

  • @brd5548
    @brd5548 3 года назад +35

    Finally, find this video! Two years ago, I landed a python job literally just after watching this. James Powell's talk inspired me to become an IT professional, I can never thank you more than enough!

  • @johnpyp
    @johnpyp 6 лет назад +181

    I don't even know anything about python, I code javascript. Still watched the entire thing cuz it sounded like I would gain brain cells by watching. 10/10

    • @yeetdatcodeboi
      @yeetdatcodeboi 5 лет назад +3

      i love js but python is immensely more fun to learn/develop in. get into it and thank me later.

    • @ekrem_dincel
      @ekrem_dincel 4 года назад +7

      @Peter Mortensen what type of linker you are?

    • @nene_san
      @nene_san 3 года назад

      @Peter Mortensen just use "os.path.join" ffs

    • @shubhamthakur-wo4um
      @shubhamthakur-wo4um 3 года назад +1

      In the same boat mate. Been a Node developer for five years and just started learning Python. Thought of watching the video for two minutes just for fun and got hooked till the end within no time.

  • @glennismade
    @glennismade 7 лет назад +830

    gotta love the fact that the dude is a an MS conference delivering a talk on python using a linux distro, uses google chrome and Duck Duck go and not a single MS service or product in sight...
    Makes you wonder why MS even bother having their own damn search engine or browser at this point.

    • @hvdveer
      @hvdveer 6 лет назад +90

      Just because it's not a success doesn't mean it wasn't worth trying.

    • @frisosmit8920
      @frisosmit8920 6 лет назад +14

      the fact that he uses chrome is that sort of a setup is weird in and of itself. It's probably the only thing that isn't fully open source.

    • @klarnorbert
      @klarnorbert 6 лет назад +77

      He using Chromium, which is fully open-source version of Chrome.

    • @TheHellogs4444
      @TheHellogs4444 6 лет назад +37

      tbh even MS employees aren't required (or culturally pushed towards) searching with bing or using edge or windows. Most devs don't care about platform these days. Some use a mac at work. Most devs that care are probably free to use linux - it IS the academic choice OS. And all these CS grads they hire come from 4 years of being used to linux

    • @singocdotcom4546
      @singocdotcom4546 6 лет назад +50

      Coz Windows was designed for users, not for developers

  • @diahrongrismore1054
    @diahrongrismore1054 7 лет назад +15

    This is a definite PLUS! The information and instructions from this talk should be implemented in every tutorial/lecture given about Python. The concepts of the language have never been as clear as he explains.Great!

  • @djchrisi
    @djchrisi 3 года назад +2

    4:40 shows why James Powell is such a great speaker: nearly all speakers who do this kinds of surveys before the talk do not change the talk depending of the outcome of the attendees answers.
    James Powell does. He quickly decided (and is able) to adjust the topics a bit in order to give the audience the maximal value he can provide.

  • @dummypg6129
    @dummypg6129 4 года назад +4

    it really amazes me when people like him can be eloquent in speaking at the same time very articulate in explaining his code and coding it live.

  • @shortcutDJ
    @shortcutDJ 7 лет назад +179

    i'm a noob in python and many things in this video are above what i know,but i can't stop watching anyway.

  • @glenneric1
    @glenneric1 7 лет назад +17

    What an awesome teacher. Everything I've seen from him is gold.

  • @poorlittlesheep4098
    @poorlittlesheep4098 6 лет назад +954

    This guy really made me want to give up atom and use vim. I bet he picks up girls at bars with his sexy vim skills.
    Edit: it's just a joke guys. Don't be butthurt.

    • @divinehazrd
      @divinehazrd 5 лет назад +69

      Hey girl you want to come over and "esc + i" ?

    • @WookENTP
      @WookENTP 5 лет назад +19

      His vim skills are not that good actually, why would you do :vsplit manually? ctrl+w+v...

    • @bluetape66
      @bluetape66 5 лет назад +2

      @David Flanagan Which talk?

    • @pepehimovic3135
      @pepehimovic3135 5 лет назад

      @David Flanagan hi

    • @sadhlife
      @sadhlife 5 лет назад

      @@bluetape66 search "james powell generators" you'll find it

  • @tristanbellingham6759
    @tristanbellingham6759 7 лет назад +383

    I love watching a vim master at work. Simply beautiful.

    • @nelsonearle5011
      @nelsonearle5011 7 лет назад +38

      The speed at which he was typing and using shortcuts seamlessly was just mindblowing. It took me probably half the talk just to not be mesmerized by it.

    • @muntoonxt
      @muntoonxt 7 лет назад +36

      It wasn't any fancy shortcuts: just the basic day to day vim ones. If you use vim as a main editor for a while, you'll be using them without thinking (even by accident outside of vim).

    • @nelsonearle5011
      @nelsonearle5011 7 лет назад +9

      Sicarius Noctis Oh, I know. Just the learning curve though. It’s so high compared to something like Sublime. Don’t get me wrong, using Sublime as my main editor has shown me it can be just as powerful, if not more, because of the UI. I just have yet to memorize all of the useful key bindings

    • @rampagemage8041
      @rampagemage8041 7 лет назад +2

      Nelson Earle I'm faster. Much faster.

    • @tristanbellingham6759
      @tristanbellingham6759 7 лет назад +43

      Well that's really good and cool. I'm glad you could add to the conversation.

  • @Greyvend
    @Greyvend 3 года назад +1

    This is one of the highest quality talks I've ever seen. The presenter is clearly an expert, which stands for "the person who has made most mistakes than everybody else". Fantastic programming, presenting and vim skills. ;)

    • @aoeu256
      @aoeu256 3 года назад +1

      Raymond Heitegger also has very good talks.

  • @ronaldokun
    @ronaldokun 7 лет назад +28

    What a fantastic presentation! It motivates me to get out of my forever intermediate python skills.

  • @wernerlucas12
    @wernerlucas12 3 года назад +2

    4 years later and I have to say that this guy is really good! Thanks for this!

  • @SG3Design
    @SG3Design 7 лет назад +40

    Great presentation packed with high quality information. It certainly expanded my understanding of Python.
    Shame the audience wasn't more engaged.

  • @namadeemo
    @namadeemo 4 года назад

    This talk is gold, simply for highlighting how to write code that protects itself from potential errors found in imported code/modules.

  • @jakedones2099
    @jakedones2099 7 лет назад +34

    *What I don't understand is how people in these comments are so focused on how "rude" he is or how his voice sounds. He has knowledge to give and concepts to teach. Learn what you can and leave his expression out of it. I guess it is my fault for being curious about the comments in the first place.*

    • @kristypolymath1359
      @kristypolymath1359 5 лет назад +2

      I'm sure you've moved on to a different username, but I'll explain it for you. A great teacher allows his or her students to absorb information without the information being drowned out by things like language barrier, tone, gestures. It's very difficult to listen to the guy because his demeanor is so poor. He comes off as a jerk which, unsurprisingly, resulted in little participation from the audience. I'm willing to bet a number of folks in that crowd talked about what a jackwagon he was,once the presentation was over.

  • @julienbongars4287
    @julienbongars4287 6 лет назад +2

    This is incredible not because it dumps a bunch of technical lingo and just leaves but because it makes you think about how you can use these higher levels concepts in designing and enhancing good software. Awesome work!

  • @FilosSofo
    @FilosSofo 7 лет назад +140

    They are degree _two_ polynomials.

    • @adityavartak6990
      @adityavartak6990 7 лет назад +14

      Yeah he didnt use len(poly.args)-1

    • @toby.2a
      @toby.2a 5 лет назад +2

      Glad someone else noticed :)

    • @itech40
      @itech40 5 лет назад +3

      OMG was looking for that comment ty

    • @CraigalFun
      @CraigalFun 5 лет назад

      You people are geniuses

    • @jenszamanian
      @jenszamanian 5 лет назад +4

      Also, his add-method does not work correctly. It truncates the longer polynomial if they are of different sizes.

  • @mohamedhabas7391
    @mohamedhabas7391 3 года назад +1

    I very rarely comment on youtube ,
    but this guy is a freaking ninja.
    one of the best talks on youtube.
    the best on python in my opinion

  • @cacurazi
    @cacurazi 6 лет назад +42

    In order to follow along you have to have a basic understanding of OOP. Otherwise you might just save this vid to watch it later when you already know some basic OOP.
    Good presentation tho. Thanks

  • @leonidkerchev4256
    @leonidkerchev4256 2 года назад

    When I have watched the video 5 years ago - I learned a lot. Watched the video again today - learned a lot. James, thank you!

  • @ezequielgarrido3987
    @ezequielgarrido3987 7 лет назад +305

    God damn this guy knows his stuff.

    • @glock21guy
      @glock21guy 6 лет назад +74

      Honestly, I'm even more impressed by his ninja editor skills than his coding skills.

    • @Maydays960games
      @Maydays960games 6 лет назад +1

      @Name type *S1 ... S9* for superscript letters.
      Also you can type *s1 ... s9* for subscript digits.

    • @graphics_dev5918
      @graphics_dev5918 6 лет назад

      That is a digraph. You can view the available ones with :digraphs along with the keys to enter after pressing in insert mode. Alternatively, you can make an abbreviation like `:abbr xsq x[ + hex value for unicode character]`, and even put that in your vimrc so that you can just type "xsq " and get "x²".

    • @Lord_of_The_World
      @Lord_of_The_World 6 лет назад

      lmao

    • @erikschiegg68
      @erikschiegg68 6 лет назад +1

      He uses vim like ringing a bell and got the high school stuff in swap memory... A black belt!

  • @chronicfantastic
    @chronicfantastic 6 лет назад +1

    I really liked this content because it doesn't just explain how these advanced techniques work (metaclasses, decorators, generators).. it actually helps you think through scenarios about where they should be used and why.

  • @DebabrataAcharya93
    @DebabrataAcharya93 5 лет назад +130

    Uses a vi based editor for live presentation at a conference while wearing a suite. That's one aplha male RIGHT THERE!

    • @ECleanX
      @ECleanX 4 года назад +1

      Sure Sajib Acharya, you would like to think you are an "aplha male" buddy. :P #LordDust

  • @caio-jl6qw
    @caio-jl6qw 3 года назад +1

    Superb talk. I watched the whole thing in one sitting and it felt like it all took 20 minutes.

  • @ryankaminski6037
    @ryankaminski6037 6 лет назад +5

    This is my favorite python speech on youtube. Very well done

  • @chadfreakinL
    @chadfreakinL 6 лет назад

    I know next to nothing about Python but I cannot wait to watch this again when I am further along in my studies. Very engaging speaker.

  • @apachaves
    @apachaves 7 лет назад +10

    This was an amazing speech with very valuable content. Thank you for sharing it.

  • @cbeHotboyred1614
    @cbeHotboyred1614 6 лет назад

    I learned so much from this guy!! He is very informative. Most teacher teach you how to write code, but this guy teach you the most important question when learning codes ... 'Why'. You can know how to write codes, but if you dont know why you are writing them,then you are not learning.

  • @Carltoffel
    @Carltoffel 7 лет назад +76

    Who else calls 'ls' after going into a new created directory?
    (1:22:36)

    • @Egzvorg
      @Egzvorg 7 лет назад +20

      I guess everybody, that's why file browsers were created.

    • @MMphego
      @MMphego 6 лет назад +10

      I rather prefer: $ echo "function cd { builtin cd "$@"; ls -thor; }" >> .bashrc

    • @zacharybroniszewski450
      @zacharybroniszewski450 6 лет назад +1

      MphoMphego clever!

    • @MMphego
      @MMphego 6 лет назад +2

      Thank you sir
      For more tips and tricks, checkout my blog: blog.mphomphego.co.za

    • @CPlayMasH_Tutoriales
      @CPlayMasH_Tutoriales 6 лет назад +2

      Carl I call pwd just to double check

  • @BharCode09
    @BharCode09 5 лет назад +1

    3 phases of Insult!
    1. @ 11:52 opens Google chrome to look for something, but "Incognito mode".
    2. @ 12:05 And search bar opens DuckDuckGo engine.
    3. @12:07 Yet uses the word "Google" as a MERE dictionary word meaning "Search for something in the internet"!
    How I feel sorry for Google!

  • @gaatutube
    @gaatutube 7 лет назад +17

    I'm still wondering if his python skills beats his VIM skills or vice versa !! But thumbs up for the excellent vid.

  • @zapazap
    @zapazap 4 года назад

    Exploring __call__ with the Polynomial class.
    There is a canonical function associated with a polynomial object: the polynomial function.
    If p2 = Polynomial(3,4,3)
    then p2(5) should return 3(5^2) + 4(5^1) + 3(5^0).
    A quibble. I love the talk so far!

  • @educationandmorellc565
    @educationandmorellc565 5 лет назад +9

    He said "len is 3 -> degree 3 polynomial" _ Actually since he is dealing with squares, it is called a degree 2 polynomial.

    • @SKREFI
      @SKREFI 4 года назад +1

      he is a coder I guess, not a math guy, mistake spotted too

    • @thetedmang
      @thetedmang 4 года назад +1

      You caught a master making a silly mistake. Your comment contributes nothing to his expert explanation of this complicated subject and even your assertion that the polynomial's "len" is "actually" degree 2 demonstrates a high-school level understanding of the magnitude of a polynomial.

    • @oluwatosintheophilus5727
      @oluwatosintheophilus5727 4 года назад

      I stopped the video to see if anyone noticed, I have already started to question all I knew about polynomial.

  • @reissner1967
    @reissner1967 5 лет назад

    Yes at 14:40 there is a mistake. The degree of a polynomial has nothing to do with coefficients. It’s the highest power of a polynomial. This is not used in his functions so they aren’t represented.p1 and p2 are both degree 2 because that’s what he chose to represent. He could have also added a power with each coefficient. Like ax^d+bx^e+c, a,b & c are coefficients and d & e are exponent powers. There are so many different things that could be done.

  • @kenji_x117
    @kenji_x117 7 лет назад +808

    Am I the only one who has absolutely no clue what's going on?

    • @felipeeduardobravosilva6980
      @felipeeduardobravosilva6980 7 лет назад +44

      nothing wrong with that, no one knows everything from birth, if you don't get what's going on, just step back and come back later, eat some basic python tutorials and you will remember this video at some point

    • @ZeCatable
      @ZeCatable 7 лет назад +10

      Don't worry, keep learning and reading code. Get back to this video in a month or so ; then, you will better understand the benefits of this combinaison of pythonisms. ;-)

    • @TJ-qk3yg
      @TJ-qk3yg 7 лет назад +41

      James: "asks a question." Microsoft employees: "........" I don't think your alone!

    • @whole5ome
      @whole5ome 6 лет назад +22

      I also have no clue whats going on. But everything he says sounds cool... and believable.

    • @taketheglassesoff9362
      @taketheglassesoff9362 6 лет назад +5

      I just started learning about python basics and I have no idea what he is talking about. Maybe I need to come back here after I learn more basics👀

  • @444haluk
    @444haluk 4 года назад

    The order of polynomial is len(self.coeffs)-1. For example, 2x^2+x+1 has 3 coefficients (2,1,1) and its order is 2 (x^2).

  • @joshuadavis4871
    @joshuadavis4871 7 лет назад +353

    5:50 that moment when you type ass instead of class in front of an audience.

  • @chronxdev
    @chronxdev 4 года назад

    I love the way this is presented; focusing on the overarching concepts rather than getting bogged down in minutiae is so much more useful for talks like this. We can lookup the specifics on our own time

  • @NeverBeenToBrisbane
    @NeverBeenToBrisbane 6 лет назад +5

    That whole __add__ thing at the beginning is what I've been looking for for the past two months and never found until this video which I didn't even mean to watch. Now I can add custom matrices with just a plus xD

    • @bloodgain
      @bloodgain 6 лет назад +2

      The real question is, why are you using custom matrices instead of numpy? ;-)

  • @MilMike
    @MilMike 6 лет назад

    The way how he talks without any eeehm, uuum - crisp and clear talking. And the way how fast he uses vim. Thats a real pro!

  • @pursuitofcat
    @pursuitofcat 7 лет назад +10

    Don't get mistaken / taken aback by his aggressive stance. It's a very important piece of information for python developers that he covers very meticulously and methodically. A very high rated content. Give it some time and follow along.

  • @anirangoncalvesbr
    @anirangoncalvesbr 6 лет назад

    Started thinking I'd hate this seminar, ended loving it all. Thnx for the upload

  • @pehash
    @pehash 5 лет назад +43

    I've watched all of this, I can confidently say that I understood nothing.
    All I know is that I'm willing to work to reach this level.

    • @RoZaxTheGreat
      @RoZaxTheGreat 4 года назад +6

      One year later, how are you doing?

    • @victorvaida4272
      @victorvaida4272 4 года назад

      Not even the first part?

    • @aoeu256
      @aoeu256 3 года назад

      You can just try it out in the REPL. TL:DR Metaclasses and decorators sort of run at "compile" time allowing Python to do static analysis sort of like a type system, but using the entire language. *args, and **kwargs allow you to have functions with arbitrary number of arguments. Generators are like custom for loops (which is a co-routine a function that returns mulitple times instead once), which you write with yield and context managers/decorator are just a special version of generators which build a wrapper around functions with stuff that happens before and stuff that happens after wards. You can merge decorators and context managers with @contextmanager.

    • @mvoyager
      @mvoyager 3 года назад

      2 years passed. How are you doing?

    • @gustavom8726
      @gustavom8726 3 года назад +1

      I watched this 3 years ago, I understood nothing but stayed until the end of the video making some questions in a notepad. After 3 years I have answered them all and came back to this video to notice I have overcome my dumbness

  • @figloalds
    @figloalds 7 лет назад +2

    This fed me a lot more information and got me much more interested into python than any other material Ive found in the web to date.

  • @aryanarora3017
    @aryanarora3017 5 лет назад +49

    Title:what does it take to become expert at python?
    Thanos:Everything

  • @GatlingNG
    @GatlingNG 6 лет назад

    I enjoy Powell's talks a lot, I always learn a ton from his teaching and it actually sticks.

  • @georgesoulantikas7981
    @georgesoulantikas7981 7 лет назад +461

    "I can tell you that what it takes to be effective at python is pretty straight forward...".
    Proceeds into a 2 hour talk.

    • @TheHellogs4444
      @TheHellogs4444 6 лет назад +31

      I mean, if all you need to be more then just 'effective' is basics + a 2 hour talk, that's amazing. Most often this sort of learning material simply doesn't exist.

    • @artaway6647
      @artaway6647 6 лет назад +1

      Haha yea, I put this video on my watch later. Gonna came back when I'm expert at python, brb several years.

    • @thewiedzmin6062
      @thewiedzmin6062 6 лет назад +4

      TBH 2 hours aint shit compared to at least 10 hours you must put into something like Dark Souls! shit as much as i know i have spent at least 2000 hours on that damn game!

    • @adithyavenugopal1522
      @adithyavenugopal1522 5 лет назад

      hahaha

    • @sydsgraphics5108
      @sydsgraphics5108 5 лет назад

      I wish I could Laugh Out Loud

  • @TainuiaKid1973
    @TainuiaKid1973 6 лет назад

    Great to see a tech presentation by someone with presentation skills! i.e. clear, confident voice, organised etc

  • @lm1338
    @lm1338 7 лет назад +107

    those are second not third degree polynomials? the degree is the highest power to which a term is raised

    • @daksh6752
      @daksh6752 7 лет назад +2

      Right.

    • @fredriklundh7649
      @fredriklundh7649 7 лет назад +10

      It returns the number of polynomial degrees, not the number of the highest degree. So in this case there are 3 degrees, the 0th, 1st and 2nd degree.
      Edit: Remember, it,s the len function he is demonstrating. It makes sense that it would return the number of different degrees, not the order of the highest degree.

    • @mpete0273
      @mpete0273 7 лет назад +7

      Should be `return len(self.coefs) - 1`

    • @peppybocan
      @peppybocan 7 лет назад +8

      The degree of polynomial is the highest power of the polynomial. This will only work, if you assume that the user will behave nicely and for polynomial of degree 27 (x^27 + 1) he will write the full vector: [1, 0, 0, ..., 1].

    • @mpete0273
      @mpete0273 7 лет назад +1

      Oh yeah you're right. The way he wrote it though, you would have to give it zeros for all the missing terms.

  • @GeorgeLathem
    @GeorgeLathem 7 лет назад +2

    He is an amazing speaker. So smooth and just confident

  • @pauldacus4590
    @pauldacus4590 5 лет назад +7

    OK, I am confused... Where is the 15 minute intro on *HOW WE'LL BE USING VISUAL STUDIO?*

  • @Zig285
    @Zig285 6 лет назад

    The generator API example was exceptionally helpful. It was the perfect way to explain the coroutine pattern.

  • @DiscipleOfHeavyMeta1
    @DiscipleOfHeavyMeta1 4 года назад +17

    5:51 I smirked. Clearly, I'll never grow up.

  • @silasalberti3524
    @silasalberti3524 4 года назад +2

    I revisit this great talk regularly to refresh my Python knowledge!

  • @moazim1993
    @moazim1993 7 лет назад +13

    Oh shit! I know this guy, he's at NYC Python Meetup

  • @aliwaseem5990
    @aliwaseem5990 4 года назад +2

    As a beginner , this presentation motivates me to learn these features and core ideas, to step up my game and move to the next level

    • @Xpeedspiderman
      @Xpeedspiderman Год назад

      Are you sure that you understood it as a beginner ?

  • @poorlittlesheep4098
    @poorlittlesheep4098 6 лет назад +13

    The moment he wrote x superscript 2 in vim I knew I'm in for some goodies.

  • @ikramu5719
    @ikramu5719 4 года назад

    Excellent talk. This guy knows his stuff. And the way he linked the different aspects together was really neat. Will have to look out for other talks he has done.

  • @priyanshujindal1995
    @priyanshujindal1995 7 лет назад +112

    "No context where you need decorators deeper than this"
    Wait till Christopher Nolan learns about this

    • @faifar
      @faifar 7 лет назад +1

      haha!

    • @muntoonxt
      @muntoonxt 7 лет назад

      @deeper(must)(go)(DEEPER)(DEEEPERRR)(DEEEEEPEERRRRRRRRR)

    • @danielpettus1807
      @danielpettus1807 7 лет назад +1

      🔥

    • @samb23692
      @samb23692 6 лет назад

      I was thinking the same while watching it.

    • @r0z3d
      @r0z3d 6 лет назад

      I have no idea what is going on in this video but would love to know what your comment means. Please explain!!!

  • @semarova
    @semarova 6 лет назад

    Actually the degree of the polynomial at 14:44 it’s two (2), three (3) is the number of terms. Since the speaker likes to call things by their “intended” name: A quadratic trinomial.

  • @StevenSmith68828
    @StevenSmith68828 5 лет назад +3

    I watched this video my first month when I was learning how to program. After 6 months I got stuck using the same basic things. I'll come back in 6 more months to see if I use this stuff now that I know WHEN to use it.

    • @dronephone9934
      @dronephone9934 4 года назад

      Its been 6 months!

    • @StevenSmith68828
      @StevenSmith68828 4 года назад

      @@dronephone9934 just rewatched the entire thing and I understand everything besides Meta Classes. I think I might finally ready to apply for jobs in python. I wish he would a section have had async await syntax, don't quite understand how it's not a generator. I've been doing nothing but projects so it's nice to see that I've learnt stuff lol

    • @aoeu256
      @aoeu256 3 года назад

      @@StevenSmith68828 Metaclasses are similar to class decorators. They control the creation of a class, but they are run at "compile time" (before everything else).

  • @huohization
    @huohization 5 лет назад

    I'm nowhere near ready for this yet but this guy is a treat to listen. Great presentation.

  • @smoothbeak
    @smoothbeak 5 лет назад +10

    I love that the first thing he wrote was "ass" instead of "class" :P

  • @seankillian2785
    @seankillian2785 7 лет назад +2

    I still consider myself a Python newbie especially after seeing speakers like David Murray, Raymond Hettinger, Yuri Selivanov and James Powell and though I first started learning C before I got into Python, Python is the first language that I actually "learned," so I feel like I have a big head when I see videos like this where they talk about metaclasses and decorators but to _me_, it makes perfect sense because I already get the concept of "everything is an object."

  • @OmyTrenav
    @OmyTrenav 7 лет назад +4

    This is a great talk! Thanks for uploading.

  • @scarrgk
    @scarrgk 6 лет назад

    Thankyou for a truly great and very well presented talk.
    For the naysayers that question his python skills, just look at the following line created on the fly around 1:02:30. Could you have written this that quickly and have gotten it to run, correctly, the first time?:
    print(‘running {.__name__}’.format(f))
    for those that criticize the length of the talk, look at the number of folks who are still confused.
    He is covering a number of relatively complex subjects, and that’s going to take time.
    I like his choice to talk about the principles involved in dunder methods, deferring us to the docs for more specifics. I’d rather use the docs any day, than try to remember the specific arguments.
    There are few talks where people really try to explain *why* you might want to do this or that via this mechanism. I think his examples of decorators, contexts, generators etc. are only possible after explaining the generality of dunder methods.
    Showing how metaclasses provide alternative hooks makes them seem much less mysterious.
    And yes, “dunder” should be the preferred term. “Special or magic” should be reserved for their usage, not the methods themselves. “magic” is ambiguous because of the magic commands used with IPython. dunder is unambiguous.
    And he is showing the principles here. the exact value that len should return for a polynomial is debatable, but not really significant to the talk. Yes, evaluation of the polynomial might be appropriate for __call__, but again, the detail isn’t as important as the principle being shown.
    The way he shows how you can validate the implementation of library vs client code from the other’s perspective, is very instructive. Yes there are subtleties around what you want to do when a module is loaded, and if you’re going to “load” client code to get the assertion failure displayed at build time rather than run time, but knowing that it can be done is very useful. I think a lot of the run-time implementation details of Python are very good to know if you want to be an “Expert”. Knowing when it is appropriate to use that knowledge is equally important. I don’t think think he ever says”this is what you *should* do.” He’s showing that these pretty powerful techniques are not that complicated.
    Of course, if you’re a Python newbie, *args and **kwargs aren’t going to mean anything to you.
    But it’s easy to look them up then return to the talk

  • @SQz88
    @SQz88 6 лет назад +11

    not sure if I am more amazed with his python or vim skills

    • @graphics_dev5918
      @graphics_dev5918 6 лет назад +2

      His Vim skills are nothing to be amazed with. I've been using Vim for 6 months and am far better in it albeit he is a faster typist than I am. His knowledge of Python truly exceptional in my opinion.

    • @WookENTP
      @WookENTP 5 лет назад

      His vim power is average young padawan...

  • @kalleidoskop2
    @kalleidoskop2 7 лет назад +2

    This talk is remarkable! Great point about conceptual understanding, and excellent flow throughout the presentation, with clever hooks. I really enjoyed it!

  • @sebastianfrellekoch7187
    @sebastianfrellekoch7187 7 лет назад +5

    Made an error at 10:40: zip truncates the result to the length of the shortest input iterable; thus, __add__ won't work for Polynomials of differing lengths, as coefficients would be discarded from the longest of the two polynomials.

    • @nothing-wp9ti
      @nothing-wp9ti 7 лет назад +2

      you would have to use zip_longest from itertools
      this takes a default argument for when a sequence runs out which has a default value of None, but if you set this to 0
      then the example would work on polynomials of all sizes

    • @sebastianfrellekoch7187
      @sebastianfrellekoch7187 7 лет назад

      Makes sense; thanks! I feel like relying on itertools to do this pretty basic op is overkill, but I'm *not* an experienced programmer. Is it generally considered acceptable to have itertools do the heavy lifting for you rather than implementing the logic yourself? It might be a stupid question, but I'm genuinely curious.

    • @TheHellogs4444
      @TheHellogs4444 6 лет назад +2

      Ye, it'll probably take you 5 minutes to implement logic like this, but 2 minutes to figure out if there's a library for it, dl it, use it. And as a bonus you will now remember such a library exists for the future. Try not to reinvent the wheel, I guess.

    • @bloodgain
      @bloodgain 6 лет назад

      No need to download itertools -- it's part of the Python standard libs. So there's even less reason to roll your own :-)

    • @sadhlife
      @sadhlife 6 лет назад

      Sebastian Frelle Koch libraries like itertools are really optimised, and you don't need to import the entire library, just the one function that you're using. after the import which should take a couple of milliseconds, the function should run just as fast if not faster than your own implementation

  • @glock21guy
    @glock21guy 6 лет назад

    This was the best to-the-point description of decorators I've ever seen.

  • @andronooh622
    @andronooh622 7 лет назад +6

    At 14:40, there is a mistake. The polynomials are not 3rd degree polynomials. They're second degree, and `def __len(self)__` should return `len(self.coeffs) - 1 `. What you have is incorrect.

  • @hudsonbirdsong4025
    @hudsonbirdsong4025 5 лет назад

    30 minutes into this so far and already learning so much. Excellent!

  • @SeVeNEdittt
    @SeVeNEdittt 7 лет назад +8

    At 18:00, why in __add__ function is there an * in the return ? Thank you (Ploynomial(* ... )

    • @goat_wizard
      @goat_wizard 7 лет назад +11

      The generator comprehension is being unpacked into arguments. Notice in the constructor of Polynomial (line 9) how the signature accepts *coeffs, this means the construct accepts unlimited arguments with will be expressed as a list. See: docs.python.org/3/glossary.html#term-argument

  • @SpeakEnglishOfficial
    @SpeakEnglishOfficial 4 года назад +1

    What is the name of his IDE?

  • @ousmand742
    @ousmand742 6 лет назад +19

    I just started coding a month ago... this is so out my league what am I doing here

    • @poglore5910
      @poglore5910 5 лет назад +1

      First day researching python to prepare for college courses, brain drain started happening about halfway through.

    • @sanchitverma2892
      @sanchitverma2892 4 года назад

      hello are you a god at it now?

    • @sanchitverma2892
      @sanchitverma2892 4 года назад

      @@tiran315 yes

  • @NoahHornberger
    @NoahHornberger 5 лет назад +4

    to be an expert at python, simply start a project that you work on everday for more than a year. That worked for me.

  • @richerite
    @richerite 6 лет назад +6

    Can anyone identify the setup he's using - distro, window manager and vim customizations?

    • @WookENTP
      @WookENTP 5 лет назад +2

      wm - looks like xfce (may be lxdm), tmux in terminal, vim conf and linux distro - unknown... I recommend i3 instead of xfce though, goes well with tmux + vim...

    • @sylvaniathehacker
      @sylvaniathehacker 4 года назад

      must be DWM with TMUX

  • @UltimateLuv
    @UltimateLuv 7 лет назад +2

    This guy speaks with such confidence and elegance. What an inspiration.

  • @coced
    @coced 6 лет назад +103

    How to be an expert at anything
    1. Say that you are
    2. Confuse everybody
    3. Make money

    • @kayaqueen6982
      @kayaqueen6982 5 лет назад

      man you are a genius

    • @billdoan8616
      @billdoan8616 5 лет назад +3

      how come you think it's everybody when it's just you most likely ?
      Not every human being is at your level of impotance Cedric Coulombe.

    • @DRDYSTOPIAHANDLE
      @DRDYSTOPIAHANDLE 5 лет назад

      Big fact

    • @lightyagami5776
      @lightyagami5776 5 лет назад

      Ahh, I see you're a man of culture as well.

  • @DoersandThinkers
    @DoersandThinkers 6 лет назад +1

    @14:43 The polynomials are not degree 3, but degree 2 with 3 terms.

  • @cupajoesir
    @cupajoesir 7 лет назад +4

    This guy is nuts! In a good way.

  • @Supersonicboom7
    @Supersonicboom7 6 лет назад +2

    I couldn't really understand much of this a few months ago, though now this is starting to look crystal clear, just need more experience playing with the cool concepts he's given :D Top Notch Lecture!
    Such a top notch talk though, I feel like this has made so much click! He is so correct the syntax doesn't matter comparatively to the concepts. Even though this was focused around python, this is extremely useful for javascript as well!

  • @seanpianka1818
    @seanpianka1818 6 лет назад +4

    19:21 "When, in reality, this is really just a talk about Python Metaclasses"

  • @Chiramisudo
    @Chiramisudo 7 лет назад

    It's VERY rare that I can't follow a tech video on at least 1.5x speed. Kudos on that! :D

  • @linodil
    @linodil 7 лет назад +125

    Holy sh*t he is good at teaching

    • @TheKeule33
      @TheKeule33 6 лет назад +5

      Shit! It's shit. FFS!

    • @skycocaster
      @skycocaster 6 лет назад +4

      No he isn't. He is good at what he does, but very bad at teaching.
      This dude has no idea what empathy even means. Disgusting sociopath.

    • @DigitalKlamped
      @DigitalKlamped 6 лет назад +1

      wut

    • @tyler9212
      @tyler9212 6 лет назад

      Skycoca Well people have different learning styles. To me this is honestly one of the best lectures I have seen on this channel. But I understand he can be kinda of an ass and if you want someone nice as a teacher this isn’t the guy.

    • @kristypolymath1359
      @kristypolymath1359 5 лет назад

      @@skycocaster I agree completely. He's great at showing off his vi/m skills and his Python knowledge, but he has no ability to relate to others.

  • @mohaiminulhasan252
    @mohaiminulhasan252 6 лет назад

    This was really good. I had to listen to the video a number of times and follow his code to completely understand what he was saying but I've definitely learned a lot. This is not for beginners. So the downvotes are maybe from beginners who are looking for a shortcut to be an expert in Python.

  • @TypingHazard
    @TypingHazard 7 лет назад +6

    The first time I heard the language "protocol oriented" being used was in reference to Swift. I'm not a greybeard but I've been using Python for almost a decade, and was previously aware of dunder methods but never once heard anyone call it a protocol oriented practice. Is this just to kinda kick Swift in the ass a little or have I just had selective reading skills for the last 9 years, lol

    • @ikemkrueger
      @ikemkrueger 6 лет назад

      If you look closely at Swift, you can clearly see that Apple had a good look at Python.

  • @Soumadip.B
    @Soumadip.B 5 лет назад

    This guy is crazy good in vim, just too good. His explanation of Python concepts are awesome.

  • @cupajoesir
    @cupajoesir 7 лет назад +58

    To all the fragile snowflakes that don't like his hair, his face, his shirt, his personality ... If you're focusing on anything but the code you're focusing on the wrong thing. What? Engineers can be crass? say it ain't so! gasp! He's not in public relations, he's an engineer giving a presentation to engineers. It's called context.

    • @theultimatereductionist7592
      @theultimatereductionist7592 6 лет назад +2

      No: I am focussed on him using Python. That's why I hate him. (jk!)

    • @kishankeswani
      @kishankeswani 6 лет назад

      @@theultimatereductionist7592 Python is a good language for CS who are pursuing ML so stop hating Python ; It is a general purpose language and solves all the necessary tasks quite fluently .

    • @mohammadrasoulfard-habibi3066
      @mohammadrasoulfard-habibi3066 6 лет назад +1

      Wells said

    • @oggassaggaoggaffa
      @oggassaggaoggaffa 6 лет назад +3

      Critiquing a speaker's effectiveness doesn't make you a snowflake, in fact it's one of the most important aspects of any instructional video, so it MUST be scrutinized. This guy is OK but not great. His delivery is uneven, certainly fast enough (likely too fast for some) and yet he sometimes spends too much time setting up the premise. General organization of subject matter fair but not great. All in all not a compelling speaker/instructor. If he was my teacher I'd drop the course or switch to a different section with a different teacher. I have seen videos on the same subject matter that seem to cover twice the material in half the time, all while speaking in a more even, measured and engaging voice. This guy sounds like he's in in a huge rush for all two hours and frankly is exhausting to listen to. Oh, and I have over 20 years experience public speaking and teaching tech subjects both to layman and to fellow engineers, so I'm speaking from position of knowledge here. I also did radio for over 10 years, so I ain't no snowflake, heat miser! ;)

    • @Kevinschart
      @Kevinschart 3 года назад

      @@oggassaggaoggaffa you're triggered by his presentation style because you're a snowflake. decades on the radio, and 20 years of public speaking won't change that fact.

  • @raduhtred1243
    @raduhtred1243 4 года назад

    One of the best Python talks I have ever seen!