Programming Logic & Design books?

For everything that's not in any way related to PureBasic. General chat etc...
ignign0kt
User
User
Posts: 59
Joined: Thu Sep 21, 2006 9:09 pm

Programming Logic & Design books?

Post by ignign0kt »

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?
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Post by Mistrel »

I found that the best way to learn a new language is to come up with a software problem and design a solution. Problem solving goes a long way as part of the learning process.
User avatar
pdwyer
Addict
Addict
Posts: 2813
Joined: Tue May 08, 2007 1:27 pm
Location: Chiba, Japan

Post by pdwyer »

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 :x

"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
User avatar
Kaeru Gaman
Addict
Addict
Posts: 4826
Joined: Sun Mar 19, 2006 1:57 pm
Location: Germany

Post by Kaeru Gaman »

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.
oh... and have a nice day.
User avatar
GeoTrail
Addict
Addict
Posts: 2794
Joined: Fri Feb 13, 2004 12:45 am
Location: Bergen, Norway
Contact:

Post by GeoTrail »

I haven't learned programming yet :lol:

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!
Kale
PureBasic Expert
PureBasic Expert
Posts: 3000
Joined: Fri Apr 25, 2003 6:03 pm
Location: Lincoln, UK
Contact:

Re: Programming Logic & Design books?

Post by Kale »

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?
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.

Have you read my book? I wrote it for people like you. :) Click the banner in my signature and you can download it for free.
--Kale

Image
ignign0kt
User
User
Posts: 59
Joined: Thu Sep 21, 2006 9:09 pm

Post by ignign0kt »

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.
User avatar
pdwyer
Addict
Addict
Posts: 2813
Joined: Tue May 08, 2007 1:27 pm
Location: Chiba, Japan

Post by pdwyer »

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
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
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

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! :wink:

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! :twisted:

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.
Kale
PureBasic Expert
PureBasic Expert
Posts: 3000
Joined: Fri Apr 25, 2003 6:03 pm
Location: Lincoln, UK
Contact:

Post by Kale »

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.
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. :wink: Try and take a little more time to actually read material from start to finish, reading every word. Then don't do too much, take a page at a time and try to understand what you are reading. If you're not grasping it, then move to an easier book more aimed at total beginners. My book should be ok though as it is written for complete novices and i'm sure if you fully read and understand a page at a time, you will get it. :) Remember, there's no time limit, move at your own pace.
--Kale

Image
rrpl
Enthusiast
Enthusiast
Posts: 121
Joined: Fri Apr 18, 2008 7:22 am
Location: Australia

Post by rrpl »

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.
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.

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!! :lol:
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

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. :)
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
ignign0kt
User
User
Posts: 59
Joined: Thu Sep 21, 2006 9:09 pm

Post by ignign0kt »

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.
User avatar
Demivec
Addict
Addict
Posts: 4260
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Post by Demivec »

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.
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.

Here's a link in case this interests you: http://projecteuler.net/index.php
rrpl
Enthusiast
Enthusiast
Posts: 121
Joined: Fri Apr 18, 2008 7:22 am
Location: Australia

Post by rrpl »

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.
...
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.
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.

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.
Post Reply