Life is difficult. (And so is Java. And so is learning in general.)
This is a great truth, perhaps one of the greatest truths.
(The first of the "Four Noble Truths" which Buddha taught was "Life is suffering").
It is a great truth because once we truly see this truth, we transcend it. Once we truly know that life is difficult - once we truly understand and accept it - then life is no longer difficult. Because once it is accepted, the fact that life is difficult no longer matters.
Most do not fully see this truth that life is difficult.
Instead they moan more or less incessantly, noisily or subtly, about the enormity of their problems, their burdens, and their difficulties as if life were generally easy, as if life should be easy. But life is not easy. Life is a series of problems.
Discipline is the basic set of tools we require to solve life's problems. Without discipline we can solve nothing. With only some discipline we can solve only some problems. With total discipline we can solve all problems.
What makes life difficult is that the process of confronting and solving problems is a painful one. Problems, depending upon their nature, evoke in us frustration or grief or sadness or loneliness or guilt or regret or anger or fear or anxiety or anguish or despair.
These are uncomfortable feelings, often very uncomfortable, often as painful as any kind of physical pain, sometimes equaling the very worst kind of physical pain.
Indeed, it is because of the pain that events or conflicts engender in us all that we can call them problems. And since life poses an endless series of problems, life is always difficult and is full of pain as well as joy.
Yet, it is in this whole process of meeting and solving problems that life has its meaning. Problems are the cutting edge that distinguishes between success and failure. Problems call forth our courage and our wisdom. Indeed, they create our courage and our wisdom.
It is only because of problems that we grow mentally and spiritually. When we desire to encourage the growth of the human spirit, we challenge and encourage the human capacity to solve problems, just as in school we deliberately set problems for our children to solve.
It is through the pain of confronting and resolving problems that we learn. As Benjamin Franklin said, "Those things that hurt, instruct." It is for this reason that wise people learn not to dread but actually to welcome problems and actually to welcome the pain of problems.
Most of us are not so wise. Fearing the pain involved, almost all of us, to a greater or lesser degree, attempt to avoid problems. We procrastinate, hoping that they will go away. We ignore them, forget them, pretend they do not exist. We attempt to skirt around problems rather than meet them head on. We attempt to get out of them rather than suffer through them.
But let us teach ourselves and our children the necessity for suffering and the value thereof, the need to face problems directly and to experience the pain involved. Discipline is the basic set of tools that we require to solve life's problems, and these tools are basically techniques of suffering: Means by which we experience the pain of problems in such a way as to work them through and solve them successfully, learning and growing in the process.
When we teach ourselves and our children discipline, we are teaching them and ourselves how to suffer and also how to grow. We are teaching them and ourselves how to schedule the pain and pleasure of life in such a way as to enhance the pleasure by meeting and experiencing the pain first and getting it over with. This is called delayed gratification and it's one of the tools, techniques of suffering, means of experiencing the pain of problems constructively, that we call discipline.
The tools of discipline are four:
The exercise of discipline is not only a demanding but also a complex task, requiring both flexibility and judgment. Courageous people must continually push themselves to be completely honest, yet must also possess the capacity to withhold the whole truth when appropriate. To be free people we must assume total responsibility for ourselves, but in doing so we must possess the capacity to reject responsibility that is not truly ours. To be organized and efficient, to live wisely, we must daily delay gratification and keep an eye on the future; yet to live joyously we must also possess the capacity, when it is not destructive, to live in the present and act spontaneously. In other words, discipline itself must be disciplined. This kind of meta-discipline is what we call balancing. It is the type of discipline required to discipline discipline. It is the kind of discipline that gives us flexibility.
Since you are taking A201/A597 and I210 it may be that you want, or need to, learn Java - and programming in general. Since this is a first experience for you it has not been easy thus far, and will not be easy to the end. It likely was difficult thus far, and will continue to be difficult to the end, no matter how much we'll try to make it easy or understandable or obvious or intuitive or immediate or easy to grasp. But when the end comes you will look back with pride.
Because there is some risk involved, I continue to wish you good luck. Remember that no matter how behind you might feel you are, you probably also feel that you're way ahead (of yourself). Nothing is lost, nothing is unrecoverable (at least not any time soon). And because the act of entering programming as a beginner and a non-major is basically an act of courage, you have my admiration.
The difficulty in learning programming has two clearly identifiable components.
And don't you forget it: no matter what happens, you're simply the best!
Should someone fail to see this evidence, with patience prove it beyond any conceivable doubt.