Is my controller script good?

This is my first code in C#,
Is it good?
I used RigidBody to get better collisions.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class movimento : MonoBehaviour
{
    public Rigidbody rigid;
    public float VelocidadeAtual, VelocidadeSprint;

    // Start is called before the first frame update
    void Start()
    {
        rigid = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey("w"))
        {
            rigid.AddForce(transform.forward * VelocidadeAtual, ForceMode.Acceleration);
        }
        if (Input.GetKey("s"))
        {
            rigid.AddForce(transform.forward * -VelocidadeAtual, ForceMode.Acceleration);
        }
        if (Input.GetKey("a"))
        {
            rigid.AddForce(transform.right * -VelocidadeAtual, ForceMode.Acceleration);
        }
        if (Input.GetKey("d"))
        {
            rigid.AddForce(transform.right * VelocidadeAtual, ForceMode.Acceleration);
        }
        if (Input.GetKey(KeyCode.LeftShift))
        {
            VelocidadeAtual = VelocidadeSprint;
        }
        if (Input.GetKeyUp(KeyCode.LeftShift))
        {
            VelocidadeAtual = 10;
        }
    }
}

I can think of several improvements:

  1. Class name movimento should start with capital letter.
  2. Component initialization is better to move to Awake() instead of Start(). It’s irrelevant in your case, but better practice in general.
  3. Instead of public is better to use [SerializeField] private. Then you still can configure your values via inspector, but cannot mess with your variables outside the script.
  4. You could combine horizontal (‘a’ and ‘d’) and vertical (‘w’ and ‘s’) movements, and sprint logic can be written in single line.

Example:

private Rigidbody rigid;
[SerializeField] private VelocidadeSprint = 20;
[SerializeField] private VelocidadeAtual = 10;

void Awake()
{
    rigid = GetComponent<Rigidbody>();
}

void Update()
{
    float speed = Input.GetKey(KeyCode.LeftShift) ? VelocidadeSprint : VelocidadeAtual;
   
    Vector3 forward = Input.GetAxis("Vertical") * transform.forward;
    Vector3 sideways = Input.GetAxis("Horizontal") * transform.right;
    rigid.AddForce((forward + sideways) * speed, ForceMode.Acceleration);
 }

In that case speed will always be 20 when shift key is pressed and 10 otherwise.

Also, you could use [RequireComponent(typeof(Rigidbody))] attribute on your movimento class to ensure there always will be a Rigidbody.

Thank you @Deygon.