Thought Flow

Tag: computer science

  • Complexity

    Fractal simulation
    A fractal simulation from https://davidlebech.com/fractals/
    I learned about complexity studying computer science. Complexity was often measured in space and time, denoted by Ω, Θ and Ο. We learned about the fastest algorithms, the “hardest” problems and the methods to solve them or just prove that they are hard. That is what “complexity” meant to me.

    And then I started working with real world problems and complexity started meaning something else. It is no longer about NP-completeness, lower-bound running time or even algorithms. I have worked almost for a year on the same project 1 and throughout this project, the most difficult tasks have been figuring out the requirements of the end-user and transferring these requirements into an actual user interface. The complexity of a task is not measured in upper-bound running time and space requirements but in number of meetings and emails. And while the complexity of algorithms does not change after they have been implemented, the real world task changes its complexity whenever there is a change in requirements.

    When I step back and look at the output of the current project, I see nothing else there. All the complexity lies in communication and that is something different.

  • Intellectual stimulus

    After a year of doing freelance programming/consulting, I have a better understanding of why some people choose academia or research as a career path: Intellectual stimulation. I have been working mostly with website and webshop backend programming and on a day-to-day basis, the recipe is basically the same:

    1. Create a datatable in a database.
    2. Create a webpage form so userdata can be put into this table.
    3. Display this userdata in various versions on the website/webshop.

    Over time, I see myself writing the same or very similar code over and over again for every new feature that needs to be added even when I try to reuse the same code — and it bores the hell out of me sometimes.

    Actually, while studying, I was not particularly interested in theory. I always liked the programming more than the theory and the latter is usually more emphasized. It is ofted noted that college is not preparing students with proper programming skills for “the real world” and that a dedicated software development education might be a good idea. I agree.

    But now I’m going of at a tangent. My point is, when I was in school, I was displeased with theory (because “hated” is such a strong word) and I fell asleep while reading any research paper or computer science book (this still haunts me. Reading CS books seems to be important for developers. I just cannot do it). But now, I miss the intellectual stimuli from academia. This is one of the reasons I have been pushing myself to find time to work on Antecons, a project that has forced me to dig into a number of research papers on association rule learning. (By the way, the recommendations made by Antecons are actually being added by the users to the shopping carts at vildmedvin.dk. I can thus assume that it is raising profits. This is a great success, given its currently limited and quite crude functionality)

    This blog post does not have a particular message or opinion. This is thought flow and I have just been wondering what other people do to cope with boredom in their jobs. Sometimes, boring work is inevitable, I know. But when more than half of one’s work is boring, is it then time to start rethinking one’s situation?