Why I'm a Better Developer than You

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ต.ค. 2024
  • 3 things that give me a competitive advantage over other developers that you can start using.

    ----
    Follow me online: voidpet.com/be...
    #benawad

ความคิดเห็น • 605

  • @Lambdaphile
    @Lambdaphile 4 ปีที่แล้ว +883

    Point Three: Sleep-Oriented-Programming (SOP)

    • @alwinvillero4404
      @alwinvillero4404 3 ปีที่แล้ว +14

      SOP - Semicolon is OP

    • @viktorkrepak
      @viktorkrepak 3 ปีที่แล้ว +7

      SOAP - sleep-oriented-advanced-programmer :D

    • @kuldipmaharjan
      @kuldipmaharjan 3 ปีที่แล้ว +4

      aka tinder developer :D

    • @itsgalaxy2407
      @itsgalaxy2407 3 ปีที่แล้ว +5

      REST

    • @fluffigverbimmelt
      @fluffigverbimmelt 2 ปีที่แล้ว

      Getting enough sleep should be Standard Operating Procedure (SOP)

  • @jlai383
    @jlai383 5 ปีที่แล้ว +1779

    3 Tips:
    1. Using vim to boost how fast you can code.
    2. Knowing data structure and algorithms.
    3. Sleep more to keep a clean mind.

    • @boratsagdiyev1586
      @boratsagdiyev1586 4 ปีที่แล้ว +2

      Can you explain nr2

    • @yanivgk
      @yanivgk 4 ปีที่แล้ว +61

      9 minutes saved, thanks :)

    • @mikeCavalle
      @mikeCavalle 4 ปีที่แล้ว +16

      keep note pad next to bed to write ideas down when you wake with them.

    • @dakrontu
      @dakrontu 4 ปีที่แล้ว +6

      @@mikeCavalle problem is when you have the best ideas in the shower

    • @mikeCavalle
      @mikeCavalle 4 ปีที่แล้ว +11

      @@dakrontu in the shower you have a whole foggy glass door to write notes on. :-)

  • @opkp
    @opkp 3 ปีที่แล้ว +44

    why he's better :
    1 . he uses vim.
    2. he knows alot of algorithms and data structures.
    3.he sleeps atleast 9hrs a day

  • @keshavnemeli
    @keshavnemeli 4 ปีที่แล้ว +310

    Wait I honestly thought this was satire untill he talked about algorithms.

    • @macurvello
      @macurvello 3 ปีที่แล้ว +10

      Ctrl+home and ctrl+end work on literally any text editor (even Microsoft Word)

    • @macurvello
      @macurvello 3 ปีที่แล้ว

      @Gabriel Beauchemin he showcased some equivalent Vim shortcuts. My point is you can do that in any text editor without any setup required.

    • @macurvello
      @macurvello 3 ปีที่แล้ว +8

      That's why I mentioned these two shortcuts SPECIFICALLY. Ofc there are many others that are not so common and readily available, I just thought it weird to mention something that is everywhere else as a Vim perk.

    • @abujessica
      @abujessica 3 ปีที่แล้ว +6

      @@macurvello nah vim shortcuts are just op stop comparing them to these shitty cuts

    • @shaunakkulkarni4679
      @shaunakkulkarni4679 3 ปีที่แล้ว +1

      @@macurvello obviously vim can do a lot more

  • @peterm.souzajr.2112
    @peterm.souzajr.2112 5 ปีที่แล้ว +376

    i like your new Stephen Hawking video setup

  • @russpalermo
    @russpalermo 5 ปีที่แล้ว +226

    ctrl+c / ctrl+v IMO the most important for productivity is to intuitively search and scan stack-overflow for questions/answers/solutions.

    • @thedeveloper4207
      @thedeveloper4207 5 ปีที่แล้ว +9

      You Sir, are a true developer !...Just like me

    • @CapeSkill
      @CapeSkill 4 ปีที่แล้ว +4

      @Yog Sothothologist that's incorrect, I also never had any uses of algorithms. If you're a web developer or SE algorithms/data structures won't be much of use for you. You don't need to know the language syntax inside and out that's what documentation is for. You just need to know how to apply the knowledge itself and when to use what where.

    • @CapeSkill
      @CapeSkill 4 ปีที่แล้ว +1

      @Yog Sothothologist SE means software engineering. github.com/Serenity1337 here's my github.

    • @nicholasmaniccia1005
      @nicholasmaniccia1005 4 ปีที่แล้ว

      @Yog Sothothologist hey man I can answer some questions for you if you want my Reddit username is Heavy_Hole, pm me there

    • @sorcdk2880
      @sorcdk2880 4 ปีที่แล้ว

      ​@@CapeSkill There are tons of work for people that can only do basic programming, where you do not need any real knowledge of algorithms and datastructures. That work also tend to be low level work that you can hire just about anyone for that has spent some time with the specific technology you want to have them programming for, which means those jobs would tend to be entry level jobs. If you need to solve some bit harder problems, then you will have a hard time finding an elegant solution or even a solution at all.
      If you want to transition from writing "meh" or "okay" code to "good" or "great" code, then you need to understand a good deal of algorithms, have a good understanding of the underlaying systems, get familiar with the many different ways to write code and practise enough to know when to apply each of those tools.
      How do I know this? My work includes rewriting code written by decent programmers, who have their focus on the real life problems their programs are about, and are less focused on the higher end of programming, and getting it to run much faster is not unusal, heck I have even had a 100000 times speedup before.

  • @tolstoise
    @tolstoise 5 ปีที่แล้ว +659

    This feels like satire, unfortunately, it's not 😂

    • @tabziz
      @tabziz 5 ปีที่แล้ว +70

      this is a satire even if it wasnt meant to be one.
      I had so many great attributes of you in mind only from watching your videos, but you chose two poorly argumented and one obvious advantages
      and putting them in a click baity title made this the worst video about programming I've seen this year

    • @ricardospear922
      @ricardospear922 4 ปีที่แล้ว

      i agree. but those are really important to enjoy programing.

    • @JonnyBeoulve
      @JonnyBeoulve 4 ปีที่แล้ว +47

      I'm fast with a mouse. Fuck Vim.

    • @bratezoran2102
      @bratezoran2102 4 ปีที่แล้ว +1

      @@JonnyBeoulve not.badass.dude

    • @danilo2735
      @danilo2735 3 ปีที่แล้ว

      It really depends on what you are building

  • @samuelschwager
    @samuelschwager 4 ปีที่แล้ว +101

    I feel like competitive programming usually encourages you to do stuff that would not scale well to larger applications or would not pass a thorough code review.

    • @0x6e95
      @0x6e95 4 ปีที่แล้ว +1

      Could you elaborate?

    • @samuelschwager
      @samuelschwager 4 ปีที่แล้ว +29

      @@0x6e95 Some examples: 1) proper variable names that are understandable without comments 2) modularization, aka separating it out into multiple files/namespaces etc. 3) write stuff so that it is testable, e.g interfaces, dependency injection etc. 4) exception handling; TLDR: writing something fast encourages you to take shortcuts

    • @0x6e95
      @0x6e95 4 ปีที่แล้ว +17

      @@samuelschwager Those are all valid points but I sincerely doubt any developer worth their salt would ever code in a competitive programming style for production software.
      You would usually only delve into CP after you've dealt with writing good production ready code so I don't really see how CP would encourage you to employ lazy coding practices for writing prod ready software. I can see that being a problem if a beginner's first foray into code was through CP but that's rarely the case.

    • @samuelschwager
      @samuelschwager 4 ปีที่แล้ว +5

      @@0x6e95 It depends. The exercises in CP are usually quite small compared to large legacy production software. So I guess there are people that get started in CP (the easier problems) and might get hired into a 1 person team with no one who reviews their code ;)

    • @NoorquackerInd
      @NoorquackerInd 3 ปีที่แล้ว +15

      @@0x6e95 Can we call it competitive programming and not CP...

  • @MrEnsiferum77
    @MrEnsiferum77 5 ปีที่แล้ว +52

    Actually when i was younger I was thinking the same that keyboard shortcuts are that u are expert, but today, I thinking good developers are those who can name variables very well, reuse existing code, and write their code like writing a poem, without bothering with too much comments.
    About the data structures course, I will add also S.O.LI.D principles and some of the Design Patterns, but this is not problem to who is better developer and who is not. Developers are poisoned with frameworks for frontend and backend and they can't understand the true power of datastructures. But if some developers can go with basic structures like queue, hash, binary tree thats ok for me. Today I respect someone if can do the S.O.L.I.D principles and refactor some code with design patterns.
    Third thing i like to point for enterprise software is DDD and those who knows this very well are plenty really rare and small. In this time of career I can say that DDD, S.O.LI.D and design patterns is the backbone for quality code together with unit + integration test, but when u merge multiple developers they just do the procedural development, enhanced with high order functional functions.
    Just to finish if I found someone who can model the problem in DDD way that is the hero for me.
    And yes one more thing, thinking with tests in mind, this will make u more better and valuable developer, all other things will came into place.

    • @ThePC007
      @ThePC007 4 ปีที่แล้ว +3

      "Actually when i was younger I was thinking the same that keyboard shortcuts are that u are expert, but today, I thinking good developers are those who can name variables very well, reuse existing code, and write their code like writing a poem, without bothering with too much comments."
      Both are important. And yeah, comments should never be used to explain what the code does, only why it does it. Function names are there to explain what is being done, so use those.
      "And yes one more thing, thinking with tests in mind, this will make u more better and valuable developer, all other things will came into place."
      Make sure to write your unit tests *BEFORE* you write your code. It will make you think about all the different edge cases that need to be covered and allow you to streamline your development process, as you'll always know what you are working towards.

    • @philsburydoboy
      @philsburydoboy 4 ปีที่แล้ว +4

      Although I am very young, I agree or even think you have understated a lot. I think SOLID and designing maintainable codebases are far more important the data structures or algorithms, and that's coming from someone applying for DS/Algo centric PhD programs and jobs. Most code has zero need for novelty and should be built to be easy to understand and extend, rather than to be efficient or elegant.
      I used to do carpentry and this is somewhat akin to my observations there, 99% of the cuts and joints made on a job are simple, and should be done consistently and accessibly. For the 1% of complex work, you can have a reliable person who knows how to do that perfectly. In CS this seems to be akin to just about any library vs the work built from the library.
      I recently ran into problems with this in an open source lab product that I am building. Every student I attempt to incorporate has a fantastic understanding of algorithms and data structures, but no idea how to name things, organize code for reusability, or work with version control with large projects. TDD would be a huge plus if my peers could even stick to SOLID and a basic project architecture (what is a model and what is a view? - good luck finding a kid who can answer that). In this project about 600 LOC rely on things learned from data structures or algos, around 10,000 rely on SOLID and a basic, easy to understand architecture.

  • @stamtso
    @stamtso 4 ปีที่แล้ว +10

    I got skeptical when you start talking about VIM, which is a good advice btw, but you got my "thumbs up" with algorithms and sleep. Especially for JS developers it's so easy to get caught in the fancy lights with libraries upon libraries struggling for your attention and forget the basics.
    Coming from a coding boot camp I realized that what made feel insecure about my code and scared of technical interviews was the lack of knowledge in algorithms. I am dedicating some of my free time and work with it and it has helped me greatly. I cannot tell if it really gives me a competitive advantage but it has improved my perception and confidence overall

  • @fh404
    @fh404 4 ปีที่แล้ว +272

    "I'm not religous about vim"
    Of course not, you're using in inside VScode :p

    • @slimestoneexpert9804
      @slimestoneexpert9804 3 ปีที่แล้ว +2

      IdeaVim is way better IMO

    • @danilo2735
      @danilo2735 3 ปีที่แล้ว

      @@slimestoneexpert9804 but that's for jetbrains ides

    • @defunct1373
      @defunct1373 3 ปีที่แล้ว +3

      just use the terminal :\

  • @diamantisufi7938
    @diamantisufi7938 4 ปีที่แล้ว +14

    Dude, I watched this video yesterday while at work and I took the 3rd tip, I feel like a different person today, it's crazy what lack of sleep does to you, cheers!

  • @kristupasantanavicius9093
    @kristupasantanavicius9093 4 ปีที่แล้ว +595

    Programmers spend only 10% of their time actually typing code.

    • @Asiro-S
      @Asiro-S 4 ปีที่แล้ว +172

      yup, other 90% of time we watch videos on youtube :)

    • @jason_v12345
      @jason_v12345 4 ปีที่แล้ว +167

      Yeah. Vim is fun and all, but it is _definitely_ not a significant contributor to developer performance. Lol. Only a beginner would think that.

    • @kristupasantanavicius9093
      @kristupasantanavicius9093 4 ปีที่แล้ว +60

      @@jason_v12345 Yeap :) I remember watching some amateur reviewing some kind and one of his points was that writing bool==false instead of !bool is a sign of bad programmer. This Vim argument is on the same level :D

    • @mubba1992
      @mubba1992 4 ปีที่แล้ว +2

      Then how to solve a problem in 30 minutes in an interview?

    • @Asiro-S
      @Asiro-S 4 ปีที่แล้ว +21

      @@mubba1992 solve problems, more you solve, faster you do it.

  • @DoubleM55
    @DoubleM55 4 ปีที่แล้ว +104

    In my opinion "the speed of typing code" has very little to do with overall productivity. Sometimes I think for minutes or even hours, mybe not even sitting in fornt of the PC, and then when I have a solution in my head i sit and dump it into code. Most important feature of IDE is quickly navigating different files and code, like "go to declaration of a method", or "find usages". Just typing the code is the least important part. It's not a race, but a highly planned and careful process.

    • @DoubleM55
      @DoubleM55 4 ปีที่แล้ว +1

      @Dave B Well I agree with that for most common problems you just apply existing patterns. What I was refering to is the design of a completely new solution (Service, application, system, whatever). Most of the time I think about architecture, how to split into modules and components, which interactions will I need between them, how will my DB schema look like. Once I have this figured out, writing out code is not an issue.
      My point is, when developing a solution, writing code is like 1/3 of my time. And I have almost 7 years of professional job experience as a software engineer.
      I'm not refering to simple things like add another endpoint to some REST API to fetch some entity from DB, this is almost trivial in most cases.
      I was refering to designing and implementing a new piece of software, a complete solution from scratch.
      I have never found that the speed of typing code is the limiting factor, at all.
      For example, recently I had to implement MVP solution at my company, I spent 4 hours in front of a whiteboard, together with my teammates, brainstorming about design. Once we had all figured out, I coded entire service including flyway schema management, dockerized database for testing, full business logic in 20+ components with all relevant entities available over REST API CRUD. All of this in about 2h of coding. It's the least of my problems.
      I'm using Intellij Idea for my job, I'm programming backend apps in Java. If you were wondering.

    • @DoubleM55
      @DoubleM55 4 ปีที่แล้ว +1

      @Dave B Not what to build, but how to design it. When you have a system with hundreds of microservices in a giant platform, most important part of the job is to figure out how this piece of a puzzle fits into the bigger picture.
      I only speak for myself I can't give you any numbers how other dev teams inside my company are doing. But me persoanlly I can give you 2 scenarios:
      1.) New feature (small), optimization, bugfix, dependency upgrade: 10% thinking, 90% coding, but overall it's not a lot of time.
      2.) Designing a new system/service/product: 60% planning, brainstorming, gathering data, meetings, rough design overview, and maybe 40% actually implementing it.
      In any case, speed of typing code is not a big factor, most of the time I spend testing my code, waiting for test to be done while thinking about the next case (TDD). I have never felt that my IDE is the bottleneck.
      That is my personal experience and honest opinion.

    • @bruhdabones
      @bruhdabones 2 ปีที่แล้ว +3

      @@janklatka1967 you realize that Vim is by no means the only editor with those abilities, right? I can do all that in VS and more from the keyboard

    • @hamoodrex
      @hamoodrex 2 ปีที่แล้ว

      I agree and disagree. Speed is not the most important criteria to look for in a programmer. However, if a programmer can't keep up with a certain project in a competitive environment it might not be good, also certain projects have a short deadline. After all this depends on where and what you are working for.

    • @DoubleM55
      @DoubleM55 2 ปีที่แล้ว +4

      @@hamoodrex But what do you mean by speed? I agree that programmer must be fast in finishing projects, and IMHO 90% of that is thinking without writing anything, then 10% writing the actual code, tests, docs, etc... And also, when you need to debug something or refactor, there is nothing that can beat heavy IDE. Yes, they are slow and often bloated, take a long time to start and index files... But If I had to refactor a 1k+ files java project using VIM, I would rather drink poison.

  • @jackfarricker7546
    @jackfarricker7546 4 ปีที่แล้ว +16

    It’s “Course-Era” how do you not know this..

  • @GauravKalyan
    @GauravKalyan 4 ปีที่แล้ว +6

    I would like to add the following:
    1. Design Patterns
    2. Architectures
    Will save you a lot of trouble solving real-life problems.

    • @larrycoleman8149
      @larrycoleman8149 4 ปีที่แล้ว

      How does design pattern help when you code in JS?

    • @animatedzombie64
      @animatedzombie64 2 ปีที่แล้ว

      @@larrycoleman8149 go study software engineering dude.

  • @arnobchowdhury9641
    @arnobchowdhury9641 5 ปีที่แล้ว +24

    Thank you sir. Specially for talking about how important sleep is. That is the most underrated advice ever.

  • @gentlechaos9190
    @gentlechaos9190 4 ปีที่แล้ว +41

    3 things that gives me a competitive advantage over other developers:
    1) I use emacs. It allows me to be faster than vim
    2) I know Motorola 68k (This makes me better)
    3) I don't sleep, I drink kombucha.
    The first one isn't troll.

    • @bskur6834
      @bskur6834 4 ปีที่แล้ว

      kombucha dissolve my organs

    • @blasttrash
      @blasttrash 4 ปีที่แล้ว +2

      what the heck is motorola 68k?

    • @h3ftymouse
      @h3ftymouse 3 ปีที่แล้ว

      @@blasttrash they probably mean motorola 68k assembly idk

  • @Jombo1
    @Jombo1 4 ปีที่แล้ว +5

    Vim is great. Once you get used to the keys typing becomes really efficient and satisfying.

    • @DoubleM55
      @DoubleM55 4 ปีที่แล้ว +1

      This applies to any IDE or editor. I't like saying VSCode is great because: "Once you get used to the keys typing becomes really efficient and satisfying.". Pick your favorite, it's not that important. The best IDE is the one *you* know the best.

  • @AonghasAnderson
    @AonghasAnderson 4 ปีที่แล้ว +17

    Is it bad that I'm watching this at 2:30am? The last point cut me deep 😔

    • @warpspace7871
      @warpspace7871 3 ปีที่แล้ว

      Same. But I woke up at 2 am. Went to sleep at 6pm.

    • @smithj
      @smithj 3 ปีที่แล้ว

      just sleep until 11:30 :)

  • @dakrontu
    @dakrontu 5 ปีที่แล้ว +64

    When I was young and single at the start of my programming career I could get 9.5 h sleep a night. And yeah I could code fast too and was proud of it. 10 years on I was a single parent raising 3 young children and with a high-pressure job in a startup with deadlines to meet. You have yet to be tested. But you will be. You will be forced to choose between competing priorities. You will discover what a premium it is to be young and in good health. You can review your progress in 10 or 20 or 30 years as real life catches up with you. Good luck.

    • @PROFjavi
      @PROFjavi 5 ปีที่แล้ว +24

      possible solution: don't have kids, screen out positions that do not prioritize your life?

    • @omar9987
      @omar9987 4 ปีที่แล้ว +8

      So don't have kids then.

    • @daonlyowner6631
      @daonlyowner6631 4 ปีที่แล้ว +8

      @@omar9987 thats a stupid solution, kids are our future.
      A better solution is: staying at home and raising your children right while the man provides.

    • @omar9987
      @omar9987 4 ปีที่แล้ว +9

      @@daonlyowner6631 The future is the sun devouring the earth.

    • @How2walkthroughsAB
      @How2walkthroughsAB 4 ปีที่แล้ว +2

      @@omar9987 Oh thats settled then. Feel free to lead by example and take yourself out.

  • @LukePighetti
    @LukePighetti 4 ปีที่แล้ว +1

    You get the lions share of VIM productivity in VSCode by using command-x (nothing selected) to delete entire lines, command-v (nothing selected) to paste entire lines, and option+up/down to move code up and down lines. Then add the command palette for git and some other things and you've arrived.

  • @badcookie2975
    @badcookie2975 4 ปีที่แล้ว +13

    Better title: How to become a better developer.

  • @NobleSteed00
    @NobleSteed00 4 ปีที่แล้ว +40

    If this is what you think gives you a competitive edge, you're in for a rude awakening, son.

    • @blasttrash
      @blasttrash 4 ปีที่แล้ว +10

      lets hear your advantages then. I am really curious.

  • @pavelh756
    @pavelh756 3 ปีที่แล้ว +16

    Showing people you can use Vim is the ultimate alpha power move.

    • @gustavotaveira317
      @gustavotaveira317 3 ปีที่แล้ว

      Some world changing features that are not present in every editor.

  • @Furniez
    @Furniez 2 ปีที่แล้ว +1

    Have you heard of keys called: "Home", "End", Page Up" and "Page Down"?

  • @sdlfjkskfjkfjskldjfsdfj5233
    @sdlfjkskfjkfjskldjfsdfj5233 4 ปีที่แล้ว +4

    1. Being fast at writing code does not make you a good programmer, being able to think critically and problem solve is what makes you a good programmer.
    2. 90 percent of what you learn in data structures and algorithm is not used in the real world (aside from job interviews but that is another story) understanding runtime complexity is important but memorizing bfs/dfs backtracking dp etc does not make you a better programmer
    3. Duh
    Overall these advices are terrible

    • @YoriDj
      @YoriDj 4 ปีที่แล้ว

      I agree with what you say about 1
      On 2 I am extremely confused, this is a guy who has worked in the industry, made cool side projects and definitely knows what its like working on real applications, but when he tells you to learn algos I don't see the link to that at all. If it would be "so you can pass interviews" I could agree, but him saying it makes you a better developer seems to directly contradict his newer video "Coding Interviews are Broken"

    • @Jestrath
      @Jestrath 4 ปีที่แล้ว

      I'm glad I wasn't the only who thought this. In my experience all of what you said is true. I've almost never had to directly apply algorithms and data structure knowledge outside of classes in college. Being too quick can cause problems if you don't think your designs through enough.

    • @LPFan33
      @LPFan33 4 ปีที่แล้ว

      Don't underestimate the power of going fast.. the faster you go, the shorter your cycletime, the faster you iterate, the faster you learn..

    • @LPFan33
      @LPFan33 4 ปีที่แล้ว

      @@MuhammadHosny0nice argument

  • @arturfil
    @arturfil 4 ปีที่แล้ว +2

    solid tips in my opinion, I would learn vim in general just to know that you can still program in a server without the use of a GUI rather than for speed solely, I believe vscode itself has good shortcuts too. Either way, good stuff.

  • @petrubirzu174
    @petrubirzu174 4 ปีที่แล้ว +4

    Nice tips, Ben. I recommend the book Why We Sleep by Matthew Walker for anyone who wants to learn about the inner workings of sleep. It's striking to find out just how crucial sleep is for all cognitive and motor functions, and the terrible (often overlooked) effects that sleep deprivation has.

  • @NotTechLead
    @NotTechLead 4 ปีที่แล้ว +2

    VIM is okay; have been using it for quite some time now. TBH, I feel it hasn't made me any faster (maybe just a tad), or a better developer. I would definitely not prioritize learning VIM over learning more core concepts. Its a nice to have, and thats it.

  • @kotel94
    @kotel94 5 ปีที่แล้ว +6

    Hey Ben, cool. Would it be too much trouble to show the keys you are pressing when coding for the next few videos? I think many people would appreciate that since it would be easier to learn vim by going slowly through the video. Thanks for the consideration!

    • @overra
      @overra 5 ปีที่แล้ว +2

      VSCode has a feature built in to show keypresses.
      Cmd+Shift+P > Developer: Toggle Screencast Mode

    • @bawad
      @bawad  5 ปีที่แล้ว +4

      tomorrows video is for you!

  • @mikeCavalle
    @mikeCavalle 4 ปีที่แล้ว +3

    nice to see vi still being used -- I started with vi in the late 70's -- there was an emacs war back then.

    • @jyothish5194
      @jyothish5194 3 ปีที่แล้ว

      The war's not over yet

  • @ScottMaday
    @ScottMaday 4 ปีที่แล้ว +4

    Tip #4. I got some ballin music that gets me in the zone when I code

  • @ablanchi
    @ablanchi 5 ปีที่แล้ว +12

    You seem like the kind of person that would love tiling window managers like i3 for linux, or Amethyst for mac.
    Any experience with them?

    • @bawad
      @bawad  5 ปีที่แล้ว +1

      I haven't gotten into them yet, but I agree I'll probably love them

  • @centurion8158
    @centurion8158 4 ปีที่แล้ว +6

    I use vim myself and i don't see how spending a huge amount of time getting used to the shocuts can make you better

    • @itsfarookmayne
      @itsfarookmayne 3 ปีที่แล้ว

      I agree and It is fun and satisfying to use. that's about it

    • @bld86
      @bld86 3 ปีที่แล้ว +1

      for me i just hate using the mouse for anything

  • @Jacob-ABCXYZ
    @Jacob-ABCXYZ 3 ปีที่แล้ว +1

    Here's an idea.
    Next up or down open line/space

  • @longtran12345678
    @longtran12345678 5 ปีที่แล้ว +1

    Thanks for your advice, I will go back to learn the 2nd item from now. The two others have them in good state at the moment.

  • @arturoordonez-hernandez8750
    @arturoordonez-hernandez8750 2 ปีที่แล้ว +1

    I agree 100% that Vim keybindings are helpful. I tried Vimtutor, and I even came across an online RPG that teaches you Vim, but what helped me the most was just practicing with it a little bit every day. I would practice with one Vim keybinding at a time, until I mastered it. I'm definitely not a Vim pro either, but I'm to the point where I have to install a Vim extension right after installing an editor or it just feels weird to me.

  • @_Iam777_
    @_Iam777_ 3 ปีที่แล้ว +1

    I think you meant to say "I am a better developer than the average out there". You still have thousands of miles ahead to become an excellent one or even a NINJA.

  • @serxka
    @serxka 4 ปีที่แล้ว +1

    That random colour function worries me

  • @TheJeffybarrondo
    @TheJeffybarrondo 3 ปีที่แล้ว

    Pro-tip: The home key goes to the top of a page, the end key goes to the bottom. We also got pageup and pagedown buttons. All sorts of things the keyboard does!

    • @FunctionGermany
      @FunctionGermany 3 ปีที่แล้ว

      and there's Ctrl + Left/Right arrow to move between spaces in a line

  • @yvonh
    @yvonh 4 ปีที่แล้ว +2

    I may add that you should sleep after lunch around 20 minutes, I always do that even at work

    • @arafatzahan3697
      @arafatzahan3697 4 ปีที่แล้ว +2

      Tried that a few times and every time woke up 4 hours later with a headache xD

  • @rokonzamann
    @rokonzamann 4 ปีที่แล้ว +2

    I completely agree with the sleeping fact and algorithms
    but the code you showed is not what a Better Developer will write

    • @strangesense3196
      @strangesense3196 4 ปีที่แล้ว

      That's the whole point of this vid, there's an easily readable irony...
      Like watching TechLead but actually funny.

  • @EduardKaresli
    @EduardKaresli 5 ปีที่แล้ว +6

    Are you sure vim-knowledge is necessary? Have you studied VS Code's shortcuts and felt they are inferior to those that vim offers? I have printed lately a cheat sheet for VS Code and it seems it is very powerful by itself.
    I completely agree with you on points 2 and 3, I still need to improve my skills on algorithms (although I have a degree in math, but retaining information long-term is an issue).
    Sleep deprivation is killing me, I feel my IQ is 70% lower than it should be. I guess probably it's due to blue light coming from all those displays and mobile phone screen, I have ordered a special eyeglasses today, maybe that will help.
    Thanks for your video, all the best!

    • @ruhnet
      @ruhnet 4 ปีที่แล้ว +8

      Vim knowledge is not "necessary," but neither is a color display or a comfortable keyboard. But vim knowledge will probably make you much more productive. Vim keybindings are not "shortcuts," it is ita own language of interfacing with a text editor.

    • @doctormanhattan7408
      @doctormanhattan7408 2 ปีที่แล้ว

      @@ruhnet Vim is not to vscode what a color display is to a black and white display, that's a gross exaggeration. You can do almost everything without vim. That means you don't have to spend the time it takes to learn vim and still be super productive

    • @ruhnet
      @ruhnet 2 ปีที่แล้ว

      ​@@doctormanhattan7408 You can be "productive" with Notepad or Nano. Vim, properly configured and used, is more efficient than any other editor that I know of (including VSCode). VSCode is of course extremely capable, and so are many other editors (Emacs blows anything out of the water though), but VSCode is bloated and not fast (comparatively of course--in most situations it's "fast enough"). So yes, while you can do anything with VSCode, (some things better than Vim) it's just not the best or most productive/efficient editor. And if you read my comment again, you can see I didn't pick color/bw display as an exact strict proportional representation lol (I also mentioned "comfortable keyboard"); it was just an analogy. So relax... and use VSCode if you want to haha :-D

  • @pipertripp
    @pipertripp 5 ปีที่แล้ว +5

    Nail on the head with the last one. Sleep dep kills your ability to do anything. Total false economy working really long hours.

  • @juananjimenez7139
    @juananjimenez7139 4 ปีที่แล้ว +4

    You calling yourself a better developer because you use a plugin, and still declaring public `var` instead const/let? I reckon there is more factors involved, that makes you better dev.

    • @Jestrath
      @Jestrath 4 ปีที่แล้ว

      Indeed. Probably shouldn't just declare everything as var.

  • @someone-lx8mg
    @someone-lx8mg 4 ปีที่แล้ว +1

    I would add:
    - TESTING
    - DOMAIN KNOWLEDGE and SEARCHING

  • @PaulSebastianM
    @PaulSebastianM 4 ปีที่แล้ว +2

    Most of these VIM features are already key bindings and shortcuts in other IDEs. I use IntelliJ and find it way more productive than VSCode with plugins, which quickly becomes just like VIM, super hard to configure and get right and you have to keep various sets of settings for different languages... (EDIT: I used to use vim but gave up after I tried vscode and found it way more productive)

    • @PaulSebastianM
      @PaulSebastianM 2 ปีที่แล้ว

      @Dr1ver key maps can be changed... 😑

  • @marloelefant7500
    @marloelefant7500 4 ปีที่แล้ว

    I'm working in a Tech company in China and all of my colleagues sleep for an hour during noon and no one drinks coffee. In my home country, meeting a programmer who doesn't drink a ton of coffee every day is unbelievable, but here, it's just normal.
    But on the other side, during the week in the Chinese Tech industry, you don't do anything else but working and sleeping and still get a comparatively small salary - just for the prospect of richness in the future.

  • @codeman99-dev
    @codeman99-dev 3 ปีที่แล้ว

    My personal #1: Actually knowing management tools of the domain I'm in. Especially true for anything with command line management.

  • @jackwright7014
    @jackwright7014 4 ปีที่แล้ว +1

    I used to sleep 7 hrs a day and I bumped that to 8.5. My work quality is far greater at work and programming because of it.

    • @ezwalduzumaki3161
      @ezwalduzumaki3161 4 ปีที่แล้ว

      currently sleep around 9h. solving problems have been amazing lately and the clear thinking.

  • @brianhogg358
    @brianhogg358 4 ปีที่แล้ว +1

    Is your first advantage meant to be satire? "Vim is the text editor I use" followed with "I code in Visual Studio", then conflating using key bindings with using a text editor, then showing text editing that's no different in terms of speed than the stock Visual Studio experience makes me think it's a satire. If so, well done! BUT based on a bunch of the other comments here, it might not be a satire?

  • @agimcomas
    @agimcomas 3 ปีที่แล้ว +2

    ‘The reason is because my class was actually really bad’ LOL I couldn’t be worse than my class.

  • @ChetBABY
    @ChetBABY 5 ปีที่แล้ว

    sleeeeeep!
    yes, def. as an aside, the lack of sleep also encourages a dependency on caffeine which will double-time the path to zombiedom.
    I agree that bypassing non-meaningful mistakes will aid your learning tremendously. Use a linter, use a code-formatter, use find & replace, breadcrumbs, etc. Then the bulk of your time is spent analyzing your logic or exploring refactoring solutions instead of hunting down spelling errors, which is made worse by the fact that you can't navigate your editor fluently.
    I also use the vim keybindings for vscode but don't call myself a "vim user" anymore since I've watched some of the vim channels on youtube. Those guys are usually running some linux distro and doing EVERYTHING through vim. lol :D

  • @deidara_8598
    @deidara_8598 4 ปีที่แล้ว

    Lol that meme at the end. I find it astonishing that most modern education in the industrial world still have kids wake up early in the morning and have them stay in school for 7 hours a day, when study after study show that your ability to pick up information is severely impeded by lack of sleep and after 30 minutes of doing the same thing. Taking regular breaks and getting enough sleep is key to being productive.

  • @jeffreylin1527
    @jeffreylin1527 4 ปีที่แล้ว +20

    Keep Learning Ben, you're still a Jr developer but at least you drive to improve! In a few years you'll look back see how far you've grown. Keep it up!

  • @johnornelas
    @johnornelas 5 ปีที่แล้ว +5

    In my totally non-scientific anecdotal experience, every dev that uses VIM has been one of the weaker and less-productive devs on the team.

    • @juliansoto2651
      @juliansoto2651 5 ปีที่แล้ว

      Can I ask why?

    • @natesh1
      @natesh1 5 ปีที่แล้ว

      What? Please explain how?

    • @TheKataan
      @TheKataan 5 ปีที่แล้ว +1

      I have worked with people using vim (this is from the perspective of working in a team)
      - Too twitchy. You want to think something through but they are constantly jumping around in code.
      - Pain to pair program with. Constantly turning vim plugin on/off.
      - Too many changes. The pull requests were always more verbose.
      In general, developers that think more and type less are better in my experience.
      Every change you make needs to be reviewed, tested and is potentially a new bug.
      People that type a lot are also more likely to just hack around until something works.
      If you work in a team, use what works best in that context.
      Don't concentrate to much on the tool you are using.
      That would be my advise for people working in a company.

    • @tuananhdo1870
      @tuananhdo1870 5 ปีที่แล้ว

      @@TheKataan Use whatever make you fell convinient

  • @david.kizivat
    @david.kizivat 4 ปีที่แล้ว +4

    I never got into vim. I guess that's because when I started programming professionally after the university I already knew my way around system's default shortcuts for text editing pretty well. Like all the stuff you shown I can do just by using some Ctrl/alt/meta/shift/fn/home/end... combinations without ever getting out of what vim would call "edit" mode. However I know there are some bindings vim has that I cannot find way to do without it and I would like to get used to vim because of that, but I just don't see it being worth the initial slow down.

    • @blasttrash
      @blasttrash 4 ปีที่แล้ว +2

      yeah I recently got into vim and its so amazing. Say you are working on HTML or XML or whatever and you are in middle of div tag and you want to change that tag to section tag or something, you just press a shortcut and boom it changes. You don't even have to move your cursor. And ctrl+alt+shift selection is what I used to use a lot before getting into vim, but that's one extra step. Like if you want to select entire line, you press home key and then press shift+end key and then you can cut, copy, delete etc. But with vim, you just press dd or yy or cc to delete or copy or change the entire line altogether. Vim also has a ton of awesome plugins that allow you to change things like snakeCase to camelCase etc. I use it a lot while writing JPA code in java. And the best thing is that vim is ubiquitous. I can take these shortcuts with me everywhere. Today I might be programming in java using Intellij. 2mrw I might get a new job where I need to work with python using Pycharm or use react with vscode or C# with Visual Studio etc. But I don't have to relearn ide specific shortcuts, as long as I have vim(or vim extensions in those IDEs).
      And regular expressions are also very productive. I sometimes have to take DDL and create POJO(java classes) out of it. And some of these DDLs have 100-200 columns. If I had to type it would take a long time. With regex find and replace it takes less than 5 minutes. I can convert between DDL to Pojo and vice-versa very easily.

  • @romangeneral23
    @romangeneral23 3 ปีที่แล้ว +1

    When im working on a large C++ project for my job. I find that VIM is the absolute greatest piece of software to waste my time and fall behind in schedule.

    • @afnman83
      @afnman83 3 ปีที่แล้ว +1

      Well, dude..its not the VIM it self...but the key bindings that makes you fast.

  • @GameDevNerd
    @GameDevNerd 2 ปีที่แล้ว +2

    What gives me a competitive advantage? 14+ years experience in areas I'm passionate about, understanding of CPU and GPU architecture, low-level and systems programming experience, experience with DirectX and low-level rendering APis and game engine development, knowledge of software architecture for large projects and design patterns, clear code cleanliness and quality standards and loving what I do. These things just take time to become really good at, and takes a lot of hard work and dedication.

  • @vinisaveg
    @vinisaveg 4 ปีที่แล้ว

    The advantage of sleeping is also an disadvantage... because your are asleep. you can't code while asleep.

  • @dmitriyobidin6049
    @dmitriyobidin6049 2 ปีที่แล้ว +1

    The first one really can't make you a better developer.

  • @sgtsnakeeyes11
    @sgtsnakeeyes11 4 ปีที่แล้ว +1

    Vast majority of web devs do not need to ever know data structures and algorithms.

    • @ranveerrandhawa282
      @ranveerrandhawa282 4 ปีที่แล้ว

      Dave B I guess that is more of a thing taught while taking one of the introductory cs classes.

  • @GenusvProgramming
    @GenusvProgramming 4 ปีที่แล้ว

    I agree. But being more generic and in order of importance:
    1. You need to get enough sleep! It is more important than you think!
    2. Learn and use your IDE shortcuts.
    3. Review Data Structures and Algorithms. (And practice!)

  • @PyroManZII
    @PyroManZII 3 ปีที่แล้ว

    What is the big bonus about Vim? When as programmers are we fighting for every single second of spare time just to write more code?

  • @mvargasmoran
    @mvargasmoran 4 ปีที่แล้ว

    I do agree with the VIM in the aspect of learning the tools.
    Huge diference between someone that knows he's webserver, his message queue, his rdbms, his language, and yes his editor, and in that case, VIM/EMACS force you to learn.
    don't tell you haven't cringe and wait for a guy to press left arrow 127 times to change a parameter in console, emacs/vim command bleed into the terminal also, even here in youtube CTRL+A/E get's you to the stArt/End of the line, and most of the time deal with how guys avoid learning.

  • @Gazunklenut
    @Gazunklenut 5 ปีที่แล้ว +1

    Not only sleep, exercise! Get your blood flowing, get your brain working and drink plenty water!

    • @bawad
      @bawad  5 ปีที่แล้ว +1

      💪

  • @keltrm
    @keltrm 3 ปีที่แล้ว +1

    If you take a look at the beginning, he has a function to generate a random color, but I could shorten it down to 2 lines in JavaScript
    let randColor = Math.floor(Math.random() * 16777215) //The only reason for it to be 16777215 is that is FFFFFF converted from hex to decimal
    let randColorHex = randColor.toString(16)
    I ran this code to test it and it output this color
    "fab172"
    Who's the better developer now?

    • @Ovicron
      @Ovicron 3 ปีที่แล้ว +1

      That proves nothing lol. Also the code shown in the video seems like a older code base/project.
      One thing it does prove is that you have a huge ego. 🤓

    • @keltrm
      @keltrm 3 ปีที่แล้ว +1

      @@Ovicron This comment was made purely as a joke and was intended to prove nothing

    • @Ovicron
      @Ovicron 3 ปีที่แล้ว

      @@keltrm Okay, I am sorry

  • @Nerketur
    @Nerketur 3 ปีที่แล้ว

    As much as I agree with the sleep aspect, I still don't do it enough.
    I wholeheartedly disagree with #1, but wholeheartedly agree that keybinds are great. Ctrl-home and ctrl-end on windows goes to the beginning and end of a document, respectively.
    I'm not bashing on the people that swear by Vim, but I personally still dislike it. Keybinds though are a huge time-saver. Recently I used ctrl+alt+down to select a lot of lines, made two newlines, pasted comments for each line, made them into tsdoc/jsdoc. All in under 10 seconds per file.
    Had I tried to do this without multi-line select it would have taken me hours.

  • @DeRepear
    @DeRepear 4 ปีที่แล้ว +1

    You can use Ctrl + End to go straight to the bottom of the file and Ctrl + Home to go up to the top in Sublime Text and I think VSCode as well (it works in my VSCode app though that may be because I have the Sublime Text key bindings extension installed).

    • @warpspace7871
      @warpspace7871 3 ปีที่แล้ว

      True. I love vim but it's for some reason easier with sublime keybinding

  • @ConorBailey
    @ConorBailey 4 ปีที่แล้ว

    Awesome video Ben. Thanks for sharing the knowledge. Going to check out VIM 👍

  • @anantgupta7916
    @anantgupta7916 3 ปีที่แล้ว

    Imagine Linux Torvalds is watching the video & seeing the title

  • @azizoid
    @azizoid 4 ปีที่แล้ว

    To scroll to the top you press Cmd+Top, to the bottom Cmd+Bottom

  • @dr_davinci
    @dr_davinci 3 ปีที่แล้ว

    Used the 3rd tip today feeling like a charm.

  • @aeronwolfe7072
    @aeronwolfe7072 ปีที่แล้ว +1

    i have used vim for years. but after i started using vscode, i find that the normal keybinds in vscode work just as well. also, in my case more often than not, i am limited by the speed of my BRAIN not my typing. lol

  • @joostschuur
    @joostschuur 5 ปีที่แล้ว +8

    Stay humble

  • @surafeltefera7664
    @surafeltefera7664 4 ปีที่แล้ว +1

    Such valuable tips, thank you, bro!

  • @mibdev
    @mibdev 4 ปีที่แล้ว +1

    If you're running Windows, I wouldn't recommend using [neo]vi(m) itself.
    If however you are runnig Linux or OSX, you have no excuse and should probably be using Neovim.

  • @MagnusAnand
    @MagnusAnand 4 ปีที่แล้ว +1

    Well... I think that using Vim shortcuts in VS Code is not the same as using pure Vim, but good tip anyway

  • @skaruts
    @skaruts 3 ปีที่แล้ว

    Tbh, after having watched a bunch of videos about why Vim is supposedly so much better, I only grew more skeptical about it. Don't get me wrong, it's a solid editor. But all I see people praising Vim for is just rarely useful nice-to-haves, or stuff you can trivially do in any decent editor with negligible delay, or in some cases even way faster than Vim (I've compared some stuff with how I do in Sublime). *But more importantly:* most of what you do when coding is *thinking,* not moving around code or typing. At the end of the day, it doesn't matter that you can do some small task 0.1 seconds faster, because that's not the bottleneck in your workflow.

  • @iagod6660
    @iagod6660 3 ปีที่แล้ว

    for the normal human beings that don't use vim like us, you can also use ctrl + Home (as gg) and ctrl + End (as G) for the going back to start or end of file if you didn't knew, just study more shortcuts.
    and for vim users that wanna up your game: learn regex

  • @FG-qs8uj
    @FG-qs8uj 5 ปีที่แล้ว +11

    I'm a better developer than you because I outsource all my work

  • @-DMD-
    @-DMD- 3 ปีที่แล้ว

    Number 3 is just good health tho, so exercises, good food, good sleep all help with that. Mens sana in corpore sano. Your body's like the PC, a more performant, newer, with clean cooling system will work better than an old PC that's never been taken care of.

  • @coolemur976
    @coolemur976 4 ปีที่แล้ว +1

    Sleeping. Oh yez. I have this advantage too, Sir.

  • @wkolcz
    @wkolcz 4 ปีที่แล้ว

    My 3 advantages that make me better:
    1 ) I use spaces and not tabs unless I map my spaces to tabs, then I use tabs
    2 ) I say gif with a g an not an j (I don't care what the creator says, the g is for graphical..not jrafical)
    3 ) I use nano, unless I am using atom, which is 100% of the time
    lol

  • @eukaluptoss2399
    @eukaluptoss2399 4 ปีที่แล้ว +1

    zombies all around you. Just for that subscribed & liked. Keep up the good content. You have the right mentality for SW. I agree with your points 100%, especially 2 & 3.

  • @pavle649
    @pavle649 4 ปีที่แล้ว +2

    idk why, but this video motivated me a lot

  • @thatisuday
    @thatisuday 4 ปีที่แล้ว +4

    `var` inside `for` loop, in TypeScript, huh

    • @Markkkkkkkkkkkkkkkkk
      @Markkkkkkkkkkkkkkkkk 4 ปีที่แล้ว

      I mean you can have
      for ( var i = 0 ; i

    • @keesvv03
      @keesvv03 4 ปีที่แล้ว

      @@Markkkkkkkkkkkkkkkkk No, there's no reason to use loops in 2020. ES6 offers several array prototype functions such as `map()`, `filter()` and `forEach()` which renders regular loops practically obsolete. There are even ESLint plugins that disallow the use of any kind of loop.

    • @nonamed56
      @nonamed56 4 ปีที่แล้ว

      @@keesvv03 maybe he didn't know about that, smartass

  • @Sennken
    @Sennken 3 ปีที่แล้ว

    Did he really just list using ctrl+z and other common keybindings as his 'competitive advantage'...?

  • @thepaulcraft957
    @thepaulcraft957 2 ปีที่แล้ว

    I think u shouldn't use some vim extension cuz only pure (neo)vim can give u the freedom and customizability u need to master it

  • @albirtarsha5370
    @albirtarsha5370 3 ปีที่แล้ว

    #1 The mouse is like a noose for your hand.
    #2 What are the top 5 datastructures? And isn't regular expressions a kind of flexible datastructure?
    #3 Sleep does not get enough respect. This is actually a little disgraceful in our society.

  • @bilastend
    @bilastend 4 ปีที่แล้ว +1

    What do you guys think is it important to use HJKL instead of the arrow keys in VIM?

    • @aedd3307
      @aedd3307 4 ปีที่แล้ว +1

      YES, It's the vim way to do it. Never leave the homerow.

  • @ricardospear922
    @ricardospear922 4 ปีที่แล้ว

    something that blew my mind, writting node, is conditional break points. where lets say there is a loop or are parsing a file and you identified one record that breaks so you put a breakpoing and press play until you get to the one you want, but you can right click and set a conditional break point such as "whatever = 'the one you want'"

    • @doctormanhattan7408
      @doctormanhattan7408 2 ปีที่แล้ว

      What's the difference between that and just putting a debugger inside an if statement?

    • @ricardospear922
      @ricardospear922 2 ปีที่แล้ว

      @@doctormanhattan7408 there is none, except that you can do it in runtime.

  • @VulnixVox
    @VulnixVox 2 ปีที่แล้ว

    A yes. thats the thing I wanna see from a video title.

  • @LocherYT
    @LocherYT 4 ปีที่แล้ว

    How can people sleep longer than 5 hours?
    Do you just wake up naturally and force yourself to sleep 4 hours longer?
    Or is this a secret code to pull an alnighter so that your body is sleepy enough to actually demand 9hours of rest?
    How can people live with the irresponsibility of wasting time doing nothing but closing their eyes?

  • @grimmersnee
    @grimmersnee 5 ปีที่แล้ว +3

    i have tried learning vim a few times, but i find i can do everything in vscode just using the out-of-the-box short cuts and integrated terminal, also without the mouse. I agree though vim would offer more, but the time to learn vs the extra benefit i can't really see at this point. my view will probably change sooner or later

  • @greatchinonso9582
    @greatchinonso9582 5 ปีที่แล้ว +10

    Thank you Ben for this, this was really helpful

  • @RasTaIARI
    @RasTaIARI 3 ปีที่แล้ว

    I agree with the premise, that you need to be proficient with tools.
    But all examples you mentioned as an example appear to be possible without vim or emacs in any jetbrain IDE (maybe except macros? not sure about that).

  • @howardlam6181
    @howardlam6181 3 ปีที่แล้ว

    I would love to sleep more if there wasn't any traffic noise, piping noise from the building, etc

    • @csati
      @csati 2 ปีที่แล้ว

      Earplugs...

  • @MicahJohns
    @MicahJohns 4 ปีที่แล้ว

    peak chad developer