We Need To Stop Lying About Git

Поділитися
Вставка
  • Опубліковано 21 чер 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 🙏
  • Наука та технологія

КОМЕНТАРІ • 1,3 тис.

  • @ciarancurley5482
    @ciarancurley5482 Місяць тому +669

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

    • @haleemhawkins8112
      @haleemhawkins8112 Місяць тому +61

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

    • @TomRaine
      @TomRaine Місяць тому +13

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

    • @mkabilly
      @mkabilly Місяць тому +19

      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 Місяць тому

      yoo true, happened to me

    • @kendlemintjed7571
      @kendlemintjed7571 Місяць тому +2

      story of my life

  • @TJChallstrom916-512
    @TJChallstrom916-512 Місяць тому +646

    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 20 днів тому +25

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

    • @johngagon
      @johngagon 15 днів тому +5

      * applauses in lisp *

    • @shlak
      @shlak 6 днів тому +5

      @@johngagon * applautheth with lithp *

  • @tato-chip7612
    @tato-chip7612 Місяць тому +249

    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 Місяць тому +21

      why do they think that's gatekeeping?

    • @sub-harmonik
      @sub-harmonik Місяць тому +66

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

    • @rogergalindo7318
      @rogergalindo7318 Місяць тому

      gold comment lol

    • @ImperiumLibertas
      @ImperiumLibertas Місяць тому +18

      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 29 днів тому +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

  • @LetterlessAlphabet
    @LetterlessAlphabet Місяць тому +261

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

    • @darkwraithcovenantindustries
      @darkwraithcovenantindustries Місяць тому +23

      git-o-logic

    • @kieranhosty
      @kieranhosty Місяць тому +16

      git-o-logic

    • @ImperiumLibertas
      @ImperiumLibertas Місяць тому +15

      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 29 днів тому +7

      @@ImperiumLibertas never needed it lol

    • @blarghblargh
      @blarghblargh 23 дні тому +5

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

  • @ericng8807
    @ericng8807 Місяць тому +651

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

    • @leoaldamas
      @leoaldamas Місяць тому +3

      🤣

    • @bentruyman5077
      @bentruyman5077 Місяць тому +33

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

    • @SamOween
      @SamOween Місяць тому +12

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

    • @ravenecho2410
      @ravenecho2410 Місяць тому +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 Місяць тому +14

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

  • @MichaelSchuerig
    @MichaelSchuerig Місяць тому +123

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

    • @kingxerjsaeg
      @kingxerjsaeg 21 день тому +22

      "Update for today's work"

    • @v0id_d3m0n
      @v0id_d3m0n 20 днів тому +2

      See conventional commits

    • @yoyobeerman1289
      @yoyobeerman1289 19 днів тому +19

      "It doesn't compile anymore"
      "It compiles again"

    • @Trafulgoth
      @Trafulgoth 13 днів тому +9

      "Fixed bug in the code"

    • @ForayBN
      @ForayBN 8 днів тому +3

      git commit -m "idk"

  • @CaptainToadUK
    @CaptainToadUK Місяць тому +175

    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 16 днів тому +21

      They wrote their own Programm in perl in 1993

    • @CaptainToadUK
      @CaptainToadUK 16 днів тому +2

      @@borstenpinsel yep. Nailed it! 😜

    • @user-bc7cb8uu7e
      @user-bc7cb8uu7e 9 днів тому +9

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

    • @Fasteroid
      @Fasteroid 9 днів тому +1

      💀

    • @JCel
      @JCel 8 днів тому +4

      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.

  • @droid-droidsson
    @droid-droidsson 16 днів тому +44

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

    • @Respectable_Username
      @Respectable_Username 5 днів тому

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

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

  • @Sammysapphira
    @Sammysapphira Місяць тому +189

    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 Місяць тому +34

      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 Місяць тому +8

      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 Місяць тому +9

      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 Місяць тому +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 Місяць тому +3

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

  • @boreddad420
    @boreddad420 Місяць тому +115

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

    • @Turalcar
      @Turalcar 21 день тому +2

      Adobe delenda est

  • @artrix909
    @artrix909 Місяць тому +572

    Wait... people get hired without knowing git?

    • @LiveType
      @LiveType Місяць тому +74

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

    • @bentruyman5077
      @bentruyman5077 Місяць тому +47

      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 Місяць тому +3

      @@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 Місяць тому +15

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

    • @mascot4950
      @mascot4950 Місяць тому +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 Місяць тому +66

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

    • @BittermanAndy
      @BittermanAndy Місяць тому +3

      vcs != git.

    • @dloorkour1256
      @dloorkour1256 28 днів тому +15

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

    • @diamondman4252
      @diamondman4252 13 днів тому

      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 Місяць тому +138

    "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 Місяць тому +4

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

    • @ludamillion
      @ludamillion Місяць тому +1

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

    • @thekwoka4707
      @thekwoka4707 Місяць тому +3

      @@nctay but none are actually exceptions

  • @turc1656
    @turc1656 Місяць тому +24

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

    • @aaa-my5xy
      @aaa-my5xy Місяць тому +8

      sounds like a skill issue to me

    • @NihongoWakannai
      @NihongoWakannai 28 днів тому +9

      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 6 днів тому

      Oof 😂😂

  • @lunalangton5776
    @lunalangton5776 Місяць тому +173

    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 Місяць тому +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 Місяць тому +47

      @@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 Місяць тому +15

      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 Місяць тому +15

      @@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 Місяць тому +11

      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.

  • @advertslaxxor
    @advertslaxxor Місяць тому +50

    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 Місяць тому +12

      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 Місяць тому +8

      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 Місяць тому

      @@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 21 день тому +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 21 день тому

      @@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 Місяць тому +34

    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 13 днів тому

      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.

  • @RuySenpai
    @RuySenpai Місяць тому +42

    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 Місяць тому +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 Місяць тому

      ​@@SahilP2648for you and your 32 subs 😂

    • @quinnherden
      @quinnherden Місяць тому

      ​@@paultapping9510Nobody starts with subs 🙄

    • @SahilP2648
      @SahilP2648 Місяць тому

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

  • @gardnmi
    @gardnmi Місяць тому +41

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

    • @user-in2cs1vp6o
      @user-in2cs1vp6o Місяць тому +2

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

    • @user-nr4ju3qd9o
      @user-nr4ju3qd9o Місяць тому

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

    • @nicejungle
      @nicejungle Місяць тому

      Me neither. It's just insane

    • @JoshPeterson
      @JoshPeterson Місяць тому +5

      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 Місяць тому +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

  • @danmerillat
    @danmerillat 29 днів тому +17

    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"

  • @xc13z829
    @xc13z829 Місяць тому +177

    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 Місяць тому +3

      That's sad man.

    • @SnowTheParrot
      @SnowTheParrot Місяць тому +27

      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 Місяць тому +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 Місяць тому +3

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

    • @Echa37-H37
      @Echa37-H37 Місяць тому +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.

  • @bentruyman5077
    @bentruyman5077 Місяць тому +38

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

    •  Місяць тому

      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 Місяць тому +3

      Version control != Git.

    • @BrooksMoses
      @BrooksMoses 20 днів тому +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 9 днів тому +3

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

    • @BittermanAndy
      @BittermanAndy 9 днів тому +1

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

  • @dyto2287
    @dyto2287 Місяць тому +43

    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 Місяць тому +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 2 дні тому

      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.

  • @firstlast-tf3fq
    @firstlast-tf3fq Місяць тому +71

    “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 Місяць тому +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 Місяць тому +6

      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 Місяць тому +5

      @@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 22 дні тому +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 22 дні тому +1

      @@dudaseifert oh sure

  • @ivanfilhoz
    @ivanfilhoz Місяць тому +18

    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 5 днів тому +1

      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.

  • @hatter1290
    @hatter1290 Місяць тому +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 Місяць тому +4

      agree. DAG for example

    • @luuc
      @luuc Місяць тому +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 Місяць тому +1

      @@nicejungle And specifically a Merkle DAG

    • @SJohnTrombley
      @SJohnTrombley Місяць тому +4

      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 Місяць тому

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

  • @dakdevs
    @dakdevs Місяць тому +29

    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 9 днів тому +2

      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 7 днів тому +7

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

  • @harrytsang1501
    @harrytsang1501 Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому

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

    • @avarise5607
      @avarise5607 Місяць тому

      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 29 днів тому

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

  • @elliottmarshall1424
    @elliottmarshall1424 Місяць тому +48

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

    • @duven60
      @duven60 Місяць тому +4

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

    • @TheKastellan
      @TheKastellan Місяць тому +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 Місяць тому

      Tracking issue for gay rights​@dstick14

    • @ludamillion
      @ludamillion Місяць тому

      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 29 днів тому

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

  • @harshmpatil
    @harshmpatil Місяць тому +9

    I wish I could control my life through version control.

  • @bryanenglish7841
    @bryanenglish7841 Місяць тому +22

    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 Місяць тому +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 29 днів тому +1

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

  • @themoderncoder
    @themoderncoder Місяць тому +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 Місяць тому +2

      I absolutely love your git videos. please keep making them

  • @akam9919
    @akam9919 Місяць тому +36

    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 Місяць тому +4

      Alacritty+tmux+editor is win

    • @lukeskywalker7029
      @lukeskywalker7029 Місяць тому +16

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

    • @jahinzee
      @jahinzee Місяць тому +5

      **neovim

    • @AndrewTSq
      @AndrewTSq Місяць тому

      @@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 Місяць тому +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".

  • @keffbarn
    @keffbarn Місяць тому +41

    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 Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому +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).

  • @krank23
    @krank23 Місяць тому +9

    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 11 днів тому +1

      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

  • @Phaceial
    @Phaceial Місяць тому +1

    How are assignments turned in? Starting my sophomore year I had to turn in projects with links to my github or I was managing them in a classroom org....

  • @Holobrine
    @Holobrine Місяць тому +8

    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 Місяць тому

      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 6 днів тому

      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 5 днів тому

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

  • @jacobleslie8056
    @jacobleslie8056 Місяць тому +6

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

  • @br3nto
    @br3nto Місяць тому +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 2 дні тому

      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.

  • @EmperorFool
    @EmperorFool Місяць тому +9

    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 Місяць тому +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 Місяць тому

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

  • @SamOween
    @SamOween Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому

      ​@@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 Місяць тому

      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.

  • @spuzzdawg
    @spuzzdawg Місяць тому +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.

  • @alexpyattaev
    @alexpyattaev Місяць тому +10

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

    • @chriss3404
      @chriss3404 Місяць тому +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 Місяць тому

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

  • @juliocorzo3241
    @juliocorzo3241 Місяць тому +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.

  • @gentlemanbirdlake
    @gentlemanbirdlake Місяць тому +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.

  • @yousafraza9347
    @yousafraza9347 Місяць тому +3

    any take on angular new direction?

    • @JeffGeerling
      @JeffGeerling Місяць тому +10

      They're approaching things from a new angle.

  • @jamestolliver9970
    @jamestolliver9970 3 дні тому +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

  • @Rohinthas
    @Rohinthas Місяць тому +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.

  • @elpupper_
    @elpupper_ Місяць тому +9

    youtube not gonna do anything about these bots

  • @nicejungle
    @nicejungle Місяць тому +2

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

  • @pedrocruz-ds6bj
    @pedrocruz-ds6bj 23 дні тому

    What cs degree are you guys doing?? I was introduced to git in like the second year, and that because the first year was a general course in stem

  • @user-du9ch3tn2v
    @user-du9ch3tn2v 25 днів тому

    I think git is simple just learn the basics its fast. But what about js frameworks do you need them or is it enough you can provide data via python server and html?

  • @echorises
    @echorises Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому

      @@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 28 днів тому

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

  • @SuperKavv
    @SuperKavv Місяць тому +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 Місяць тому +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.

  • @hanes2
    @hanes2 Місяць тому +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

  • @par5ek
    @par5ek Місяць тому +1

    I retired programming 7 years ago
    Right now, I just do some embedded programming for fun.
    There wasn't any internet when I started my career.
    I would have loved to have access to a channel like yours at that time.
    Really enjoying it now, even if it's just for giggles
    Best Regards

  • @kuakilyissombroguwi
    @kuakilyissombroguwi Місяць тому +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 12 днів тому +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 11 днів тому

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

  • @colecoleman8135
    @colecoleman8135 Місяць тому +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.

  • @beentheredonethatunfortunately
    @beentheredonethatunfortunately 22 дні тому +1

    On the subject of not knowing what files and filesystems are...CS graduates only do things in eclipse. When told to use git they at least have the wherewithall to find how to use, the only trouble is it's how to use it in eclipse only. Command line? What's one of those?

  • @paulkohler8868
    @paulkohler8868 Місяць тому +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.

  • @TazG2000
    @TazG2000 Місяць тому +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.

  • @neoqueto
    @neoqueto Місяць тому +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.

  • @SupportSquirrel
    @SupportSquirrel 23 дні тому

    Stumbled on your channel while on my nightly meme viewings (to relax) and I gotta agree. There is only 1 time when someone in IT should have heard of but MAYBE not have used git yet: their internship. After that, though... Git was still new when I was in college but as soon as I learned about it I was hooked. Saved my ass a TON of times both at work and home. I've used it to version control papers through both my Masters degrees, files from servers at home, documentation and TONS of stuff at work. I'm not a software developer, far from it, but I do dabble and consider myself an engineer in the cybersecurity realm - that being said I've done very stupid stuff sometimes and git has taken me from saying "well, I'ma just go ahead and pack up my desk" to "don't worry, I already reverted the change and things are fine" because sometimes corporations just refuse to have a test and prod environment...

  • @web3simplified793
    @web3simplified793 Місяць тому

    what push back were u getting? like if you dont know git by the time your done college then something has definitely gone wrong. lol just getting to the part of the video where theo calls out. i fully agree if you cant learn git in 4 years, its not good

  • @theoldknowledge6778
    @theoldknowledge6778 Місяць тому +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 Місяць тому +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 Місяць тому

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

  • @NithinJune
    @NithinJune Місяць тому +4

    bro what

  • @cjhdev3990
    @cjhdev3990 11 днів тому +1

    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.

  • @timedebtor
    @timedebtor Місяць тому

    Also, there is a great way to make version control part of the curriculum. Temporal data structures are amazingly difficult and different. The MIT Advanced data Structures course is a great place to start. Implementing version control system would be a great course at the undergraduate level.

  • @thomassynths
    @thomassynths Місяць тому +7

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

    • @Z3rgatul
      @Z3rgatul Місяць тому +2

      Lmao, good catch

    • @ciarancurley5482
      @ciarancurley5482 Місяць тому +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 Місяць тому +1

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

    • @thomassynths
      @thomassynths Місяць тому +1

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

    • @NihongoWakannai
      @NihongoWakannai 28 днів тому +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.

  • @stephenjames2951
    @stephenjames2951 Місяць тому +3

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

  • @recursivecube44
    @recursivecube44 Місяць тому +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.

  • @mchisolm0
    @mchisolm0 Місяць тому +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.

  • @0nepeop1e
    @0nepeop1e Місяць тому +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 Місяць тому

      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 Місяць тому

      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 Місяць тому

      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 12 днів тому

      Because the way to get traction in UA-cam 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.

  • @kspfan001
    @kspfan001 9 днів тому +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 8 днів тому

      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 5 днів тому

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

  • @HerrBlauzahn
    @HerrBlauzahn Місяць тому +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.

  • @Liam3851
    @Liam3851 14 днів тому

    Been a long time since I was in school, but I feel like this is the sort of thing that internships are for, too. When I was in school the source control of the day was Visual SourceSafe or CVS... and I learned both at internships. If you want to code full-time after 4 years of school, hopefully you should try to be working on code the summers of years at least 2-3.

  • @Viviko
    @Viviko Місяць тому +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 Місяць тому +1

      i didnt even know such thing exists .

    • @franciscogonzalez1879
      @franciscogonzalez1879 Місяць тому

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

    • @SahilP2648
      @SahilP2648 Місяць тому

      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 Місяць тому

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

    • @user-qm4ev6jb7d
      @user-qm4ev6jb7d Місяць тому +3

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

  • @plumbingphase
    @plumbingphase Місяць тому +3

    people complaining about this "gatekeeping" will remain jobless 😂

  • @TechJolt3d
    @TechJolt3d 4 дні тому

    Would you recommend RPI?

  • @YuriYung
    @YuriYung Місяць тому

    does using github desktop counts?

  • @jesse9996
    @jesse9996 Місяць тому +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_ Місяць тому +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 Місяць тому

      @@_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_ Місяць тому

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

  • @fredoverflow
    @fredoverflow Місяць тому +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 Місяць тому +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 Місяць тому +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 Місяць тому

      @@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 28 днів тому +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 23 дні тому

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

  • @m4rt_
    @m4rt_ Місяць тому

    I learned programming in a High-School class I got to choose myself, and we had a few classes about how to use Git (though I sometimes had to assist our teacher since he wasn't always the best as the technology he was teaching, and he wasn't incredible at teaching either)
    We also had an assignment that we had a few topics we could pick and write about, and I picked source control.
    So I'm glad that we learned how to use at least the basics of git, though I did mostly learn it in my spare time.

  • @raf_a.e.l
    @raf_a.e.l Місяць тому

    wow you’re timing as I was just struggling trying to merge my branch lmao

  • @amomchilov
    @amomchilov Місяць тому +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 Місяць тому +2

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

    • @amomchilov
      @amomchilov Місяць тому

      @@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 Місяць тому

      @@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 Місяць тому

      @@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 Місяць тому

      @@amomchilov
      please watch the video

  • @supdawg7811
    @supdawg7811 Місяць тому +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.

  • @kyrregjerstad
    @kyrregjerstad Місяць тому

    There was a lot of things wrong with my Uni, but one thing they did do really well was introduce use to git super early on and then making it a mandatory part of all assignments. They even created a "choose your own adventure" style time-traveling game in a markdown document, which told a complete story using branches and commits!

  • @carterjames199
    @carterjames199 Місяць тому +1

    When u say all the good engineers you know can use fit via the cli. Does that mean they can use git via the cli without looking anything up like they just know every command? Cause does that make me a shitty engineer if I prefer GitHub desktop or using the GitHub extensions in my ide?

    • @natrixnatrix
      @natrixnatrix Місяць тому

      You should be able to clone a repository (from an arbitrary git server or anywhere on your computer) without having to look anything up. You should feel confident in that you could do everything you do from your gui without it but with the help of the git manual.

    • @Mystic998
      @Mystic998 Місяць тому +1

      I'd say it doesn't matter. If you want to navigate git operations faster and make your workflow more efficient, learn the cli. If you expect you're going to be in a situation where you are working solely in a terminal with no feasible way to look something up, learn the cli. Otherwise, do what you want. I think the more important thing is to be confident that you could figure out how to interact with any (at least somewhat reasonably made) unfamiliar cli without necessarily having a reference.

  • @pinatacolada7986
    @pinatacolada7986 Місяць тому +6

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

    • @piff57paff
      @piff57paff 12 днів тому

      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.

  • @righteouscoder
    @righteouscoder Місяць тому

    When I adjunct at my local state univ. and I purposely spend a class in my intro IT/CS class teaching git and show/explain merge conflicts, and how you resolve them via command line and gui. I think it is well worth a single 90 course on it, maybe 2.

  • @peeds6431
    @peeds6431 Місяць тому

    I'm in software engineering and my uni essentially forces us to use git for version control and for submitting our coding projects, they mandate continual commits, merges and rebases, also writing the readme docs.

  • @yofukashino_
    @yofukashino_ Місяць тому

    16:47 what if i forget my word? i know how cli works but not how words work... (I mean to say I forget what to type)

  • @Flackon
    @Flackon 14 днів тому

    That reminds me of the answers cs profs gaver in that computerphile video about tabs vs spaces

  • @-parrrate
    @-parrrate Місяць тому +2

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

  • @Luniy5_
    @Luniy5_ 2 дні тому

    I just graduated from highschool but in my last year we had to do a coding project (since I was following the software course) and you could either work alone ir in pairs, but watching all of my classmates who work in pairs work without git was painfull. they sent the project as a zipped file to eachother everytime they made a change and very often had to spent an hour just tryung to merge both of their changes manually

  • @shock9616
    @shock9616 Місяць тому

    I just transferred to a new uni for their CS program last year, and had to take a few first year prereqs that didn't have equivalents at my old uni. One of these courses was a robotics engineering class (it's a prereq for my CS program because it introduces you to project management and working/coding in a group environment) and literally the first thing our prof did after going over the syllabus was give everyone a rundown of version control/git specifically. I had used git in my personal projects for a while before that (I even use it to track/backup my class notes to my private school-hosted git server) so it wasn't anything new for me, but the fact that git was the first thing we learned in an engineering class should show how important it is.

  • @techyesplc
    @techyesplc Місяць тому

    Amazing video. Great points. An even bigger tragedy is that I think git and the experience of version control could be improved quite a bit, so if students had more exposure and experience with it there'd be more people working on making it better.

  • @eckard9597
    @eckard9597 10 днів тому

    Took a microcontroller and SoC programming course online. Week one was learning how to set up a VM with Linux and using Git to get the project files. Maybe it shouldn't be a dedicated class, but probably should be a required step at the beginning of any project

  • @YoloSwagO
    @YoloSwagO Місяць тому

    I had 1 lecture that taught git for a class that had a group project that had us use git. We used it, but definitely made mistakes and had to look up ways to fix our mistakes.
    That summer internship I used it every day and came to understand it much better, it was probably the most useful tool I learned that summer.

  • @scpresearcherssite1054
    @scpresearcherssite1054 Місяць тому

    Our cs club we made a 30 minute crash course. We had many students were attending compered to other crash course. it had at least made it known but the side effect of that was they did their projects by coping the code not even modifying it.