Thread: Importance of Algorithmics

  1. #1
    Registered User
    Join Date
    Nov 2004
    Location
    USA
    Posts
    516

    Importance of Algorithmics

    This semester I had a course on analysis of algorithms, so i decided to try out a few algorithm based programming contests and sites..specifically www.topcoder.com. The problem is that though i get the logic and generally the method to solve the problems, i usually end up missing some corner case or there is an overflow somewhere, or sometimes i simply misinterpret the problem statement..i havent trained for algorithmics as such, just participated in the topcoder competitions and the local ACM ICPC competition and the like. Could you tell me how important is algorithmics when one goes in for a a job interview or after that..i'd like to know this especially from people here who handle interviews of freshers in their companies and those who have gone through interviews Is it worth spending time developing my algorithm based skills or should i go about learning different languages and get involved in projects for designing softwares and all ?
    Code:
    >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

  2. #2
    Fear the Reaper...
    Join Date
    Aug 2005
    Location
    Toronto, Ontario, Canada
    Posts
    625
    I'd probably say it depends what you want to do.
    Teacher: "You connect with Internet Explorer, but what is your browser? You know, Yahoo, Webcrawler...?" It's great to see the educational system moving in the right direction

  3. #3
    Registered User
    Join Date
    Nov 2004
    Location
    USA
    Posts
    516
    I'd probably say it depends what you want to do.
    I'm asking in general..i guess interviews for freshers are pretty much the same (atleast thats the trend on this side of the globe) Right now i havent really thought what i want to do..have to decide that too :@ damn..
    Code:
    >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

  4. #4
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    >i havent trained for algorithmics as such, just participated in the topcoder competitions and
    >the local ACM ICPC competition and the like.
    Those are two different things. Competition coding is really nothing more than knowing the tricks and putting them together quickly. It's a whole different process than professional development.

    >Is it worth spending time developing my algorithm based skills or should i go about learning
    >different languages and get involved in projects for designing softwares and all ?
    Algorithms are fundamental to programming. When I conduct interviews, I spend quite a bit of time going over algorithm theory and problems. If you don't do well there, I'm extremely likely to mark you as a no-hire. Languages aren't a huge deal. The only time I expect proficiency with a language is when the job requires it (compiler implementation, for example). By all means get involved in projects. The only way to get good at developing software is to do it.
    My best code is written with the delete key.

  5. #5
    Registered User
    Join Date
    Nov 2004
    Location
    USA
    Posts
    516
    Algorithms are fundamental to programming. When I conduct interviews, I spend quite a bit of time going over algorithm theory and problems.
    Is intricate stuff related to graphs and never heard before algorithms included in that? Most of the problems that i dont end up getting are in some way or the other related to mathematical relations or to number theory about which i have no idea..are things like number theory and advanced graph theorems that important ?
    Code:
    >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

  6. #6
    Lean Mean Coding Machine KONI's Avatar
    Join Date
    Mar 2007
    Location
    Luxembourg, Europe
    Posts
    444
    You should probably know all the existing algorithms, even if you can't implement them. You should be able to understand (very good) the algorithms of linear data structures, trees, graphs and dynamic programming. Examples of graph algorithms would be shortest path, spanning trees, coloring, node search etc.

    As for how often you use them out there in the wide world of industrial programming ... I have used them 0 times until now.

  7. #7
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    >Is intricate stuff related to graphs and never heard before algorithms included in that?
    If the job requires it. Generally, I'll concentrate more on the concepts behind the algorithms rather than anything specific. Any code monkey can memorize an algorithm, but a good programmer can tell you how it works, why it works, and use the lessons learned to invent other algorithms. Of course, I would expect you to have heard of the common ones and be able to describe them. Otherwise I'd wonder why you think you're a programmer.

    >are things like number theory and advanced graph theorems that important ?
    The concepts behind them are important. Let's take sorting as an easy example. If you memorize quicksort, all you have is a sorting algorithm. But if you understand the divide and conquer strategy that quicksort is based off of, you can use it to come up with any number of incredibly useful but unrelated algorithms.
    My best code is written with the delete key.

  8. #8
    Registered User
    Join Date
    Nov 2004
    Location
    USA
    Posts
    516
    Thanks for the info
    Code:
    >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

  9. #9
    ~viaxd() viaxd's Avatar
    Join Date
    Aug 2003
    Posts
    246
    i think topcoder is a lot of fun it really helps to develop valuable skills any programmer can find useful one day. not sure about advanced graph theorems and such, those things you should know when the job requires it. another thing with contest programming is that it's time oriented. i don't think thant in real programming one develops an algorithm in a couple of hours. it all takes lots of testing and time, something you are short of during contests.
    :wq

  10. #10
    Registered User
    Join Date
    Nov 2004
    Location
    USA
    Posts
    516
    @viaxd
    Whats your handle on topcoder ? mine is thepenguin. Yes, i usually find myself short of time while participating on topcoder..or i end up making really dumb mistakes.
    Code:
    >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

  11. #11
    ~viaxd() viaxd's Avatar
    Join Date
    Aug 2003
    Posts
    246
    well, with a rating of < 800 im a little embarassed. it just takes a lot of practice i guess.
    :wq

  12. #12
    Registered User
    Join Date
    Nov 2004
    Location
    USA
    Posts
    516
    haha :P well, yea, its all about practise..i ll practise this vacation if i get time from my other commitments, would be blue if i get over these stupid bugs :P
    Code:
    >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

  13. #13
    geek SilentStrike's Avatar
    Join Date
    Aug 2001
    Location
    NJ
    Posts
    1,141
    I think algorithm contests are good for interview preparation and for fun.
    Prove you can code in C++ or C# at TopCoder, referrer rrenaud
    Read my livejournal

  14. #14
    Registered User samGwilliam's Avatar
    Join Date
    Feb 2002
    Location
    Newport
    Posts
    382
    Quote Originally Posted by Prelude View Post
    >Is intricate stuff related to graphs and never heard before algorithms included in that?
    If the job requires it. Generally, I'll concentrate more on the concepts behind the algorithms rather than anything specific. Any code monkey can memorize an algorithm, but a good programmer can tell you how it works, why it works, and use the lessons learned to invent other algorithms. Of course, I would expect you to have heard of the common ones and be able to describe them. Otherwise I'd wonder why you think you're a programmer.

    >are things like number theory and advanced graph theorems that important ?
    The concepts behind them are important. Let's take sorting as an easy example. If you memorize quicksort, all you have is a sorting algorithm. But if you understand the divide and conquer strategy that quicksort is based off of, you can use it to come up with any number of incredibly useful but unrelated algorithms.
    I've long since forgotten the specifics of things like quick sort and height-balancing a binary tree, etc, and I do have some bad habits (I basically pick-and-choose my favourite aspects of C and C++) but I've got a good programmer's mindset that lets me solve most problems with logic and reason (if I have a good think and maybe draw some diagrams) and I can get an intuitive grasp of an algorithm.

    You could say I've got a good general programming aptitude but lack formal training (I do have a qualification in computing, but I've forgotten a lot of the theory).

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. importance of returning reference in operator overloading.
    By vaibhavs17 in forum C++ Programming
    Replies: 20
    Last Post: 05-13-2009, 12:28 PM
  2. Importance of...
    By Diablo84 in forum C++ Programming
    Replies: 3
    Last Post: 04-03-2005, 02:55 PM
  3. For all you b.s. majors, the importance of liberal arts
    By Terrance in forum A Brief History of Cprogramming.com
    Replies: 17
    Last Post: 01-03-2004, 05:48 PM
  4. School and the importance of a degree
    By m00se123 in forum C++ Programming
    Replies: 2
    Last Post: 02-13-2002, 02:16 AM