University professors want you to believe that if you are failing to meet your deadlines you are “not managing your time properly”. This is not true for a number of reasons.
In real life people hardly shove deadlines down your throat. The way it usually works is the project manager first lists all the activities that needs to be done. Then all the “owners” of each activity gives an estimate on how long each activity will take. And then, based on the program’s priorities, the PM assigns deadlines for every activity trying to respect the estimated durations as much as possible.
In a way, professors are actually doing more harm to you by giving you deadlines in the first place. The most important skill for a developer working in the real world, is the ability to reliably estimate the duration of work. Deadlines are okay during the freshmen and sophomore years. There isn’t any significant amount of coding in the first two years. But from your third year and onwards, you are faced with 4-6 week long programming assignments. This is something that requires a bit of planning. Depending on the courses you take in your Junior year, the deadlines for your 4-6 week long assignment may not be compatible with your workload from other courses. In real life, you would first look at all your assignments from all your courses, set priorities to them, and then *plan* for a 4-6 week long slot at some point during the semester. This kind of project management skill is vital for a developer to succeed in real life. A pre-determined schedule is not guaranteed to work for every student.