Before I start programming and studying for ACM, I wanted to be a civil engineer (My dad's job). In Iran, we have to participate in konkoor exam, in order to be able to enter good universities. My score was not that good to be accepted in computer engineering, And so I chose to be a civil engineer and I was accepted to Amirkabir University of technology, 3rd university in Iran. In all semesters, I was saying "oh Man, don't you want to change your Major to computer engineering? The one that you had dreams about becoming a famous ACM er! But, civil engineering was good! I was ranked one in my faculty, so why would I change my major?" I decided to double major with it instead of changing my major completely. But I was still only taking courses from civil eng faculty not any from computer engineering. I was not sure. I already had a good condition at the Civil Engineering faculty on Amirkabir university of technology so why should I ruin it? why shouldn't I continue my masters in it or in an MBA at sharif? I had been accepted to both, without any further exams, because my grades were so good! Suddenly, everything was changed! when I was in the 6th semester, I was diagnosed with a benign but rare ailment(disease) which I (and probably you) had never heard of it! It was not serious, BUT, the only problem is that no one knows when it is going to be away. Oh! What the ....! I took a semester off and was transferred to Qazvin University, where I could spend time with my parents. In fact, I was only allowed to spend a semester with my family in my city and then I needed to return to Amirkabir. The funny part was that the scores I'd get in Qazvin would not be considered in Amirkabir university. Only that I had passed the course mattered, so given that Qazvin university was not as good (and as hard to pass courses) as Amirkabir and that scores would not be counted in my average, I had enough time to think about my choice! Master of civil engineering at Amirkabir? Master of MBA at sharif or 2nd Bachelor at Amirkabir? I started to read my ACM books again randomly. I solver all the first 50 questions of the Project Euler website (for the 3rd time) and found that "Oh! Where have you been all these years?". In fact, civil engineering was somewhat an art and I loved to make buildings (like in Minecraft!) but it had never satisfied me for hard problems! Anyway, at that time I also became to know Randy Pausch (I suggest you do the same) and watched one (and the most famous) of his lectures: "The final lecture"! It was like an hour, but I remember 3 quotes from it:
1st: We cannot change the cards we are dealt, just how we play the hand. I had been given a rare disease card which I could not simply return it. All I could do was to accept it and live my life to the fullest! And thanks to Amgen (a Famous pharmaceutical company) I was taking really good (and very expensive) drugs and my disease was now in control. 2nd: Don't forget your childhood dreams. They lead you to something good. Bingo! What a good hint!
So I made my mind. After I returned to Amirkabir (And still taking my drug) I resigned from my position at master's degree and began to take courses from computer Engineering faculty. I was in semester 8, But I had to start things from semester 1! I had to take a C programming course (Despite the fact that I insisted that I am a previous ACM er and really good at C). Anyway, I assume it takes me 2-3 years to take this bachelor in computer engineering, and also finish my final courses in civil engineering. This is my life! I love it! Right now, I think it's too late for me to start ACM again. Currently, I study AI in my free times and it looks really cool. Sorry if I wrote so long, But the only thing I wanted to mention, is something about the cards you are given by your life, and about your childhood dream (and a suggestion to watch Randy Pausch final lecture). Happy 2020 to everyone. Sincerely, Hossein.