Baby Steps
I never liked the idea of tackling too many things at once, or attempting to complete a single task that I know is going to consume a significant amount of time and effort. Trying to do too much at once can cause you to either lose morale along the way, or, on the chance that you do manage to make it to the finish line, you’ll probably never want to turn around and do it again.
This is why I rarely ever give myself too much to do at once. It could be anything-school work, dishes, coding. I enjoy breaking things up into small pieces. I divide small tasks into smaller tasks, and into even smaller tasks. Small tasks are less daunting, and I’ve learned that completing them quickly gives me a nice infusion of knowledge and confidence that I can use to tackle the next small task. And before I know it the larger and seemingly more complicated goal that I had never even set out to complete is gracefully finished. Got a grand goal in mind? Take a small step. It could take you farther than you could ever imagine.
The journey of a thousand miles begins with a single step – Lao Tzu
Do you really need math to be a successful developer?
I think Andrew Montalenti of Parse.ly put it best when he said that there’s a lot of unfounded and unhealthy hostility towards math and theory courses in computer science at universities. And from my experience, I think part of that dislike comes from a shoddy elementary education in math. I had no interest in math until I started to learn it myself – and I mean really learn it, thanks to free and amazing online resources like Khan Academy. Looking back, I feel like a part of a generation of students cheated of a proper math education. My middle school was run by mediocre teachers who failed to instill the beauty and elegance of “drier” subjects like math, pounding equations into our short term memory rather than distilling the subject into concepts that are digestible, understandable, and most importantly, interesting.
It’s then no surprise to me that questions like “Do you really need math to be a successful software developer?” abound on the web. And as a student and aspiring engineer, I find that troubling. One common response I see is that math is essential insofar as the application you’re building requires it. Fine, I accept that. But that’s not the issue. The problem is the underlying sense of hesitance towards mathematics, and, more generally, the perception of math as a mere collection of esoteric equations that are call forth when required, rather than the natural language of computation; in reality, math is an intricate part of every aspect of a computer application. Think algorithms, algebra, logic, and different numerical systems like hex and binary – those only scratch the surface of how math is already being used in day to day development. So it’s not just a philosophical statement. Most developers may never need to know euclidean geometry to get the job done, but how can we expect to write efficient and scalable applications without a solid grasp of vectors or graph theory?
No, perhaps we don’t need any of that. I can probably get by without knowing the difference between a vertex and a edge, just like how I was enrolled in college level math courses without the slightest idea of even why the pythagorean theorem worked. Ignorance sucks, and bad teachers foster it. But by cultivating a greater appreciation and curiosity towards a subject that is so intimate with our line of work, we can all be smarter problem solvers. In some cases, math provides useful tools for developers to handle mundane challenges, and in many others, it’s the answer to some of the most difficult problems of computation we face. If that doesn’t make it a necessity, I can’t imagine what does.
What College is About
I hear this lot: College is about finding yourself ; it’s suppose to be about a well-rounded education of the whole person, not a vocational training course. If you want a technical education, go attend a technical school. College should be about asking yourself the profound questions like “What is the meaning of life” or What is my true “passion”. Not practical questions like what specific skill set I can offer to my future employer.
My response to that is: why treat these questions as if they are mutually exclusive? Just because you want to become really good at something doesn’t mean reflecting upon the more noble and profound questions of your existence must be abandoned. You can learn how to start a business while attending your classes; you can be a budding philosopher by day and a amateur street-baller by night; and you can still wonder about your purpose as you begin writing your first literary piece for a noteworthy publication. I agree, college is about finding yourself, but the answers won’t be found in the mind alone. It is not just an intellectual journey. It’s about trying new things and picking up new skills, whatever piques your interest.
So instead of dragging yourself into an existential dilemma with endless questions, pick up a hobby. Do something you’ve never imagined yourself doing. Even if you wound up checking off every career on a list for months without a gaining the slightest sense of what you might want to do, you’ve still taken action. And that’s how you learn. That’s education.
My name is Alan and I'm a third year student studying Computer Science at Boston College. My interests lie in web development, and I plan on putting my skills to good use after graduation - joining a Startup, for instance.