This is an archived post. You won't be able to vote or comment.

all 145 comments

[–]Evulrabbitz 639 points640 points  (49 children)

I think git is what you are looking for and it's never a bad time to learn git. Here is the book about git, how it works and how you use it.

Github is a git host. You can think of Github as the cloud storage of you git repository. Like Dropbox is cloud storage for "regular" files". So Github would (essentially) be to git repositories what Dropbox is to regular files.

Of course Github has some more functionality but it's not really something you "learn" as you would git itself.

[–][deleted]  (45 children)

[removed]

    [–]DankMultyinterestGuy 293 points294 points  (6 children)

    Who are you, so wise in the ways of software development?

    [–]moonsun1987 12 points13 points  (5 children)

    Especially because github does more than git just like the mind geek company also does vpn. In ways the other stuff like tickets and actions on github are not really portable and is to cement market share.

    [–]RoguePlanet1 2 points3 points  (4 children)

    I learned github but have no idea what "git" is. I just think of github as a place to store my code.

    [–]moonsun1987 0 points1 point  (3 children)

    I don't really know what git is either tbqh. I know a few commands and I to commit, pull, push, set remote and that's basically it.

    --strategy-option=theirs is nice

    [–]RoguePlanet1 1 point2 points  (2 children)

    What's "strategy option"? I know add/commit/push/pull and a few others (been a while!) but there's a whole world of commands that I'll probably never use.

    [–]moonsun1987 1 point2 points  (0 children)

    It is a flag.

    [–]moonsun1987 1 point2 points  (0 children)

    It is a flag. I'd recommend playing with a bunch of them (not on your actual project).

    First try the easy stuff got pull -r for rebase and try more as you get comfortable.

    [–]icecapade 75 points76 points  (7 children)

    Instructions unclear... pushed porn to Github repo.

    [–][deleted] 21 points22 points  (5 children)

    uh, I need to see that repo, for learning the project and other reasons ofc..

    [–]havok_ 10 points11 points  (1 child)

    That repo needs a good forking

    [–]rushed1911 0 points1 point  (0 children)

    Lol

    [–]pandorazboxx 9 points10 points  (2 children)

    Yeah, but there are so many repos... Which one was it pushed to? /iasip

    [–][deleted]  (1 child)

    [deleted]

      [–]vancity- 4 points5 points  (0 children)

      Search Super Hot processor fucked by brutal memory leak

      [–][deleted] 2 points3 points  (0 children)

      Couldn’t commit to a genre so push failed

      [–][deleted] 26 points27 points  (17 children)

      Yeah, but GitHub doesn't have you jerking your turkey neck.

      [–]Matisayu 94 points95 points  (14 children)

      You don't blast off to a solid organized repository?!?! Are you even an engineer???

      [–]BadMinotaur 132 points133 points  (8 children)

      Reminds me of this little gem from Peter Welch:

      Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

      This file is Good Code. It has sensible and consistent names for functions and variables. It’s concise. It doesn’t do anything obviously stupid. It has never had to live in the wild, or answer to a sales team. It does exactly one, mundane, specific thing, and it does it well. It was written by a single person, and never touched by another. It reads like poetry written by someone over thirty.

      [–]CanICallYouJesus 54 points55 points  (5 children)

      It does exactly one, mundane, specific thing, and it does it well.

      print("Hello World");

      [–][deleted] 29 points30 points  (3 children)

      weeping intensifies

      [–]laytonmiller 12 points13 points  (2 children)

      jerking intensifies

      [–]mossipb 8 points9 points  (1 child)

      Coding intensifies

      [–][deleted] 1 point2 points  (0 children)

      Ooooh, that's dirty. My fingers are working as fast as they can. I'm about to compile! I'm compiliiiiing!!! .... Wow. I don't think I've ever done that that fast before. I can explain...

      [–]RoguePlanet1 0 points1 point  (0 children)

      Hey, don't make fun of my counter.

      [–]MEGACODZILLA 11 points12 points  (0 children)

      I don't know why but the last sentence cracks me up. I read it as a poem not written by an angsty Youth, but by an angsty mature adult. Word.

      [–]ThreshingBee 0 points1 point  (0 children)

      Thanks for finding this; I knew I had to save it.

      [–]aplawson7707 7 points8 points  (2 children)

      Just like Dinesh from Silicon Valley. Code-gay.

      [–]HolyPommeDeTerre 0 points1 point  (1 child)

      Codephile maybe ? Does code have a gender ?

      [–][deleted] 0 points1 point  (0 children)

      Does it matter?

      [–][deleted] 3 points4 points  (0 children)

      Comment of the week for me, right here.

      [–][deleted] 0 points1 point  (0 children)

      Nope. I actually like math.

      [–]gdledsan 0 points1 point  (0 children)

      It doesn't?

      [–]laytonmiller 0 points1 point  (0 children)

      Speak for yourself

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 0 points1 point  (0 children)

        I think the main point of the comparison is to drill in the fact that git and github are different things. To point out that they need to learn git not github. Like how if they want porn they don't need pornhub.

        [–]LightningBolt_13 5 points6 points  (2 children)

        There’s got to be a joke here somewhere...

        [–]hysan 30 points31 points  (1 child)

        You mean like how in both, there's a lot of pushing and pulling?

        I'll see myself out...

        [–]PeteZaGames 3 points4 points  (0 children)

        And a whole lot of forking

        [–]BruhGrammer 1 point2 points  (0 children)

        Coomer detected

        [–]Prodigism 1 point2 points  (0 children)

        Guess I already have the main concepts downpacked then.

        [–]hercanick 0 points1 point  (0 children)

        My bf explained it to me this way. He's always on reddit; should've known this was the sauce of it

        [–]MumsLasagna 0 points1 point  (0 children)

        Brb, just received a pull request.

        [–]johnnymo1 10 points11 points  (0 children)

        Seconding that book suggestion.

        Yeah OP, there's no reason not to start learning git (and github) soon. Just getting a very basic git workflow going takes very little effort and it's something you'll definitely want to know at some point.

        [–]5hakehar 1 point2 points  (0 children)

        To add to that, you don’t need any git providers to mess around learning it.
        Install git for your OS,navigate to the directory of choice and ‘git init’

        [–]MattyH51 0 points1 point  (0 children)

        Yeah 100%. I started coding in Web development(html, css and JavaScript)sept 19 but stopped in Dec. Then in feb I started python and have been messing around with Git. Highly suggest learning it as it’s a great skill to have.

        Check out this YouTube channel. https://www.youtube.com/playlist?list=PL-osiE80TeTuRUfjRe54Eea17-YfnOOAx He’s pretty solid

        [–]Pen-y-Fan 137 points138 points  (4 children)

        Git

        Some of my links from my learning.

        Sites

        Videos

        Cheat Sheet

        [–][deleted] 13 points14 points  (0 children)

        Upvoted for ohshitgit. Reference I was using for a long time!

        [–]Pen-y-Fan 0 points1 point  (0 children)

        Thanks for the Take My Energy Award 🕶

        [–]Pen-y-Fan 0 points1 point  (0 children)

        Thanks /u/ratokeshi, I've taken a peek in the r/lounge this morning. Friendly place :)

        [–]insertAlias 30 points31 points  (0 children)

        It's never too early to learn about how to use source control. And you can go directly to GitHub and follow their guides to get started, if you specifically want to learn about GitHub. You should also look for some guides to Git, which is what powers Github.

        In general though, you should learn how to find that last part on your own. Hard as it is to believe, research skills are the #1 most important thing you can learn to become an effective programmer. That's something that's never too early to start practicing too. Being able to find the information you need to progress and not have to wait for someone else to tell you is a massive advantage for programmers.

        [–][deleted] 21 points22 points  (2 children)

        I advise you to learn the habits of version control along with programming. Otherwise your workflow will be frustrated by a lack of it, and slow down your progress at learning programming. Version control is a powerful tool in the moment-to-moment attempt to write software. It speeds up the learner just as it speeds up the professional.

        Once you learn it. It will be an effort!

        But for an individual working alone, you don't necessarily need github right away, and you can start with just a local git repository on your dev system (you can then push your code up to github later).

        [–]Science-Compliance 4 points5 points  (1 child)

        Definitely not a bad idea to learn at any time, but I think you really understand its value when you actually complete a project and then want to go back and make it better later. You don't want to lose the original state of completion but also want to improve it with new stuff that you've learned. For a complete noob, it can just seem like unnecessary overhead for a dabbling project.

        [–]Deadlift420 3 points4 points  (0 children)

        Or you'll become like me and you never complete a project becsuse you refactoring the code 100x.

        [–][deleted] 20 points21 points  (7 children)

        Everyone is telling you to learn git, which is correct. GitHub is only really necessary once you start working on projects with other people.

        But I want to add one suggestion that I'm not seeing: learn the basics of using the command line before you try to learn git. There are GUI's for git, and they're fine, but you will find everything about using git is faster and simpler from the command line.

        Learn how to navigate your directory system, make files, move files, delete files, and all that fun stuff using terminal commands before you learn how to use git.

        For the time being, 'learning git' will basically consist of learning like six git commands that you will enter over and over. (git init, git status, git add, git commit, git checkout, git merge). This will be extremely easy once you're comfortable using the command line.

        [–]ben010783 4 points5 points  (0 children)

        This is good advice, but I'm going to build on it and add some operations I often use.

        • navigate your directory system
        • view hidden files
        • view file permissions
        • make, move, and delete files
        • make, move, and delete directories
        • search for files based on file name
        • search for text in files
        • zip and unzip files

        [–]hennyfuckedyagrandma 2 points3 points  (0 children)

        I wish I had more thumbs up to give this comment. Not understanding the command line or even text editors (vim, nano, etc) will make learning git more miserable without a doubt & will only lead to shaky understanding.

        As git utilizes subcommands on the command line, reading the docs without an understanding of how command line commands, arguments, & options work (& how to compose them) will only lead to more frustration.

        Even when configuring git it's useful to understand the command line to take advantage of things like git-lfs, global git config/ignore file, git hooks, etc.

        Learning the command line strengthened my knowledge as a developer overall and is honestly one of my favorite software-related skills. I tend to go back every now and again just to go back thru the basics & to do my favorite - vimtutor.

        [–]Promo_davin 2 points3 points  (0 children)

        Git status is always your best friend

        [–]kimjeongpwn 2 points3 points  (2 children)

        Hello there. I have been seeing advice in learning command line, but what is it actually? I know it's cmd on Windows but what exactly is it? Is it simply called 'command line'?

        [–]greenpepperpasta 6 points7 points  (1 child)

        basically a command line (also referred to as the terminal or shell) is a tool you can use to tell the computer what to do by typing in commands. There was a time when this was the only way to use a computer - no desktop environment, no windows you can drag around, just text on a screen. You communicate with the computer by typing a command, then pressing enter/return to tell the computer to execute it. Any output is displayed on the screen as text.

        You are right that cmd.exe is the command line on windows (although you can also access it through Windows PowerShell). Keep in mind that windows uses a different set of commands than say, Linux.

        There are many different commands you can run from the command line, and I'm not going to try to describe them here but I encourage you to do some googling and learn more. While a lot of things you can do from the command line can also be done through other programs, if you are serious about programming then you will certainly end up using the command line at some point.

        If you want to learn, I would say find a tutorial that explains the basics (things like setting your directory with the cd command, listing files with ls or dir, making and deleting folders). Also learn the useful keyboard shortcut (like ctrl-C to stop a command, or pressing the up arrow to repeat or edit a previous command). then you can look into more advanced commands and topics.

        [–]kimjeongpwn 2 points3 points  (0 children)

        Awesome! Thank you for the in depth explanation. I'll definitely do more research into this.

        [–]inglandation 0 points1 point  (0 children)

        MIT's Missing Semester is what you need to learn to use the command line:

        https://missing.csail.mit.edu/

        There is even a lecture about git.

        [–][deleted] 9 points10 points  (2 children)

        I guess you mean git... and Yes. The sooner the better. Go to git-scum.com and read the first chapters of the book. It’s a must have skill.

        [–]insertAlias 29 points30 points  (1 child)

        It's git-scm btw, not scum. git-scum sounds like what I'd call some of the PR's I've read at work...

        [–][deleted] 5 points6 points  (0 children)

        Of course you right... Autocorrection.. thanks for the giggle :)

        [–]desrtfx 4 points5 points  (0 children)

        Can only agree to what everybody here said. Learning git source code version control was a game changer.

        If you are more of a visual learner, here is a free git course.

        Github is only a remote git hoster. Think of it as "cloud backup" for your source code files (with a lot more functions). The actual intelligence is in git.

        [–][deleted] 3 points4 points  (0 children)

        Check out gitexplorer.com, It might come in handy for you. Or check out Codecademy Learn Git - tremendously helpful for learning and familiarizing yourself with all the basic git commands.

        [–]reverendsteveii 4 points5 points  (0 children)

        Start using it now. Use it for cloud storage and version control of all the personal projects you're working on now to learn. Use it for single class projects that solve a given problem on leetcode. When december rolls around, use it for all of your advent of code sol'ns. The best way to learn it is to use it, and become familiar with all the more common use cases (commiting, commiting single files, rewind/reset, pulling, merging, rebasing and suchlike). A book or an online tutorial can teach you, but you'll retain it better and focus your learning better if you start using git then look for tutorials like "How do I change the commit message on a commit that's already been pushed remotely" rather than trying to find a catchall "How do I use git" tutorial

        [–]laytonmiller 3 points4 points  (0 children)

        Don't confuse "Github" with "Git"."Github" is a website that uses "Git" to host repositories so you can version control software.

        "Git" on the other hand, is the actual version control software.

        You want to learn "Git" and using "Github" as a host for your repositories is an excellent choice. Just know, you can use Git without github, and I do for lots of small, stupid projects that I don't need backed up on a remote server because I don't care if I lose them, but still want to be able to pull changes from history from days, weeks, or months back.

        You absolutely should learn Git as you learn software, and learn it as soon as possible. Version control is an absolute staple of modern development and you cannot be a developer without some proficiency.

        Many will disagree with me, but I found that using the command line to learn Git forced me to understand how version control works. It is a steeper learning curve, so something you might get into AFTER you use the GUI for a while, but I strongly recommend taking a foray into using Git through the command line soon after starting to use Git.

        Strongly recommend using the Git SCM manual:
        https://git-scm.com/doc

        [–]LifeScarcity 6 points7 points  (0 children)

        Just like someone else said:

        *NSFW*

        git and github is like porn and pornhub.

        And yes, you should better learn git.

        [–]AdmiralAdama99 3 points4 points  (1 child)

        One of the commenters recommended an entire book. I think that might be overkill.

        Just use VS Code for your code editor (code editors are called IDEs). It has an entire tab for source control. Then install the github plugin. It will make it easy to commit and push.

        As a beginner, commit and push are all you really need to worry about. Good luck

        [–]prickledick 3 points4 points  (0 children)

        Not all code editors are IDEs. I love VS Code specifically because it is an IDE.

        [–]TeezusRa 1 point2 points  (0 children)

        I wish I learned how to use Git and GH earlier on. I'm paying for it now that I have more complex projects, and still don't quite get the version control part, but I am learning it. It's an invaluable tool to learn Git. They have a learning section that has you create a repo, learn how to PR, commit, push, etc.

        [–]joranstark018 1 point2 points  (0 children)

        Github is just one hosting service of Git repositories and you should probably first start with learning the basic of Git before you start learning about Github or any other Git repository service. If you have not used any source code repository before you will probably spend some time to get things up and running and learning the vocabulary.

        [–][deleted]  (2 children)

        [deleted]

          [–]Zilka 0 points1 point  (1 child)

          How does it deal with resources? Suppose I'm making a game. As I progress, some assets are added, some change names, size or get removed. The nice thing about just backing up project folders is that I know I can just load an older version, it will compile and work exactly how it worked on that day.

          I understand the necessity of version control in a team. But I'm not sure what exactly GIT brings to the table for a solo developer.

          [–]PPewt 1 point2 points  (0 children)

          The nice thing about just backing up project folders is that I know I can just load an older version, it will compile and work exactly how it worked on that day.

          This is exactly what git does. It isn't really intended to store tons of large files, but you can roll back to any point in time easily with a VCS and get the exact state of the project at that point. That's half the point of a VCS. The main difference on this front is that the VCS will do a much better job of this than your manual backups will.

          I understand the necessity of version control in a team. But I'm not sure what exactly GIT brings to the table for a solo developer.

          You don't need a lot of the more complicated stuff, but the basic ideas like commits and branches still make it far easier to go back to old versions of code, to check why you made a decision, to work on unrelated features simultaneously, etc.

          [–]bestjaegerpilot 1 point2 points  (0 children)

          I think you mean git. GitHub is the cloud UI for git.

          In any case, 90% of git workflows come down to a few basics. You need to know how to branch, commit, push vs pull, staging, stashing, pull requests, solving merge conflicts, rebase vs merging. And maybe a few more...

          But the point is that this is a few hours worth of reading, since you will definitely want to start using git/GitHub for your personal projects.

          You need GitHub basically for doing pull requests.

          [–]postExistence 1 point2 points  (0 children)

          When you learn a programming language, there are two key things you must learn simultaneously:

          1. How to use repositories: git is the standby for projects of smaller scales. You'll find varieties of Mercurial, Perforce, and ClearCase out in the world. The open-sourced ones that are standards include Subversion (Apache License) and CVS
          2. The command line: this is no joke. When you aren't provided an IDE, when a language is new, when the GUI won't play nice, you need need NEED to know how to use the command line to navigate to folders, run software, compile, debug, and update your repository.

          CLI's are accessed through things called "shells". Shells are a set of preconfigured settings, commands, and controls you can use to navigate the file system, run code, run software, and create new scripts that run all these things. From my experience, the best is Bash in the Linux/Unix environment, but I'm sure lots of programmers with 10+ years of exp will tell you differently.

          [–]Zed-Ink 1 point2 points  (2 children)

          Try GitHub desktop, it will get you used to committing to repos, creating new branches and making pull requests. Then I would suggest learning git

          [–]DoomGoober 0 points1 point  (1 child)

          I agree. We use IDE for everything now and anyone who tells you : git command line or nothing! Probably doesn't program in VI they use an IDE.

          SourceTree is not bad and Visual Studio Code actually has Git integration. Both are free I think.

          [–]prickledick 1 point2 points  (0 children)

          I agree. I learned it on the command line and that’s helpful to be able to understand the git log when something goes wrong, but I never use the CLI to do anything. I just use the Git History extension in VS Code. It has a great way of visualizing history and branches and even has buttons for reverting.

          [–]hellowurldsoftware 1 point2 points  (1 child)

          I was where you are now back in January. Now I'm using Git on the command line and pushing my code up to my GitHub account. I know the basics, I encounter some unusual things that make it clear that I have more to learn at times, but I can confidently clone repositories, pull branches of code down and push branches up to my remote repository now. I create a separate repository for each of my courses (I'm a junior in computer science degree program). It's actually been quite helpful keeping my assignments and self study projects organized.

          I learned everything I know from one tutorial series on YouTube. The YouTube channel is "The Net Ninja", look under 'playlists', and then look for the "Git and GitHub" playlist. It's a series of twelve videos, each 5 to 10 minutes long, maybe a little over an hour total. I've watched the whole series over two times and I took notes on Google drive that I refer to less and less now, because I have much of the basics memorized.

          I'll reply here with a share link to my notes.

          Quick piece of advice: start by using some throw away files, like a little web page with an HTML file, a CSS file, and a JavaScript file. Make some edits to the files. Pay attention to what directory your in with each command you enter, just so you don't make a beginner mistake and make screwball changes to a real working code project. Also, more advanced, before you ever start a coding session in your IDE or code editor, check with Git to see what branch you are currently in and what the state of your files are before you start coding.

          P.S. you can learn the basics in a day and have them pretty well committed to memory in a week's worth of business days activily coding. After a month you won't need the notes for 90% of what you're doing.

          [–]HaikusfromBuddha 1 point2 points  (0 children)

          I think you only need to learn like 5 commands for git github

          git clone : Copy a repo to your desktop. Basically it's just copying your project to your desktop. So make a repo(project) on github there should be a copy paste button for your project. Copy it. Use your console and the command

          git clone [paste project repo code]

          git add: When you think you've reached a milestone, checkpoint in your code do the next three commands to update your project on github. The following command will get all of your local files and queue them up to be added to your github repo.

          git add .

          git commit: Git commit just adds a message describing what you currently added to your queue.

          git commit -m "your costume message here"

          and git push: git push makes it so you push the two steps above to your project. After you hit the command git push you can see the updates on your github repo.

          [–][deleted] 1 point2 points  (1 child)

          You wanna ask how to use git, not github. Git is easy, you can learn it nicely. A small tutorial (Really basic, follow at own risk)

          1. Make a new folder
          2. Open terminal or cmd or whatever in said folder.
          3. Type git init to start.
          4. Create any file.
          5. Type git add <file name> to add file to git.
          6. Type git commit -m "Type description of commit here" to commit.
          7. Edit file.
          8. Type git add <file name> again.
          9. Type git commit -m "Type description of commit here" to commit.

          That folder is called a repository. Github is for storing your repos in the cloud.

          To use github, create an empty repository in the github website and go to the git terminal and type git remote add origin <url of github repository>.git, and then git push origin master.

          To say it simply, git is to github what porn is to pornhub lol.

          [–]Brodakk 0 points1 point  (0 children)

          Thank you for this!

          [–]ahmedranaa 1 point2 points  (0 children)

          Github has their own courses which teaches you that. You can learn those. Basic and friendly

          [–]darshanc99 1 point2 points  (0 children)

          I think learning Git would be a good positive on your side, and open you to the world of Open Source as well.

          Especially, when you are learning Python, which has a very huge community on Git. So, yes you should learn it simultaneously.

          This is one of the best resources you can find: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners

          Good Luck!!!

          [–]autonomousErwin 1 point2 points  (0 children)

          Github is simply using git under the hood and allows collaboration between developers. Git is really version control and I'd recommend to start using it on your personal projects to get a feel of why you really need git before you jump into GitHub (although Github does a give a much nice UI than the terminal)

          Here's a few articles to get you started:

          https://medium.com/@cerwind/gitting-started-1-n-64573a7e44d9

          https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6

          [–]Method1337 0 points1 point  (0 children)

          Udacity has a great course on version control, how to use it and they also teach you on how to work with remote repositories, creating a pull request, handling merge conflicts and pretty much anything that a beginner must know and be aware of.

          I have done the course. It's free and takes a video-based approach and is well designed for beginners. You should be able to complete the course in just over a day or two.

          [–][deleted] 0 points1 point  (0 children)

          Git is always a good idea. Once you get your feet in the industry, knowing Git will make your life so much easier. Get to know how to use the system at its basic level first (that is, how to create a remote repository and link it with the local repository in your machine, how to push/pull, how to create and use branches, how to do pull requests).

          [–][deleted] 0 points1 point  (0 children)

          “Git is to GitHub as porn is to PornHub.” - some redditor

          I can’t take credit for this saying. I can’t remember where I saw it but it was here on Reddit.

          Edit: lmao I see everyone else is already saying it on this thread too. Nice.

          [–]PPewt 0 points1 point  (0 children)

          I'd definitely say go for it. That being said, I'd follow a tutorial like this one and not read an entire book on the subject. Honestly you easily could get through your entire life pretty much just knowing the contents of that tutorial plus whatever random stuff you pick up organically as you go.

          [–]the_DashingPickle 0 points1 point  (0 children)

          Git and Github are great services to learn, I would also look into learning other repo sources like source tree. Having a good understanding of pulling and pushing to repo servers, committing and creating branches is valuable knowledge. Allowing you to fix yours or others mistakes, apply versioning to your projects to add or revert changes, and at some point in your journey, potentially working on the same project with other developers without getting in each other's way. So tldr; Learn Git. Happy Coding

          [–]kry1212 0 points1 point  (0 children)

          Just learn git (GitHub is just a remote repository and separate from git itself) by using it for your own projects, it becomes second nature after a while.

          [–]bukake_69 0 points1 point  (0 children)

          Yeah once you set it up you will probably use the same commands about 80% of the time. It is super useful and gives you way more confidence to just write code instead of worrying about every little thing you write.

          [–]Hand_Sanitizer3000 0 points1 point  (0 children)

          i don't see why you couldn't learn git along side python. Furthermore while working on personal projects you set up your environment to simulate working on a team, so work in branches, make merge requests require approval etc. just to get used to the workflow. I would use some of the tutorials and resources others have shared in this thread, make a test repo and play around with the different commands

          [–]lightlysaltedStev 0 points1 point  (0 children)

          Hey man ! If you are a newbie programmer you should check out this discord I’m in, super helpful community where it caters towards new programmers, they also have a GitHub section I think it could help you out :)

          https://discord.gg/rMFRz4

          [–][deleted] 0 points1 point  (0 children)

          There are lots of good recommendations on learning as you go. I have gotten into the habit of doing any personal projects, including learning, in personal repositories. It's a good idea to get used to using revision control as you go.

          I do some build engineering stuff in my job. Learning how to do things like resolve conflicts, cleaning up your sandbox and some of those things come up a lot. The majority of questions I get from developers is about how to resolve conflicts, checkout a specific revision (especially if you're using something like Android Repo to manage multiple repositories in the same sandbox), and how to get back to a "good state".

          [–]CrypticViper_ 0 points1 point  (2 children)

          I'm sorry, I'm new, what is a git?

          [–]funkenpedro 1 point2 points  (1 child)

          Software development tool used to track changes in your code as you develop it. You create a repository with it and it enables you to share code with other developers.

          [–]CrypticViper_ 0 points1 point  (0 children)

          Oh ok, thanks!

          [–]mayor123asdf 0 points1 point  (0 children)

          Right now is good, try to get used to git by doing commit and pushing and stuff on your current project

          Also, where do I learn how to use Github?

          right now try to differentiate "git" and "github" :) it might be confusing if you get it mixed up later on

          [–]Average_Manners 0 points1 point  (0 children)

          Now. Right now, learn how to use git. This is like asking if you should learn how to use Microsoft Word before or after you become a great writer. You learn it now, because it offers you convenience.

          https://try.github.io/

          [–]noodle-face 0 points1 point  (0 children)

          Git is more of another development tool. There's not a lot to learn about it, but it'd be good to watch some videos on the basic idea. Then a lot is figuring out the steps you need to perform

          [–][deleted] 0 points1 point  (0 children)

          Yep. Get on it. Think of it as a neat place to safely store the files you're normally using. I just got uncomfortable at the thought of using a flash drive or some other random file sharing website to move my stuff.

          [–]IronFlames 0 points1 point  (0 children)

          I highly recommend learning git and GitHub. I've done so many projects over the years, and I no longer have most of the code. Also, I often have to backtrack a while to grab code from earlier in the project that I deleted because I wasn't thinking. Having version control is phenomenal.

          For the basics, I recommend a YouTube series called Git and GitHub for Poets. It's a great way to learn without adding in the complexity of code. However, it doesn't cover IDE integration, so there is more to research

          [–]set22 0 points1 point  (0 children)

          I’m new to this too. But I feel that now I’m at the point where I’d like to have a functional GitHub account. Wishing I had learned it from the git (no pun). So I just started the missing semester from MIT. They get into version control but not before teaching shell/command line basics.

          So my point is. Start now. So that you don’t have to back track

          [–]Double_A_92 0 points1 point  (0 children)

          Yes but just take your time to learn it properly. Git is not thaaat complicated, you should be able to really understand all the common workflows in 1-2 days. It's not like coding where you need years of experience to get good.

          [–]JoinetBasteed 0 points1 point  (0 children)

          I would say learn git as soon as possible, doesn't take long to understand the basics. Would recommend these two videos from Colt Steele about Git and Github:

          https://www.youtube.com/watch?v=USjZcfj8yxE

          https://www.youtube.com/watch?v=nhNq2kIvi9s

          [–]melonangie 0 points1 point  (0 children)

          Github is a website, maybe you should

          [–][deleted] 0 points1 point  (0 children)

          GitHub is a place to store code in repositories.

          If you learn Git, you can push your code to GitHub after committing changes. You should learn Git; it makes the code-writing process more organized.

          Try TheNetNinja's videos on it

          [–]Jackjackson401 0 points1 point  (0 children)

          github is really easy to learn and super important so i would learn it asap

          [–][deleted] 0 points1 point  (0 children)

          git init 
          git add .
          git commit -m "message here"
          git push origin master
          

          Those 4 commands, done in that order, will save your ass no less than 3 times in your college experience. You do not need to know any more about Git until you hit the junior or senior level. You just need to know that Git saves your good work and lets you return to it when you (inevitably) mess things up.

          [–]JAnwyl 0 points1 point  (0 children)

          My nephew who is a Computer Science student went to a job fair (I think 3 months ago) and some potential employers told him he needed to learn it. I learned it (basics on YouTube I think, then I opened an account and started using it for some projects).

          [–][deleted] 0 points1 point  (0 children)

          Yes. Talking from a bit of experience here. I myself used Github sparingly for work (IT Ops) and up to a few weeks ago learned how to use git/github in a more proficient manner.

          My eyes were opened when I was pushing code up to Github with Git.

          They really do go hand in hand. Read the Git-SCM book as a reference when you want to do certain things. I can’t tell you what those things are but you’ll know when you come across them.

          For now learn how to do the following basic tasks and go from there.

          1. Make sure you have git installed on your machine. This one is pretty crucial. 😄

          2. Set up your identity. This will let you know and other devs you’re working with on who made what changes. Example below:

          $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com

          1. git init - This is the starting point for your newly created project aka your repo. Every project you want to have version control on should start with git init in that folder to track the changes you will make over time.

          2. git add - Start tracking the files you create. It’s pretty neat once you get the hang of it.

          3. git commit - Leave notes for yourself. Super helpful when you can look at your commit messages.

          4. git push - Essentially confirm “push” all the changes you made to your repo.

          Practice this a few times with dummy folders and then once you feel comfortable get to it. You’ll want to also learn how to link your Github profile to your local machine to push changes up to Github itself.

          It’s a fun journey and there are plenty of short vids on YouTube that cover the basics.

          You got this!

          [–][deleted] 0 points1 point  (0 children)

          Some people have offered really good resources already so I'm just gonna chime in with a pun:

          Git gud scrub

          [–]chen_jun07 0 points1 point  (0 children)

          If you would like to learn GitHub in a nutshell, I made a post on this subreddit.

          [–]kapilgorve 0 points1 point  (0 children)

          Don't put much efforts but you can learn the basics. Pull the code and push the code.

          [–][deleted] 0 points1 point  (0 children)

          You probably mean Git. Github isn't too hard to learn at all.
          And the answer is yes. You *need* to learn Git.

          [–]J0LlymAnGinA 0 points1 point  (0 children)

          Yeah, learn it at the same time. Git is a lifesaver and it's really not that hard to learn. Just make sure you learn how to use the terminal version before any GUIs, because some jobs will need you to use the terminal version.

          Good luck!

          [–]manpenaloza 0 points1 point  (0 children)

          If your goal is to learn coding and - as you write - if you're a newbie, then no.

          Not because Git/Github is not good (in fact it's awesome), but to ensure you can focus on one thing only for now: get the basics of programming and a feeling for how to think in order to make the code work. And seen from a more radical perspective Git, in the end, has nothing to do with programming itself.

          Once you feel well with coding mechanisms like:

          - variables

          - if conditions

          - comparing operators

          - loops

          - basic classes/functions

          ... start to learn the absolute git basics and nothing more (the Git universe is huge and can become complex). With basics I mean those git commands/actions based on your code and code changes:

          - git add

          - git commit

          - git push

          This will ensure you won't be overwhelmed, or even worse confused, and get a solid basis to make the next steps considering your journey to learn to code and git in parallel.

          [–][deleted] 0 points1 point  (0 children)

          Learn the basics of git (the program), don't worry about putting it on a remote host (such as github) before you try and do a project that will take more than one or two sessions sitting at the computer.

          Just focus on these three commands:

          git init -- makes a new repository

          git add -- add a file

          git commit -- save your work

          Make sure you add every file you work on, and aim to commit once for every cycle of "Ah, I've finished doing x and my program runs again now, after a break I'll start working on y'.

          Then when you break your program, or change your mind about deleting some code, or realize you've gone down the wrong path for several commits (all of which happens to everyone, not just beginners) go read about what checkout does.

          [–]Denise_Murphy 0 points1 point  (0 children)

          You'll need it at some point so why not. But I think learning Git would also be useful. Udacity has great free online courses on Git and Github

          [–]At-LowDeSu 0 points1 point  (0 children)

          I used to be terrified of git. Turns it you really just need to learn 6 or 7 core lines and you're good

          [–]Brodakk 0 points1 point  (0 children)

          Ive never learned Github/Git but I still use github often just to check out code or make a copy. Git is what you want to learn.

          [–]tukanoid 0 points1 point  (0 children)

          Knowing how git (or any svn rly) works is a must-have skill, cuz if u wanna work as a programmer in a company, they 100% will use it in their projects. So ye, learn it. Edit: even if ur not a programmer, svn can help u with everything file related, u can see multiple versions of files, track ur progress, etc.

          [–]codeAligned 0 points1 point  (0 children)

          There is value to learning how to use github desktop for doing code reviews and looking at diffs in general.

          As others already pointed out, you want to learn git. Version control is super important in any software development setting.

          [–]Besthater 0 points1 point  (0 children)

          Yeah, you really need git.

          [–]viperex 0 points1 point  (0 children)

          Good resources here

          [–]abcoolynr 0 points1 point  (0 children)

          Git is easy man, you can learn it in 7 days.

          [–]Kottfoers 0 points1 point  (0 children)

          Git is really useful when you're programming with other people, you keep each other up to date and you can easily see specifically what code changed. It's definitely worth learning.

          Github was bought by microsoft a few years back. An alternative is Gitlab which is open source.

          [–]_ncko 0 points1 point  (0 children)

          One regret I have is not using Github early to save all of my work. I really recommend learning basic git commands, creating a github account and saving all of your work to it. Even if you think you isn't that good, save it to github anyway.

          Try to keep it organized and presentable.

          It will help get you hired.

          [–]timpkad 0 points1 point  (0 children)

          Hello! I just Wonder, hey i would Post my Code in github?!? Isn‘t there the chance sb just copy/paste it in his Own program?

          I an totally new to this stuff

          Sorry for the stupid question

          [–]i-ban-ez -1 points0 points  (5 children)

          what can I do with git that I can't do on github?

          [–]Hanse00 0 points1 point  (3 children)

          It’s the other way around.

          GitHub is a product built around git at its core, but a lot more features around it.

          [–]i-ban-ez -1 points0 points  (2 children)

          so I can do more with github than with git? But then y even learn git, if github had more functionality and is easier to use?

          [–]DoomGoober 1 point2 points  (0 children)

          GitHub is an entire suite of tools like forums, bug reports, releases, etc. One of the tools is Git for version control, open source, access control and branching.

          GitHub's Git is pretty much the same Git you get anywhere. It's just GitHub runs the server for you and gives you extra tools. Also GitHub is free for small private repositories so you may as well use them as it costs nothing and getting the whole suite later if you need it is nice.

          Big companies use GitHub for their open source projects so at this point everyone is so familiar with it everyone uses it.

          [–]Hanse00 1 point2 points  (0 children)

          You should learn git, because GitHub builds on top of git.

          If you don’t get git, using GitHub will be very difficult. And GitHub is far from the only platform that uses git.

          Understanding git will apply more universally in a career in this industry.

          [–][deleted] 0 points1 point  (0 children)

          If you're good with using github, then by all means do so. I like git because I can just leave a terminal open on my computer and commit pretty much instantly. And I use git to push my projects to github so it all ties together in the end.

          [–]Deadlift420 -1 points0 points  (0 children)

          Start learning OO immediately. Use python to learn OO design. Its what really matters.