10 ms·
> "Such a simple idea required introducing the terminal, basic terminal commands, GitHub, git and its most common commands. It took about 3 hours for us to get
by csmpltn 5y ago
> "Such a simple idea required introducing the terminal, basic terminal commands, GitHub, git and its most common commands. It took about 3 hours for us to get through just the most basic pieces."
I don't get this.
"Can you imagine? Learning to program a computer took us some hours!"
What do you expect? That people without prior knowledge or experience just pick up source control in seconds? I'm honestly wondering - what makes you think source control systems are so trivial? Is it really too much to ask a newcomer to invest some hours into learning something these days?
- caslon 5y ago...they are so trivial that they can be figured out in less than three hours. Mercurial can be learned in minutes. Fossil in half an hour. Even git isn't particularly difficult; you can get "working knowledge" of it by glancing at this: https://git-send-email.io https://git-send-email.io
- Clewza313 5y agoYou can learn Mercurial in three minutes if you have a background in command line administration and source control. But in a past life I have on several occasions found myself trying to train enterprises on how to use basic source control (as opposed to, say, SSHing into production systems manually and cp config.xml config.xml.bak), and failing to get the message through.
- yunohn 5y ago> what makes you think source control systems are so trivial? The commenter is referring to the tooling around git, wasting valuable teaching time. For example, most people will only ever have one ssh key on their device. Having to setup the keyring, and keeping aware of its nuances, is a waste of time.
- moss2 5y agoYou're right. A subject being difficult to master means we should do everything we can to make it difficult to learn too.
- csmpltn 5y ago> "You're right. A subject being difficult to master means we should do everything we can to make it difficult to learn too." Never before have humans experienced such an overabundance of learning materials (YouTube, blog posts, StackOverflow, books, courses, etc). So much of it easily accessible and available for free. The tooling continually improves. What most people are missing these days is a goddamned attention span and a dash of humility. This isn't about mastering source control systems (that can take years). This is about taking a complete newcomer with absolutely no background whatsoever from nothing to something in three hours, which is an absolute miracle in and of itself. Will you also complain about how hard it is to learn how to swim, paint, use chopsticks, change a tire or play chess?
- johannes1234321 5y ago> Never before have humans experienced such an overabundance of learning materials (YouTube, blog posts, StackOverflow, books, courses, etc). So much of it easily accessible and available for free. Quantity unfortunately doesn't mean quality. Without experience it is hard to separate low quality from high quality content. And then there's are.many things which are outdated ...
- sullyj3 5y ago> What do you expect? That people without prior knowledge or experience just pick up source control in seconds? I mean, ideally, that'd be great. I don't think there's any fundamental reason things can't be this way, many of these complexities are completely incidental, rather than inherent. > Is it really too much to ask a newcomer to invest some hours into learning something these days? No, but when I'm learning something, I prefer for my time to be spent on important stuff, not wasted unnecessarily.
- moonchrome 5y agoI get the argument but I disagree. Git is meant for software developers on projects complex enough to warrant using SCM. Using SCM for teaching development to newbies is already adding unnecessary complexity (even in a collaborative setting, flows are complex enough to distract from more fundamental topics). If you're a software developer getting to the point where using git is needed you should absolutely know the core concepts behind public key cryptography, it's going to come up everywhere and you can fuck up big time by publishing the wrong part.
- kkirsche 5y agoIt may be meant for software developers but has legitimate value in other domains. For example, DigitalOcean has their legal team use it as a way of providing diffs on their terms of service and other policies. This type of use case is where it benefits everyone, in my opinion, to reduce the friction to get started. https://github.com/digitalocean/tos https://github.com/digitalocean/tos There are plenty of text file versioning use cases I think, from configuration files for system administrators to LaTeX papers for science students who could benefit and should have an easy path to using it.
- moonchrome 5y agoI agree with this, I don't know if GitHub already does this with their desktop GUI.
- dragonwriter 5y ago
- benibela 5y agoWhen I learned programming 20 years ago, it went like this Start QBASIC Enter: PRINT "Hello World!" Run the program. Congratulations, you wrote your first program and have become a software developer
- 10000truths 5y agoUh... you can still do that today. python3 > print(“Hello world”)
- bspammer 5y agoYou’re missing the “install python” step. Oh and probably you should be using a package manager to do it so figure out which one’s on your system first and learn its interface. Oh and it’s best practice to create projects in a virtualenv so install that too, and learn how to use it.
- maple3142 5y agoThe is also a JavaScript programming environment that almost every PC has, the browser. Just open any page and press F12, click the "Console" tab and type `console.log("Hello World")` and you just write your first Hello World.
- nemetroid 5y ago>>> print(“Hello world”) File "<stdin>", line 1 print(“Hello world”) ^ SyntaxError: invalid character '“' (U+201C)
- 10000truths 5y agoYou can blame my iPhone for trying to "helpfully" convert my quotes into smart quotes. :(
- ovi256 5y agoYou can still do that today! Start ipython (or the interactive interpreter for your language) Enter: print("Hello World!") See the result!
- blowski 5y agoDoes it still take hours if you're using a client, like GitHub Desktop, SourceTree, or something like that?
- formerly_proven 5y agoNo, but doing so results in learned helplessness. "Whoopsie, a fucky wucky happened and the GUI I use for git made a big mess. I'm going to delete my repo and clone it again."
- dagw 5y agoWhy do you think using a GUI will make it more likely to fuck up your repo than a using the CLI? Most git GUIs are actually better at warning you that you might be about to do something stupid and making the consequences of you actions more visually clear.
- formerly_proven 5y agoI don't think it does. I've observed it many times. The GUIs don't understand git, have shitty defaults, resulting in unnecessary conflicts and histories which are essentially unreadable (Merge branch 'master' of ... x1000). If any error pops up, it is not read (not their fault - NOBODY reads error message boxes, everyone selects the default action within a fraction of a second), if there is a conflict, they usually cannot resolve it with the GUI, or if they do their changes are lost by accident half the time. So in practice when conflicts happen the changes are copied out, the repository deleted and cloned again (because aborting the merge or resetting the branch is unknown / unsupported by the GUI / too difficult or hidden), changes are pasted back in and committed. SUCCESS! When you use git directly, you at least get all the tools to solve your problems. When you use (most) frontends, you don't. And you learn: If there are errors, just start over - much easier! This is not the fault of developers, it's shitty tooling + bad tutorials + bad defaults in tooling + unsuitable defaults in git (git's defaults are for the workflow used in the kernel, NOT the workflow most git users use, which is completely different; it's actually amazing that the same tool can support both workflows pretty well, with the right config settings).
- trophycase 5y agoMost people want to just code, not putz around for hours wrestling with dev environments and tooling.
- TanteTara 5y agoAre those the same people that will add security, maintainability, performance and logging "later"?
- batty_alex 5y agoWell, management did say it would be okay to leave it for after the new feature release…
- lucideer 5y ago> "Can you imagine? Learning to program a computer took us some hours!" I wouldn't call installing a vcs "learning to program". A better analogy might be: "Can you imagine, opening an A4 notepad to take lecture notes took us some hours" Not a perfect analogy I know but "setting up tools to start learning" != "learning completely" Either way, I don't really get this kind of aggressive resistance to making things more accessible...
- jonathanlydall 5y ago> A better analogy might be: "Can you imagine, opening an A4 notepad to take lecture notes took us some hours" And using a notepad to take notes relies on your having learnt how to read and write in general, which took a significant amount of time. That being said, I agree with it being good to try make things as accessible as possible, so long as it doesn't impact overall utility.
- hnbad 5y agoFor contrast, Microsoft Word and similar tools have a built-in permanent edit history. Using them requires no more than knowing what menu to find it in. As far as I know it doesn't do branching but for the baseline MVP of "I need to know what this file looked like before we made these changes" it solves the problem with significantly less than "some hours" of training.
- taotau 5y agoCurious, in these three hours did you teach your student about git log, checkout $HASH, bisect, revert or any of the other ways that git is actually useful beyond being a glorified FTP ? Git is a wonderfull tool for exploring a development process unlike anything that’s existed in other domains, but in my experience it is mostly used as a write only tool to deploy code.
- hiimshort 5y agoSince this was the first session on the topic, we only learned about add, commit, push and had a quick glance at remotes. The goal here is to ease into the normal flow of weite code, commit, push and then follow up with some of the more intricate pieces of git. It's really important to me that whoever I'm teaching is able to really understand each piece and build their intuition as we build things up. FTP is a bit orthogonal to the use case here. That being to have her code pushed up to a central repository, able to clone it on her other computer (laptop), and enable me to review it or tweak things.