One of those corrections is function hoisting. This is where all functions, no matter where they are defined within the code file, are moved by the interpreter to the top of their scope so that they exist in memory before they are called.
Personal Recommendation (unpaid)
Programming and software development are awesome! Being that you are learning along with me, there is an excellent chance you can make this a career. Based on my own life experience, let me suggest to you that you go get a Computer Science degree from Neumont College of Computer Science and kick your life into hyper-drive.