Solidity is a statically typed, contract-oriented language that compiles to EVM bytecode. That bytecode is stored on chain at an address, and anyone can call its functions by sending a transaction.
Every file starts with a licence comment and a pragma that pins the compiler version, then declares one or more contracts.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract Hello {
string public greeting = "gm";
}Compiling produces two artefacts you will use constantly: the bytecode (deployed to the chain) and the ABI (a JSON description your front-end uses to encode calls).