The lessons from my CS degree

It’s collection of thoughts, lessons and events that happened in my first year as a Computer Science (CS) student at University College London (UCL).

Beginning of the year

LATER EDIT: I ranked 1st in the Computer Science department and wrote one more chapter of this post.

It’s 14-minutes long article. Here’s the structure

  1. Fours major events and the lessons I learnt from.
  2. Regrets and final thoughts.

Why did I write this?

For three reasons. Firstly, it’s to put my mind in order and reminisce about this beautiful year. Secondly, it’s for those who will start their freshman year at University and can learn how to get the most out of it. Thirdly, for those who are curious about my thoughts and want to grasp my lessons.

1. Starting a new life in London

I arrived in London on 20th September 2016 with big expectations about this year. Many times during summer have I imagined that I will change my mind and do great things, and most of those happened to be true.

My parents came with me to London in the first week and we had been visiting London’s attractions, like the British Museum and Millennium Bridge. Meanwhile, the university had some freshman socializing events and I met some people there, however, I didn’t keep in touch with them.

Event at the beginning of the year

At the beginning I felt lonely because everyone was a stranger to me — I didn’t know anyone except a friend from my town, Horatiu, who is also a CS student at UCL. I remember that when my parents left London I cried because my adult life was starting…

UCL has a great program which assigns a personal tutor to every student. In the first days, an important professor, who I now admire very much, sent us an email that he would like to be the tutor of a few students interested in entrepreneurship. That’s what I wanted, so I immediately sent him an email, and in some days I was accepted.

The lesson: Do things as soon as possible and don’t postpone them. The chance might not come back again.

In the first weeks, it quickly became obvious that London’s industries can be resumed to three: banking, consulting and law. Some people may say that technology is a big thing here, but the majority of the technology is related to Finance. Here is a big hype with Blockchain and it drew my attention — and I was lucky because a new Blockchain society has just been founded at UCL. So, I immediately applied and got the position of Finance Executive. It turned out to meet some really determined people who wanted to make a change.

Accommodating with London

I started meeting people and getting to know the classmates and other people. We had many team-working projects at University which I thought to be stupid at the beginning — but now I consider them useful because you get to know the classmates way better than getting out for a coffee.

One thing that I am grateful for is that I came with solid programming experience and I had created a programming course over the summer. The course covered much of the University curriculum and many classmates have started to watch it. When I created it, I didn’t expect it to be a good promoter, but soon it made me known within the class.

The lesson: Don’t say that things are useless, one time they will be useful.

2. Pursuing my skill and winning a medal at ACM

I’m from Romania and back there I dedicated my whole high-school time programming. That made me win three Gold medals in the National Olympiad in Informatics. Curious to know how I prepared for the Olympiad? Read my article here. The competition is individually-based and we have to solve algorithmic problems as fast as possible, using the least amount of memory.

There is a similar competition for students (ACM ICPC) and this time teams of students represent their Universities. It’s a big phenomenon and some of the best students from all around the world come to participate.

My team and me (in the left)

Because of my background, I was part of a team who qualified UCL to the Northwestern European regional of ACM ICPC. It was held in Bath, UK and around 450 students from UK, Germany, Scandinavia, Netherlands and many other countries from this region came to compete. I remember that the contest was held in a huge hall with about 150 computers where the teams were put together to compete.

ACM ICPC Northwestern competition

To increase the pressure, each time a team was solving a problem, it received a balloon with a specific color so that the other teams would know that. The contest took five hours and in the last hour, the scoreboard was frozen. We sent two problems in the last 10 minutes and didn’t know what to expect from the results. Maybe now it sounds funny, back them it was stressing. And because we ranked 11th in the Northwestern Europe, we won a Medal. A good moment to celebrate!

Trip to Moscow

Before the participating in the Northwestern European ACM ICPC, the University sent three of us to prepare for an algorithmic camp in Moscow.

In order to get to Rusia, I needed to get a visa, which was not as easy as I expected. I’ve been to the Russian centre for Visas in London. When my turn came, a clerk came to see my documents for the visa. She looked strange at me and took the phone to call for assistance — in this time I didn’t know what’s happening. After five or so minutes she closed the phone, looked at me and said: “We can’t give you a Visa to Russia because you are a Romanian citizen and you need to take the visa from Romania”. Brilliant, now, I had to go 2000km away to get the visa!

Then I said to myself: “Let’s try again, maybe another clerk will manage somehow to give me the visa”. It didn’t happen… Then I called to the Russian embassy from Romania to request help — they asked me to physically go there to get the visa, which was impossible because the flight was in four days. So I decided to get the tube and head straight to the Russian embassy from London to ask for the Visa. At the entrance in the courtyard of the institution, the guard didn’t let me in.

I told him my story, that I need to represent the University in this camp, and his reply was — “If you are a Russian citizen you can enter, otherwise not”. Guess what, I wasn’t. The guard himself looked to be an Asian, so I decided to make a joke: “Are you Russian that you are inside?”. For a moment his face became serious and looked straight to me, then said: “No, I’m not. There is a tourists office at the corner of the street, check there. Here you can’t enter”. I got new information and headed up directly there! There I managed to get the Visa.

The lesson: After fours rejects I got the Visa. The classic: “Never give up”
Lenin, Russian’s comunist movement leader

The camp from Moscow was an awesome experience. I got to know the Russian culture and also see their algorithmic level. Firstly, the Soviet culture is still omnipresent in Russia. The streets, the blocks and the general atmosphere was familiar to me because we had it back in Romania.

Red Square, Moscow

The camp was held at MIPT, Russia’s best University for physics and technology. We stayed in the student’s accommodation which is just over the street of MIPT, at the periphery of Moscow. The campus was gigantic and every building had to be imposing in order to fit the general atmosphere.

Red Square, Moscow

The Russian students let a really good impression on me. They are extremely well taught in Mathematics and Computer Science, and everyone there was preparing for this kind of algorithmic competitions. It is in everyone’s blood there to learn maths and be very good from the technical point of view. Also, most of the students were preparing for this kind of competitions and you could feel in the air that these students desired to become great in this field. It was not an exception that most of the World Gold Medalist in the ACM competition were there.

Almost every day we had contests in the morning and some free time in the evening to solve the problems we didn’t manage to solve in the morning. We had some homework to do for the University and I regret that I spent time doing it instead of solving more problems.

The lesson: Enjoy the moment while you are still there, because it might not come back.

While being there I saw that many people were passionate about Machine Learning and have done online courses towards it. It sounded very cool to me and I decided to start the Machine learning course from Coursera once I got back to London. After coming back from Moscow, new homework and projects came up at University and I just kept postponing starting the course, and four months later in March I have finally started the course. It was such a stupid procrastination from myself, I could have finished it by the moment I just started!

The lesson: Don’t postpone things. Do them as they arise.

3. Internship hunting

Meanwhile, everyone in the CS department was applying to get internships over the summer. The fever of internship hunting also covered me and I started to apply for a bunch of them. I made a list of around fifty companies and started to apply. The first ones were Google and Facebook, which consumed some time due to their importance. The list continued with other tech companies as well as many banks sand and I ended up that almost one month I was just coming home from the courses and applying to internships. It was such a time-consuming process.

The best part starts when companies reply to your emails and a pile of rejects come all together. Nothing came be more encouraging! But some companies invited me for interviews, such as Google and Facebook and of course I couldn’t go unprepared. So one week before each interview I was just doing interview questions at home, trying to imitate their interview process: speaking loud and coding at the same time.

The whole process of getting an internships involved more time than a student is devoting to the CS course itself.

In the end, I got rejected by all companies I applied to, and a better option came: to work on a summer project at UCL. In this project, we want to automate the process of getting licenses when starting a new company. Now, this project sounds far more interesting and I’m happy to work on it.

4. Google Hashcode World Finals

That’s a really cool story. Back in February, Google has announced a new edition of Google Hashcode, their biggest team-based algorithmic competition in which people from all over the world take part (students and professionals).

At the beginning, I wanted to participate, because I knew I was good at this kind of competition and I really enjoy solving problems, Hence I found a team to join. One week before the actual contest, new things arose and I was very busy, and I took the decision not to participate anymore. The two teammates, Wojciech and Cosmin, insisted on going, but I kept refusing them.

In one moment of inspiration, 4 hours before the contest, I don’t know how I changed my mind and decided to participate, so I joined them back and prepared for the fight. We went to a hub where multiple teams came eager to participate and we took a silent desk to participate from.

Before the competition

The competition has just started and we received the problem, which was 7 pages long :). It basically requested to optimize the speed of Youtube video delivery by placing the most watched videos in the most appropriate server locations. It sounds like a tough problem and it actually is. So we thought for about an hour and then I came with a Dynamic programming solution which sounded good to me. So I jumped right into implementing in and twenty minutes later, after submitting it, we ranked 18th in the World! What a good achievement for us!

But there were still two hours of competition and people could still surpass us, so we had to keep improving the problem. It was quite stressing knowing that the first fifty teams were qualifying for the World Finals is Paris and we didn’t want to lose this chance. So we managed to squeeze every point that we could and we ended up on the 36th place globally and get qualified for the World Finals. And even more, out solution was just 0.20% less efficient than the winning one! Yuhuu!

Paris

And here we are at Google Office from Paris to compete with the best in the world. We have arrived two days earlier to just savor the beauty of Paris. If you ever want to go there, go in the springtime: perfect temperature and few tourists.

Paris

The day of the competition came, and the best fifty team from the World were there to compete. I couldn’t believe that literally, the best people in the field (Gennady Korotkevich, and many ACM Gold medalist) were there.

And the best part, we were the youngest team that took part in the competition. You could see the passion in these guys, the years and years of hard working and devotion to become the best at their craft. The moment you see all of them is really impressive, not to mention that more than half were Russians.

The competition took six hours, during which all teams were gathered together in the Google Office to compete. When you can feel the pressure in the air, those are the moments when I really become concentrated. This time the problem was to optimize the placement of WI-FI routers over a huge area so that the coverage is maximal and the cost is minimal. Sounds simple, but to squeeze the last points is really tough. Back to the competition, for the first two hours I was just thinking of an optimal solution, I had things in mind but not good enough for the standards of this competition.

Then, I had a new approach to the problem and decided to code the solution. I expected to take about one hour, but new ideas came to my mind to make it more optimal as I was typing. What was supposed to take one hour took three and the moment to test it came. We downloaded a big test and ran the solution for three minutes, then uploaded it. We got a really good score but I kept improving the solution because I knew that the solution arrived at a point which can be even further improved. Hence, I used and Balanced search tree and the Minimal spanning tree algorithm and now our solution was 10% better! We ranked 36th and our solution was just 1.5% less efficient than the winning one.

After the six hours of the contest, we had some time to refill ourselves with energy by eating some French cakes and talk. And I’m glad I went to Gennady Korotkevich and shook his hand. At the beginning, I was hesitating to do it, but then I thought “Who knows when the chance will come again” and again glad that I did it.

The lesson: Be concentrated in the important moments, it’s when you need it. And don’t be hesitant when you got the chance.

Ranked 1st in the Computer Science department

After the exam results came, I had a surprise: I had the highest mark of my year. It was a happy to see that I didn’t work hard a whole year for nothing. The idea of being 1st was nice for a few days, and it disappeared quickly because I needed to work on the next steps.

A few weeks later, I was so honored to be awarded the Faculty Undergraduate Scholarship for Excellence for Year 1. This is awarded to the best first-year student in the whole Engineering Department. Even better than the previous award! But the happiness again kept a few days and back to work.

Winning the Engineering Faculty Scholarship

Last lessons and thoughts

Briefly, these were the important events in my first year of University. I gained great memories this year, met awesome people and think that’s the most important thing. I’ll live alongside those people for at least another years and getting to know them is a good choice! Besides that, I learned important lessons that will help in the future.

One of the most important things I understood is that we are not in a competition with others, but with time.

Let me explain. We should not compare ourselves with others because it’s pointless. They have their desires, we have ours. If you compare yourself with them, it means that you desire their life. We should think how to achieve the life we want in the limited amount of time we have, and not be envious of other people’s lives.

Another thing is to spot the trends. Now that I grew I started to spot where the world is moving to. Back in 2010 when I got my first smartphone it was something amazing, and I didn’t understand more than I could play games on it and show it to my friends. Now I see trends from the business point of view. There are clearly three trends right now: Machine Learning, Blockchain and AR/VR. That’s where the world is moving to, and that’s how we should also move. If we still think that it’s the time to build the next blockbuster mobile game or a Windows application, that’s not the perfect time. It was the case in the past, but things keep changing really fast and if we don’t keep ourselves up-to-date with the time we live in, that’s a problem.

I recently listened to Warren Buffet’s advice for high school students, and he said that the most important thing to do in your twenties is to form good habits. That’s because we become what we repeatedly do. This thing remained stuck in my mind and I will apply it for what’s next.

Probably the best is that this year helped me clear my mind. Now that the adult life approaches, I started to put myself questions and tried to answer them. It was not easy and it took some time to get rid of some fog from by mind, but ultimately some old fog dissipated and it was replaced with new one.

Regrets

  1. Didn’t enjoy some moments enough when it was the time. A good example is the trip to Moscow when I was doing other stupid things for University rather than just solve algorithmic problems and see Moscow. I will change this is the future.
  2. Didn’t know how to distribute my attention. I was constantly shifting my attention to different things and didn’t finish the ones that I had just started. And a good example is the Machine Learning course and there are some more.

What will change

Inferring from the regrets, I can tell that the problem can be summarized as follows: “Learn to focus and delimit the moments for fun from the ones for work.”. And after one year, I believe that’s the successful people’s trait, to focus on a few things, finish them and continue with other things. It sounds trivial for me, but it’s hard to apply it.

Conclusion

In conclusion, in the first year of University, I cleared my mind, met new people, got unforgettable memories and got a super project to work on over the summer. That’s it. But I believe it’s a good foundation to start and develop in the next years to come.

For what’s next, I have three goals:

  1. Make Intelligent Regulatory Advisory a viable product
  2. Reach 1000$/month passive income by the end of 2017
  3. Get internship at Google in summer 2018.

I’m eager to achieve all three and I want to work hard to do so.

Found this post useful? Kindly tap the ❤ button below! :)

About The Author

Andrei Margeloiu is a passionate programmer interested in entrepreneurship, startups and nature. You can connect with him on LinkedIn or Facebook.