Question about professional computer programming?

In summary, areas of programming that are more theory oriented and deal with more abstract ideas include AI, non-procedural languages like ProLog, linguistic analysis, optimal classification routines, cryptography, compiler design, and theoretical computer science. These fields involve studying and analyzing ciphers, one-way functions, hash-collisions, and limits of what is computable. While they may not involve actual programming, they are important in understanding and developing technology.
  • #1
EntropicLove
45
1
What are areas of programming that are more theory oriented and deal with more abstract ideas? Is this pretty much all of programming?

I'm learning a few languages (competent in some) and curious.

Thank you!
 
Technology news on Phys.org
  • #2
I'm thinking AI is pretty theoretical.
Computer Science is an applied science though so everything tends to be brought back to something you can code. Usually the programming part gets used to study something theoretical rather than actually being the theory.

There are related fields like information theory.
 
  • #3
As Simon Bridge pointed out, things get practical some time or another.

Having said that I would suggest on top of AI, non-procedural languages (in particular ProLog) as well as linguistic stuff (the stuff that googles of the world work on) as well as optimal classification routines for a variety of fields including computer games and graphics (think collision detection, scene representation, object representation) and a tonne of stuff related to cryptography and related areas.

Within cryptography, you have not only study and analysis (crypt-analysis) of ciphers, but also you deal with one-way functions which is really nuts.

The one-way stuff is also used for doing things like checking how a hash-collision works with respect to generating a decent distribution of collisions and this affects a lot of applications that use hash-trees for fast lookups.

You also have the stuff in compiler design (and I don't just mean the grammars: I mean the whole project that deals with a compiler). Optimizations, checking for errors at compile time, re-organizing code for various uses (one would be the target platform) involves a lot of stuff.
 
  • #4
  • #5


I can tell you that there are several areas of computer programming that are more theory-oriented and deal with abstract ideas. These areas include algorithm design and analysis, data structures, and computational complexity. These concepts are crucial in developing efficient and effective programs.

However, programming is not just about theory and abstract ideas. There are also practical and applied aspects of programming, such as software engineering, user interface design, and database management. These areas involve more hands-on skills and require knowledge of specific programming languages and tools.

In short, while theory and abstract ideas are important in programming, they are not the only aspects. To become a proficient programmer, it is essential to have a balance of theoretical knowledge and practical skills. Keep learning and practicing, and you will continue to improve in both areas. Good luck!
 

Similar threads

Back
Top