need to update my knowledge

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
elcabesa
Posts: 830
Joined: Sun May 23, 2010 11:32 am
Contact:

need to update my knowledge

Post by elcabesa » Mon Aug 06, 2018 6:30 pm

HI all,
I need some advice about some good book to read about modern programming, my knowledge and background has made me becoming what I believe to be a good embedded C developer for microcontroller and small embedded devices.
My knowledge aboud C++, object oriented, modern, TDD, unite test, modern design, design pattern, SOLID principles and so on is very low.

I'm near finishing reading "Head first Design pattern" who reveal to be a very good book, on modern objected oriented principle and design pattern book.

what to read after?

Clean code?
code complete?
TDD by example?
effective c++ series? ( effective c++, more effective c++, modern effect c++)?
Agile Software Development: Principles, Patterns, and Practices

please share your thought :)
p.s. please don't start a battle on c vs cpp please :)

Aleks Peshkov
Posts: 882
Joined: Sun Nov 19, 2006 8:16 pm
Location: Russia

Re: need to update my knowledge

Post by Aleks Peshkov » Tue Aug 07, 2018 8:59 am

Stroustrup's "The C++ Programming Language" is must read for practical experience.

I personally read some old Effective C++ books and dislike them all.
Agile is all about Team Project Management not about individual programming skills.
"Clean Code" is good reading for programmer but it is not a tutorial.

User avatar
xr_a_y
Posts: 1167
Joined: Sat Nov 25, 2017 1:28 pm
Location: France

Re: need to update my knowledge

Post by xr_a_y » Tue Aug 07, 2018 10:46 am

I think "Effective C++: 55 Specific Ways to Improve Your Programs and Designs" is good to read.

Best regards

Henk
Posts: 6385
Joined: Mon May 27, 2013 8:31 am

Re: need to update my knowledge

Post by Henk » Tue Aug 07, 2018 10:47 am

I spend most of the time on refactoring. It seems to be impossible for me to find the right objects and patterns at once. After I change it the result looks unnatural and artificial. But ok it should be solid ?

Sven
Posts: 3853
Joined: Thu May 15, 2008 7:57 pm
Location: Berlin, Germany
Full name: Sven Schüle
Contact:

Re: need to update my knowledge

Post by Sven » Tue Aug 07, 2018 11:59 am

Henk wrote:
Tue Aug 07, 2018 10:47 am
I spend most of the time on refactoring. It seems to be impossible for me to find the right objects and patterns at once. After I change it the result looks unnatural and artificial. But ok it should be solid ?
So which book about refactoring do you propose to the OP then?
Sven Schüle (engine author: Jumbo, KnockOut, Surprise)

Henk
Posts: 6385
Joined: Mon May 27, 2013 8:31 am

Re: need to update my knowledge

Post by Henk » Tue Aug 07, 2018 12:01 pm

Fowler wrote a book about refactoring. Long time ago. I don't know if it is a good one. Maybe better search for interesting articles on the internet.

Guenther
Posts: 3280
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: need to update my knowledge

Post by Guenther » Tue Aug 07, 2018 12:03 pm

Sven wrote:
Tue Aug 07, 2018 11:59 am
Henk wrote:
Tue Aug 07, 2018 10:47 am
I spend most of the time on refactoring. It seems to be impossible for me to find the right objects and patterns at once. After I change it the result looks unnatural and artificial. But ok it should be solid ?
So which book about refactoring do you propose to the OP then?
'How to avoid Henks' 50 worst OOP misconceptions'
https://rwbc-chess.de
https://rwbc-chess.de/chronology.htm
--------------------------------------------------
The troll explosion at talkchess:
https://docs.google.com/spreadsheets/d/ ... KSptBx9AUs

Henk
Posts: 6385
Joined: Mon May 27, 2013 8:31 am

Re: need to update my knowledge

Post by Henk » Tue Aug 07, 2018 12:05 pm

Guenther wrote:
Tue Aug 07, 2018 12:03 pm
Sven wrote:
Tue Aug 07, 2018 11:59 am
Henk wrote:
Tue Aug 07, 2018 10:47 am
I spend most of the time on refactoring. It seems to be impossible for me to find the right objects and patterns at once. After I change it the result looks unnatural and artificial. But ok it should be solid ?
So which book about refactoring do you propose to the OP then?
'How to avoid Henks' 50 worst OOP missconcepts'
Yes I once used a bridge design pattern for a chess piece. Because of the two dimensions: piece type and color. Total idiotry.

Probably the more patterns you use the more difficult it gets to understand your code.

jdart
Posts: 3935
Joined: Fri Mar 10, 2006 4:23 am
Location: http://www.arasanchess.org

Re: need to update my knowledge

Post by jdart » Tue Aug 07, 2018 4:11 pm

I am not real big on programming books. They tend to be obsolete very soon after (or even as soon as) written.

There is however a lot of good material online.

C++11 and later have very significant changes from prior versions. If you are not familar with C++11 it is a good idea to spend some time getting to know the new features. A brief intro to some of them is here: https://www.codeproject.com/articles/57 ... -developer. (Scott Meyer's book Effective Modern C++ looks maybe useful here, despite what I said about books, but I have not read it).

If you have existing code you can run a variety of static analysis tools on it that will highlight possible issues. Microsoft has code analysis built into Visual Studio now. Also see the clang-tidy tool, which can help with C++11 and later conversion, and Coverity Scan (https://scan.coverity.com/ - a free online tool for FOSS programs; have to register though).

See also the Google style guide: https://google.github.io/styleguide/cppguide.html - includes design as well as programming recommendations. In general though I don't know a good guide to effective large-scale architecture and design or restructuring. I think there is probably no substitute for experience in doing this.

elcabesa
Posts: 830
Joined: Sun May 23, 2010 11:32 am
Contact:

Re: need to update my knowledge

Post by elcabesa » Tue Aug 07, 2018 5:29 pm

today I realized that first I have to remove some dust from my c++ inerithance knowledge. virtual, non virtual , class, inerithance and so on.

after that I'll read some old book, I have never read to boost my knowledge :)

Post Reply