Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Theoretical concepts in programming

BorkedSystem32

Silver Coder
Hello there.

Throughout my time on CF, I've noticed there hasn't been a lot of focus on the theoretical concepts of programming. Sure, one might answer a question with some bits of theory inside of it, but usually those are only small pieces and not the full explanation of the concept; programming in practice is given more of the attention, including what makes good code, how to build/execute programs, etc. Does anyone here really care about the concepts behind programming?

Personally, I believe if one truly wants to understand the code they're analysing(especially if said code is complicated), it's a good idea to know what's going on behind the syntax and behind the compiler/interpreter. I don't know what's lead me to believe this though and really, knowing every concept could be useless when you really only need to know the essential concepts.

While I'm writing this, I might as well ask for opinion. A while ago, I had began writing a C book that would be purely available online for free in text and PDF format. The book would not only cover programming in C, but it would also cover the concepts that make C and the paradigm it follows. Said book never got far(only two chapters had been written - only covering variables, data-types, comments, and contained a "Hello, world!" sample for analysis). I'd like to know if anyone would be interested in a book that covered more on theory while also focusing on writing code at the same time - I don't intend for it to be too big and I may consider making it a community project that will allow contributors as to allow further additions and improvements.

Thoughts?
 
Hello there.

Throughout my time on CF, I've noticed there hasn't been a lot of focus on the theoretical concepts of programming. Sure, one might answer a question with some bits of theory inside of it, but usually those are only small pieces and not the full explanation of the concept; programming in practice is given more of the attention, including what makes good code, how to build/execute programs, etc. Does anyone here really care about the concepts behind programming?

Personally, I believe if one truly wants to understand the code they're analysing(especially if said code is complicated), it's a good idea to know what's going on behind the syntax and behind the compiler/interpreter. I don't know what's lead me to believe this though and really, knowing every concept could be useless when you really only need to know the essential concepts.

While I'm writing this, I might as well ask for opinion. A while ago, I had began writing a C book that would be purely available online for free in text and PDF format. The book would not only cover programming in C, but it would also cover the concepts that make C and the paradigm it follows. Said book never got far(only two chapters had been written - only covering variables, data-types, comments, and contained a "Hello, world!" sample for analysis). I'd like to know if anyone would be interested in a book that covered more on theory while also focusing on writing code at the same time - I don't intend for it to be too big and I may consider making it a community project that will allow contributors as to allow further additions and improvements.

Thoughts?


To answer your original question: yes and no. Learning the concepts can be a great thing, but not essential, unless you go into very specific fields within the industry. The umbrella term here being Computer Science. Do you need to know whether a solution is polynomial vs non-polynomial for web/software development? The answer is no. Do you need to know how to potentially optimize your code by using the most efficient sorting algorithm? You should always be striving to produce the most optimized code whenever possible, but, sometimes algos can be overkill. Analyzing code at compiler/interpreter level is not really essential to web/software development, unless your job requires you to reverse engineer apps, such in cyber security (penetration testing to be specific).

Think of it this way: If you are an author, and you are working on your next best seller book...do you really need to know how your printer gets the ink from the cartridge onto the paper?
 
Antero360 said:
To answer your original question: yes and no. Learning the concepts can be a great thing, but not essential, unless you go into very specific fields within the industry. The umbrella term here being Computer Science. Do you need to know whether a solution is polynomial vs non-polynomial for web/software development? The answer is no. Do you need to know how to potentially optimize your code by using the most efficient sorting algorithm? You should always be striving to produce the most optimized code whenever possible, but, sometimes algos can be overkill. Analyzing code at compiler/interpreter level is not really essential to web/software development, unless your job requires you to reverse engineer apps, such in cyber security (penetration testing to be specific).
Logical answer. The theory is absolutely useless for building websites with(unless your website requires a specific algorithm for whatever reason), but when it comes to machine-learning, for example, it is absolutely necessary to know a good bit about theory - not just for programming, but for computers in general as well! Theory will however, definitely benefit those who develop compilers/interpreters, no buts about that. You can't build a tool to read code without knowing how to read code(bad analogy, I know).

Antero360 said:
Think of it this way: If you are an author, and you are working on your next best seller book...do you really need to know how your printer gets the ink from the cartridge onto the paper?
Well, no. But I'd like for this book to have some sort of emphasis on theoretical concepts as I know that some knowledge of theory - whether it be useful or not - will benefit some people. I intend to give only an outside view of the concepts, but I do not intend to dig deep down into them.

A lot of programming books(particularly good ones that also cover a little bit of theory, such as K&R) are expensive and may even be hard to read for some, so it'd be something nice to do, even if it's been done a million times before. As I said, I might see about making the book open to contributions, therefore, everybody learns and earns.
 
Back
Top Bottom