need to update my knowledge

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

elcabesa
Posts: 855
Joined: Sun May 23, 2010 1:32 pm

need to update my knowledge

Post by elcabesa »

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: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Re: need to update my knowledge

Post by Aleks Peshkov »

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: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: need to update my knowledge

Post by xr_a_y »

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

Best regards
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: need to update my knowledge

Post by Henk »

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: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: need to update my knowledge

Post by Sven »

Henk wrote: Tue Aug 07, 2018 12:47 pm 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: 7216
Joined: Mon May 27, 2013 10:31 am

Re: need to update my knowledge

Post by Henk »

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.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: need to update my knowledge

Post by Guenther »

Sven wrote: Tue Aug 07, 2018 1:59 pm
Henk wrote: Tue Aug 07, 2018 12:47 pm 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

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: need to update my knowledge

Post by Henk »

Guenther wrote: Tue Aug 07, 2018 2:03 pm
Sven wrote: Tue Aug 07, 2018 1:59 pm
Henk wrote: Tue Aug 07, 2018 12:47 pm 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: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: need to update my knowledge

Post by jdart »

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: 855
Joined: Sun May 23, 2010 1:32 pm

Re: need to update my knowledge

Post by elcabesa »

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