This github will contain folders for learning to code in general, and for crypto specifically.
Linux is an open-source operating system that is widely used by developers and unknowingly by the general population. It is easier to use for coding vs Windows or Apple OSX. It is possible to have both Windows and Linux on the same computer in case you want to play computer games or something.
Instructions provided in tutorials are often written for Linux users.
Git allows you to easily download packages and software from places like github onto your computer, then update any projects you are working on. Commands will look like this:
git clone https://github.com/willwooten/blake_will_shared_learning_depo
The above code will copy this folder onto your computer, and connect it to github so you can save your work in a github repository.
Github is where open-source development happens. It is where you'll find most software, tutorials, and where you can work on your own projects and save them.
This is software used for editing code. It is well integrated with github, and works with all the languages you'll want to use.
I would suggest starting with Javascript and/or Python. They are the most basic and easy to use, while also being popular and widely used by business/websites. It is probably best to learn HTML/CSS as you go.
Google is your friend. Any question you have, someone else already had the same question and posted it online at stackoverflow where they got an answer. For example, google "python turn list into string" and you will get your answer.
Important language for web and app development.
The language used to structure websites for the last 25 years. Easy. Learn as you go.
CSS is "Custom Style Sheets" and is how websites are styled (choosing fonts/colors/sizes/etc/etc). Easy. Learn as you go.
Great language to learn for day-to-day data projects. Currently the most popular and widely used programming language.
The most basic database language, widely used in business and web development. Clunky and hard to read. Websites and businesses use mySQL, noSQL, PostgreSQL for their databases, which are all slightly different.
An easy to use, easy to read data language. Sort of the midway point between SQL and Python. Not very popular so not necessary to learn. Skip it and go straight to Python.
Go (or golang) is a popular choice for developers.
A difficult base level programming language comparable to C++. Don't start here it will be way too confusing. This is a useful and fast language though after you've gotten a handle on Python/Javascript.
Solidity is the programming language used for the Ethereum blockchain (and some others). It is very similar to Javascript. In order to build a dApp (decentralized app) on Ethereum, you will need to code in Solidity, Javascript, and web development stuff like CSS.
Bitcoin is designed to prioritize security instead of apps, which means many things that you can do on Ethereum you can't do with Bitcoin (yet...). You can however use the Bitcoin RPC to read the Bitcoin blockchain (and any other Bitcoin forks/clones like Litecoin, Dogecoin, etc, etc). This is used for on-chain analytics. Anyone running a Bitcoin node can see exactly where/when bitcoin moved from one place to another, the address where it was sent, and other metadata. To use the RPC you need to install and run a Bitcoin node.
A Smart Contract language for Bitcoin. Based on Rust, this is the proposed 'Solidity'-type contract language to expand the capabiltiies of Bitcoin. This is not currently implemented in the Bitcoin Core code. It is a BIP (Bitcoin Inmprovement Proposal) that could be merged into the core code in the future.
The Lightning Network is a Layer-2 expanding the capabilities of Bitcoin. It is not a programming language. Implementations of Lightning are written in languages like C, Go, and Rust.
Learn Javascript is a free intro-level online tutorial for Javascript.
Programiz has a free intro-level online tutorial for python with video.
Codeacademy is a subscription-based place to learn many different languages in a structured way.
W3Schools is a reference website for many programming languages.
Datacamp is great for learning data-focused languages like Python (and others like R, SQL). It is subscription based so it will cost money, but it is structured in a way to make learning easier.
Udemy is another subscription-based tutorial website for programming (among other things).
Programming Bitcoin is a book/github to learn the very basics of blockchain technology. This is not only helpful for Bitcoin but also understanding Ethereum. Includes code/lessons on cryptography, creating bitcoin transactions from scratch, and more. This is how I learned.
The Ethereum.org website has a section for learning Solidity and Ethereum development.
Solidity-by-Example has basic code examples for Ethereum contracts. This code is included in the Solidity folder in this github repo.
scaffold-eth is a github repository with the building blocks for creating Ethereum dApps. Provides great usable examples of dApps like decentralized exchanges, staking, and NFTs, but no tutorials.
Remix is an online IDE (integrated development environment) for Ethereum. There you can code/edit/deploy contracts onto the Ethereum blockchain.