I
I
Ivan Filatov2014-11-20 15:33:10
C++ / C#
Ivan Filatov, 2014-11-20 15:33:10

How to restore knowledge of C ++ today?

Now I only program under .Net C#
The last time I programmed in C++ was 6 years ago (Visual C++ under VS 2005 + Qt)
I want to return my knowledge to today (end of 2014).
I only remember the syntax, the general rules. Basic knowledge in general.
Questions:
1. Which version is the most current now? not necessarily the last, but rather in demand in production.
2. what development environment to take? VS 2013? (OS Windows 7-8)
3. C++ Boost - what is it and is it worth it to immediately retrain to write for it?
4. what other improvements have appeared for the developer? Maybe some libraries, without which not one self-respecting C ++ programmer can do?
5. which direction to go? (I plan to migrate to mobile-development)
Thank you.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
K
Koss1024, 2014-11-20
@NYMEZIDE

0. Read Stroustrup's latest edition. If you knew the language, then this is the best book to update your knowledge
1. C++11 C++14, in production more often still C++03
2. The best clang++ compiler (supports any standard and any platform)
3. boost is a set of libraries for all occasions the most well-engineered. It’s worth writing not for it, but using
4. paragraph 3
5. C ++ for tasks that require an accurate understanding of the cost of each operation, this is embedded DSP Server computing
Math much more
Please note, C ++ is a tool that you need to learn constantly I will
add
----- ------
C++ multi-paradigm
And it also supports many levels of abstraction. You can write on it like in pure
C - this is the lowest level. You can
OOP and abstractions . I can say that I have read throughout my career . First of all, I knew how to program and had an idea about algorithms and memory models (what are pointers, location deletion, etc.) First, I read some leftist book and studied it at a beginner level. I wrote a project for a linear algebra library (it was still at the university, the task was relevant for me) In principle, here my knowledge was enough to become a junior, but I don’t like this approach Then Stroustrup
(then it was the 03 edition). Here I supplemented my knowledge with details that I missed during independent study. Here it is worth noting that Stroustrup is a very strange book and is written heavily. It’s better not to read the OOP section in general there (the very last one).
Somewhere nearby, I read Grady Booch - OOA and OOP with examples of application. A very good kick to understand what all this came up with at all. Strongly straightened brains
Then there was Kernighan and Richie Programming language C. I read this one just from idleness, but now I think that it was necessary. Here you can understand why C was invented. And how simple everything is, conceived.
Techniques followed: Herb Sutter Solving Complex Problems in C++ and New Complex Problems in C++
Be sure to read, dismantled a lot of crutches and language problems. There is a lot of good advice given .
From Meyers - Effective use of C ++ there. Excellent analysis.
McConnell - Perfect code. A very cool book. She will polish almost a diamond.
Among other things, I worked on projects and constantly read all kinds of forums, blogs, and discussed with colleagues. Solved the problems of various interviews. The Gang of Four book (Patterns)
deserves special attention . I hardly finished reading it, I read it already after all of the above and after about 7-8 years of C ++ experience.
I have been a Senior dev for a long time. and finally found the same time for her. It seemed to me terribly boring and obvious, since almost all the proposed solutions I came up with myself more than once. In addition, most of these solutions are unnecessarily heavy, and very confusing code. The topic is holivar and you need to sleep a lot, but I’ll just focus on the fact that in my practice, the worst in terms of the cost of mistakes were the developers who studied starting from this book. Their code is undermaintained and confusing and very difficult to refactor. Such code has the longest tracked errors.
Somewhere along the way I read Fowler - Refactoring. Quite good enough. Recommend. But here it is worth contacting an experienced colleague. The idea is simple Tests - Small commits - YAGNI KISS and SRPbut the details are better to learn in practice.
I had a good lead, which eventually taught me :) I
completely forgot! Alexandrescu ! Let's just say - Alexandrescu is not so terrible as the one who read it :)
Fana delivered a lot, and also made it possible to lose about 3 months of work on these games. I don't even know
if it's worth reading. Probably worth it, but you need to remember that in practice it is better not to use if you are no longer an expert.
The rest of C++ does not concern, but to become a professional you will need algorithms and data structures ( Kormen , Knuth ), multithreading(Anthony Williams), other languages ​​(python, JS, java), optimization and profiling.
and many many different specific knowledge
. Good luck on this difficult but, of course, most interesting path :)

@
@coodan, 2015-05-31
_

I think the words about multiple paradigms are the key to what you are striving for. Are you interested in new opportunities?
Of course, you should look into generic programming approaches. Boost is heavily based on this paradigm. Indeed, there, as with patterns in general, elusive errors are possible. But this approach greatly changes the essence and appearance of C ++, so it may be important for you.
It is worth starting generic programming with its basics - in order to take a fresh look at the STL and containers. Effective STL seems to be the simplest and best book on this:
www.amazon.com/Effective-STL-Specific-Standard-Tem...
PS On a specific simple example. When I needed to work with graphs, I studied the issue and looked at the libraries that provide this functionality. Some of them are abandoned and not supported. Others seem to be focused on OOP, but their interface gives the impression of some kind of confusion, insufficiently clear understanding, which raises doubts about the integrity and error-freeness of their implementation. The best solution in this area at that time, in my opinion, was the boost::graph library. But this is pure generic programming as it is. Without understanding what it is, the ability to use it and write on it, there is nothing to do there. It doesn't fit with OOP at all. This is different.
So, the necessary functionality may push you to the need to use paradigms that you know little and do not fully share. And so boost will push you in that direction, and the further, the more.

A
asd111, 2014-11-30
@asd111

If you are planning in Mobile, then either Swift + ObjectiveC, or Java, or PhoneGap i.e. javascript + html. Little is written in C++ for mobile phones.
You can write in C# for mobile Windows. Windows 10 seems to be one on all platforms.
Can you tell me why you decided to develop towards C ++ and mobile after C #? And now I'm very interested in C# and Java.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question