Last year, with choosing a major being one of my primary headaches, I, unexpectedly, decided to take a computer science course. I heard coding consumes life. I knew projects are often finished through a week of trial and error. My friend’s joke that she woke up at 3 am suddenly with a solution to one homework problems finally occurring to her head indeed intimidated me. Still, with no programming background, I was determined to take up such a challenge.
Although I was overwhelmed by the endless concepts in this new world most of the time, I was totally amazed by how everything works magically. I could still remember the time when I started to get myself familiar with the software development environment on a computer and spent almost an hour in attempting to create my very first project by carefully following the instructions word by word (even though I knew nothing about their meanings) I jotted down even the simplest codes that my professor mentioned in lectures and could not wait to run them on a physical computer after class.
However, as time went by, I became increasingly frustrated. My frustrations not only came from staring at my computer for hours without coming up with even a single line of code or frequently debugging my programs till very late at night. I felt I fell behind most of my peer who were already programming experts or gifted prodigies. Some started at a pretty young age and were already fluent in various programming languages. Others were proud of their experience in working on complicated projects with large teams prestigious companies or even have several original mobile apps to their names. People always say that talent play a large role in this industry. Am I a real late starter? I constantly asked myself whenever I had a hard time understanding a chunk of code while others seem to finish doing it so effortlessly. I attended those engineering career fairs, timid and unsure of myself. Everyone there appeared ready to impress recruiters with their glittering projects or give a perfect 90-second pitch, while I was even too afraid to drop off my resume. Why would they ever consider me? I had only taken one very basic computer science course and had so few accomplishments that I could present to boost myself. Shouldn’t people pursue things that they are good at? Why would I keep stubbornly adventuring in this new world, knowing that I would never be as smart as those brilliant brains?
Sometime I loved to seek answers to questions like “is it too late to learn to code” online. I was so surprised that so many people who also discover their passion in programming feel the same way just as I did. They lacked confidence, doubted their abilities and so they asked the same questions. I was also surprised that so many excellent software developers actually received their formal CS training and get their feet wet in the industry in their late 20s or even 30s. Much later than I did. One day I encountered a quote that I will never forget, “The best time to plant a tree was 20 years ago. The second best time is now.”This is told by one of the software engineers that I admire, who received a Phd in architecture but only started her programming journey at 27. Yes, it is ideal if we can start a thing as early as possible. However, starting late will never be an obstacle, if we are truly passionate about that thing and really want to make a difference.
Inspired by those stories shared by others, I started to redefine the formula that determine a good programmer. It is not all about past experience or age. If you have crazy ideas, if you never allow a problem get the better of you, if you see the world differently, and with at least some knowledge about the basics of programming, there is no reason why you should not be able to become an authority in that area. If you are alive, you can always pursue what you are fascinated with. Maybe I was just too anxious for success. Why not doing it now? I found the seeds (of my true interest) by serendipity. Why not sowing it now? Why not just growing it with 100% drive and determination? So I calmed down, started with basic ideas and easy problems, sought every opportunity to practice, self studied how to develop iOS apps, explored popular interview questions…I also tried to catch up and thus took three major-required math courses last quarter at the same time. Initially, they all said, “That would be impossible… You won’t make it! You can’t have three finals from 8 am to 6 pm on a same day.” However, I ended up with good grades and realized that, nothing stops you when you seriously begin to work hard. This quarter, I suddenly feel the subject is no longer that hard for me! After enough practice, tricky concepts gradually make sense and they all intertwine with each other in such a wonderful way. Also, I was thrilled by and rewarded with so many “Aha” moments that truly demonstrate my progress. So I copied this inspiring quote, neatly, on my notebook; thus, I can see the sentence whenever I open it in my later computer science courses. My tree is now growing, at a amazingly aspiring speed.
Kexin Yu | UCLA Career Center Peer Advisor B.S. Mathematics of Computation (2017)