Personally, I am an experienced beginner, I in no way have expertise in specifics but I'd like to think I have some learning experiences that can be shared.
TL; DR
Make stuff, if stuck change approach, continue learning.
What to make when starting - make teeny tiny simple games
Doing one full game from tutorial is great way to learn how to solve regular problems in game projects.
The simpler the better. Make tiny games. Some random examples
2D Cookie clicker without upgrades ( just click, number go up )
2D Enemies run for mouse cursor, you need to dodge enemies
(bonus) 3D FPS where is Waldo, walk around level, click with crosshair when person is found
At least in my experience, there are some areas that are easy to pick up and start implementing in the game but can get you stuck on details when you're just beginning. For any of points below, I would recommend to attempt, but also recognize when you're stuck and better to move on, and return to this topic later in your learning journey:
Physics - if you have very specific behavior in mind and default physics don't behave as you expected, it might create some problems, and solving them will make all of the development get stuck. For example, it's quite easy to make 3D vehicle using in-built nodes like VehicleBody3D ( https://docs.godotengine.org/en/latest/classes/class_vehiclebody3d.html ). But it's relatively hard to make car to drift and in some cases can become too complex problem while you're learning.
3D camera + mouse pointer - while working with mouse clicks in 2D Godot project, you'll learn it's very easy to get mouse position, object mouse is clicking on. But when moving to 3D you'll see that you have to account for more things and 3D Vectors are involved. There are many examples that give you code to solve this, just be ready for relative spike in complexity
Useful stuff to learn about early
There are some topics I would recommend learning about early as it can help you to solve basic problems. Give at least cursory glance about these topics, so you know what's available. None of these are required, but in certain situations can be a game-changer:
Signals, groups, Collision layers and masks, Globals/Autoload, Shaders, Tweens
Learning resources
Godot Recipes (https://kidscancode.org/godot_recipes/4.x/) - there you'll find bite-sized solutions and instructions for popular problems, like "Top-down movement", "Shooting projectiles" and so on.
Official documentation - it have helped me many times. Remember you can also open it within Editor with F1 then search for Node or method you want to read up on
Assets
Personally I like to use pre-made assets while I am prototyping and checking out the idea. For me, it helps greatly if you can see your game concept coming together. Much better than using default Godot icon everywhere or plain shapes.
There are many places to get assets
Itch (https://itch.io/game-assets/free) - this is the simplest way to get your initial assets. Eventually I got tired trying to find assets for every idea, and I bought (paid asset pack) https://kenney.itch.io/kenney-game-assets. Now even if I am not planning to leave the aesthetic in finished project, while I am prototyping, with this pack I can be sure that I will find something for every type of idea that comes to mind
When your very first game is ready, you can use itch.io to publish it either publicly or only for certain people. Makes easy to provide game for testing and share with friends
I am longtime Linux user ( but I don't consider myself an expert ).
Here are some considerations and knowledge bits I have accumulated:
If you're using terminal - especially when you copy commands from internet try to look up command and flags you're about to execute. Be VERY thoughtful when running any command with recursive flag ( usually -r or -R, depends on the command ). There are multiple commands, when misused without understanding, can ruin the system. For example running rm -rf <directory> ( deletes all files and directories that are in <directory> ) and providing incorrect directory, like OS root directory, can ruin everything. There are many stories how Linux beginners brick their OS ( it's almost like rite of passage ). While it's not strictly required to use Linux, I strongly suggest to try to learn the terminal commands, but be mindful of what you execute. Few other commands to respect: mv - moves files/directories, chmod - changes directory/file permissions, chown - changes directory/file owner.
If you put sudo in front of the command, it means it will be executed as an administrator, giving that command additional power. It's required in many cases, but when paired with point above, it can potentially do more damage.
In some cases you may be required to use vi or vim to edit files, learn the commands to write, exit the application ( :q to quit ). There are many memes about Linux beginners trying to exit vi/vim
If anyone suggests to give file 777 permissions, like sudo chmod 777 somefile.sh ( which means, every OS user can do everything with specific file ), usually it's quick and hacky workaround. While not in every case possible, you should always strive to find least permissions needed whenever possible
In most Linux distributions, there is pre-installed terminal application Zenity ( can check with zenity --version ). It allows you to make simple window applications without programming, and gives ability to pass input information to other commands. Personally I use it to quickly store bookmarks I find. With keyboard hotkey I show zenity window with 2 text inputs ( url, title), and input texts are stored in database. Can read about Zenity here: https://help.gnome.org/users/zenity/stable/. There are color pickers, calendars, tables and so on. For super-simple example, following line will create simple info window with 4 buttons ( 1 default for info window, and 3 extra buttons )
As other people have mentioned, you can always run man cp ( or cp --help ) where cp ir command you would like to learn more about, see all flags and required arguments ( in this case cp is command for copying files and directories )
Some useful commands
find - well... finds files/directories ( example find -name ~/Desktop "*.txt" , finds all files with txt extension on desktop )
grep - find text in files
tail - show last lines of long file ( mainly used for log files )
head - show first lines
wget - allows you to download files when provided with URL
curl - make HTTP requests to sites, retrieve HTTP responses
watch - repeat command with time intervals ( example watch -n 1 ls -la ~/Desktop, will list Desktop files repeatedly with 1 second interval. watch command can be useful when you want to watch for some changes in file lists, file contents and many other cases
QDirStat - Very cool application, I use it regularly ( https://github.com/shundhammer/qdirstat ). When provided with directory, after it's done analyzing, it will show chart of what files takes up the space and if you wish can locate/delete them from the application window ( bigger rectangle means bigger file ). Super-useful when trying to understand what takes up the storage.
True MMORTS with persistent non-instanced map and PVE content.
IMO best example was Ballerium developed by Majorem ( but game doesn't exist anymore ) - on graphical level looked like WC3, on PVE side there were monster encounters and monster pack migrations that you could engage or had to run from
Personally, I am an experienced beginner, I in no way have expertise in specifics but I'd like to think I have some learning experiences that can be shared.
TL; DR
Make stuff, if stuck change approach, continue learning.
What to make when starting - make teeny tiny simple games
Doing one full game from tutorial is great way to learn how to solve regular problems in game projects.
The simpler the better. Make tiny games. Some random examples
For example from official documentation "Dodge the creeps" https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html
Of course there are many more tutorials like that
Pitfalls while learning
At least in my experience, there are some areas that are easy to pick up and start implementing in the game but can get you stuck on details when you're just beginning. For any of points below, I would recommend to attempt, but also recognize when you're stuck and better to move on, and return to this topic later in your learning journey:
Useful stuff to learn about early
There are some topics I would recommend learning about early as it can help you to solve basic problems. Give at least cursory glance about these topics, so you know what's available. None of these are required, but in certain situations can be a game-changer: Signals, groups, Collision layers and masks, Globals/Autoload, Shaders, Tweens
Learning resources
F1then search for Node or method you want to read up onAssets
Personally I like to use pre-made assets while I am prototyping and checking out the idea. For me, it helps greatly if you can see your game concept coming together. Much better than using default Godot icon everywhere or plain shapes.
There are many places to get assets
Extra
When your very first game is ready, you can use itch.io to publish it either publicly or only for certain people. Makes easy to provide game for testing and share with friends