Open Side Menu Go to the Top
Register
Looking for book recomendations Looking for book recomendations

12-06-2016 , 10:55 PM
I am looking for recommendations for a book. I would prefer something that is more generally about programming. Right now I am trying to wrap my head around and to better understand MVP and Clean Architecture. I cannot really do any actual coding while I read, so I am trying to stay away from books where the primary purpose is building something while reading.

It doesn't have to be Android specific, or even Java specific, although that is my main language/platform.

I have already read the gang of four book on design patterns. But I would go for a more updated book on design patterns

Any suggestions would be appreciated. Thanks
Looking for book recomendations Quote
12-10-2016 , 01:34 PM
You won't understand clean architecture until you've had the pain of working on terrible architectures.

The Architecture of Open Source Applications is a nice read, but it won't be really appreciated until you have more experience.

http://aosabook.org/en/index.html

My advice would be to ignore design patterns and architecture completely. Focus on writing code and get actual programs working. It doesn't matter what you write. You've improve much faster by just getting things working and iterating on your code and design.

More reading on scalability (for down time when you're not coding. But you should be coding!!)

http://highscalability.com/start-here/
Looking for book recomendations Quote
12-10-2016 , 01:57 PM
That '500 lines or less' book looks interesting.

I'm sure I've commented here that brevity is not the soul of programming and many programmers aim at code that is too terse to be well understood.

But whenever someone describes a program that solves a fairly easy to characterize program and I look at their code and it's 10k lines I think, you ****ed up.

I once replaced a 10k line perl program with about 800 lines of python - I feel the languages have similar verbosity at their core. The program I replaced had just way too much redundancy. And it was *extremely* hard to change. To change a behavior you might need to find 5 places that need fixing and it may be hard to know for sure that you've got it right.

Anyway, I think learning to make programs that do Real Stuff without a lot of code is a real skill. I rarely START with a short/brief program. I like the method where you get it working, then get it right, then trim it down and optionally make it fast. Getting to the right answer quickly is good, especially if you develop tests that prove that it works. Then making changes and refactoring become so much easier.
Looking for book recomendations Quote
12-11-2016 , 01:03 AM
Quote:
Originally Posted by muttiah
You won't understand clean architecture until you've had the pain of working on terrible architectures.

The Architecture of Open Source Applications is a nice read, but it won't be really appreciated until you have more experience.

http://aosabook.org/en/index.html

My advice would be to ignore design patterns and architecture completely. Focus on writing code and get actual programs working. It doesn't matter what you write. You've improve much faster by just getting things working and iterating on your code and design.

More reading on scalability (for down time when you're not coding. But you should be coding!!)

http://highscalability.com/start-here/
Thanks for the recommendations, I will definitely take a look.

I have built apps and sites. One of my apps has over 600k downloads on the play store. I have also had to go back and add and change features to the these apps, and it was a pain in the ass! Things like changing where the data comes from etc is exactly why I am now focusing on patterns and architecture.

I am not claiming to be an expert by any means, but I am at the point that I want to write better code that can scale and are flexible.
Looking for book recomendations Quote
12-11-2016 , 08:33 AM
The Pragmatic Programmer is a pretty nice meta book about programming. It's published in 1999 but still good: http://amzn.to/2hlmERF

There's also Hello, Startup which is more geared towards the MVP, startups, and good programming practices. It was published last year: http://amzn.to/2gs28lk
Looking for book recomendations Quote
12-11-2016 , 10:37 AM
Quote:
Originally Posted by RustyBrooks
That '500 lines or less' book looks interesting.

I'm sure I've commented here that brevity is not the soul of programming and many programmers aim at code that is too terse to be well understood.

But whenever someone describes a program that solves a fairly easy to characterize program and I look at their code and it's 10k lines I think, you ****ed up.
I have a friend that has been kind of a mentor for me with programming. This was the first thing he picked apart when I had him review my code a couple years ago. In the beginning it is very easy for the code to get away from you. I think that is stems mostly from focusing so much on just getting it to work, and not at all on how you are getting it to work or what will happen in the future.

Quote:
I once replaced a 10k line perl program with about 800 lines of python - I feel the languages have similar verbosity at their core. The program I replaced had just way too much redundancy. And it was *extremely* hard to change. To change a behavior you might need to find 5 places that need fixing and it may be hard to know for sure that you've got it right.
This is the big motivation for me. Even though I have gotten better at separation of duties etc, my code is still too coupled. This cause me the same sort of issues you are describing when trying to change or to extend functionality.

Quote:
Anyway, I think learning to make programs that do Real Stuff without a lot of code is a real skill. I rarely START with a short/brief program. I like the method where you get it working, then get it right, then trim it down and optionally make it fast. Getting to the right answer quickly is good, especially if you develop tests that prove that it works. Then making changes and refactoring become so much easier.
I agree. Thanks for the reply
Looking for book recomendations Quote
12-11-2016 , 10:39 AM
Quote:
Originally Posted by Rampage_Jackson2
The Pragmatic Programmer is a pretty nice meta book about programming. It's published in 1999 but still good: http://amzn.to/2hlmERF

There's also Hello, Startup which is more geared towards the MVP, startups, and good programming practices. It was published last year: http://amzn.to/2gs28lk

Thanks for the recommendations. I will definitely take a look.
Looking for book recomendations Quote
12-14-2016 , 02:55 PM
I really like the book "anti patterns."
Looking for book recomendations Quote
12-14-2016 , 08:04 PM
Quote:
Originally Posted by jmakin
I really like the book "anti patterns."
I thought we weren't using that phrase any more
Looking for book recomendations Quote
12-15-2016 , 08:55 AM
I found that looking through github is a good exercise. I agree with some things and strongly disagree with other things.

I've mostly looked at projects that are web-based, and therefore, MVP style. I think the MVP acronym doesn't drive the concept home very well. I think there should be more letters, like:

B for "build," where you put your build scripts.

C should really be F, in my opinion. You can break controllers down into multiple function-type files, which go into their own semantically named directories. So, if one function has a purpose, each file, and each folder should have a single purpose. It is easier to move files around and keep your sanity that way.

C then becomes "connection" to external resources, etc.

Of course, models and views should be separated the same way as controllers.

My favorite kinds of systems have a very clear path from idea to idea. I suppose that, conceptually, you should aim to always navigate your code as if you never seen it before, asking yourself if what you did would make sense to someone who never seen your system before. If it doesn't, then it's time to move your files around, move functions to other files, create subfolders, etc. I'd much rather have 1,000 files with 4 functions in each than 4 files with 1,000 functions in each.

An example of what I'm talking about is in gcc:

https://github.com/gcc-mirror/gcc/bl...ily/c-format.c

The file is named "format.c." It includes a single line describing what the file does:

Quote:
/* Handle attributes associated with format checking. */
Sorry, don't have a book recommendation, but github is modern and full of interesting surprises.
Looking for book recomendations Quote
12-15-2016 , 08:17 PM
I agree with you about the 1000 files vs 4 files. As well as having a clear path from idea to idea.

I have only been programming a short while relatively speaking, and I have already run into these issues. Both in my own code (when looking at it after quite a while) as well as in other peoples code. Sometimes it is super difficult to find out exactly what the author is trying to do.

This is why in my programming journey I am trying to work on writing good clean code as well as functional code.
Looking for book recomendations Quote
12-22-2016 , 06:13 PM
Obviously do whatever you feel is best and fits the way you learn but I feel like you're optimizing prematurely if you're inexperienced at programming and are already wondering about design and clean code and all. The statement that you can't code while reading a book has me very worried.

If you are learning you should ignore everything in favour of building stuff and writing and rewriting lots of code (and tests). I
d much much rather recommend going through x in y minutes Java: https://learnxinyminutes.com/docs/java/ and working through the exercism.io stuff for Java (or think up your own "wouldn't it be cool if" miniscenario and trying to build that just relying on google to help you if stuck...like "wouldn't it be cool to build a simple tick-tack-toe with ascii output")

Al imo, not meant as a dig.
Looking for book recomendations Quote
12-23-2016 , 06:43 PM
Quote:
Originally Posted by clowntable
Obviously do whatever you feel is best and fits the way you learn but I feel like you're optimizing prematurely if you're inexperienced at programming and are already wondering about design and clean code and all. The statement that you can't code while reading a book has me very worried.

If you are learning you should ignore everything in favour of building stuff and writing and rewriting lots of code (and tests). I
d much much rather recommend going through x in y minutes Java: https://learnxinyminutes.com/docs/java/ and working through the exercism.io stuff for Java (or think up your own "wouldn't it be cool if" miniscenario and trying to build that just relying on google to help you if stuck...like "wouldn't it be cool to build a simple tick-tack-toe with ascii output")

Al imo, not meant as a dig.
Thanks for that site!
Looking for book recomendations Quote
12-23-2016 , 09:36 PM
Quote:
Originally Posted by just_grindin
Thanks for that site!
Seriously, this is great!
Looking for book recomendations Quote
12-31-2016 , 02:46 PM
Quote:
Originally Posted by clowntable
Obviously do whatever you feel is best and fits the way you learn but I feel like you're optimizing prematurely if you're inexperienced at programming and are already wondering about design and clean code and all. The statement that you can't code while reading a book has me very worried.
I only say that I cannot code while reading because of the time of day that I read. Not because I am incapable. Just that it is not the ideal time for that sort of learning. I am coding 12 hours a day (I work full time as a software developer, then go home and program as well), and the time that I set aside for reading is not the time that I program.

Quote:
If you are learning you should ignore everything in favour of building stuff and writing and rewriting lots of code (and tests).
I have already built many things (apps/websites) as I have mentioned, including an app that has 750,000 downloads in the play store. I do really appreciate your comments, but I am not new to programming. Sorry if I did not make that clear in post.


Quote:
Id much much rather recommend going through x in y minutes Java: https://learnxinyminutes.com/docs/java/ and working through the exercism.io stuff for Java (or think up your own "wouldn't it be cool if" miniscenario and trying to build that just relying on google to help you if stuck...like "wouldn't it be cool to build a simple tick-tack-toe with ascii output")

Al imo, not meant as a dig.
First, I do not take it as a dig, I am very appreciative of all comments. I glanced at the site, thanks for sharing, but that is all stuff I am extremely familiar with learned a long time ago. I guess I was not very clear in my explanation of my skill level. Sorry for the confusion.
Looking for book recomendations Quote
12-31-2016 , 02:48 PM
Quote:
Originally Posted by RustyBrooks
That '500 lines or less' book looks interesting.
I have bought this book. I will post back once I have finished reading it and let everyone know how it is. Thanks.
Looking for book recomendations Quote

      
m