We Need To Stop Lying About Git

Sdílet
Vložit
  • čas přidán 3. 08. 2024
  • I really didn't mean to start this one again. Ugh. Every person who wants a job in code should probably know git. I hate that this is controversial. Computer Science doesn't need to teach it, but when you get you degree, you better know git.
    SOURCES
    x.com/t3dotgg/status/18019020...
    x.com/t3dotgg/status/18023708...
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏
  • Věda a technologie

Komentáře • 1,3K

  • @ciarancurley5482
    @ciarancurley5482 Před měsícem +785

    You learn a lot about dev just being a teenager determined not to pay for stuff.

    • @haleemhawkins8112
      @haleemhawkins8112 Před měsícem +75

      Golden take right here👏🏾. I’m convinced that my first psp jailbreak turned me into the software engineer I am today

    • @TomRaine
      @TomRaine Před měsícem +16

      This is so true, our store POS sucks so now I’m thinking if I can build one.

    • @mkabilly
      @mkabilly Před měsícem +24

      Oh god, definitely. PSP & Wii jailbreaking, hacks for some pay to win games, and constantly getting second hand tech definitely got me here.

    • @botobeni
      @botobeni Před měsícem

      yoo true, happened to me

    • @kendlemintjed7571
      @kendlemintjed7571 Před měsícem +3

      story of my life

  • @LetterlessAlphabet
    @LetterlessAlphabet Před měsícem +324

    Learn git in 2 seconds: init, add it, commit, push it, pull it, fetch it, merge it, rebase, harder, better, faster, stronger.

    • @darkwraithcovenantindustries
      @darkwraithcovenantindustries Před měsícem +28

      git-o-logic

    • @kieranhosty
      @kieranhosty Před měsícem +20

      git-o-logic

    • @ImperiumLibertas
      @ImperiumLibertas Před měsícem +18

      Imao I was so lost reading "harder better faster stronger." I thought these were new elusive commands I was unaware of.
      You did forget bisect 😉

    • @LetterlessAlphabet
      @LetterlessAlphabet Před měsícem +7

      @@ImperiumLibertas never needed it lol

    • @blarghblargh
      @blarghblargh Před měsícem +7

      @@LetterlessAlphabet bisect is a good and important tool and you should learn how to use it. you may only use it once every year, but when it's the right tool for the job you'll be glad you had it. knowing the commit that introduced a bug can make some bugs absolutely trivial that'd otherwise stick around a lot longer.

  • @TJChallstrom916-512
    @TJChallstrom916-512 Před měsícem +712

    Also, can we get a round of applause for the dude who willingly posted that he knew nothing so he could stop knowing nothing.

    • @Rudxain
      @Rudxain Před 29 dny +30

      The wisest people are the ones who are humble enough to admit ignorance

    • @johngagon
      @johngagon Před 24 dny +8

      * applauses in lisp *

    • @shlak
      @shlak Před 15 dny +9

      @@johngagon * applautheth with lithp *

  • @ericng8807
    @ericng8807 Před měsícem +683

    I hate how this was more controversial than your unit testing take

    • @leoaldamas
      @leoaldamas Před měsícem +4

      🤣

    • @bentruyman5077
      @bentruyman5077 Před měsícem +35

      I disagree with a bunch of Theo's takes. I agree, this ain't one of them.

    • @SamOween
      @SamOween Před měsícem +12

      Agree. This is one of the most solid Theo takes ever

    • @ravenecho2410
      @ravenecho2410 Před měsícem +5

      Knowing what a file is, a bit harder than he makes it sound, i nodes, pointers, pages, is a directory a dictionary or an array? Is all memory stored in a file, is it continuous? Whats a file encoding? Whats a binary, whats an exexutable? Complilation, sym links, elfs, exe, ... .vim...
      Is everything a file? Is terminal just a tail, is cli just a file which is being written?

    • @burger-se1er
      @burger-se1er Před měsícem +17

      ​@@ravenecho2410 At 9:57 he was talking about `cd` and `ls`, not inodes and utf-16.

  • @MichaelSchuerig
    @MichaelSchuerig Před měsícem +157

    Learning the basics of git takes a day. Learning to write good commit messages takes a lifetime.

  • @droid-droidsson
    @droid-droidsson Před 24 dny +74

    Theo: "git gud"
    git: "gud" is not a git command. See 'git --help'.

    • @Respectable_Username
      @Respectable_Username Před 14 dny +2

      I can't believe nobody's made an official alias for that yet 😂

    • @joshua7551
      @joshua7551 Před 11 dny +2

      ​@@Respectable_Username I mean, you can make a pull request, no? Just make it say something stupid, submit it on April 1, and profit.

  • @CaptainToadUK
    @CaptainToadUK Před měsícem +217

    The reason, largely, that universities don't do the whole "submit your assignments using Git, this course uses Git" is because lecturers, by-and-large have not learned to use it and don't want to

    • @borstenpinsel
      @borstenpinsel Před 25 dny +27

      They wrote their own Programm in perl in 1993

    • @CaptainToadUK
      @CaptainToadUK Před 25 dny +3

      @@borstenpinsel yep. Nailed it! 😜

    • @user-bc7cb8uu7e
      @user-bc7cb8uu7e Před 18 dny +12

      At the University I attended, I took at least 2 classes that required submission of assignments through git.

    • @Fasteroid
      @Fasteroid Před 17 dny +1

      💀

    • @JCel
      @JCel Před 17 dny +5

      My university has a 4th semester module, Softwaretech, where everything in git. You won't even be able to access the darn lecture materials without it, much less submit your homework. The first few weeks are everything about git and then you need to be able to work with it.

  • @tato-chip7612
    @tato-chip7612 Před měsícem +289

    Every time I say things to my friend like.
    "Bro you're about to finish uni. Learn how to use Git and all projects out there use git."
    He tells me to stop gatekeeping.
    My brother in Christ you can't just be running around with Google drive shares files!

    • @quinnherden
      @quinnherden Před měsícem +25

      why do they think that's gatekeeping?

    • @sub-harmonik
      @sub-harmonik Před měsícem +78

      'you need to learn programming to get a programming job'
      'bro stop gatekeeping'

    • @rogergalindo7318
      @rogergalindo7318 Před měsícem

      gold comment lol

    • @ImperiumLibertas
      @ImperiumLibertas Před měsícem +22

      It's always comical when the "more than one way to solve a problem" argument is used to avoid having to learn a tool that is objectively more fit for the job.

    • @hevad
      @hevad Před měsícem +4

      Google shared files is what kids use these days not to use source control? In my days we would email our files to each other

  • @Sammysapphira
    @Sammysapphira Před měsícem +200

    I've experienced collaborating with people that don't know git, let alone know git etiquette. It was utterly miserable. People think git is just committing and force merging; it's not... The amount of times I had to remind them to pull down updated code made my head spin. We would frequently get multiple-day-old pull requests with dozens and dozens and dozens of conflicts because they never pulled down main, essentially forcing us to copy paste their functions and modifications manually due to the sheer amount of multi-file dependency changes happening. Then, once main is all caught up, and we told them to pull it down locally, *they didn't*

    • @ronelm2000
      @ronelm2000 Před měsícem +38

      Maybe version control should be a curriculum module after all. Not git, but VCS in general, in the same vein as Operating Systems being a thing.

    • @dputra
      @dputra Před měsícem +9

      I think we need to build an extension in vscode to give a bright big red box when they haven't pulled down git changes 😂

    • @ShootingUtah
      @ShootingUtah Před měsícem +12

      How did someone go through the pain of multiple merge conflicts and NOT remember to pull the next time! I thought that was like burning your hand on a hot stove! You only do it once!

    • @Daniel_WR_Hart
      @Daniel_WR_Hart Před měsícem +3

      It's also easier to see the history of the project when every commit message is short and perfectly describes what changed

    • @Renoistic
      @Renoistic Před měsícem +3

      Git etiquette is the big one for me. You can teach people eventually but the road there is painful.

  • @artrix909
    @artrix909 Před měsícem +592

    Wait... people get hired without knowing git?

    • @LiveType
      @LiveType Před měsícem +75

      Nobody is getting hired without knowing version control. Not in the current day

    • @bentruyman5077
      @bentruyman5077 Před měsícem +50

      What's funny about this whole thing is the people disagreeing with Theo likely already know git, they're just complaining because *they* think knowing how a VCS works isn't table-stakes for a typical dev job, which it obviously is.

    • @emeraldbonsai
      @emeraldbonsai Před měsícem +4

      @@LiveType Depends some schools essentially act as feeders for companies so like one place i was at i had to baby sit all the new people and get them up to speed. with how everything actually works and alot of times even teach them the actual language they are going to use. its not super common but ive been at a few companies that have like entire infrastructure and staff and its essentially built to get people trained up asap. Why im not sure my main guess is just cheap labour though in the end with stacks being so different company to company training a newbie and training some one several years in isnt always that diff in some ways its nicer cause you dont have to unteach things

    • @froxx93
      @froxx93 Před měsícem +15

      I actually did. But that was in 2016. Today I wouldn't hire anyone without it too

    • @mascot4950
      @mascot4950 Před měsícem +19

      @@LiveType Nobody will _stay_ hired without following the company's version control routines, but version control is so company specific that it's a training thing regardless, making it fairly irrelevant as a hiring guide.

  • @funkenjoyer
    @funkenjoyer Před měsícem +77

    After using git for just few years im genuinely baffled how dafuq any1 gets anything done without vcs

    • @BittermanAndy
      @BittermanAndy Před měsícem +3

      vcs != git.

    • @dloorkour1256
      @dloorkour1256 Před měsícem +21

      @@BittermanAndy I think a generic "version control system" was meant. I agree, it's a must have.

    • @diamondman4252
      @diamondman4252 Před 22 dny

      Git is my vcs of choice, but there are valid use cases for other systems so I am not a purist.
      As to how people get things done without vcs... they don't really, they just think they do. Everyone else sees main_project_final_final_last_fixed_issues_2024_may_final.c and takes a deep breath.

  • @MrDaAsif
    @MrDaAsif Před měsícem +147

    "you know you're the exception why are you even part of this discussion"
    Man so many internet discourses always have the person who knows they're the exception lmao

    • @nctay
      @nctay Před měsícem +5

      This whole git conversation is driven by attention seeking “exception”.

    • @ludamillion
      @ludamillion Před měsícem +3

      Yup, they know they are the exception and they think that it makes them exceptional.

    • @thekwoka4707
      @thekwoka4707 Před měsícem +4

      @@nctay but none are actually exceptions

  • @lunalangton5776
    @lunalangton5776 Před měsícem +183

    Y'know part of the reason I dropped out is because my uni was a degree mill and everyone was there to "get a programming job", and the result was a constant dumbing down of the education to turn what was a respectable theoretical field into a very expensive coding bootcamp. I was there to actually advance the field. I wanted to actually study Computer Science.
    The fact that people are going to uni and NOT LEARNING COMPUTER SCIENCE is much more alarming than that they don't know git. They should know how to make git from first principles, and then it wouldn't take more than a moment to learn it.

    • @duven60
      @duven60 Před měsícem +16

      From first principles seems a little much, but I would expect an exam question on "what are the limitations and shortfalls of the current industry standard source control, and how would you architect an alternative that addresses those issues?".

    • @lunalangton5776
      @lunalangton5776 Před měsícem +55

      @@duven60 Sorry, maybe exaggerating a little. I don't mean they should actually go and re-implement git - I mean the way it works should be pretty obvious to someone who understands computer science.
      Also, I don't want to hear "industry" mentioned in the school I'm paying for, ever. Again, I'm not there for a coding bootcamp. Employers should be paying to educate worker drones if that's the goal. Seriously, why are we volunteering to PAY to be taught only how to be worker drones?
      I'm probably not Theo's main demographic, I'm actually not interested in writing the same program over and over for a different corporation with a different framework. I don't want to hear about some bullshit "development methodology" some suits have come up with to make developers seem like they're being more productive in a business environment. I actually gave a shit about *computer science*. "Industry" is a dumpster fire. Why Hapsburg your education like that, by encouraging people to do what is already done? We're supposed to build the future - but NOT for "industry" - for the world! I do acknowledge your question says to improve on things, but, again, I'm not a servant of industry. Love y'all tech workers btw, but hate the game you're playing.

    • @urisinger3412
      @urisinger3412 Před měsícem +16

      this is why i'm rethinking my choice to major in cs, cs classes are becoming glorified bootcamps. people need to distinguish between computer scientists and software engineers, just like we distinguish between electrical engineers and electricians.

    • @lunalangton5776
      @lunalangton5776 Před měsícem +18

      @@urisinger3412 Most importantly, our degrees should not just be gift wrap that WE pay for when OUR LIVES are gifted to "industry". When people say "university should prepare you for industry", put on your They Live glasses, they are really saying "employees should pay for their own training". No! We should be very fucking mad about it.

    • @lunalangton5776
      @lunalangton5776 Před měsícem +16

      After re-reading my own comment I just want to add on a little clarification here, in case anyone thinks my "dumbing down" thing is about software engineers being dumber than computer scientists. That's not what I meant at all. The reason they're dumbing things down is to pump out grads, regardless of competence, to drive down programmer wages. They call it "streamlining" what is taught - but what that means is, you still pay the same amount for your degree, but they put less useful information in your brain. We're being robbed in broad daylight. I'm not mad at anyone in this thread but I am really furious about this issue. The world is being made dumber just so that employers don't have to pay for training AND can pay lower wages. Then some of our own, ENCOURAGE THIS?! It boggles the mind. If "software engineer" should be a separate field, industry should be fully responsible for their training. Otherwise, uni should teach just PURE computer science, and force employers to provide employment training. Boycott any uni that's focused on "preparing for industry". In general, tech workers need to learn to organize their labour and force change against shit like this.

  • @boreddad420
    @boreddad420 Před měsícem +121

    0:42 "1 also Adobe is evil" from chatter is so based

    • @Turalcar
      @Turalcar Před měsícem +2

      Adobe delenda est

  • @xc13z829
    @xc13z829 Před měsícem +187

    As a former teacher, I can tell you: if there is something a student SHOULD know, you have to teach it to them. You can't HOPE they will, you can't make it optional. If students need it, they need to be taught it.

    • @KnumNegm
      @KnumNegm Před měsícem +3

      That's sad man.

    • @SnowTheParrot
      @SnowTheParrot Před měsícem +28

      for high school, totally.
      once you get into Uni though, (especially for CS), if youre not self learning, you probably wont make it far.

    • @flyingmadpakke
      @flyingmadpakke Před měsícem +2

      Sounds like a cultural thing. I have been grateful for the "hands off" approach I have experienced throughout the educational institutions I went to. They even let me take an exam in quantum computing despite it not being part of the curriculum in any way.

    • @JakobRossner-qj1wo
      @JakobRossner-qj1wo Před měsícem +3

      But if I can see that someone can learn by himselve than he is way more hireable for me.

    • @Echa37-H37
      @Echa37-H37 Před měsícem +5

      I'm currently working as a lecturer's assistant. College students would not look things up outside of those that are explicitly taught in class, minus a few outliers. There are times when I teach in class where I told them "there are a lot more to find out by looking at the documentation" and 9/10 they'll not open it.
      Git is mentioned in passing in class in hopes they'll go figure it out, but that's not how the college student's mind works at least here.

  • @advertslaxxor
    @advertslaxxor Před měsícem +62

    Here is my take:
    There is an abundance of people taking CS degrees *to get a job*. They have next to zero passion, and will not touch code outside of work/study.
    "Computer Science"/programming is one of the few professions where you gain real experience from having it as a hobby, too.

    • @elorrambasdo5233
      @elorrambasdo5233 Před měsícem +14

      I love programming. I spend hours every day after work working on my personal project. I talk about it all the time to everyone.
      I never used git in college.
      People don’t know what they are supposed to know, that’s why they go to get taught.
      If they don’t get taught something, how are they supposed to know to learn it?

    • @proosee
      @proosee Před měsícem +9

      Higher education is not some elementary school - you can't have such approach not only in computer science but in any other field - imagine doctor that doesn't read about new studies and drugs and still use medical procedures from 1980 - that's insane.

    • @moonasha
      @moonasha Před měsícem

      @@elorrambasdo5233 I found git outside of school specifically because I was working on a project. I didn't want to keep coding if I couldn't safely back it up and have the ability to undo changes. I think if you don't seek version control, you aren't coding something you find valuable. "If they don't get taught something how are they supposed to learn it" If you require a teacher to learn new things you are a useless person

    • @kingxerjsaeg
      @kingxerjsaeg Před měsícem +1

      ​@@prooseeI think they meant one of higher education's absolutely inexorable purposes is to give you a framework of "to know what it is that you have to know". Not to fill your carts with all the knowledge, or to push/pull them for you, but to teach you which are the tracks of the field and how to tell them apart from the landscape of ignorance. Understandable?

    • @proosee
      @proosee Před měsícem

      @@kingxerjsaeg that's my point - if someone is not showing any signs of exploring on his own then I don't hire such person, even if he has prestigious diploma. Period. But you can have your own rules.

  • @mattilindstrom
    @mattilindstrom Před měsícem +35

    I'm not a software engineer, I'm a f-ing physicist. I find a well set up git to be easy and stress free. If I ever got into a situation I couldn't get myself out of, all I had to do is ask from the people who know, and after a single command I was in the clear.

    • @diamondman4252
      @diamondman4252 Před 22 dny

      If you are a physicist, I bet you have used LaTeX. I consider git substantially easier to get the hang of than LaTeX. That being said, if you don't use LaTeX, I highly recommend you do. I don't use it much, but my physicist friends refuse to use anything else for preparing documents.

    • @DanielJoyce
      @DanielJoyce Před dnem +1

      Git reflog is the source of their power. Learn to use it yourself.

  • @firstlast-tf3fq
    @firstlast-tf3fq Před měsícem +75

    “You must submit this assignment in the form of a git repository”: then let them go work it out. University students should be expected to teach themselves simple stuff like this.
    Problem sorted.

    • @chris52000
      @chris52000 Před měsícem +1

      I also went to RPI like Theo and just graduated a year ago. We had a class where all of our assignments must be submitted by pushing to a git repo

    • @moonasha
      @moonasha Před měsícem +7

      the amount of people who can't learn things on their own and seem to require constant hand holding is really disturbing. Our middle and highschools are failing to teach kids how to be self sufficient

    • @firstlast-tf3fq
      @firstlast-tf3fq Před měsícem +7

      @@moonasha then they shouldn’t get a degree and shouldn’t be able to get through university. You don’t get taught at uni, you attend lectures: the actual learning is your responsibility

    • @dudaseifert
      @dudaseifert Před měsícem +7

      I'm in favor of this, but it doesn't hurt to add a link "you can learn how to do this here".

    • @firstlast-tf3fq
      @firstlast-tf3fq Před měsícem +1

      @@dudaseifert oh sure

  • @turc1656
    @turc1656 Před měsícem +36

    Why would anyone use version control when they can just implement the full/final feature set correctly the first time?

    • @aaa-my5xy
      @aaa-my5xy Před měsícem +10

      sounds like a skill issue to me

    • @NihongoWakannai
      @NihongoWakannai Před měsícem +18

      This is why I ONLY hired developers who don't know git. Git is only for developers who make mistakes and I don't want any mistakes in my codebase.

    • @stevecarter8810
      @stevecarter8810 Před 14 dny

      Oof 😂😂

    • @CoenBijpost
      @CoenBijpost Před 8 dny +1

      @@NihongoWakannai😂

  • @gardnmi
    @gardnmi Před měsícem +43

    I couldn't imagine working on a software project without a version control tool like git.

    • @user-in2cs1vp6o
      @user-in2cs1vp6o Před měsícem +2

      I save all my projects in seperate and individual Google drive accounts

    • @user-nr4ju3qd9o
      @user-nr4ju3qd9o Před měsícem

      @@user-in2cs1vp6o what the fuck is wrong with you

    • @nicejungle
      @nicejungle Před měsícem

      Me neither. It's just insane

    • @JoshPeterson
      @JoshPeterson Před měsícem +6

      I've lost track of amount of times git has saved my ass. Just being able to restore to previous versions that worked after fucking up your code beyond repair has been a life saver. I learned early on the hard way how much of a pain in the ass coding can be without it. Every time I start a new project, I immediately git init.

    • @moonasha
      @moonasha Před měsícem +1

      @@JoshPeterson it doesn't just save your butt, it let's you experiment in ways you normally wouldn't. Let's you full send a refactor even if there's a chance you might fubar everything

  • @ivanfilhoz
    @ivanfilhoz Před měsícem +20

    These guys be like: a hammer is just a tool, people don’t need to learn how to use a hammer to build stuff. They’ve learned basic physics, so they should be able to apply the same principles. There’s no need to teach that.

    • @CallousCoder
      @CallousCoder Před 14 dny +2

      I thought that I knew how to use a hammer, until I worked along side a true Carpenter a d he taught me how to actually use a hammer. And suddenly I could gabber a nail in 3 or 4 strikes.

  • @RuySenpai
    @RuySenpai Před měsícem +44

    In my freshman year of CS my school called everyone for a 2 week course of basic git and linux CLI, I rarely ever use more from git that wasn't seen on that course, it takes less than 2 weeks to learn and everyone should know how to use version control

    • @SahilP2648
      @SahilP2648 Před měsícem +7

      git takes less than a day to learn and use, but videos on YT are all crap. I should maybe create one which would be above anything else.

    • @paultapping9510
      @paultapping9510 Před měsícem

      ​@@SahilP2648for you and your 32 subs 😂

    • @quinnherden
      @quinnherden Před měsícem

      ​@@paultapping9510Nobody starts with subs 🙄

    • @SahilP2648
      @SahilP2648 Před měsícem

      @@paultapping9510 if I do, it would be more for people on YT searching about git in the future, I won't be doing it for my subscribers genius. I just don't think my video would get popular since YT favors creators which are already well established.

  • @danmerillat
    @danmerillat Před měsícem +20

    I agree with everything except "knowing other version control isn't good enough". The basic git you're saying people should know is just "commit your files regularly and push" and it doesn't matter if you know CVS, RCS, Subversion or mercurial: you understand "commit files and share" and can use different commands/hotkeys for that.
    Knowing how to manage branch merges, rebasing, squashing... that's advanced version control and I've found very few people actually really understand that beyond "google snack overflow, cut & paste the commands you find there"

  • @dyto2287
    @dyto2287 Před měsícem +44

    One year we took bunch of students from local university to teach them some practical skills one day per week at our company. My coworker who was in charge to teach them had a meltdown over their Git knowledge. We though we would offer internship or junior position for some of them but out of 20 of them noone was hirable.

    • @proosee
      @proosee Před měsícem +2

      My colleague had similar experience - they were conducting some kind of internship/course for students from local university and numbers of rants I've heard about them unable to comprehend to use separate branches was over 9000

    • @honkhonk8009
      @honkhonk8009 Před 11 dny

      Thats wild. We upload our assignments on github. Everything we write is in C/C++.
      But our Uni is basically known for CS/Engineering, and not really for anything else.
      Iv heard from more "prestigious" Uni's that they do all their assignments in javascript/python, never touch a compiler, and dont even know how to use make or Bash.

  • @hatter1290
    @hatter1290 Před měsícem +67

    Git has some interesting internals. I feel like you could learn many useful things from that as part of a C.S. degree.

    • @nicejungle
      @nicejungle Před měsícem +4

      agree. DAG for example

    • @luuc
      @luuc Před měsícem +4

      I believe it would, for sure, be interesting as a case study as part of a larger course (e.g. software engineering class or a DSA course)

    • @hatter1290
      @hatter1290 Před měsícem +1

      @@nicejungle And specifically a Merkle DAG

    • @SJohnTrombley
      @SJohnTrombley Před měsícem +5

      I think Prime's take on this is correct. There should be a class called "Version Control" where you learn about various version control tools and how they're implemented, then have to create your own version control tool as a final project.

    • @proosee
      @proosee Před měsícem

      You can make argument like that about other software - that's somehow beyond the point of the video, because Git status in software engineering shouldn't be the reason to learn its internals as a part of CS degree (compared to other pieces of software).

  • @keffbarn
    @keffbarn Před měsícem +44

    Git isnt that trivial to learn and has a bunch if concepts thats absolutley worthy of a CS class. There is a big difference knowing just a few commands to actually knowing it and what each operation does and how to apply them. If they teach sql and c++, then there is really no argument for not teaching git

    • @asagiai4965
      @asagiai4965 Před měsícem +1

      Technically they can. My question now is, if they have to teach you everything you need to know, how long will a cs degree be?

    • @mkabilly
      @mkabilly Před měsícem +3

      I had multiple semesters on Graph-related things. I'm sure at least a couple classes from any of those courses could've gone a bit more in depth into Git.

    • @Salantor
      @Salantor Před měsícem +9

      But you don't really need to know how Git works under the hood. Basic commands and a flow respected by the entire team should be more than enough.

    • @ludamillion
      @ludamillion Před měsícem +10

      @@Salantor Exactly, the theory and internals behind Git are fascinating and could certainly fill multiple semesters. But I've been in the field for over a decade at this point and probably 95% of my git usage it made up of the basics that I learned on my own in my first 'serious' programming course so that I didn't have to worry about shooting myself in the foot.
      When people say 'learn git' they mean learn the basics of how to use the tool. They don't mean know how every last piece of it works and the CS theory behind it. I know how to drive a car. I know that it needs full, I know that it can't float, can't fly, and if I'm going fast it'll take longer to stop. Do I know how the engine works? Not really, a few fairly shallow concepts yes but not the details.

    • @morosis82
      @morosis82 Před měsícem +1

      ​@@ludamillionyes, taking students through creating a feature branch, making changes and merging it back to a repo with a CICD loop that will fail when they've neglected the tests would be a great way to start.
      Explain then all the issues and why they exist, then how to do it the right way.
      Doesn't need to be git, in fact it's probably best to try at least a couple so they can see different approaches (mercurial or even svn as while it's out of date I think there's still a bunch of stuff using it).

  • @elliottmarshall1424
    @elliottmarshall1424 Před měsícem +50

    Git should be how you submit assignments, Im shocked that this isn’t the norm

    • @duven60
      @duven60 Před měsícem +4

      @dstick14 for what the law currently is at least, every bill a pull request.

    • @TheKastellan
      @TheKastellan Před měsícem +4

      This might be an America thing because I can guarantee at least in my university we use gitlab so this video confuses me to no end.

    • @urisinger3412
      @urisinger3412 Před měsícem

      Tracking issue for gay rights​@dstick14

    • @ludamillion
      @ludamillion Před měsícem

      I went to a community college over a decade ago and this was how we did things in many of my classes. I've always assumed that it was because a lot of the professors there either still worked in the field as engineers or at least manager or had recently retired so they just kept using the cools for the courses they taught that they used at work all the time.
      There's no good excuse not to.

    • @briankarcher8338
      @briankarcher8338 Před měsícem

      Until you find the person who learned how to fork a branch.

  • @harrytsang1501
    @harrytsang1501 Před měsícem +29

    The sad thing is, version control is not extensively taught in university level CS major. Yes it is taught, but no you can totally pass the software engineering course without truly understanding it. Most students view it as hurdles rather than a useful tools.

    • @daven9536
      @daven9536 Před měsícem +6

      That's because it is. In a typical course assignment the scope is fairly limited and you only ever move forward and have very little use for version control.

    • @enginerdy
      @enginerdy Před měsícem +3

      That’s many, many things though. You don’t get expertise with any undergrad degree, you get the foundation to acquire expertise.

    • @marcuss.abildskov7175
      @marcuss.abildskov7175 Před měsícem

      Why does something have to be taught? I swear students are fucking lazy. Go fucking learn it yourself

    • @avarise5607
      @avarise5607 Před měsícem

      I'm sorry but if writing git commit and git push is too much for you, I can assume you won't put any thought into actual problems

    • @daven9536
      @daven9536 Před měsícem

      @@avarise5607 If all you ever did was type git commit and git push, I can assume your empty repository didn't pass the course

  • @bentruyman5077
    @bentruyman5077 Před měsícem +40

    It is wild to me that programmers are even debating the utility of understanding version control. This is a good take, Theo.

    •  Před měsícem

      In my college we dont learn git, they're teaching us how to use FileZilla FTP instead. We also never used an IDE for coding, they have us use Notepad++ instead. My school grand valley state university is 20 years behind industry standard, we're using VB script as the main programming language... We're graduating without actually knowing how to use professional development programs, and people here are thinking this is how it's actually done...

    • @BittermanAndy
      @BittermanAndy Před měsícem +3

      Version control != Git.

    • @BrooksMoses
      @BrooksMoses Před 29 dny +2

      @@BittermanAndy : Absolutely. I got several programming jobs without knowing git because git was not at all a thing when i was first hired, and was only barely a thing the second time around. But I was completely competent with SVN, which is what was the open-source industry standard at the time.

    • @paladin9876
      @paladin9876 Před 18 dny +3

      @@BittermanAndy git is a version control system, what are you yapping about?

    • @BittermanAndy
      @BittermanAndy Před 18 dny +1

      @@paladin9876 but it's not the only version control system (nor even the best IMO). I thought this was obvious tbh.

  • @krank23
    @krank23 Před měsícem +11

    I'm a programming teacher for (roughly equivalent to) high school students, and I force my students to use git. They don't have to type the commands - using vs code's interface for initializing, adding gitignores and committing/pushing is fine. They need to know the basic vocabulary and concepts, and frequent git commits during projects is a requirements for higher grades (if nothing else because it discourages cheating). If they ever need to use raw git commands, they'll have the mental structure ready, and will just need to connect commands to concepts they already know.
    I don't always get into branching, pull requests etc, but… they're high school students mostly working on personal projects. If they ned more advanced concepts, they'll be able to learn them as they go.

    • @cirion66
      @cirion66 Před 20 dny +2

      I am a GUI guy... I hate terminal commands with passion - even when I create micro-tools for myself - I create a minimalistic GUI, because I couldn't be brothered to remember command syntax, that I would set myself...
      I have been using GIT GUI in Jetbrains IDE for over ~7years now... The only moment I type "git fetch && git pull" is when the IDE is not running/updating

  • @Holobrine
    @Holobrine Před měsícem +9

    Facebook uses Mercurial and it turns out the reason for that is the git team didn’t want to work with them when they ran into scaling issues, but the mercurial team was willing

    • @morosis82
      @morosis82 Před měsícem

      Mercurial isn't that fundamentally different to git from a usage perspective, if you know one the other is fairly familiar.
      If you don't know either or svn then it's a problem. Don't tell me you know clearcase or sourcesafe, you know nothing.

    • @stevecarter8810
      @stevecarter8810 Před 14 dny

      We have large subversion and IBM ALM projects trying to get over to git and the answer to so many issues is "don't have that project to track, have a different project that suits git"

    • @morosis82
      @morosis82 Před 14 dny

      @@stevecarter8810 I'd be surprised to see one that doesn't suit git. The one we migrated from Clearcase was a mix of COBOL, Java and Adobe Flex, and included CICD pipelines that transpiled the COBOL into a native Java stack using some library I can't remember on a Jenkins stack, with ephemeral Dev environments available per developer as well as the standard qa/stg/test all hosted in AWS EC2.
      It took a few stages to get there but my god was it worth moving off Clearcase.
      Atlassian has a decent article on moving from svn and the tooling there is much better (we had to write our own to import the history).

  • @themoderncoder
    @themoderncoder Před měsícem +10

    This is basically the motivation behind most of the videos on my channel. As a former software engineer and people manager in tech, I’ve never seen a more important, yet under taught, daily skill than Git.

    • @theMadZakuPilot
      @theMadZakuPilot Před měsícem +2

      I absolutely love your git videos. please keep making them

  • @akam9919
    @akam9919 Před měsícem +37

    Theo: "If you don't know how to use an ide"
    that one guy with tmux+nano+and shit ton of terminal windows: "I'm offended!"

    • @MisterFaucker
      @MisterFaucker Před měsícem +4

      Alacritty+tmux+editor is win

    • @lukeskywalker7029
      @lukeskywalker7029 Před měsícem +16

      tmux + nano ? Really people use that for development? Not NeoVim or Emacs? :D

    • @jahinzee
      @jahinzee Před měsícem +6

      **neovim

    • @AndrewTSq
      @AndrewTSq Před měsícem

      @@lukeskywalker7029 I could not be bothered with that yesterday, so I just added color highlighting to js-files in nano. You can also make scripts for jslint, but ofcourse its not as good as neovim or emacs lol, but its a small editor and easy to work with in those cases you only need to change a line.

    • @GreenJalapenjo
      @GreenJalapenjo Před měsícem +5

      I mean he was pretty clear that he doesn't strictly mean "IDE" by how he uses VS Code as the example and Notepad as the counter-example. I think "IDE" is to be read as "decent development environment", not "Eclipse or Visual Studio".

  • @alexpyattaev
    @alexpyattaev Před měsícem +11

    Students not willing to learn practical skills is the bane of education system...

    • @chriss3404
      @chriss3404 Před měsícem +2

      I think that the structure of classes really contributes to students not wanting to learn.
      Once you get behind in classes, there is rarely if ever a chance to catch up if you have other commitments outside of your classes.
      When I was in college I'd always start a semester/qtr ahead, pushing class projects past where they needed to be with documentation, additional features, testing, etc. but by the end of the quarter, I consistently had to be satisfied with hitting the bare requirements and learning absolutely nothing more.

    • @alexpyattaev
      @alexpyattaev Před měsícem

      @@chriss3404 yes, the planning of the curriculum is quite problematic. For example, teaching network engineering, I was surprised one day to find out that many of the students saw the terminal for the first time in the networking lab course, as due to change in the study plans the unix basics stuff became optional. Naturally, this was a massive difficulty spike for the unprepared, and a total pain for us to resolve, as we could not just tell them to "get good".

  • @bryanenglish7841
    @bryanenglish7841 Před měsícem +23

    I've interviewed at plenty of companies and they've never asked me a single Git question, yet it's incredibly important to my day to day work. I have been asked plenty of nonsense algorithm questions that I never use. Perhaps there is a system of perverse incentives afoot?! HMMMM THEO?!?!

    • @henryvaneyk3769
      @henryvaneyk3769 Před měsícem +2

      When you apply for a job at our company you need to do a small project and supply the solution in a GIT repo.

    • @briankarcher8338
      @briankarcher8338 Před měsícem +1

      You're expected to know Git these days. It entered the "why ask?" territory years ago.

  • @dakdevs
    @dakdevs Před měsícem +39

    How do you substitute git with WhatsApp? Can I use iMessage instead too? I don't really use WhatsApp so I'm for sure missing something.

    • @PanDiaxik
      @PanDiaxik Před 18 dny +3

      I have used a discord as a repository, you can use anything that allows sending files to group chats. The reason we didn't use git was that we were using lab computers running Windows without admin access for students and installing git would take too much of the limited time we had

    • @marcosdiogenes9380
      @marcosdiogenes9380 Před 16 dny +12

      ​@@PanDiaxik no you cannot. Git allows you to spot the changes somebody else made to your files before they are applied. It allows you to look at all the changes you made throughout your development without needing to open the project back and forth to compare yourself, among a bunch of other things that these tools just don't provide.
      Git is not a place to store your files, it's a version control tool.

  • @harshmpatil
    @harshmpatil Před měsícem +9

    I wish I could control my life through version control.

  • @EmperorFool
    @EmperorFool Před měsícem +10

    I used a graphing calculator for my math classes. It would have been insane not to, but there were no courses on how to use one. You just LEARNED IT YOURSELF because it was so useful.
    There were also no Emacs or Vim courses for CS, but you're insane if you pursue a CS degree with Notepad. Git is another invaluable tool you should learn to be productive.

    • @NicolayGiraldo
      @NicolayGiraldo Před měsícem +1

      I have installed a TI-89 emulator on my smartphone, and of course to use it properly it required two books and some YT videos. It helped considerably in many classes, mainly linear algebra and coding theory.

    • @EmperorFool
      @EmperorFool Před měsícem

      @@NicolayGiraldo Nice! That's exactly what I used back in the day. It's how I learned RPN, and it got me thru many a math class.

  • @jacobleslie8056
    @jacobleslie8056 Před měsícem +7

    omg. this is the such a mild take. it's the "lemon & herbs" of spicy takes.

  • @br3nto
    @br3nto Před měsícem +7

    1:37 students don’t just magically start using things. VSCs are one of the primary tools of our trade. At the very least, VCSs need to be introduce to students, and explained their purpose and why they are important. VCSs should be part of the 101 curriculum, and should then be extensively used throughout a degree. Students should be industry ready… it’s one of the primary reasons for higher education... standardised industry ready training.

    • @danieloaks8355
      @danieloaks8355 Před 11 dny

      I agree, no use complaining about people not knowing it on their own, I wasn't exposed to it until my first interview.
      Viewing it as an individual failure has no useful solution, but an educational failure has an easy solution. Have one assignment in any class that should be submitted through GitHub, or just mention it for 5 min in a lecture.
      A programming education that does not mention version control is a failure and sets students up to fail.

  • @juliocorzo3241
    @juliocorzo3241 Před měsícem +4

    I remember turning in assignments via FTP because that's what the teacher wanted; I explicitly asked for us to use git, but the teacher had been teaching for like 30 years, and I really doubt he had ever used it.

  • @benmeehan1968
    @benmeehan1968 Před měsícem +3

    Git isn’t the issue, it’s a CS degree without including version control. If you learn the principals of VC, you know git, without even having to have touched it.

    • @BittermanAndy
      @BittermanAndy Před měsícem

      Yes, this.

    • @brianernzen2509
      @brianernzen2509 Před 3 dny

      Every single engineering discipline needs configuration management. Should engineering students in other disciplines be thinking about how to do CM and use Teamcenter or some other document control tool?

  • @cjhdev3990
    @cjhdev3990 Před 20 dny +2

    That "had to learn bio" part for CS students
    My friend at an engineering college like yours failed chemistry 3 times, got specially allowed a last 4th chance and passed with a low ass grade.
    Microsoft hired him immediately after finishing his degree (he did his master thesis with them, so they knew him) and was immediately sent to Shanghai where they fucking gave him an apartment for his stay, made him author leading a group of like 4 people to keep building the thing his thesis was about.
    He was one of those, knew how to make a compiler before starting college kind of types, just sucked at chemistry and had no interest in it.

  • @jamestolliver9970
    @jamestolliver9970 Před 12 dny +1

    I like how we learned git at my college. It wasn't a whole class in and of itself but it was part of our software development class that was meant to give us an intro to a lot of concepts needed. That class was missing a lot but teaching us how to use a VCS was one of the best parts

  • @elpupper_
    @elpupper_ Před měsícem +9

    youtube not gonna do anything about these bots

  • @spuzzdawg
    @spuzzdawg Před měsícem +4

    Im pretty sure that one of my intro to programming courses in my engineering degree spent about 1 lecture talking general concepts of various code repository tools, e.g. git, svn, mercurial etc. Thats probably all you need at the uni level.

  • @modularcuriosity
    @modularcuriosity Před 13 dny +1

    I'm an old, grey bearded, software guy who learned BASIC over 50 years ago. Today I'm a Software Engineering Lead with over 30 years of experience in the real world. I'm seeing kids with new CS degrees who can't remember how to do a For loop.
    Because of this, one of my interview questions is : "Is there anything software related that you're working on in our own time that you're enjoying?" I've had people tell me that they're learning Open GL (years ago), or Godot (more recently) or that they enjoy using Blender or Fire Alpaca or Krita for art. This tells me that these kids are passionate about using the computer in creative ways other than playing PC games. If they dual boot a Windows/Linux box at home then they go to the top of the list.

  • @SamOween
    @SamOween Před měsícem +23

    CS and Software Engineering are not the same and that is perfectly fine. CS is science and software engineering is closer to working in a car factory. Git is part of the software engineering discipline which is ultimately a trade like carpentry.

    • @SamOween
      @SamOween Před měsícem +5

      I should elaborate that I think there is a gap between computer science and software engineering. If most CS graduates want to get a software engineering job, universities and higher education should focus on software engineering degrees.
      Unfortunately, computer science sounds more prestigious than software engineering.

    • @ShootingUtah
      @ShootingUtah Před měsícem +1

      At my university the different between software engineering and a CS degree is literally 2 classes. Every other class or curriculum of classes can transfer or counts towards either degree. The only difference is in CS you are forced to code an assembler and a compiler as a capstone project. As someone who doesn't ever want to make my own compiler for basically any reason I wish I would have done software engineering.

    • @grokitall
      @grokitall Před měsícem

      ​@@ShootingUtahthere is a reason why the compiler matters. most of the work in advancing programming in the last 50 years or so has shown that domain specific languages are key to problem solving. this is basically what you do when you create an api, you extend the language to be better able to talk about your problem.
      the compiler part gives you an idea of how your bad api's can make that solution harder to implement, and more importantly, why. as a side effect it also n3eds proficiency in so many other types of programming that you would be hard pressed to find an alternative which still gave a framework for teaching all of those other aspects.

    • @henryvaneyk3769
      @henryvaneyk3769 Před měsícem

      You are 100% wrong. From a guy that has been developing for 34 years. It is usually the CS types that are the most argumentative when they need to do the practical stuff to get the job done.

  • @echorises
    @echorises Před měsícem +9

    All the degrees exists for the sake of the academia, it is employer's decision to decide whether or not they are applicable for getting jobs as well. Some industries rely more on the degree as the knowledge to attain for the job is not publicly available somewhere else. Programming is not one of those industries.
    In reality though, a university graduate will always be at least slightly more disciplined or open to to learn the rest of the required knowledge. If it is a CS degree, then you--as the employer-- know that they know at least some stuff. A CS graduate, fresh out of the school, will always be lacking in knowledge that is in the job description while being overly knowledgeable in stuff that are not in the job description.

    • @echorises
      @echorises Před měsícem +5

      Also, academia is not "teaching what you have learned." Academics are not teachers. They are put into the position to teach simply because by default they have so much to teach and there need to be a way to keep them useful while they are not producing "knowledge" which is the actual description of what you do in academia. In any serious university, you will see that your professors use their right to go on sabbatical immediately when it is possible to finish up their real academic work.

    • @grokitall
      @grokitall Před měsícem +2

      ​@@echorisesI would argue that while there is a component of tenure which is about generating new knowledge, if you are so dense that you cannot pass the surrounding context on to your students, you are not really competent to get tenure in the first place.
      it is also a well known and well documented fact that understanding a problem can be hard, but helping someone else understand it is even harder and more importantly a different skill set involved.

    • @echorises
      @echorises Před měsícem +1

      @@grokitall I agree with you completely. But I tend to draw a line between the reality of the situation and what the characteristics of academia should dictate to begin with.
      Academia was started to be seen a "job factory" because industries preferred that if there was a job factory, it should be rooted in higher education. This, in turn, caused academia to be more like the industries (especially in capitalist countries where education is actually an industry). But the requirements of both differs from each other greatly. In the end, you end up with professors who are neither precise enough to be considered tenured nor knowledgeable or fast-adapting enough to be in the industry.
      After all, underlying idea of the university is still them being the place to generate knowledge while being surrounded by people who seek to generate knowledge, not converting students into good workers. It is the industries' responsibility to come up with solutions to address working discipline.
      That is why, if I really need to hire a CS graduate, I realize that it is MY RESPONSIBILITY to nudge them towards learning git, IDE, etc. I will even take this further, I would be very suspicious of recently graduated people who are in their early-20s with both a higher education and industry knowledge if they were not programmers before they enrolled in university. I would take the person who immersed themselves in the university life, instead of the people who closed themselves in their rooms and learned stuff that are specifically required in the industry.
      Saying all that, I don't think "git" is an industry-specific tool. I took all my class notes while using git and I wasn't even a CS major. Git should be used by everyone who uses computers to do stuff.

    • @grokitall
      @grokitall Před měsícem

      @@echorises i agree version control is to important and useful to only be used for programming. i would much rather have a repository of useful txt files handled with version control, instead of having microsoft word trying to mishandle multiple copies of a binary word document which has been modified by multiple people. git is just the best version control client we have.
      unfortunately, higher education has little to do with generating new knowledge. it is mostly a certificate mill used to generate enough income to pay for teachers and administrators to have a job. even worse, in higher level education a certain amount of teaching is forced upon post doctoral students without them being g8ven any teacher training, while professors are jumping through hoops trying to get external funding to pay for a very limited amount of research, with most of the time being used with students and funding hunts. worse still, until you get tenure, and thus don't need to worry about having a job next year, your actual research wil be constrained by the university to those non controversial bits of the subject that will help you get tenure.
      only after getting tenure are you free within the funding constraints to actually do any research you want in what little free time you are given. with the possible exception of japan, no country has yet produced a system where there is a part of the university which takes the pure research, funds getting it to the point where it is usable by industry, and then licenses the technology to industry to generate revenue to fund the part which takes the pure research and develops it.
      at that point, your tenured professors would actually be being paid to do pure research combined with developing existing research into stuff usable by industry, while the untenured ones could use the university development fund to find research which would be funded by the university, would help towards tenure, and would be passing knowledge to students. the post doctoral students would still split the time doing work which the professors had got funded combined with teaching.
      i would say it should not be possible to get your degree without having to get a teaching qualification as part of it, as so much of the time of professors and post docs is forced to be spent on teaching.
      as to producing students fit for industry, that has never been part of the goals of universities. with the exception of Germany, no country has a system of general education which is not designed with the intent of filtering out those not fit for an academic career, and basicaly throwing away the rest. germany does actually have a second path, dealing with some vocational qualifications.
      however most education is designed to take those unsuitable for academia and turn them into nice quiet sheeple, which we just cannot afford any longer.

    • @NihongoWakannai
      @NihongoWakannai Před měsícem

      "degrees exist for the sake of academia" is for rich people with money to waste. The average joe doesn't have money to spend on a degree without relying on it being an investment into getting a good salary to pay off their debt. In the modern day knowledge is incredibly free and open on the internet; A university is where you go to get a piece of paper to prove you got knowledge so you can get a job, if you just want knowledge then you don't need to pay all that money.

  • @neoqueto
    @neoqueto Před měsícem +3

    Everybody tells you to just "use git" but no one ever cares to explain the philosophy and logistics of using it. Why commit? Why clone? Why push? Why branch? And when? And when not to? And how to learn to appreciate it being less convenient than just hitting ctrl+S, but absolutely necessary?
    Because MISUSE of git is just as bad as not using it.

  • @Rohinthas
    @Rohinthas Před měsícem +2

    I am happy to report that my Software Engineering class had TWO whole lessons dedicated to version control and the homework for those lessons included initializing a git repo a performing a couple of the basic commands. Granted by that point I had been using git for a while but I was thoroughly shook when I met people from other schools that had never used it.

  • @-parrrate
    @-parrrate Před měsícem +2

    fun fact: Git is 18 years older than 0b syntax for integer literals in C

  • @TazG2000
    @TazG2000 Před měsícem +4

    Can you effectively use tool x" is a far more important question than "did you happen to learn tool x while in school". If and when the industry moves to a replacement of git, knowing the old thing will be worthless compared to the ability to adapt on the spot.
    I understand being surprised at a lack of experience, but the leap to "these people are unhireable" for this specific reason seems pretty damn elitist.

  • @gentlemanbirdlake
    @gentlemanbirdlake Před měsícem +3

    We are almost at a point where with copy on write filesystems the version control is inherent in the base FS and then you can just plop VCS tagging and branching abstrations upon it and call it a day. VCS all the time everywhere and tag it if you really want to keep the history archived.

  • @ambhaiji
    @ambhaiji Před měsícem +1

    The people that say git is not must to learn are most likely the same people that say you cannot drink soup straight from the bowl.

  • @hanes2
    @hanes2 Před měsícem +2

    When I was in school for CS back in 2009-2010. Using git was a optional for clearing the course, but was a requirement to clearing it with high grade/points

  • @SuperKavv
    @SuperKavv Před měsícem +4

    Git is essential for software development, and schools should prepare you for the industry by teaching you the basic tools. Doesn't have to be more than an hour or anything.
    Regarding CLI vs. GUI, I prefer CLI, but there are things that GUIs are just great at. Please do point out my skill issues, so I can improve.
    - Quickly selecting specific files to add instead of tabbing through near identical file paths (I know interactive exists). I guess you can use wildcards, haven't done that in a long time.
    - Only adding specific line changes from a diff to a commit, e.g. you've made two changes to a single file and want to commit them separately. Sometimes you can sort it out with stash, but it always sucks. GUIs make that much easier.

    • @oyasumi_zim
      @oyasumi_zim Před měsícem +2

      I like to use them both together the way you mentioned, the CLI is faster for most things but when making a large change I will review each line and optionally stage a hunk or line and make sure I am happy with what I am commiting which is easier to do in the GUI and kind of clunky when using interactive commit. If the change is fairly small then I'll just use the cli to run a diff and add the files and commit.

  • @theoldknowledge6778
    @theoldknowledge6778 Před měsícem +2

    I’ve graduated in CS and I can confirm that. The graduation is more focused on algorithms, logic, math and data structures

    • @grokitall
      @grokitall Před měsícem +1

      the point here is that there are a set of core technologies which are essential for being able to work on code in a modern context, most of which can e taught the basics of in less than an afternoon.
      structured programming used to be controversial, so was version control, and so is continuous integration. i would argue that you should not be able to graduate without being able to submit code, which implies knowing a language, producing a program, checking it into version control, and having it pass continuous integration.
      all of that can be taught in an afternoon using fizbuzz and the idea that you can spend four years learning advanced techniques without learning the basics of working in a modern high end environment should not be acceptable.

    • @ArgoIo
      @ArgoIo Před měsícem

      So was mine. We still had to turn in our homework using git and docker for more complex tasks.

  • @recursivecube44
    @recursivecube44 Před měsícem +1

    I am studying CS at a University in Europe and I really like the approach my course took to making student learning git. It wasn't taught as a class on its own, we just had to use it to submit our assignments for some of our courses. They provided some guides and some optional tutorials for the people who needed help, but we were left to our own devices. I think this is a great approach as it makes students follow the same pattern that they will have to do for every tool they will use throughout work as a dev. I can't fathom that a university course these days doesn't make students use at least some kind of version control.

  • @paulkohler8868
    @paulkohler8868 Před měsícem +1

    We had a very basic overview of what VCS is, and an in class exercise where we had to show that we committed the assigned exercise to SVN. They told us that Git, Mercurial, and other VCS exists and let us explore those on our own time. Took less than half a class session and was plenty of prep for the group projects we had later in the semester. IMO a great approach.

  • @colecoleman8135
    @colecoleman8135 Před měsícem +4

    You keep saying your channel isn't for beginners, but I would like to counter that. While you cover dense topics, I can say as a new programmer you have been incredibly helpful for me. I'm self taught and don't have anyone around to talk about programming with. While you talk about complicated subject matter, you give me tons of thing to look into. I use your subject matter as a guide to things I should learn about and it has made me much better. Unrelated, I know how to use git.

  • @nicejungle
    @nicejungle Před měsícem +2

    I cannot imagine coding now without git, it's just insane.
    How do you expect find regressions without git-bisect ?

  • @SaiKrishnaDubagunta
    @SaiKrishnaDubagunta Před měsícem +2

    If Engineering degrees were to teach what's used in the jobs, there's going to be a new curriculum every 6 months. The job of engineering degrees, even with the most volatile engineering dept (CS) is to drill the fundamentals in, because the fundamentals don't change. The degrees are taught to develop a mindset to solve problems, NOT TO GET JOBS. You do what you want with the knowledge you have, that's where career counsellors come in.
    I wanna go to a college not to learn what I can already learn while working, but how to learn something new.

  • @arcanernz
    @arcanernz Před měsícem +1

    Git can be learned in a day if you’re learning very basic very surface level commands. I converted our entire codebase from csv to svn to git as well as taught our whole team git. It took me two weeks to learn the common commands and a month or two to internalize all the concepts. It is not intuitive and ppl who think git is easy most likely barely know git. But this was 15 years ago and it’s probably easier to learn git today but it’s still pretty complex.
    Knowing your tools well will make your job easier and make you a more capable developer.

  • @thomassynths
    @thomassynths Před měsícem +7

    Theo, where was the (deserved) shaming when the Pal World devs said they didnt use git? You applauded them.

    • @Z3rgatul
      @Z3rgatul Před měsícem +2

      Lmao, good catch

    • @ciarancurley5482
      @ciarancurley5482 Před měsícem +4

      I'd add that to the 5%. Pal World dev is just wierd, but they obviously know what there doing with svn.

    • @SnowTheParrot
      @SnowTheParrot Před měsícem +1

      again, the exception.
      they all know how, just chose not too

    • @thomassynths
      @thomassynths Před měsícem +1

      @@ciarancurley5482 they claimed they used a bucket of usbs and no vcs at all

    • @NihongoWakannai
      @NihongoWakannai Před měsícem +1

      @@SnowTheParrot lmao no, they're absolutely insane for using a physical container of storage drives instead of version control software. Just because their hacked together game was wildly successful doesn't mean we should justify their crazy development practices.

  • @kuakilyissombroguwi
    @kuakilyissombroguwi Před měsícem +4

    It's absolutely insane to me people are graduating from college with CS degrees who don't know git, and have never used libraries/frameworks/APIs...
    Are they still teaching mainframes, banking database systems and assembly language like it's 1999?

    • @piff57paff
      @piff57paff Před 21 dnem +2

      I'm not sure if they have to teach frameworks, as depending which field you'll enter, there are different frameworks expected.
      Why don't students skim through job posts and check requirements and then learn on their own? Back then we were told that university isn't school and you'll have to learn on your own as well. All the good devs at university coded in their free time and/or took on a side job.
      TBH if I get the feeling during an interview, that a candidate is not able to figure out what they need to learn on their own, that would be concerning for me.

    • @kuakilyissombroguwi
      @kuakilyissombroguwi Před 20 dny

      @@piff57paff 100% this. With the added caveat that back when coding wasn't a "hot job" universities were teaching people cutting edge stuff. Let's not forget universities were the first to get access to the internet. Nowadays, they just can't seem to be capable of keeping up with the times.

  • @mchisolm0
    @mchisolm0 Před měsícem +2

    Yeah, as a teacher, highlighting how the file system works for students learning git has been important. It feels this is a more important conversation than I realized because I would have thought this would be easy to get buy-in. Maybe not buy-in from universities, but still.

  • @uberfuzzy
    @uberfuzzy Před 18 dny +1

    At my last job, I worked with the tech writers, and we stored our entire help document system in git. Storing everything under "content as code" doctrine. It taught the tech writers some great new git skill sets. They didnt need to do anything fancy like rebasing or cherry picking or bisecting, just simple branch concepts. Even if they only ever did use the UI tools, the fact that they could go back to ANY point in our 8 year history and see who wrote or changed a line of text in any file blew their minds (and the legal team loved that too)

  • @NithinJune
    @NithinJune Před měsícem +4

    bro what

  • @stephenjames2951
    @stephenjames2951 Před měsícem +3

    Not using git is like a mechanic not knowing “righty tightly lefty loosy”

  • @safairette
    @safairette Před měsícem +1

    In one of my earlier courses in the first week's practice the lecturer just went: "we're using git for submissions and grading, today's work is just the CLI basics, if you know that already you're free to go, proper work starts next week". And by the end basically everyone knew it well enough to do most of the work asked of us.

  • @steffenjensen422
    @steffenjensen422 Před 11 dny

    I learned git as a physics major. It wasn't even part of the curriculum, there was just some classes that expected us to use it, just like you said.
    They typically linked a short tutorial on how to use it at the beginning of the course for people who were completely unaware but we were expected to understand this by ourselves - and it wasn't that hard

  • @yousafraza9347
    @yousafraza9347 Před měsícem +3

    any take on angular new direction?

    • @JeffGeerling
      @JeffGeerling Před měsícem +10

      They're approaching things from a new angle.

  • @kspfan001
    @kspfan001 Před 18 dny +4

    how the heck to people get through 4+ years of computer science and not at least *accidentally* stumble into something that requires spending 15 minutes figuring out how to clone something from a git repo?

    • @kanucks9
      @kanucks9 Před 17 dny

      Super easily?
      As long as no course requires it, why would you stumble into anything?
      I wouldn't assume any student would do literally anything outside of classwork, related to the field

    • @robmckennie4203
      @robmckennie4203 Před 14 dny

      They don't stumble into it because they stumble into the .zip download first 😂

  • @justsomeitweeb
    @justsomeitweeb Před 13 dny

    At least half my CS related classes in university required us to use git to turn in projects, and one of them even required a set number of days with commits to ensure we didn't wait until the last minute.

  • @lisamith
    @lisamith Před měsícem +1

    I have so many thoughts about this. Even friends of mine who studied physics eventually learned about Git when they were working on lab stuff.
    How somebody who wants to work on software does not acquire at least some knowledge about Git is beyond me.
    At my university every CS and software engineering student starts almost every project by creating a Git repository. There are even classes in which the professor will create a GitLab project for each group. In others a Git diff has to be submitted. I could go on and on about this

  • @0nepeop1e
    @0nepeop1e Před měsícem +5

    i really dont understand why people are mad for this, git is something not being taught in school or university, so it is completely normal somebody graduate without knowing it, and why mad when somebody just point out the fact. it is such a great tool and almost every company is using it, so someone is recommending it, thats all.

    • @SahilP2648
      @SahilP2648 Před měsícem

      Well for a decent sized project, you absolutely need to use git. But the problem is that students need to be taught WHY git is necessary, WHY it was developed (Torvalds developed it because he hated using the VCS solutions of the past and wanted to address and solve the issues facing those softwares), and WHY having stuff like branches and merging branches etc. is necessary. And I also found out that there's not a single video on YT that does a proper job of telling you intuitively how git works, also not to mention the only way I found it useful is to work with VSCode and gitless/gitlens, without which I am seriously in bad shape for solving merge conflicts lol. I use git CLI only for commands.

    • @harrytsang1501
      @harrytsang1501 Před měsícem

      In my university, you would have used git at least once, without understanding it
      But you would not need to touch linux/unix cli, database management, network protocols or heard of RESTful API before graduating.

    • @torsten_dev
      @torsten_dev Před měsícem

      Our university is teaching git along with basic ethics (fun stories of code that killed maimed or bankrupted). It's a required course prior to a collaborative coding project.

    • @anupambphoto
      @anupambphoto Před 21 dnem

      Because the way to get traction in CZcams is say a sentence and put a lot of emphasis as if it is shocking and get a whole lot of camps for and against the topic. The next topic is peanut butter and jelly is good for sorting or not.

  • @Viviko
    @Viviko Před měsícem +13

    Wtf… folks actually graduating without knowing GIT…
    I do t even understand how to use the Git GUI. I tried it once and I was like… bruh. The CLI is way faster lol

    • @musashi542
      @musashi542 Před měsícem +1

      i didnt even know such thing exists .

    • @franciscogonzalez1879
      @franciscogonzalez1879 Před měsícem

      wait is there more than git cmd?????

    • @SahilP2648
      @SahilP2648 Před měsícem

      git cmd sucks, not sure how people would use it. I use git in VSCode with gitlens/gitless, it's an amazing experience using it.

    • @FlorianWendelborn
      @FlorianWendelborn Před měsícem

      @@franciscogonzalez1879 dude there’s a whole ecosystem of git clients. To name a few common ones: Tower, Fork, GitKraken

    • @user-qm4ev6jb7d
      @user-qm4ev6jb7d Před měsícem +3

      Don't care for Git GUI, but the Visual Studio integration with Git is quite good, actually.

  • @kingarth0r
    @kingarth0r Před 15 dny +1

    Im thankful that my classes require us to learn how to use developer tools on top of doing classes. We learn git, GCP, React, vim, linux, pytotch, and more. This is on top of the standard curriculum (algorithms, OS, intro computer engineering, computer architecture, compilers, networks).

    • @kingarth0r
      @kingarth0r Před 15 dny

      Also we are required to learn git freshman year during DSA

  • @AzraAnimating
    @AzraAnimating Před měsícem +1

    In every CS Course I’ve heard in College git was introduced as „git - the Version control program, you probably should know how this works“…

  • @amomchilov
    @amomchilov Před měsícem +5

    There's no way someone sincerely believes that "basic git commands" can be learned in 15 minutes. Git is incredibly complex, we only find it easy because we're used to its quirks.

    • @nicejungle
      @nicejungle Před měsícem +2

      it's very easy as long you already know what is a directed acyclic graph, which every programmer should know too

    • @amomchilov
      @amomchilov Před měsícem

      @@nicejungle What if the people in question aren't programmers yet? They're students, they won't know most things yet, almost by definition.

    • @nicejungle
      @nicejungle Před měsícem

      @@amomchilov
      we're talking about graduate students.
      If in 4 years, you've never used git, it means you've never programmed and/or you've never used an opensource project on internet (everybody use git).
      It's a red flag

    • @amomchilov
      @amomchilov Před měsícem

      @@nicejungle since when were we talking about graduate students? This video talks about git being one of the first things all uni students should learn while learning to code.

    • @nicejungle
      @nicejungle Před měsícem

      @@amomchilov
      please watch the video

  • @fredoverflow
    @fredoverflow Před měsícem +8

    I would rather hire someone who admits not knowing git at all than someone who confidently (and incorrectly) claims a commit is diff/delta/set of changes (when it fact every commit is a complete snapshot of the entire project).

    • @SahilP2648
      @SahilP2648 Před měsícem +1

      Depends on the context when you say that. git works on diffs. When you checkout a hash (the hash is the combined hash of the project state with author signatures and all that), git will calculate all the changes and recreate your code. If git were to maintain each file's version separately (as in whole files), you would see a lot more storage occupied from your .git folder.

    • @harrytsang1501
      @harrytsang1501 Před měsícem +1

      @@SahilP2648 You are correct. A commit is a set of diffs. However, the git hash, tag and branch names points to a complete snapshot of the codebase.
      I will still confidently say that a commit is a set of diffs. The fact that the handle/reference/pointer that you use to access that commit points to a complete snapshot does not change that fact

    • @SahilP2648
      @SahilP2648 Před měsícem

      @@harrytsang1501 like I said, git does not store your entire project's files as is, in that sense it is not a snapshot. When you checkout a hash then yes it restores all files within your root the way you want it to be, but git will always calculate the diffs and store them separately, never whole files, unless you add a new file to the project, only then it will store a new whole file.

    • @NihongoWakannai
      @NihongoWakannai Před měsícem +1

      @@harrytsang1501 So it is a set of diffs and OP is just being an annoying pedant? Cause I was real confused wtf they were talking about.

    • @blarghblargh
      @blarghblargh Před měsícem

      @@NihongoWakannai a git repo is a tree of diffs, yes. and any individual sha is a pointer to a node in that tree, and is a diff on top of the previous node. I am not sure why they'd say it's one or the other, and not both :P

  • @toast_on_toast1270
    @toast_on_toast1270 Před 14 dny +1

    I think it should be a required part of the curriculum. It doesnt have to be a module, but it wouldnt be hard to make it a feature of a group work assignment.
    As someone who converted from a music degree into a CS one, I was not a techinical person at all. I just really enjoyed my computer music module and thought "screw it, if i'm coding I might as well switch to something that pays well".
    My point is: not everyone on an undergrad CS degree has any prior knowledge about technical stuff. Maybe CS is unique in that. I would eventually have come across git, yes, but exposure at uni did help me get to grips with the world of software development quickly and do better on my first job than if it were not taught at all.

  • @channelgogrvk
    @channelgogrvk Před měsícem

    my friend worked for a company about 15 years ago where they weren't using any revision control. they were using tarball snapshots. it was a large enterprise with a custom client management application, >150,000K LoC. i was shocked. he didn't even know how to use revision control either.

  • @jesse9996
    @jesse9996 Před měsícem +3

    I'm not sure why you find that astounding Theo. It sounds like something a student might pick up later.

    • @_DATA_EXPUNGED_
      @_DATA_EXPUNGED_ Před měsícem +1

      It tells a whole lot about the student in question. Never having used git or other version control also means:
      1. No engagement with the open source community at all
      2. No interaction with any existing projects outside of university
      3. Never worked together with people outside of your direct peers in university
      4. Barely any engagement with the coding community at large - it's practically impossible to not stumble over git when you actually talk to people, read stuff, ... - the "hammer" analogy really fits.

    • @jesse9996
      @jesse9996 Před měsícem

      @@_DATA_EXPUNGED_
      1. That's not necessary at all if by engagement with open source you mean writing code for open source. LOL
      2. and 3. are essentially the same...
      Just because students haven't learned Git doesn't mean they have "No interaction with any existing projects outside of university".
      4. Just because students haven't learned Git doesn't mean they don't know what it is. LOL

    • @_DATA_EXPUNGED_
      @_DATA_EXPUNGED_ Před měsícem

      @jesse9996 Your response displays a significant lack of maturity. If you can't deal with disagreement, don't put your opinions out there for everybody to comment on.
      1. No, not exclusively. Even such small things as downloading a repo from github, doing some small tweaks for yourself, etc - usually you are going to use git for that.
      2. I'm not aware of a single significant project not using a VCS. It's just not a thing. Yesyes, some tiny exception probably exists somewhere - but the likeliness of a student randomly seeing them is rather low.
      4. Oh sweet summer child, you have no idea... I've never seen such a high rate of utterly untalented, uninterested and curiosity-free young people who also assume they deserve a massive compensation for virtue of them being able to sit through a couple years of university regurgitating books.
      The most important traits are curiosity and general interest/passion and at least a decent coding ability, though the former 2 weigh more heavily.
      I have - so far - never had a person interview who was clearly passionate about their craft but didn't know at least git basics, it just doesn't happen.
      And _those_ are the people I want to hire. Passionate ones who love what they are doing and are willing to keep learning forever.
      In return, they get those massive salaries - not for their degree or pure existence though, instead for their good work.
      I've stopped hiring recent grads without at least a couple years experience (own projects count too if they can explain what they did well, of course), there's just no point. There's enough capable people out there right now, why would I take the risk and hire an uninterested "i just want the money" guy?

  • @supdawg7811
    @supdawg7811 Před měsícem +6

    Yeah I kinda think this is a bad take. CS is largely unrelated to Git. Sure, git uses some CS concepts, but students will get more out of trying to learn foundational stuff (which Git isn’t) when they have _all_ the resources available to them. Learning git doesn’t require a university’s resources.
    Also, re: version control: also a very simple concept that doesn’t require a university’s resources.
    Edit: I’m watching this more and more and these takes are getting worse and worse. These people want to turn CS into software engineering, which it absolutely isn’t.

  • @Mr6Blindside
    @Mr6Blindside Před 10 dny

    My school had their own internally hosted git server which all projects were required to be submitted via. That requirement saved many a friend from destroying their projects

  • @MarkJaquith
    @MarkJaquith Před měsícem +1

    I spent a few years as an advisor for a masters program with a subspecialty in web design. So to be clear, these were communications majors who were minoring in web design. Every year, I'd load all the syllabus PDFs from the professors up and search across them for two phrases: "accessibility" and "git". I didn't advocate for these to be their own classes. But when NONE of the classes even MENTIONED either of those terms, I felt like the program was doing the students a massive disservice. And these weren't even programmers... these were people who just probably would have to encounter HTML in their career (which should be accessible and version-controlled).
    This take was less spicy than a 1.

  • @pinatacolada7986
    @pinatacolada7986 Před měsícem +6

    The education system is obsolete garbage. You can learn faster on CZcams. Education is the last thing young people should be spending money on when houses and well paid jobs are unobtainable.

    • @piff57paff
      @piff57paff Před 21 dnem

      Education costing money is the real issue then.
      Education has its place as it's giving a framework to build upon. If you don't know what you don't know, things are getting hard. On the other hand education and lecturers are often lagging behind reality as often they are somewhat detached from the industry.

  • @MaxenceFrenette
    @MaxenceFrenette Před měsícem +2

    While i agree that committing to main is not super hard, it took me a while to get good at managing multiple branches, merging, stashing, without constantly shooting myself in the foot. However, perhaps this speaks more about the status of git tooling I had to deal with circa 2010 compared to today's tools (thank you VS Code).

    • @morosis82
      @morosis82 Před měsícem

      Haha, yeah I learned git in like 2008 or something, worked with a rockstar Dev who wrote an interposer service between git and the company's source control system, Clearcase (shudder). Was so much nicer but a bit esoteric, especially when we were trying to migrate the history across and push it as a replacement.
      Today's got is relatively simple to use even for merging and branch management.

    • @blarghblargh
      @blarghblargh Před měsícem

      tortoise sucked heh. it was a good svn tool, but it really wasn't well suited to git's model. when I eventually adopted sourcetree my life became a lot easier.
      the tutorials back then sucked too, and got way too into the weeds of branching strategies etc, and didn't explain the fundamentals of the data structure underlying things well enough for me to base my understanding off of. hopefully they're better now.

  • @protonnumber8867
    @protonnumber8867 Před 6 dny

    We didn't get taught git in my electronic engineering course, but we were required to use "a VCS" for one of our group projects, which basically meant git & GitHub.
    What usually happened was there was a person in the group who knew git, and they would teach everyone else.
    On the other hand, I know programmers in small not-software companies that don't use VCS at all.

  • @Hycord
    @Hycord Před 18 dny

    When I came to my current university I asked students in the CS department about the information and they said they don’t touch Git, docker, or anything that actually builds good engineers

  • @Charles-sy7ej
    @Charles-sy7ej Před měsícem +2

    failed at learning to program. but I know the basics of git. I can set up an ssh key without being shown, check logs status etc, clone projects, commit, and push code. it really is easy but if I wasn't on youtube learning what I should learn I probably wouldn't know git.

  • @johnbarnhill386
    @johnbarnhill386 Před 18 dny

    My college program requires git to be used for one of the classes in the first semester, and only needed maybe half a lecture to teach. This last semester, I had the pleasure of working with someone that didn’t know what a commit was, despite having had to pass the class where you needed to use git. Complete nightmare.

  • @prozacgod
    @prozacgod Před 17 dny

    My favorite source control was a locking-based source control that was used in Delphi back in the 90s. Every file was checked out and locked to prevent other developers from working on it. It was absolutely abysmal and you had to often beg other developers to release their stale locks. "It was fun."

    • @Mnementh-ub8md
      @Mnementh-ub8md Před 7 dny

      Ugh, sounds rough. I heard about these fabled lock-based VCS. I don't know why they exist. The commit-merge model for VCS exists since eons.

  • @rikschaaf
    @rikschaaf Před měsícem

    While in a CS degree it's indeed maybe not necessarily needing to learn git (though it would help), you'd at least need to get the basics of version control:
    - what is a commit?
    - what is a tag?
    - what is a branch?
    - what is a merge?
    - what is a merge conflict?
    Once you know those, you can try to learn one or two version control things, like git, mercurial, etc. and learn how you interact with the above elements (like switching between branches, amending commits, using a split view for resolving merge conflicts, creating pull requests, etc). It's even fine if you only do that through a UI, like SourceTree or the integrated UI in tools like VSCode or IntelliJ, so long as you at least know the basic concepts. The basic things that you'd need to know are:
    - how to select files to commit
    - how to actually make the commit
    - how to tag a commit
    - how to create a branch
    - how to switch between branches/tags/commits
    How to merge (or rebase) branches, resolve merge conflicts or how to do a code review for a pull/merge request can be taught on the job, but would be a nice bonus to know those beforehand too.

  • @Efandr
    @Efandr Před měsícem +1

    Even has a self-taught for less than a year, I know how to use: API,frameworks, liberty,
    It is absolutely insane that people who spend 4 years and a lot of money, don't even know that type of stuff 💀

  • @joshman1019
    @joshman1019 Před měsícem +2

    I also have a take that people are going to dislike regarding bespoke development environments. I've corrected more bad code from the "fast, window-tiling, linux terminal only, NeoVim" crowd during my career because they are always in a mad-dash. Too many engineers put so much focus on the tooling that they don't actually write good logic. All of their time and energy is focused on their NeoVim settings and the way their windows tile.
    Then when they finally start writing code it is written hastily and no more than a second or two of actual thought went into it.
    SO while Git is important, learning vim should be LAST priority.

    • @absurdengineering
      @absurdengineering Před 17 dny

      It really helps to use an actual IDE that gives you good good feedback - hints about api misuses, deprecated language constructs, old idioms for which much better ones exist today, etc. Writing code in an editor that knows not much about what the code actually means makes me feel naked.

    • @joshman1019
      @joshman1019 Před 17 dny

      @@absurdengineering That's exactly right. Almost ALL of the code corrections have been deprecation or security related.

  • @IrizarryBrandon
    @IrizarryBrandon Před 24 dny

    The main motivator for learning Git as a beginning programmer isn't even collaboration with other developers (as central that is especially to open source development), it's the ability to move yourself out of the corners you code yourself into, for example when working on a personal project. I remember working through K&R2, and getting stuck on one problem simply because I had no way, in the parlance of Git, to check out a prior good commit where I hadn't gotten stuck yet; I hadn't been using any sort of version control. Same with when I tried to work through SICP.
    In this sense, the analogy that Git is like a save-point system used in games is very apt.
    So for me, two very key things when learning to code are:
    1. version control.
    2. using a debugger.

  • @HerrBlauzahn
    @HerrBlauzahn Před měsícem +1

    We had a section about git in several modules. Also, version control is an important part of programming and computer science in general. We also learned a bit about SVN, but mostly git.