Why I'm a Better Developer than You

Поделиться
HTML-код
  • Опубликовано: 3 авг 2019
  • 3 things that give me a competitive advantage over other developers that you can start using.

    ----
    Follow me online: voidpet.com/benawad
    #benawad
  • НаукаНаука

Комментарии • 604

  • @Lambdaphile
    @Lambdaphile 3 года назад +885

    Point Three: Sleep-Oriented-Programming (SOP)

  • @jlai383
    @jlai383 4 года назад +1776

    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

    • @yanivgoldstein3875
      @yanivgoldstein3875 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 3 года назад +6

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

    • @mikeCavalle
      @mikeCavalle 3 года назад +11

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

  • @opkp
    @opkp 3 года назад +43

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

  • @tolstoise
    @tolstoise 5 лет назад +659

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

    • @tabziz
      @tabziz 4 года назад +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 3 года назад +1

      @@JonnyBeoulve not.badass.dude

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

      It really depends on what you are building

  • @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 лет назад +377

    i like your new Stephen Hawking video setup

  • @russpalermo
    @russpalermo 5 лет назад +225

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

    • @thedeveloper4207
      @thedeveloper4207 4 года назад +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.

  • @samuelschwager
    @samuelschwager 4 года назад +100

    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...

  • @kristupasantanavicius9093
    @kristupasantanavicius9093 4 года назад +596

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

    • @user-jn1px7rp3h
      @user-jn1px7rp3h 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?

    • @user-jn1px7rp3h
      @user-jn1px7rp3h 4 года назад +21

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

  • @fh404
    @fh404 4 года назад +273

    "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 :\

  • @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

  • @MrEnsiferum77
    @MrEnsiferum77 4 года назад +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.

  • @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!

  • @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

  • @DoubleM55
    @DoubleM55 4 года назад +103

    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.

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

    How do you lint in vim? Do you run a separate program in the terminal?

  • @jackfarricker7546
    @jackfarricker7546 4 года назад +16

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

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

    Hey bro how many fingers do you use for typing

  • @longtran12345678
    @longtran12345678 4 года назад +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.

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

    Hello Ben, please I have an important question, which vim key bindings did you use to move the chunk of code up and down in the video at 1:48.

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

      The key binding is ctrl +curly braces. Also you can use ctrl+f and ctrl+b.

  • @arnobchowdhury9641
    @arnobchowdhury9641 5 лет назад +24

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

  • @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.

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

    Awesome I'm also a vim user, but when using VSCode I could not find how to navigate to the file tree with keybinding and all that file stuff(create a node, move, delete) are there any new updated on the plugin that allows doing that now? Also, do you have your settings vscode file anywhere?

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

      I use cmd+p to navigate files
      gist.github.com/benawad/1e9dd01994f78489306fbfd6f7b01cd3

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

    So I’ve never used VIM but it seems to me all these keyboard shortcuts are in IntelliJ IDEA too, so why do I need vim?

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

    Hey Ben what is the bind key of change you do in 1:52

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

    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.

  • @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.

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

    can any one help me with usefull data structure ( array , stack , queue , linked list , tree ) and algo ( linear search , binary search , bubble, heap , merge , radix quick sorts , bfs and dfs ) , any other useful dsa?

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

    I would like to know what keyboard do you use 😊

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

      das keyboard

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

    How did he open vimtutor on vscode? I'm on Windows 10.

  • @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.

  • @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.

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

    Hi ,Ben!I have a question, currently i am starting algorithms and data structures and it gets really hard.Are there any math topics or specific knowledge shall i cover before it? Thanks!

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

      no, just dive into algos

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

    Do you also use the VS Code shortcuts to navigate the code or just stick to the vim shortcuts?

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

      ruclips.net/video/t9kSTiqhUfg/видео.html

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

    Which font style do you use?

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

    Is Vim really that useful? I find myself thinking more than typing. Also think the mini breaks with the mouse are good for the hands to prevent some RSI.

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

      Yes, I take breaks and think a lot too but when I'm manipulating and refactoring code vim is great

  • @ScottMaday
    @ScottMaday 3 года назад +4

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

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

    Which shortcut do u use to change from updateOrder -> changeOrder ?

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

      ctO
      ruclips.net/video/IiwGbcd8S7I/видео.html

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

    Is that IKEA chair? I was thinking of getting one of those... are they any good?

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

      yeah it's a markus, I like it

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

    Do you even use emacs evil mode on arch?

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

    Guys what font is he using? If someone knows please let me know I want it for my code editor

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

      @Blaxer XO alright thanks! Yea I have consolas already I use that everyday it looks so nice and clean to look at!

  • @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.

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

    what is the keybinding for change into the O (timestamp 2.06)?

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

      ctO
      memorize like "[c]hange [t]il O"

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

    Is this a vim plug in for VS code? Need answers. :(

  • @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 :)

  • @DavidKizivat1
    @DavidKizivat1 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.

  • @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!

  • @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.

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

    Such valuable tips, thank you, bro!

  • @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

  • @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

  • @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.

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

    can you make a video of like the top shortcuts you use in vim?
    I feel like we can do most of the stuff you showed us using regular vscode keybindings

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

      benawad.com/vim

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

      @@bawad which coursera course is best for learning algorithms? My college teaches me nothing or I just forgot them right after my tests, please tell me, thank you so much

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

    Do you use dvorak tho

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

    Why don't you use relative numbers in vim ?

  • @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... 😑

  • @badcookie2975
    @badcookie2975 4 года назад +13

    Better title: How to become a better developer.

  • @Furniez
    @Furniez 2 года назад +1

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

  • @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.

  • @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.

  • @arturoordonez-hernandez8750
    @arturoordonez-hernandez8750 Год назад +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.

  • @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 4 года назад +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.

  • @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.

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

    Another great video Ben. Thank you.

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

    Where did you go to college?

  • @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.

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

    Is Leetcode good practice for data structures and algorithms?

  • @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

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

    Would you say learning design patterns is less important than data structures and algorithms?

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

      kmecu Depends on the type of work you want to do. If you want to build big systems quickly with existing tools or with a team, design patterns. If you want to build new systems and products, DS/Algo. I personally put both of these things in an architectural knowledge category along with memory management and process optimization. Knowing all of these things is "important", but they don't necessarily make you a better programmer.
      Knowing good programming practices like SOLID is probably more important than any architectural knowledge, as you will be a good programmer by default in any language or architecture. It will help you implement big projects that you are proud to show off a lot more than algos or patterns.

  • @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

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

    Please share, How and what resources you used to learn new technologies?

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

      docs

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

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

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

    Is MIT course good? Or should I rather go for coursera?

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

      watch the first video of each and pick the format you like better

  • @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

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

    Every programmer Guru on internet: So you summoned me?

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

    Used the 3rd tip today feeling like a charm.

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

    idk why, but this video motivated me a lot

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

    the double g thing to go from the top to the bottom of a page if vs code works like most other apps then thats what the home and end keys are for

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

    for me learning tmux did a lot, but it really depends on the kind of programming youre doing if it's even worth looking at

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

      tmux is great

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

      copy-mode-vi for life

  • @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

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

    Thank you Ben for this, this was really helpful

  • @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.

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

    its been 6months since i to neovim on linux, dude i love it.

  • @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

  • @Jacob-ABCXYZ
    @Jacob-ABCXYZ 2 года назад +1

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

  • @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.

  • @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).

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

    You definitly should try a spacemacs or doom Emacs ,they also using vim keybiding , org mode , magit all manipulation with keyboard. Check zaiste programing RUclips series.

  • @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.

  • @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.

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

    Thanks for the sleep suggestions, something I am really bad at.

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

    after 10 mins of searching in ur videos list and watch the wrong video, finally I know how to change updateOrder to changeOrder quickly in min 2, I always see that stuff in ur video. Thank you! I use vim in my Alpine, but never use it extensively for coding. Now I'll definitely use it.

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

    Thank you sir!

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

    Coursera Algorithms
    www.coursera.org/learn/algorithms-part1
    MIT advanced data structures
    ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/

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

    Thanks Ben 😊👍

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

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

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

    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

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

    I've been learning and trying to use vim for months now, but I swear it is barely faster then using VS Code for me. The big advantage to it (for me) is that it's readily available everywhere, I can debug straight from the console if I need to run something on the university server. I also plan out my code before writing it down, so actually writing code is maybe 10-20% of my time working on a project.
    I'm only a CS student, not an industry pro, so take my opinion with a grain of salt, but that's my 2 cents. Vim is not the holy grail for programming, tho it does have it's advantages.

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

      That is normal, you have to concentrate in what you think that makes you slow and find a solution, maybe creating some commands or installing plugins.
      For example I found vertical jumping to be very slow until I found plugins like easymotion or lights peed if you use neovim. Other personal example is creating directories. it was as slow as with a GUI editor, and even tough there are plugins for this, my personal solution was to use the terminal.
      Find what bother you and change it, Atom motto is "the hackable text edito for the 21th century" I believe they put "...for the 21th century" because of emacs and vim, these are very customizable editors

  • @r0mankon
    @r0mankon 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 3 года назад

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

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

    I use vim all the time as a Jr Admin...Moving towards web dev and missed it in vs code