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!
 

Related to Question about professional computer programming?

What is computer programming?

Computer programming is the process of designing, writing, testing, and maintaining instructions, known as code, that a computer follows to perform specific tasks or solve problems.

What skills are required for professional computer programming?

Some of the key skills required for professional computer programming include: proficiency in one or more programming languages, problem-solving abilities, attention to detail, strong communication and teamwork skills, and continuous learning and adaptability.

What is the difference between front-end and back-end programming?

Front-end programming refers to the development of the visual and interactive elements of a website or application, while back-end programming involves creating and maintaining the behind-the-scenes functionality and infrastructure that supports the front-end. This includes databases, servers, and application logic.

What is the importance of testing in professional computer programming?

Testing is a crucial aspect of professional computer programming as it helps to identify and fix errors or bugs in the code before it is deployed. This ensures that the final product is functional, efficient, and user-friendly.

What are some common challenges faced by professional computer programmers?

Some common challenges faced by professional computer programmers include dealing with constantly evolving technologies and programming languages, managing large and complex codebases, debugging and troubleshooting errors, and meeting tight deadlines while maintaining code quality.

Similar threads

  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
7
Views
688
  • Programming and Computer Science
Replies
7
Views
1K
  • Programming and Computer Science
Replies
3
Views
1K
  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
8
Views
888
  • Programming and Computer Science
Replies
11
Views
780
  • Programming and Computer Science
2
Replies
54
Views
3K
  • Programming and Computer Science
Replies
13
Views
1K
Back
Top