Reflections of a Computer Engineering Graduate

Engineering has really started to pick up in recent years as Singapore step up on its effort to make the country a technology hub. Government announced that it will boost the salaries of engineers.  When I first chose computer engineering, I wasn’t entirely sure what the course entailed. Computer Engineering is one of the few courses offered in conjunction by the School of Computing (SoC) and the Faculty of Engineering (FoE). The course is meant to provide the next generation of software engineers, embedded systems specialists, chip designers and so on.

If you’re still in JC or polytechnic and are contemplating taking computer engineering, there are several reasons why you should consider it as your course of choice.

1. Good breadth in both Electrical Engineering and Computer Science:
Reflections of a Computer Engineering Graduate
sciodat.blogspot.com

 

Computer Engineering is an amalgamation of the CS and EE courses at NUS. If you’re not sure which side you’d like to work on, computer engineering may be a good option to gauge for yourself.

2. Freedom to choose CS/EE electives:

The computer engineering course at NUS gives you ample opportunity to choose CS/EE specialization courses and electives and can help you understand your interests better.

3. Employability:

Engineering is a versatile course and engineers find themselves working in multifarious sectors such as software, banking, consulting, engineering services, sales and so on.

Computer Engineering allows you to work in software engineering/IT jobs as well as electrical/electronics engineering jobs. To a lot of students to whom the primary concern is employment, computer engineering has promising prospects.

I hadn’t done sufficient research on the course content when I enrolled in the program so a lot of the learning was ad hoc and experiential. In retrospect, I don’t think it would have mattered even if I had done enough research because the objective of the four years of undergraduate studies is to mold students into industry ready graduates with an analytical bent of mind. These are some of the lessons I learned throughout the course of my computer engineering degree.

1. Master the basics:

The first two years of the computer engineering degree at NUS comprised the basics of computer science (programming fundamentals, data structures and algorithms, electrical engineering fundamentals, microelectronics, microprocessors, software engineering). These courses aren’t particularly challenging and are meant to provide a gentle introduction to the subjects concerned. These however, tend to be the pillars upon which higher – level modules and technical electives will rest. Some of the courses I keep revisiting are: Data Structures and Algorithms, Operating Systems and Networks. In my opinion, it would be wise to strengthen these basic pillars so the rest can be built effortlessly on the firm foundations.

2. Industry Experience:

In engineering/applied science courses – industry experience is crucial for a well – rounded education. Both NUS and NTU offer six-month industrial attachment program that offer academic credit during this attachment program. I chose to do my attachment at The Bank of America Merrill Lynch Singapore and the experience gave me really good exposure to life as a software engineer. Not only did it collate my learnings and highlight their importance but also reveal some of the skills needed on the job, which are not taught through traditional pedagogy.

Often, the technologies such as frameworks and programming languages taught in university are taught because the emphasis is on principles and patterns rather than what the industry uses. For example, an introductory programming course might be taught in C or Java but the state of the art may be quite different.

3. Hackathons and side – projects:

Side jobs

In my second year, I went for a hackathon called “Hack n’ Roll 2013”. The experience was humbling and transformational. I realized how little I actually know when it comes to applying the theory I had learnt in modules. After a (considerably) embarrassing presentation I promised myself that I would invest more time and effort in building side – projects, working with technology startups and honing my practical skills.

I still have a long way to go but after encountering challenges in various projects, I have seen myself become better as an engineer and faster when it comes to thinking through practical problems. There are countless hackathons organized in Singapore such as Hack N’ Roll, Match n’ Hack and Battlehack. Forming a team with friends and other engineers you would like to learn from is a great way to grow as an engineer.

One of my colleagues at the Bank of America Merrill Lynch once told me that a considerable amount of experience could be gleaned by working alongside more experienced engineers. This process really accelerates learning. Seeking out good engineers and working with them is a great way to acquire engineering skills.

4. It isn’t a race:

The university experience is engineered in a meritocratic and competitive manner and this formula has worked for multiple decades for several generations of engineers. However, sometimes it really pays to take some time off and set a fixed bar with a time line. Technologies emerge on a daily basis (ask anyone what their favourite client side JavaScript framework is). You may feel tempted to learn everything that comes out and feelings of frustration may ensue when you realize that there will always be a mountain of technologies, methodologies and ways of thinking you aren’t privy to (yet).

The only solution I could come up with was to set a bar for my future self and time – box it. Any extra learning is well and good as long as the basic skills I want to acquire have been gleaned within the time frame I specified. Sometimes, these skills could be delving deeper into the basics and understanding them on a more granular level, or learning a language or framework that looks interesting.

5. The knowledge is out there:

Not knowing something because you didn’t formally take a course on it in university is no longer a good excuse. With the proliferation of MOOCs from the world’s best universities on Coursera, EdX and Udacity – this is no longer an excuse. Sign up for courses that look interesting or useful and try to solve the assignments, homework and final exam. The certificate of accomplishment may not carry much real world weight but the skills you acquire throughout the process do matter.

and finally,

6. Don’t take yourself too seriously:

Don't take life too seriously

In every interview or crucial life moment, three things matter – ethos, logos and pathos. Not everything is in your control. Ensure sustainable, continuous learning and growth and hopefully one day all the skills and knowledge from your degree will give shape to a great career and deeds that not only benefit your bank balance but society as a whole.

LEAVE A REPLY

Please enter your comment!
Please enter your name here