6 Replies - 918 Views - Last Post: 29 August 2012 - 08:30 PM

#1 mczerwik92  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 3
  • Joined: 24-August 12

Thinking

Posted 27 August 2012 - 08:52 AM

So I have found the material I need to really learn programming. But I would like to know what books are out there that teach you how to think like a programmer?
Is This A Good Question/Topic? 0
  • +

Replies To: Thinking

#2 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 9059
  • View blog
  • Posts: 34,018
  • Joined: 12-June 08

Re: Thinking

Posted 27 August 2012 - 08:54 AM

Quantify what you mean "think like a programmer"...

Go find books on critical reasoning, logical puzzles, books about puzzles for programmers, etc.
Was This Post Helpful? 1
  • +
  • -

#3 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7630
  • View blog
  • Posts: 12,866
  • Joined: 19-March 11

Re: Thinking

Posted 27 August 2012 - 08:59 AM

None of them. All of them.

None, because no book will do the work. You learn to think like a programmer by writing programs.
All, because each of them has some piece of the truth that you're after, and working through the material in any one of them will get you closer.

Depending on what you want, there are some classics to look for. Knuth's TAOCP is difficult, but very complete. If you can work your way through the existing volumes, you'll know more than you do today. Ableson and Sussman's SICP is quite effective, especially if you work through the MIT course. The Nature of Computation is a more recent textbook that addresses the issues of computation without reference to specific languages, it's quite good.
However, there are far too many books - listing them would be inane. Find a topic that you want to know more about, get hold of a likely-looking book, and read through it. Apply the material you find there, figure out what questions that material has created for you, and pursue those questions. Repeat for the rest of your life. Die smart and happy.
Was This Post Helpful? 2
  • +
  • -

#4 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: Thinking

Posted 27 August 2012 - 10:06 PM

How to Solve It - Polya

A must read.

On the subject of books, don't put too much stock into just books (this coming from the man who has a mini-library at home...) Unless you go out and do things you won't ever get it. There's a large scale difference between a test monkey and someone who can actually perform in the real world. Sure, shock someone enough and force them to do something repeatedly and they'll remember it for a while, but it never does much good unless they find it themselves.

Consequentially this is the same issue I have with students fresh out the doors. They don't think for themselves because everything they know how to do is conditioned and regulated instead of using muse and inspiration to help them derive their own solutions.

The same can be said of any field.

A bad teacher is one that would force you to work only textbook problems on repeat with a dry explanation and some notes or a powerpoint. A good teacher won't tell you the entire puzzle, they'll give you just enough pieces and set you on your way while supporting you. There's a large scale difference between coddling and assisting, be sure not to cross that line as a teacher.

Now, a bad student is one who relies on the teacher, who believes that everything the teacher says is law. A good student takes it with a grain of salt, goes out and experiments beyond homework, and seeks to learn more instead of just accepting and settling.

You can always tell the students who don't want anything more than money and a good desk job, they do amazing on tests and can court a teacher any day of the week. Personally, I'm more interested in that crazy kid in the back hacking together a server or trying some open source projects.
Was This Post Helpful? 2
  • +
  • -

#5 miguel879  Icon User is offline

  • New D.I.C Head

Reputation: 10
  • View blog
  • Posts: 40
  • Joined: 20-July 12

Re: Thinking

Posted 28 August 2012 - 12:08 AM

Just Go and Explore.. find books in the bookstore and have some advice.. anyway books are more less to use.. whats the use of having an internet in the house.. for my opinion internet is enough for every information you want in programming.. just study wisely.. :clap:
Was This Post Helpful? 0
  • +
  • -

#6 NecroWinter  Icon User is offline

  • D.I.C Regular

Reputation: 35
  • View blog
  • Posts: 318
  • Joined: 21-October 11

Re: Thinking

Posted 29 August 2012 - 05:18 PM

View Postmczerwik92, on 27 August 2012 - 08:52 AM, said:

So I have found the material I need to really learn programming. But I would like to know what books are out there that teach you how to think like a programmer?


An algorithms book will help you think like a programmer. You can also just constantly work on projects. It comes down to experience really. I would say the key concept that any decent programmer is concerned with is efficiency.
Was This Post Helpful? 1
  • +
  • -

#7 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7630
  • View blog
  • Posts: 12,866
  • Joined: 19-March 11

Re: Thinking

Posted 29 August 2012 - 08:30 PM

View PostNecroWinter, on 29 August 2012 - 07:18 PM, said:

I would say the key concept that any decent programmer is concerned with is efficiency.


That's true, but you might not be thinking it through all the way. Remember that developer time and development time are both limited resources, and often more sharply limited than CPU time or heap space. Efficiency of development - knowing when to stop optimizing and knowing how to write code that doesn't waste maintainers' time - is at least as important as efficiency of execution, and generally much more so.
This is not to say that studying algorithms isn't important - it is, and it's also fun - but shaving cycles for the sake of shaving cycles is generally not a road to efficency in the real world.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1