Programming Logic & Design books?
Programming Logic & Design books?
After failed attempts to learn programming languages, I decided I want build a good foundation on logic/design and concepts.
So I'm looking for a good book that focuses on this, and not on a specific language.
Any suggestions?
So I'm looking for a good book that focuses on this, and not on a specific language.
Any suggestions?
I learned the other way around.
After learning basic programing / scripting skills, the application of these skills on more and more difficult tasks led to better logic and design skills.
Like learning a foreign language, the best way to get good at it is to stop reading about it and go and use it, once you've used it a bit, the theory in the reading material will make more sense. It's frightening the number of westerners who have been in Japan for 5 years+ who don't really speak the language other than to be able to order a beer
"Do or Do Not, there is no try"
ADDED:
You can't "fail" to learn a language, programming or otherwise. You can only give up.
After learning basic programing / scripting skills, the application of these skills on more and more difficult tasks led to better logic and design skills.
Like learning a foreign language, the best way to get good at it is to stop reading about it and go and use it, once you've used it a bit, the theory in the reading material will make more sense. It's frightening the number of westerners who have been in Japan for 5 years+ who don't really speak the language other than to be able to order a beer

"Do or Do Not, there is no try"

ADDED:
You can't "fail" to learn a language, programming or otherwise. You can only give up.
Paul Dwyer
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
- Kaeru Gaman
- Addict
- Posts: 4826
- Joined: Sun Mar 19, 2006 1:57 pm
- Location: Germany
what also could be useful: find a task (connected with something like programming) of your interest.
as an example, a friend of mine started his experiences with scripting events for an EmpireEarth scenario.
when he played around with this a while, he saw that he had interest for programming and bought PB...
or chose some RPG-Maker to script interesting scenarios.
also, POV-script (the c-like scripting language for the raytracer POV-Ray) is kind of programming language.
seeing interesting raytraced pictures by running some scriptsyou wrote can increase fun in programming.
when you find something you have fun playing around with, learning the inner logic of programming comes with it.
as an example, a friend of mine started his experiences with scripting events for an EmpireEarth scenario.
when he played around with this a while, he saw that he had interest for programming and bought PB...
or chose some RPG-Maker to script interesting scenarios.
also, POV-script (the c-like scripting language for the raytracer POV-Ray) is kind of programming language.
seeing interesting raytraced pictures by running some scriptsyou wrote can increase fun in programming.
when you find something you have fun playing around with, learning the inner logic of programming comes with it.
oh... and have a nice day.
I haven't learned programming yet 
I started learning the basics. Then I experimentet with different languages to find their strong and weak points. From my point of view, that is.
Then I thought of a few program ideas that I could make with the different languages, and then I learned more and more as the years went.

I started learning the basics. Then I experimentet with different languages to find their strong and weak points. From my point of view, that is.
Then I thought of a few program ideas that I could make with the different languages, and then I learned more and more as the years went.
I Stepped On A Cornflake!!! Now I'm A Cereal Killer!
Re: Programming Logic & Design books?
Unfortunately you can't really learn one without the other because you need to know why you are designing a particular program that particular way. Plus most program design books include code to illustrate a particular design.ignign0kt wrote:After failed attempts to learn programming languages, I decided I want build a good foundation on logic/design and concepts.
So I'm looking for a good book that focuses on this, and not on a specific language.
Any suggestions?
Have you read my book? I wrote it for people like you.

Yes I bought your book a long time ago. I guess I'm just making excuses for myself. I usually set unachievable goals for my skill level, which always leads to frustration and discouragement. Maybe I'm just one of those people who can't self teach. As much as I would like to be formally educated on programming , that won't be an option for a while.
maybe you're jumping in too deep, trying to start with something really interesting but is a lot of work. Think smaller.
I started with a lot of web scripts, ASP, CGI and little commandline tools that do text processing things like Grep or Tail and simple automation tasks etc. ASP lead to dabling a little in SQL. Then some basic monitoring programs for work, little tools that read and change reg keys on client PCs, networking stuff, more serious database work etc etc
Eventually, when you want to do something bigger, you have all this code that you wrote that does different things that you can borrow from to help you build bigger apps.
The books help you along the way but doing it is where you gain the experience to just be able type the code out of your head without having to look at the help files anymore. Studing books won't give you that "freedom from the help file", practice will
I started with a lot of web scripts, ASP, CGI and little commandline tools that do text processing things like Grep or Tail and simple automation tasks etc. ASP lead to dabling a little in SQL. Then some basic monitoring programs for work, little tools that read and change reg keys on client PCs, networking stuff, more serious database work etc etc
Eventually, when you want to do something bigger, you have all this code that you wrote that does different things that you can borrow from to help you build bigger apps.
The books help you along the way but doing it is where you gain the experience to just be able type the code out of your head without having to look at the help files anymore. Studing books won't give you that "freedom from the help file", practice will
Paul Dwyer
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
Patience is the key!
If you're trying to teach yourself programming then, in my opinion, getting stuck into books on coding design and basic concepts is probably not the best place to start. Sure, that will undoubtedly be the case in many academic introductions to programming, but you have the luxury of being able to dive in and get your hands dirty - so to speak! Get some basic coding under your belt and worry about 'best practice' when you are more experienced and more proficient with the basics of actually putting some code together. If you do then enrol on some formal course then they will begin to show you the ins and outs of good design etc. which is what you will be handing over your money for. In the meantime... get stuck in lad!
Yea I know easier said than done!
Guess I was lucky in a way that I was still at school when I switched on my first computer and all the tinkering and hacking and appallingly bad coding was supplemented by the stuff I was being taught in the classroom so that, at the end of the day, I have a pretty rounded background in coding in all. Having said that, it was nearly 20 years since I did any coding before picking up with Purebasic and then all of the hacking and tinkering came right back and in that time I have swallowed more programming books than ham sandwiches and that cannot be good for me!
Never read a book on good design though... stuff that; if it works it's good - that's my philosophy! If it doesn't work then call for Sparkie - he'll soon get it working!
I guess though when all is said and done; you've got to love coding and problem solving in general in order to be able to sustain that motivation long enough to plough through the inevitable frustrations and setbacks which we all encounter from time to time. It's the way of things. Even Fred and Freak will be ready to throw their computers through the window at times. In Fred's case because the compiler is playing up, in Freak's case, because he's German!
Hell when my program's are playing up then all of my neighbours know to cover their ears because of all the 'colorful metaphors' which issue forth from my vicinity!

If you're trying to teach yourself programming then, in my opinion, getting stuck into books on coding design and basic concepts is probably not the best place to start. Sure, that will undoubtedly be the case in many academic introductions to programming, but you have the luxury of being able to dive in and get your hands dirty - so to speak! Get some basic coding under your belt and worry about 'best practice' when you are more experienced and more proficient with the basics of actually putting some code together. If you do then enrol on some formal course then they will begin to show you the ins and outs of good design etc. which is what you will be handing over your money for. In the meantime... get stuck in lad!

Yea I know easier said than done!
Guess I was lucky in a way that I was still at school when I switched on my first computer and all the tinkering and hacking and appallingly bad coding was supplemented by the stuff I was being taught in the classroom so that, at the end of the day, I have a pretty rounded background in coding in all. Having said that, it was nearly 20 years since I did any coding before picking up with Purebasic and then all of the hacking and tinkering came right back and in that time I have swallowed more programming books than ham sandwiches and that cannot be good for me!
Never read a book on good design though... stuff that; if it works it's good - that's my philosophy! If it doesn't work then call for Sparkie - he'll soon get it working!

I guess though when all is said and done; you've got to love coding and problem solving in general in order to be able to sustain that motivation long enough to plough through the inevitable frustrations and setbacks which we all encounter from time to time. It's the way of things. Even Fred and Freak will be ready to throw their computers through the window at times. In Fred's case because the compiler is playing up, in Freak's case, because he's German!

Hell when my program's are playing up then all of my neighbours know to cover their ears because of all the 'colorful metaphors' which issue forth from my vicinity!

I may look like a mule, but I'm not a complete ass.
One thing i think that you need to do (and i say this with respect) is that you need to learn how to learn. At the start of learning programming it is vital that you learn to absorb the information that you seek. For example, i remember that when i started i used to read by scanning pages from top to bottom. That wasn't good enough. I had to make a conscious effort to read every word on the page *in the right order* and to occasionally pause to fathom the meaning of what i just read. I other words i had to learn to learn. You sound like you might have the same problem.ignign0kt wrote:Yes I bought your book a long time ago. I guess I'm just making excuses for myself. I usually set unachievable goals for my skill level, which always leads to frustration and discouragement. Maybe I'm just one of those people who can't self teach. As much as I would like to be formally educated on programming , that won't be an option for a while.


I think you sum up the problem yourself in your own words. You should never set yourself a goal that is way outside your league. Learning occurs in a series of steps - remember school? First of all target some projects that are simple but useful to your own needs. Then build on these.I usually set unachievable goals for my skill level, which always leads to frustration and discouragement. Maybe I'm just one of those people who can't self teach.
Of particular importance in any form of learning is to use the knowledge that already available. Once again target those bits of code that are most easy for you to understand and work your way up. I started off in purebasic by just creating some command line executables some of which I still use now.
So have another go, ask for advice when you need it, and one day you could be like me, still not there yet!!

I started learning Basic programming on the VIC-20 when I was 10 (I think).
But I only had it for about a year and then my Dad bought me a C-64, which
is where I really learned Basic. The C-64 user manual was the BEST teacher.
It was written so well and was so easy to understand everything about Basic.
You can even download it as a text file from various sites.
Later I got an Amiga and bought AMOS, and later Blitz Basic, which was far
superior to AMOS. Blitz is where I learned the concepts of procedural coding
and window events, etc. All good for the transition to PureBasic on Windows.
So, yeah, maybe download that C-64 user guide and read through it. It will
teach you about variables, strings, loops, conditions, etc. All that stuff is still
relevant to PureBasic, even though different keywords are used to access
them. But that's easy to figure out.
But I only had it for about a year and then my Dad bought me a C-64, which
is where I really learned Basic. The C-64 user manual was the BEST teacher.
It was written so well and was so easy to understand everything about Basic.
You can even download it as a text file from various sites.
Later I got an Amiga and bought AMOS, and later Blitz Basic, which was far
superior to AMOS. Blitz is where I learned the concepts of procedural coding
and window events, etc. All good for the transition to PureBasic on Windows.
So, yeah, maybe download that C-64 user guide and read through it. It will
teach you about variables, strings, loops, conditions, etc. All that stuff is still
relevant to PureBasic, even though different keywords are used to access
them. But that's easy to figure out.

I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
"PureBasic won't be object oriented, period" - Fred.
It would be great to have a list of exercises to complete that would gradually increase in skill level, like I would have in school. Because I can't even think of anything simple to make that would even be remotely useful.
That's why I love programming books that have exercises at the end of each chapter.
Otherwise I end up have an ultimate goal (for example I've always wanted to create a remote admin tool), and slowly work my way up to it.
That's why I love programming books that have exercises at the end of each chapter.
Otherwise I end up have an ultimate goal (for example I've always wanted to create a remote admin tool), and slowly work my way up to it.
The Euler Project might give you something to toy with. It has a collection of generally math-based problems and there are about 244 different ones. You can skim for ones that have been solved by a large number of people because those would be the easiest ones. And see how far you get.ignign0kt wrote:It would be great to have a list of exercises to complete that would gradually increase in skill level, like I would have in school. Because I can't even think of anything simple to make that would even be remotely useful.
That's why I love programming books that have exercises at the end of each chapter.
Otherwise I end up have an ultimate goal (for example I've always wanted to create a remote admin tool), and slowly work my way up to it.
Here's a link in case this interests you: http://projecteuler.net/index.php
ignign0kt wrote:
Re: your ultimate goal, once you have played around with the above, do searches on the forum for "remote admin" and related topics. I'm sure you'll find plenty of interesting code to play with. Finally when stuck or needing examples, ask in the forums for help.
Good luck, I'm sure if you start playing with the code examples it will all come together for you.
Have you tried looking through the PB CodeArchive for examples? Get from "download" section of www.purearea.net if you haven't already got it. There are plenty of simple examples that you can then adapt to make your own simple applications. Understanding will only come as you play with the code.It would be great to have a list of exercises to complete that would gradually increase in skill level, like I would have in school.
...
Otherwise I end up have an ultimate goal (for example I've always wanted to create a remote admin tool), and slowly work my way up to it.
Re: your ultimate goal, once you have played around with the above, do searches on the forum for "remote admin" and related topics. I'm sure you'll find plenty of interesting code to play with. Finally when stuck or needing examples, ask in the forums for help.
Good luck, I'm sure if you start playing with the code examples it will all come together for you.