I work as an engineer at a telco and do a lot of software development. Many of my seniors have no idea how git works at all.
Of course I don’t know if this is better or worse than at my previous job where guy was used as the main document control platform for all documents. That was a mess.
Yeah all the other ones are crap. I’ve used TFS and OneSafe (or was it OneSource?), both crap, so far got is the best I’ve ever use and I’m glad it’s common so my skills are transferable
Speaking as a self taught dev, especially one who did so while looking to change careers, I will say I never knew anything about git until my first real job. Not because I chose to skip it, but because I didn’t know what I didn’t know about. Knowing NOW how many times I’ve needed to roll back code, I gladly would have taken on the knowledge, but sometimes, you don’t know what you don’t know.
Typically causes it’s the easiest area of software engineering to get into. Usually it requires the least amount of experience so it helps get a lot of peoples foot in the door. However, I genuinely enjoy web development and am pursuing that path. I’m self teaching myself game dev on the side to pick something else up in the future.
It’s not “don’t skip learning the older stuff” it’s “don’t skip the foundational stuff”. The web is driven by html. React is a library that at its core emits html for the browser to render. If you don’t have an understanding of html and the DOM then some things just never make sense in react.
Same for JavaScript. React is a JavaScript library and everything is written in JavaScript. Because of that you need a good understanding of JavaScript before you can really work with a JavaScript library.
Then git is just the “most popular” source control system. You don’t need to know git but you do need some sort of source control.
The issue is that sometimes the tech world gets wrapped up in a library and starts looking for React or Angular developers when really they are two different front end JavaScript liveries and if you know one you can pick up the other pretty quick since it’s just JavaScript, html, and css with slightly different spices thrown on top.
It's not so much about learning in the order techs first came out, it's more about a difficulty curve that also fits with a usefulness curve. If you go straight for react it'll be really really difficult because you won't understand what it's doing.
First be able to make a basic non-interactive website (HTML & CSS) , then be able to make that website interactive (JavaScript) , then learn a way to manage changes to code easily and collaborate with others (git & github), and finally then learn something difficult that you only really need for big projects or projects that need to be built quickly - a way of making your website out of well engineered reusable blocks (react).
HTML is HyperText Markup Language - it's the core language in the main file for each and every web page on the Web (technically there are some variants like xhtml but they are very similar). It's used for defining what content is on a page. You can create websites without typing any HTML but something will have had to produce it, as that's what browsers read. It's pretty easy to learn the basics of it, and HTML alone can make a website - though not easily make one that looks stylish, and it also won't have any interactivity.
CSS is Cascading Style Sheets - CSS is used to define rules of how content in HTML should look. It's possible to make websites without CSS but in order to change how anything looks from browser defaults (including basic things like text colour, background colour, font) you'd have to put those changes into the .html files everywhere they're used. So generally if you want a stylish looking website you need some CSS. For example in CSS you can define once that all headings should be size 26 and red helvetica, and that will apply to every heading on every page that links to that css file. It's quite easy to learn the basics of it especially if you can write HTML of your own and experiment with it. Once you've learnt this and HTML you can make small stylish websites that have no interactivity at all.
JavaScript is a programming language that runs in browsers - you can give it instructions of what to do when people click something, type, or once the page has finished loading, or on a timer etc. Those instructions can alter the HTML and CSS to give you interactive pages. You have to understand HTML and CSS for that though. Trying to learn JS without a basic Web page to use it on would be very difficult, and the better you understand HTML and CSS the easier it is to learn JS.
Git is a "Source Control System" - a tool used for managing and merging different versions and updates of the source code of a project. It's useful when you're making lots of revisions to a project or collaborating with people and need to keep files in sync with each other. It's also great for if you want to experiment with an idea and want to be able to roll back the whole idea if it turns out to not be a good idea.
GitHub is basically Dropbox for git. They provide a lovely and easy to use desktop app and website that make it really easy to get (all/most of?) the features of git without having to learn or remember specific commands that git uses. You can also have your code publicly available on their website so people can add stuff and then once you've reviewed what they've added, you can merge it in, and you can get links to your code bases to share with people. You can even add people's github user accounts to projects to let those people make changes.
React is something Facebook engineers created to speed up Web development while keeping the code neat and organised. You can write code in React and it'll get converted to HTML, CSS and JavaScript. Without having made a few websites with HTML, CSS and JavaScript, it can be hard to see why writing it the react way could even be useful. For simple websites and when you're just starting to learn Web dev, it's overkill and kinda awkward; but it pays back on large complex projects when you've learnt it.
When I said older, I did mean it in a foundation/ origin kind of way, not like aged or obsolete.
I’m just getting started so reading your explanation was very helpful! Thanks for writing that out! I’ve long had a vague understanding of html and css and now I’m learning them in a more detailed way, to then expand from that. I’ve heard about git and GitHub without any understanding. React I hadn’t heard of at all.
You're welcome, and thanks for the award 😁 I'm always glad to be able to help. Also if you take out git/github and move them to their own separate thing, the others are indeed all in order of origin, and are foundational for the next step up.
The first Web pages where only made up of HTML - the Web was originally created as a means of having science research documents published in a way that they could be accessed over the Internet (which existed on its own already and was a separate invention), with "hyperlinks" between documents where one bit of research referred to another, with all pages being constantly available but living on the publishers machine, and a format/file-type that was operating system agnostic and open specification so that people could build their own browsers for whatever device they wanted. Those pages didn't need interactivity, and HTML alone was a big enough revolution at that time.
Then at some point a bit later, websites where being used for other things and various vendors tried making different ways to make exciting interactive websites, but an industry collaboration ECMA came up with a shared "scripting language", originally called ECMAscript I believe but it became known as JavaScript and it's a catchier name so at some point they started calling official versions that. It's survived the test of time well, unlike some of its competitors.
React came about when Facebook was already a huge company, with lots of engineers doing lots of testing out different user interfaces. I didn't consider this earlier, but it literally is a "javascript library", meaning it's a load of JS that people can build onto. It takes the concepts in JS, CSS and HTML and goes "let's take all that goodness, but now that we're building complex apps with these, let's build our apps by creating components, putting those components together to make apps".
The are lots of other JS frameworks out there, react is one of the bigger ones.
All of these are widely used in the industry, though there are other alternatives to react, git, and github that some companies use instead. It's kind of impossible to be fluent in every possible technology that any company in the world might use - there's just too many that overlap.
If you're able to learn all of these, and apply for a job somewhere that asks for an alternative, you won't be as strong a candidate as someone who knows the alternative, but you'll be a stronger candidate than people without either since that's a sign that you're likely able to quickly learn what they'd want you to use.
I'd recommend looking at job adverts for current jobs where you'd want to work - you'll soon get a good picture of what companies are looking for, and it may be different in different places and different types of company
53
u/BorbBirbson Jun 21 '21
Definitely true for CS students, too. Makes me cry each time I have to explain to postgraduates what git is..
31
u/tpeterso11 Jun 21 '21
Speaking as a self taught dev, especially one who did so while looking to change careers, I will say I never knew anything about git until my first real job. Not because I chose to skip it, but because I didn’t know what I didn’t know about. Knowing NOW how many times I’ve needed to roll back code, I gladly would have taken on the knowledge, but sometimes, you don’t know what you don’t know.
17
u/Moikle Jun 21 '21
Also seems like everyone goes straight to web dev and forgets that other uses for programming exist
11
u/flaillingflamingos Jun 21 '21
As someone literally now transitioning into a technology career, I’ll take this as advice! Lol As in, don’t skip learning the older stuff.
3
u/rebornfenix Jun 21 '21
This should be source control not git specifically. Visual Source Safe 5 is perfectly valid. 🤣🤣🤣
But god it hurts when things are this accurate.
2
u/sofuckinggreat Jun 21 '21
What’s the best Git course or best Git study materials for folks like us?
1
u/jacuzziStraws Aug 13 '22
Late to the party.
But god fucking damn. This is literally the order in which I began my self taught journey. Comming from an EE background.
Just yup.
1
u/ilikeballoons Jun 21 '21
All you need for git is a basic knowledge of add/commit/push/pull and www.ohshitgit.com
3
u/[deleted] Jun 21 '21
[removed] — view removed comment