Getting Started
It's very overwhelming for anyone new to get started and write code from the get-go. There are a lot of amazing resources out there to learn and grow. But one of the major problems newcomers face is the problem of analysis paralysis.
As there is an uncountable amount of courses and tutorials. It gets overwhelming very quickly and people get stuck in "tutorial hell". So this is a streamlined list of resources, that you can dive in blind and start writing code as soon as possible.
By no means this list is a catch-all end-all. But if you don't know what to do, this is a really good starting point
CS50
CS50 is an introductory computer science course by Harvard and Yale University. The course is run on-campus and online. The name is a play on "101"s being the introductory courses of their respective subjects. This signifies the inclusive nature of the course, one popular metric the instructor likes to quote is that around 70% people taking CS50 have no prior experience in writing code.
- The first week talks about the representation of numbers in binary, and the general thought process of iterative thinking i.e. giving the student a good experience of "thinking like a computer"
- Subsequent weeks, talk about basic algorithms and pointers.
- And continue to various topics, such as web servers, etc.
It is a great resource to get started in computer science. It provides a basic intuition of computer science, which goes a long way.
Whether you're interested in web development or systems programming, this is one of the best ways to get started.
There are Problem Sets (PSets) after every week which are very cool too, and if you submit all the PSets, you get a free certificate from CS50 harvard, which is 90USD on edx.
Also Checkout
- https://www.freecodecamp.org/ (learn with interactive tutorials and earn a free Certificate after the completion of the course)
- https://automatetheboringstuff.com/ (For learning python by doing fun projects)
Git
Git is the most popular version control system. It was created by Linus Torvalds(founder of Linux) to help manage the Linux kernel project.
What is a version control system?
A version control system keeps the record of the changes made by tracking the modifications made so that everything is in organized order and if something goes wrong we can get back to our previous state. It is used to keep different versions of the history of any project.
Why use git?
- It is really hard to manage a project. More so the projects that include code, as changes in lines span across various files.
- it's harder to understand the nature of changes by just looking at the changes in code, without re-understanding the context
- easier to work with multiple people
It is recommended to learn git, as soon as you start writing code. To make a habit of good code practices
https://www.youtube.com/watch?v=1h9_cB9mPT8
Important Links
https://github.com/pingcap/talent-plan/blob/master/courses/tp102-how-to-use-git-github.md
https://rachelcarmena.github.io/2018/12/12/how-to-teach-git.html
http://perl.plover.com/yak/git/
https://www.youtube.com/watch?v=1ffBJ4sVUb4
https://eu.udacity.com/course/how-to-use-git-and-github--ud775# https://git-scm.com/book/en/v2