Computer science ain't as good as it should be

When I start studying computer science in the University class I truly believe that it is all I need to get started writing good programs. Algorithms > Functional programming > OOP > Databases > MVC is a step-by-step path of all people that learn programming of the web application. But...



Programming basics like conditions, variables, cycles and functions are mandatory for everyone just like writing and speaking for a baby.


But more advanced knowledge are less useful and optional. All of these:

  • Object hierarchy

  • Normalized database model


are turned into dust by more important

  • Do it as fast as possible

  • Customer wants!



Each framework declare it's own way to organize the application Classes. If you are working on CRUD(create-read-update-delete) data application you don't need to think about object hierarchy yourself anymore. All you need to do is understand where you need place the function that handle data processing. And the principles a well declined in the framework manual.
Normalized database is only a myth in a real world application. In 80% of cases the database design is evident to the developer. In other 20% the database couldn't be normalized at all.


When you start learning programming try to let your knowledge be "moved to production" as fast as possible. In other words: Have a programming practice as fast as possible and you will understand what kind of programming theory you really need. Concentrate your education on all cases you met and avoid learning things that you could possible come across.

Komentar

  1. I find your comments here rather depressing in that you are saying only learn about things you need to know. This means there is no innovation no striving to make things better.

    I agree that often you need to take shortcuts to "Do it as fast as possible" but this does not mean you have to sacrific good programming style as in the end debugging hacked together code will probably take longer than writing it correctly in the first place.

    I also disagree with your framwork comment, you should have atleast a high level understand of how a framework performs its function mainly so you can tell if you are using it correctly. Yes dropping code in to a framework will give quick results but if you then move to another client that does not have this framework how to you reuse your knowledge, you can't as you have no understanding of the underlying execution of your code.

    I also agree that a Normalized database is not realistic in the real world but is this because it has already been written badly, due to lack of knowledge, or because design decisions have been made e.g. for performance. Even if it is not possible in the most part it should still be strived for.

    Sorry for the long post but becoming a great programmer, developer, design, architect is about gaining knowledge about how things work so you can extend and improve them. If we just use frameworks instead of understanding them we ultimatly reduce our own value.

    BalasHapus
  2. Thanks, Owen for your comment.

    Once when I was picking up the theme for my scientific effort, my scientific supervisor said:
    You do not know to much yet that is why you can be optimistic push the most crazy ideas that may change the world.

    The case when you seeking the answer yourself is a key point where you can be innovative.
    I am always trying to understand how things work(or just try) and only then go and learn what others think about it.

    BalasHapus
  3. What is this... a recipe to train monkeys instead? Seriously.

    BalasHapus
  4. The monkey is monkey. It will not become human and there is nothing you can do with it. And the human is a human.

    In other words you should train monkey as a monkey and human as a human.

    BalasHapus
  5. Hello from Russia!
    Can I quote a post in your blog with the link to you?

    BalasHapus
  6. Hi Russia
    very interesting story. i like it and also enjoy..

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

10 Tempat Yang Tidak Bisa Kamu Kunjungi

Kawasaki 150 KLX S

Tips Mengatasi Ponsel Yang Terkena Air