www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - What Programming Book Should I Read Next?

reply Walter Bright <newshound2 digitalmars.com> writes:
http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/

Ali's book is the latest, so I posted that one!
Jul 26 2014
next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On the topic of professional growth, I was asked this week in a 
work meeting what I think I can do for mine.... and I didn't 
really have an answer.

Maybe this is arrogant or whatever, but my view is that I'm kinda 
maxed out as a programmer. Sure, there's a handful of specific 
things (like framework method names) I don't know and some 
concepts I don't know the names of, but as for like revolutionary 
new lessons, I don't think I've actually learned anything like 
that directly related to programming for a pretty long time.

Then I was asked what about team dynamics and stuff... but even 
there, I've been doing this a pretty long time now. You know what 
I spend most my time talking about with my programming co-worker? 
Recipe swapping and church stuff. And I don't mean D Cookbook 
recipes, i mean stuff like baking bread and pies. We're both 
pretty good at our day jobs and tend to be on the same page on 
work related stuff more often than not anyway.
Jul 26 2014
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 7/26/2014 4:42 PM, Adam D. Ruppe wrote:
 On the topic of professional growth, I was asked this week in a work meeting
 what I think I can do for mine.... and I didn't really have an answer.

 Maybe this is arrogant or whatever, but my view is that I'm kinda maxed out as
a
 programmer. Sure, there's a handful of specific things (like framework method
 names) I don't know and some concepts I don't know the names of, but as for
like
 revolutionary new lessons, I don't think I've actually learned anything like
 that directly related to programming for a pretty long time.

 Then I was asked what about team dynamics and stuff... but even there, I've
been
 doing this a pretty long time now. You know what I spend most my time talking
 about with my programming co-worker? Recipe swapping and church stuff. And I
 don't mean D Cookbook recipes, i mean stuff like baking bread and pies. We're
 both pretty good at our day jobs and tend to be on the same page on work
related
 stuff more often than not anyway.
Interestingly, I've been programming for 40 years, and I'm constantly learning new ways of programming. It's a combination of experience, changing hardware, and new ideas. The Warp program I did for FB, for example, is pretty unlike anything I've written before in the way it's put together.
Jul 26 2014
parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Sat, Jul 26, 2014 at 04:56:20PM -0700, Walter Bright via Digitalmars-d wrote:
 On 7/26/2014 4:42 PM, Adam D. Ruppe wrote:
On the topic of professional growth, I was asked this week in a work
meeting what I think I can do for mine.... and I didn't really have
an answer.
[...]
 Interestingly, I've been programming for 40 years, and I'm constantly
 learning new ways of programming. It's a combination of experience,
 changing hardware, and new ideas.
 
 The Warp program I did for FB, for example, is pretty unlike anything
 I've written before in the way it's put together.
I've to say, that learning D and contributing to D has greatly expanded my programming horizons. I've been doing C/C++ for about 2 decades, and about 8 years ago I felt I'd started to taper off in terms of learning new things in programming. Until I found D, that is. D made hard / complex things in C++ easy, and opened up new horizons -- like weak purity, range-based component programming, new possibilities in metaprogramming, etc.. Contributing to Phobos was also quite eye-opening in learning about novel ways of handling common tasks in a standard library. I daresay I learned more contributing to Phobos than from my full-time job (mainly C with some C++ and a smattering of Javascript, PHP, and some other stuff). T -- They pretend to pay us, and we pretend to work. -- Russian saying
Jul 26 2014
next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Sunday, 27 July 2014 at 01:00:34 UTC, H. S. Teoh via 
Digitalmars-d wrote:
 On Sat, Jul 26, 2014 at 04:56:20PM -0700, Walter Bright via 
 Digitalmars-d wrote:
 On 7/26/2014 4:42 PM, Adam D. Ruppe wrote:
On the topic of professional growth, I was asked this week in 
a work
meeting what I think I can do for mine.... and I didn't 
really have
an answer.
[...]
 Interestingly, I've been programming for 40 years, and I'm 
 constantly
 learning new ways of programming. It's a combination of 
 experience,
 changing hardware, and new ideas.
 
 The Warp program I did for FB, for example, is pretty unlike 
 anything
 I've written before in the way it's put together.
I've to say, that learning D and contributing to D has greatly expanded my programming horizons. I've been doing C/C++ for about 2 decades, and about 8 years ago I felt I'd started to taper off in terms of learning new things in programming. Until I found D, that is. D made hard / complex things in C++ easy, and opened up new horizons -- like weak purity, range-based component programming, new possibilities in metaprogramming, etc.. Contributing to Phobos was also quite eye-opening in learning about novel ways of handling common tasks in a standard library. I daresay I learned more contributing to Phobos than from my full-time job (mainly C with some C++ and a smattering of Javascript, PHP, and some other stuff). T
For me is actually thanks to my interest in compiler development while at the university, that I keep on. I got/get to read so many papers, programming manuals and design rationales that I keep on learning about how to structure code, algorithms and lots of other nice stuff. -- Paulo
Jul 26 2014
prev sibling parent reply Jim Hewes <jimhewes gmail.com> writes:
On 7/26/2014 5:58 PM, H. S. Teoh via Digitalmars-d wrote:
 I've to say, that learning D and contributing to D has greatly expanded
 my programming horizons. I've been doing C/C++ for about 2 decades, and
 about 8 years ago I felt I'd started to taper off in terms of learning
 new things in programming. Until I found D, that is. D made hard /
 complex things in C++ easy, and opened up new horizons -- like weak
 purity, range-based component programming, new possibilities in
 metaprogramming, etc..

 Contributing to Phobos was also quite eye-opening in learning about
 novel ways of handling common tasks in a standard library. I daresay I
 learned more contributing to Phobos than from my full-time job (mainly C
 with some C++ and a smattering of Javascript, PHP, and some other
 stuff).


 T
Sorry if this is too off-topic, please tell me if so. As I read the D newsgroup I notice that a lot of you guys who are really quite knowledgeable about languages are doing things like C programming as a day job. I recently (like 2 weeks ago) resigned my current job of over 10 years. One of the reasons is that the work has veered too far from why I got into this career in the first place. The code for the product, in C++, has been largely finished (by me) so the only coding I do is small modifications to it. Mostly what I do now is what follows that: customizations for OEM customers, Windows installers, rebuilding the product, testing, testing, certification testing. There are more issues, but I'll spare you :-). I do try to learn more about things like Haskell and D and meta-programming and ranges, etc., but there isn't so much time when your regular job takes up over 40 hours a week. With programming, I feel like you can read about something but you can't really be proficient at it until you use it hands-on and practice it regularly. So I think it helps to try to find a job where you can do some of that during work time. I hope to do that. But then I read here where a lot of you guys have day jobs not even doing C++ but C programming, I feel like some of you are in the same boat, and more so because you're more knowledgeable than me. So how do you feel about that? Jim
Jul 27 2014
parent "Dicebot" <public dicebot.lv> writes:
On Sunday, 27 July 2014 at 15:15:31 UTC, Jim Hewes wrote:
 I do try to learn more about things like Haskell and D and 
 meta-programming and ranges, etc., but there isn't so much time 
 when your regular job takes up over 40 hours a week.  With 
 programming, I feel like you can read about something but you 
 can't really be proficient at it until you use it hands-on and 
 practice it regularly. So I think it helps to try to find a job 
 where you can do some of that during work time. I hope to do 
 that. But then I read here where a lot of you guys have day 
 jobs not even doing C++ but C programming, I feel like some of 
 you are in the same boat, and more so because you're more 
 knowledgeable than me.

 So how do you feel about that?

 Jim
Ironically after D has become part of my daily job I have found myself being less capable of contribution / participation :) Before it always felt like relief - being able to hack some nice D stuff after boring daily C routine. But now I more often find myself wanting to try something different simply for the sake of change.
Jul 27 2014
prev sibling next sibling parent reply "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Saturday, 26 July 2014 at 23:42:33 UTC, Adam D. Ruppe wrote:
 Maybe this is arrogant or whatever, but my view is that I'm 
 kinda maxed out as a programmer. Sure, there's a handful of 
 specific things (like framework method names) I don't know and 
 some concepts I don't know the names of, but as for like 
 revolutionary new lessons, I don't think I've actually learned 
 anything like that directly related to programming for a pretty 
 long time.
Really? I've realized a long time ago that there is more to learn than can possibly be internalized. Now, books that label themselves as programming books are not the best source. You need more narrow sources. Even a narrow field as computer graphics is way too big to master fully. Then you have logic programming languages / database engines, constraints programming, term rewriting, concurrency, verifiable programming, a plethora of event based programming paradigms, AI... And then you can move on to philosophies of different types of modelling, semantics etc. Even in basic web pogramming things are getting complex: efficient scalable modelling on nosql databases, how to get the best split between server client on modern browsers, how to utilize the various engines in the browser...
Jul 27 2014
parent "Gary Willoughby" <dev nomad.so> writes:
On Sunday, 27 July 2014 at 07:13:10 UTC, Ola Fosheim Grøstad 
wrote:
 Really? I've realized a long time ago that there is more to 
 learn than can possibly be internalized.
That's the big realisation of any good programmer. I used to think i was pretty good until stackoverflow.com opened. Boy was i wrong. It suddenly hit me i knew nothing. Even after fifteen years in software i still feel i have way too much to learn. Even visiting this newsgroup i feel like a total amateur and learn loads reading posts. I've worked with people who honestly believe they are awesome programmers and have mastered their craft, when in reality they don't even understand bit-shifting or what the modulus operator is for. Being humble is the only way to grow being a developer. As for books, here are some of the best books i've read and encourage anyone here to take a look. (but you've probably read em already.) The Pragmatic Programmer http://www.amazon.co.uk/Pragmatic-Programmer-Andrew-Hunt/dp/020161622X Code Complete http://www.amazon.co.uk/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ Some Head First books: http://www.amazon.co.uk/Head-First-Design-Patterns-Freeman/dp/0596007124/ http://www.amazon.co.uk/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/ All these books really opened my eyes and improved my coding no end.
Jul 27 2014
prev sibling next sibling parent reply Joseph Rushton Wakeling via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 27/07/14 01:42, Adam D. Ruppe via Digitalmars-d wrote:
 Maybe this is arrogant or whatever, but my view is that I'm kinda maxed out as
a
 programmer. Sure, there's a handful of specific things (like framework method
 names) I don't know and some concepts I don't know the names of, but as for
like
 revolutionary new lessons, I don't think I've actually learned anything like
 that directly related to programming for a pretty long time.
There are many ways to grow, and the most important one need not necessarily be programming. Personally, I tend to find that growth as a programmer tends to come as a consequence of problems that need to be solved with programming. Reading about new ideas and techniques is great -- of course I do this -- but it's actually finding a problem of my own that they are relevant to which really makes them sink in and allows me to feel their value. Then there's things that are not programming per se but that feed into it -- the research literature on many different topics, or topics such as the social and psychological dynamics of how people use software, or collaborate on software, or interact when using software. Or, as Walter has already pointed out, the ways in which new hardware, and new hardware environments, change the ways in which software can be written and needs to be written. Put another way, while sometimes it's useful to think of programming in a somewhat isolated or theoretical sense, most of the time I find it more inspiring to think about the whole range of things that programming interacts with. And of course, ultimately, sometimes it is very good to take a break from learning more in a particular area and go and work on other things for a while. We all need fun, and we all need stimulus that comes from unexpected things that are not part of our habitual activities.
Jul 27 2014
parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Sunday, 27 July 2014 at 11:35:31 UTC, Joseph Rushton Wakeling 
via Digitalmars-d wrote:
 There are many ways to grow, and the most important one need 
 not necessarily be programming.
everyone tells me i need to get married :<
 Personally, I tend to find that growth as a programmer tends to 
 come as a consequence of problems that need to be solved with 
 programming.
Yeah, I would agree with that.
Jul 28 2014
prev sibling next sibling parent reply "Peter Alexander" <peter.alexander.au gmail.com> writes:
On Saturday, 26 July 2014 at 23:42:33 UTC, Adam D. Ruppe wrote:
 Maybe this is arrogant or whatever, but my view is that I'm 
 kinda maxed out as a programmer. Sure, there's a handful of 
 specific things (like framework method names) I don't know and 
 some concepts I don't know the names of, but as for like 
 revolutionary new lessons, I don't think I've actually learned 
 anything like that directly related to programming for a pretty 
 long time.
I suppose it depends on what "related to programming" means. I presume you, like everyone else, could not write a general purpose AI, so we all still have that to learn. I'm guessing you'd classify that as more of an application rather than being directly related to programming? The applications are where most of the fun is. There's so many algorithms, concepts, and theories to learn. I don't think I'll ever stop. Even with things directly-related-to-programming, there's lots for me to learn. I know very little about all the Haskell-level category theory stuff, and I really should spend some time to play with things like Forth to see what all the fuss is about there. I'm sure there are still many gems to discover.
Jul 28 2014
next sibling parent reply "Kagamin" <spam here.lot> writes:
On Monday, 28 July 2014 at 07:42:39 UTC, Peter Alexander wrote:
 I suppose it depends on what "related to programming" means. I 
 presume you, like everyone else, could not write a general 
 purpose AI, so we all still have that to learn.
Why write it? Just give birth to a child.
Jul 28 2014
next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 28 July 2014 at 11:32:15 UTC, Kagamin wrote:
 On Monday, 28 July 2014 at 07:42:39 UTC, Peter Alexander wrote:
 I suppose it depends on what "related to programming" means. I 
 presume you, like everyone else, could not write a general 
 purpose AI, so we all still have that to learn.
Why write it? Just give birth to a child.
Humans are boring, we've got plenty of them already. Make something new, something different :)
Jul 28 2014
prev sibling parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Monday, 28 July 2014 at 11:32:15 UTC, Kagamin wrote:
 Why write it? Just give birth to a child.
Giving birth would indeed be a new experience for me!
Jul 28 2014
prev sibling parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Monday, 28 July 2014 at 07:42:39 UTC, Peter Alexander wrote:
 I suppose it depends on what "related to programming" means. I 
 presume you, like everyone else, could not write a general 
 purpose AI, so we all still have that to learn.
Yeah, I'm defining it as basically something non-trivial that is to be learned by picking up a new programming language. There was a period where there was much I picked up that way - especially around seven years ago when I was doing Lisp, D for the first time, stuff like that. I could get on a bi-weekly meeting then and report all kinds of stuff. I kinda get macros now, I kinda get purity, but now the rate has slowed significantly.
 The applications are where most of the fun is.
depends on the applications :P
Jul 28 2014
prev sibling parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Saturday, 26 July 2014 at 23:42:33 UTC, Adam D. Ruppe wrote:
 On the topic of professional growth, I was asked this week in a 
 work meeting what I think I can do for mine.... and I didn't 
 really have an answer.

 Maybe this is arrogant or whatever, but my view is that I'm 
 kinda maxed out as a programmer. Sure, there's a handful of 
 specific things (like framework method names) I don't know and 
 some concepts I don't know the names of, but as for like 
 revolutionary new lessons, I don't think I've actually learned 
 anything like that directly related to programming for a pretty 
 long time.

 Then I was asked what about team dynamics and stuff... but even 
 there, I've been doing this a pretty long time now. You know 
 what I spend most my time talking about with my programming 
 co-worker? Recipe swapping and church stuff. And I don't mean D 
 Cookbook recipes, i mean stuff like baking bread and pies. 
 We're both pretty good at our day jobs and tend to be on the 
 same page on work related stuff more often than not anyway.
How's your mathematics and numerical analysis? There are always new horizons.
Jul 28 2014
parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Monday, 28 July 2014 at 09:22:29 UTC, John Colvin wrote:
 How's your mathematics and numerical analysis? There are always 
 new horizons.
I'm very good at integral and differential calculus, I know the scientific names of beings animalcules, in short in matters vegetable, animal, and mineral, I am the very model of a modern major general.
Jul 28 2014
prev sibling next sibling parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Sat, Jul 26, 2014 at 04:23:23PM -0700, Walter Bright via Digitalmars-d wrote:
 http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/
 
 Ali's book is the latest, so I posted that one!
What about TDPL? Even though it's somewhat dated, it *was* what finally drove me to non-trivial programming in D. T -- People tell me that I'm skeptical, but I don't believe it.
Jul 26 2014
next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 7/26/2014 4:26 PM, H. S. Teoh via Digitalmars-d wrote:
 On Sat, Jul 26, 2014 at 04:23:23PM -0700, Walter Bright via Digitalmars-d
wrote:
 http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/

 Ali's book is the latest, so I posted that one!
What about TDPL? Even though it's somewhat dated, it *was* what finally drove me to non-trivial programming in D.
I also posted Ali's book because it was free, and so people wouldn't be complaining about posting spam links. Not that that stopped a couple complainers :-)
Jul 26 2014
prev sibling parent reply David Gileadi <gileadis NSPMgmail.com> writes:
On 7/26/14, 4:26 PM, H. S. Teoh via Digitalmars-d wrote:
 On Sat, Jul 26, 2014 at 04:23:23PM -0700, Walter Bright via Digitalmars-d
wrote:
 http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/

 Ali's book is the latest, so I posted that one!
What about TDPL? Even though it's somewhat dated, it *was* what finally drove me to non-trivial programming in D.
I am, alas, still a D dabbler, but I'm a huge fan of Andrei's book. It's not just the fantastic content, it's also the engaging style. I like it so well that I read it once in a while just for enjoyment.
Jul 28 2014
parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Monday, 28 July 2014 at 14:22:01 UTC, David Gileadi wrote:
 On 7/26/14, 4:26 PM, H. S. Teoh via Digitalmars-d wrote:
 On Sat, Jul 26, 2014 at 04:23:23PM -0700, Walter Bright via 
 Digitalmars-d wrote:
 http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/

 Ali's book is the latest, so I posted that one!
What about TDPL? Even though it's somewhat dated, it *was* what finally drove me to non-trivial programming in D.
I am, alas, still a D dabbler, but I'm a huge fan of Andrei's book. It's not just the fantastic content, it's also the engaging style. I like it so well that I read it once in a while just for enjoyment.
Honestly, what I like the most about TDPL is that it assumes that you already know how to program. It's not out to teach you how to program. It's out to teach you how to program in D. That was _incredibly_ refreshing to me. I can understand why so many language primers assume that you don't know much about how to program in any language, but I find it incredibly frustrating that they do that, and it makes it that much harder for me to get myself to read them - and I'm the kind of guy who likes to read the whole instruction manual before doing anything. - Jonathan M Davis
Jul 28 2014
parent Rikki Cattermole <alphaglosined gmail.com> writes:
On 29/07/2014 1:18 p.m., Jonathan M Davis wrote:
 On Monday, 28 July 2014 at 14:22:01 UTC, David Gileadi wrote:
 On 7/26/14, 4:26 PM, H. S. Teoh via Digitalmars-d wrote:
 On Sat, Jul 26, 2014 at 04:23:23PM -0700, Walter Bright via
 Digitalmars-d wrote:
 http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/


 Ali's book is the latest, so I posted that one!
What about TDPL? Even though it's somewhat dated, it *was* what finally drove me to non-trivial programming in D.
I am, alas, still a D dabbler, but I'm a huge fan of Andrei's book. It's not just the fantastic content, it's also the engaging style. I like it so well that I read it once in a while just for enjoyment.
Honestly, what I like the most about TDPL is that it assumes that you already know how to program. It's not out to teach you how to program. It's out to teach you how to program in D. That was _incredibly_ refreshing to me. I can understand why so many language primers assume that you don't know much about how to program in any language, but I find it incredibly frustrating that they do that, and it makes it that much harder for me to get myself to read them - and I'm the kind of guy who likes to read the whole instruction manual before doing anything. - Jonathan M Davis
I'm similar with how I learn programming languages, except I drown myself in the language almost quite literally. Lets do the most complex task first! Like setting up build management and get packages installed. Then go read the documentation and specifications. Hence I love a 'getting started' guide for all the common things. From here's a commonly used industry standard IDE, this is our build manager to here's a PDF which is our specifications! We're really missing that getting started guide. Everything else is slowly getting there.
Jul 28 2014
prev sibling parent "Israel Rodriguez" <tl12000 live.com> writes:
On Saturday, 26 July 2014 at 23:23:26 UTC, Walter Bright wrote:
 http://www.reddit.com/r/programming/comments/2bt8a5/what_programming_book_should_i_read_next/

 Ali's book is the latest, so I posted that one!
Its hard to admit but it is sometimes true. Needing a book to learn is not always the right way to go not because of the book itself but because of the author. Knowing something and being able to teach it in layman terms, are two completely different arts...
Jul 26 2014