David Vuong
Waterloo, Ontario
I always enjoyed computer technology when I was little. I've taken apart desktop, laptops, and learnt about the components inside the computer, all on my own. Eventually I started to learn the basis of web development in grade six.
Once high school came around, I took my first computer science course, taught in Visual Basic. It was my first time learning how to create basic computer applications, learning about conditional statements, iterational statements, and eventually string manipualation. From there, I branched out into other languages such as C#, Java, C++, and learning the basics of object-oriented programming (encapsulation, abstraction, inheritance, and polymorphism). My high school also offered a computer engineering course, which taught boolean logic and how it was used in computers to form the ALU, and learnt how to program using various microcontrollers (VEX robotics and Parallax Basic Stamp). I was so interested in how the internet worked, so I enrolled into the Cisco Networking Academy and completed the CCNA Exploration curriculum. This prepared me to take the CCNA Composite Exam, which I passed, earning my Cisco Certified Network Associate - Routing and Switching certification. I remember my father telling me how the receptionist didn't believe that I was able to pass it: she kept on saying how many adults that writes this exam multiple times in the past failed. When I walked out of the examination room, she asked how I did, and when I told her that I passed it, she was surprised!
Now in university, I feel like I have chosen the right program to be in: Computer Engineering. Through academic studies, I learnt a lot about the electrical components (resistors, capacitors, and inductors) and the analysis that goes into building the ideal circuitry (building RL, RC, and RLC circuits). I learnt about the software development cycle (waterfall, agile models), and interacting using sensors on an android phone and manipulating the data to perform a specific objective. We began learning more advanced programming concepts such has sorting algorithms, tree data structures, queues, stacks, tree traversals, and many more. Through co-operative education work terms, I have had the opportunity to apply my programming knowledge on the job, as well as learning the programming tools used in the job.