I never thought I was too good at programming from seeing many others around me easily solve problems which was discouraging. However somewhere near the start of the programming module in 2nd year I decided that I'd actually try to give it a shot and see if it was possible to get good at programming. So I worked at it, asked hundreds of questions to my Dad (who is a programmer) and slaved away and eventually an amazing thing happened. I got good at it (surprise surprise) and even started to enjoy it. I made sure to do well in every lab assignment and got 100% in the big programming project which involved bank information and multi-threading.
And from then on I was happy to do programming for the rest of my life. Nothing beats the feeling of
solving a problem. Dopamine being released is what people get addicted to (that warm fuzzy feeling).
Some people call this the Eureka effect, my maths teacher in school called it 'The Buzz'. I call it
'The God Feeling'.
Doesn't matter what you call it though, it's real. And it's sad most people in the world feel it only a few times a year when they could be feeling it daily. It beats any other drug because it's free, the effect lasts longer, it actually improves your life, grows your brain, makes you happier and many other reasons.
The bigger the problem, the bigger the buzz.
The Buzz can be achieved from many disciplines, however I personally find programming is one of the
easiest ones to get high from, as all it takes is a few keystrokes (or a few million keystrokes) and
you've solved a problem. And there are literally trillions of problems in programming. From the high
level problems (Create game in C++, create neural network to recognize handwritten digits etc) to
middle level problems (create function to calculate the volume of a planet) to lower level problems
(add two variables together, put a semicolon in the right place).
Programming is also great because you have to keep improving to keep up with the fast pace of technology. My attitude is that anything I learn today will help me tomorrow, let alone a week, a month or 10 years from now. This applies even if the topics are totally different e.g. Embedded Assembly vs Neural Networks with Python. This is because one can become better at learning itself.
Modules taught in second year were: Solids and Structures, Computer Engineering II, Engineering and the Environment, Materials, Engineering Design III, Electronics, Engineering Design IV, Engineering Mathematics III, Engineering Mathematics IV, Themo-fluids.
Modules taught in first year were: Engineering Mathematics I, Engineering Mathematics II, Computer Engineering I, Physics, Chemistry, Electrical Engineering, Mechanics, Introduction to Professional Engineering, Experimental Methods, Engineering Design I (Drawing and CAD), Engineering Design II.