Beginner who reads Books - Wants to know the Fundamentals.
I am not one for tutorials, or workshops, or even articles online. So I read my hard copy books, and accumulate questions all the time from them. I try to think them out the best I can, but sometimes the questions become to cumbersome and i need to rely on feedback from friends in the same field of endeavor as my own, such as you all on this site. The book I am currently reading is geared toward what I would say are the 'fundamentals of programming'. I always wonder what are the fundamentals of programming, when you strip the labels off of these programming languages, and the syntax that goes along with them, what exactly are they made up of? In reading this fundamentalist book I have I would like to believe I have a grasp of some sort (a basic grasp) of what programming in general is made up of. Mind you this is C/C++ concepts, and being limited in my programming knowledge (IE: not knowing a wealth of languages) I would also like to think these thoughts I am going to mention apply to the 'Fundamentals of Programming' that you, (being obvious if you are going to reply), the more experienced of the crop would, (and i would hope you would), undoubtedly know off the top of you mind, if these fundamentals do in fact exist at all.
<Rant>
Programming code is structured in three ways:
Sequence
Selection
Repetition
Sequence:
User defined
Selection (Control Structures):
If - Single Selection
If/Else - Double Selection
Switch - Multiple Selections
Repetition (Control Structures):
While Structure
Do/While Structure
For Structure
Any Program can be accomplished (theoretically) with:
Sequence
If Structure
While Structure
This is because everything that can be done with the If/Else, Switch, Do/While, and For can be done with the If and While structures. This is accomplished through the use of combining control structures in two ways: Stacking and Nesting.
</rant>
This is as far as i have got in the book, thus why my supplementation is so sort, please do not just reply by simply asking what the title of the book is, nor reply inquiring information about this book. This is because the information/questions I am (asking/going to ask) are general questions about programming and do not rely specifically on the material covered in this book.
To make a quick and simple 'rap up' I would like to supply a few general questions to gear replies in a manner that will pertain to the thread created.
What are the Fundamentals of Programming? What is Programming made up of? With knowledge of these fundamentals would it be easier to learn/apply myself to other languages or even expand my knowledge in a programming language that I think I have mastered? Where could I find documentation on these topics?
Lastly you can call it what you wish, Fundamentals is what I call it in this thread, you could say basics, or other misc. words which refer to the lower level of learning in a subject.
I don't know if it's possible to come up with one set of "fundamentals", but my best bet would have to be Turing Completeness.
That's the most basic property of all "real" programming languages. If they are turing-complete, you can implement all the common operations, algorithms and whatever else.
(Formally it's a bit more complex than that, but let's keep it simple for now ;))
In fact it's very similar to what you tried to do in your post, coming up with a "minimal set of operations" to support everything other programming languages can do.
Well, since you defined one of them as "user defined", I'd say a combination of these three can do absolutely anything the user defines them to, including, but not limited to, brewing coffee, solving world hunger and travelling faster than light. [wink]
Still, I see what you mean. However, you might be interested to hear that a lot of languages don't really have repetition as such. (That is, they don't have loops). They have recursive functions instead, which serve just as well. So you could replace both "repetition" and "if" in your list with the ability to jump back and forth in the code. (and then you're not far from being down to the set of operations required for turing completeness)
But another "must-have", one that I'd consider right up there with Turing completeness is Lambda Calculus. You could consider it an extremely simple (but very powerful) programming language, that predates the invention of computers by some decades.
Of course, as said above, boolean logic could be considered fundamental to most programming too.
The same goes for microprocessor architecture. It can certainly help a lot in understanding the behavior of a program/programming language, if you know how the underlying hardware works.
Still, the first two are by far the most "fundamental" fundamentals. [lol]
Very likely, yes.
The wikipedia articles I linked to should provide a starting point. Other than that, well, computer science textbooks. This stuff is a pretty big part of what computer science actually is.
That's the most basic property of all "real" programming languages. If they are turing-complete, you can implement all the common operations, algorithms and whatever else.
(Formally it's a bit more complex than that, but let's keep it simple for now ;))
In fact it's very similar to what you tried to do in your post, coming up with a "minimal set of operations" to support everything other programming languages can do.
Quote:Original post by Xettabyte
Sequence
If Structure
While Structure
Well, since you defined one of them as "user defined", I'd say a combination of these three can do absolutely anything the user defines them to, including, but not limited to, brewing coffee, solving world hunger and travelling faster than light. [wink]
Still, I see what you mean. However, you might be interested to hear that a lot of languages don't really have repetition as such. (That is, they don't have loops). They have recursive functions instead, which serve just as well. So you could replace both "repetition" and "if" in your list with the ability to jump back and forth in the code. (and then you're not far from being down to the set of operations required for turing completeness)
But another "must-have", one that I'd consider right up there with Turing completeness is Lambda Calculus. You could consider it an extremely simple (but very powerful) programming language, that predates the invention of computers by some decades.
Of course, as said above, boolean logic could be considered fundamental to most programming too.
The same goes for microprocessor architecture. It can certainly help a lot in understanding the behavior of a program/programming language, if you know how the underlying hardware works.
Still, the first two are by far the most "fundamental" fundamentals. [lol]
Quote:
With knowledge of these fundamentals would it be easier to learn/apply myself to other languages or even expand my knowledge in a programming language that I think I have mastered?
Very likely, yes.
Quote: Where could I find documentation on these topics?
The wikipedia articles I linked to should provide a starting point. Other than that, well, computer science textbooks. This stuff is a pretty big part of what computer science actually is.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement