Programming base system and gpio

How can I program and upload to the arduino without using the arduíno IDE, and any built-in functions?Like, never use a digitalWrite(), for example.

It sounds like you want to use another development environment. While you are checking be sure it supports the Arduino. The Arduino is a small system not a computer chip. You do not have to use the a digitalWrite(), you can write directly to the registers if you like. I get the feeling you do not like the language implementation used in the Arduino IDE. Why not download the Atmel-ICE User Guide - Microchip Technology, it is a great system supported by the chip maker. Read this then make your decision. If this is your first rodeo I suggest you stay with the Arduino IDE for a few weeks until you understand the nuances of the system.

There's always Atmel Studio. Allows you to write/program using descriptive register names. Probably the closest thing to writing assembly code

This is how I do it:

1- Install Atmel Studio. It's Atmel's official IDE for programming AVR.
2- Learn how to code AVR. Read the datasheet of the MCU you want to program.
3- Write and build your code in Atmel Studio. Building it will generate a .hex file. I don't remember its location right now but you need it for the next steps.
4- In Arduino IDE install a "core" for the MCU you want to program. (For example MicroCore supports ATtiny13).
5- Select your MCU in Arduino IDE. (In this case the ATtiny13).
6- In Arduino IDE load the Blink example, hold down the shift button and click the upload button. It doesn't matter if you don't have the actual MCU connected, we just want the avrdude command.
7- From the console output at the bottom of the IDE copy the avrdude command. It should look something like this:

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 -b19200 -Uflash:w:C:\Users\Pouria\AppData\Local\Temp\arduino_build_378884/Blink.ino.hex:i

8- Replace the address of the hex file (in bold) with your hex file that you created with Atmel Studio in step 3. This will be your avrdude command that will upload your code to your MCU.
9- Now you need a programmer. Easiest way is to use Arduino as programmer. Upload the "ArduinoISP" example to an Arduino.
10- From the "tools" menu select "programmer" and then "Arduino as ISP".
11- Connect your MCU to the Arduino. Search the internet on how to do that. You want to connect the MISO, MOSI, SCK and RESET pins together.
12- Now with your Arduino connected (the one that has the "Arduino as ISP" in it) run the command from step 8 and the code should be uploaded to your MCU.

I know this was not very detailed, because your question needs a really long answer. It consists of many steps. You'll have to use the Internet for details on how to do each step, I'm won't have the time to explain them to you. I just wanted to give you a starting point and share the way I do it using minimal setup/components. I hope it helps you.

How can I program and upload to the arduino without using the arduíno IDE, and any built-in functions?Like, never use a digitalWrite(), for example.

Why?

Why?

Looks better on a resume, or as a university-level project for CS, CE, or EE majors.