What should I learn before moving to C ++?

I am learning C, but after that or at the same time, what should I learn first and after, before getting into C ++? Compilers, data structures, UML, or design patterns? (Also, when you start learning the Win32 API?) I'm in no hurry, so I can understand the requirements from the very beginning. I just don't want to get lost because I was fluent and careless.

In addition to this, what math subjects have the greatest impact on coding? Linear algebra, discrete mathematics, calculus?

I would be grateful if someone guides me on this journey. There are many questions that I would like to know the answers. Thanks.

+7
c ++ c compiler-construction design-patterns data-structures
source share
3 answers

You must first find out that C ++ is not a great language. C uses it as something more than a notch in C ++. C and C-style C ++, because they are:

  • Create smaller binaries
  • Use less memory
  • Compile faster
  • No OS support required
  • Simpler and easier to implement

Data structures are by far the most useful of those listed for study, followed by algorithms. If you intend to switch to C ++, it is also useful (necessary?) To have good design skills.

You do not have to learn Win32. Learn the POSIX , GTK +, and Boost APIs as they are more portable and work on platforms other than Windows.

The best solution you can make is to carefully study C as a standalone skill on the Unix platform before finding yourself without being able to see the difference between C and C ++.

Of the listed mathematical disciplines, I used only discrete mathematics. Linear algebra is also useful, but gift and the best discipline for programming is set and number theory.

Enjoy your time in C, don't get addicted to Windows / Visual Studio, and don't rush into C ++.

Update0

Almost forgot! You absolutely must use a decent C compiler. The main reason for the widespread use of C ++ in the enterprise and the poor reputation of C among Windows developers is Visual Studio. Visual Studio is the best C ++ IDE, but it is also the worst C compiler I know of. Be sure to use a C compiler with C99 support, such as GCC , mingw, or Clang . My first experience with C was to use LCC , which was very easy to use on Windows, but I have not used it since switching to Linux, t comment on its C99 status.

+13
source share

Compilers, data structures, UML, or design patterns?

Data structures and algorithms.

In addition to this, what math subjects have the greatest impact on coding? Linear algebra, discrete mathematics, calculus?

Discrete mathematics and number theory.

+3
source share

First you must learn how to program in a well-structured language: Ocaml is recommended, Haskell is also good, but it’s a little harder to get a working compiler and complicate it, because it is purely functional.

Mathematics is little used in programming (mathematics that are useful, too complicated, namely category theory). However, some basic type theory is useful.

You cannot learn good programming in languages ​​like C; important material is too deeply buried in homework and historical nonsense.

0
source share

All Articles