Why Program?

    Posted on Monday, Feb 20, 2017
    Imagine for a moment that you've leaped into a wormhole and traveled to a parallel universe where people speak a completely different language. Imagine also that you have no idea how to return to your own universe - so you're stuck! In order to adapt to your strange new world, you have no choice but to learn the lingo and blend in.

    This foreign universe isn't unlike the cryptic, tantalizing, and frustrating world of computer science today. And like the foreign universe with its own strange lingo, the languages that make up the computer world are the new critical languages of the Information Age.

    When the first programming languages were developed about sixty-six years ago, the developers most likely had no idea of the seismic impact these languages will have in advancing the boundaries of computer technology and transforming the way we think, live, and even feel. It's an irrefutable fact that these advanced technologies are here to stay. The world of the Jetson's and Star Wars is no longer as far-fetched as it seemed.

    But with these great advances, we're being forced to evolve as well. Remember when you got your grandma a brand new flip-phone and patiently taught her how to call the four contacts you entered in her log? Fast forward a few years and there you are handing a smart phone to your six year old who has no trouble navigating his way to the games section and fiddling around with your camera...without your help. Our lives are so integrated with technology now that coming generations it seems are hardwired to assimilate with these artificial intelligent systems.

    What does that mean for us? It means that if we want to keep up, we need to adapt to this rapidly advancing tech world. No matter your profession - no matter how obscure it is - there is a programming language doing the dirty work behind the scenes. If you don't believe me, your skepticism isn't misplaced.

    But take for instance the writer's profession. It used to be that authors cranked out their manuscripts by gas lamps on a typewriter and snail-mailed them to an editor who then took over. But now? Authors and freelancers are continuously being forced to be the marketers, editors, and even designers of their own publications.

    Skills like setting up and managing a blogging platform, perhaps building a website using HTML , CSS, and even some JavaScript, and learning image editing software are now an integral part of a budding author's resume.  In short, it's no longer enough to simply weave words. It's also vital to learn the technological tools of your trade.

    In the engineering world, programming skills are no longer restricted to the domain of the computer science or software engineer. Advanced computing requires savvy computer skills and there's always a programming language or two involved. Software like MATLAB and R offer platforms to ease the frustrations of complex math, but they also restrict. On the other hand, robust languages like Java and C++ offer freedom and flexibility...if you can master their complexity.

    As an engineer interested in not just learning languages but applying them, I perceive computer programming as a powerful tool to creatively solve complex problems. The applications are innumerable and at zero cost! Imagine how happy a chemist or an archeologist would be if they were given a state-of-the-art lab or unlimited funding for excavations! The world of computer programming is a powerful virtual lab and we can all learn to be scientists in this lab, however infrequently. We can use this free lab to engineer better systems in every field.

    So the power of programming is limitless and the more you apply a programming language to personal or professional projects, the more you increase your expertise of that language. Like all skills, the skills learned from programming are transferable. Once you understand the basics of any programming language, it's quite simple to simply keep building on top from other languages.

    Our sole job as students is to learn so why not start learning this vital skill? There's a plethora of free resources on the internet but the following are some of the best that I've found helpful:
    1. Coursera : computer science and programming classes are offered free or (if certification is desired) for a price by renowned universities like Stanford, MIT, Penn State, Columbia, etc;
    2. Codeacademy : a free learn at your own pace environment with tutorials on popular languages and applications
    3. Udemy : a giant collection of free and paid courses not just restricted to IT
    4. Online E-books : if you find following along video lectures tedious (like I sometimes do) then download/read free online programming books or use them as references to supplement your online classes
    What can you do at TAMU? Among the organizations on campus, the Aggie Coding Club is a young club that has several ongoing projects, some in industry. The officers of this club are knowledgeable and dedicated. You don't have to be a computer science major or even know any programming basics! You simply need to be willing to learn a programming language and to commit to a project so that you can develop those skills.

    As part of the INFORMs chapter in the Department of Industrial Engineering, I'm part of the Software Workshop. We're a group  of industrial engineers who meet Fridays and Saturdays to learn R, Python, or MATLAB from one of the open courseware websites.

    Whether you're on the brink of taking your first dive into programming or you're still frowning at the thought of learning abstract logic, sooner or later you will encounter it somehow. The question is, how prepared will you be then?

    Teja Gambhir | Industrial Engineering

    Teja Gambhir is a first year Master of Engineering student in the department of Industrial and Systems Engineering (IISE).

Search for a blog post