InShortViral: C++ this language from birth to today has gone through nearly 30 years. Admittedly, it is difficult to learn than other languages is high.
The
C++ this language from birth to today has gone through nearly 30 years.
Admittedly, it is difficult to learn than other languages is high. And
it’s learning difficulty, mainly from its complexity. Now the use of C++
has a lot less than before, java, C #, python and other languages in
many respects can replace C++. However, there are many places that other
languages can not be replaced completely, mainly in the need to run
more efficient in the industry, such as games, and efficient server.
Now the number of learning java, C # and
other languages is much higher than C ++, C ++ main entry threshold is
too high, you may learn sometimes after not also do something, causing a
heavy blow to confidence, and then give up.
How to Become a Good High-Level C++ Programmer
We want to share some of the experience
from the people who had already tried to learn the same but the
circumstances caused failed everyone, we want to help newcomers less
take some roads.
Here we do not discuss specific technical details, saying only that we should learn something.
First: The Technical Capability
#1 Language
We want to be a programmer, can learn a
lot of very complicated things, but must start from the beginning to
start learning the language, and learn the language of the most critical
than the selected book, school textbooks even, did not write well of.
In this highly recommended “C ++ Primer”, this book is very thick, the
content is also very rich, to explain the knowledge of not only stay on
the surface. If you have the patience to read this book, the basic
language is no big problem for future learning also laid a good
foundation.
#2 GUI
C ++ GUI library terms there are many,
such as MFC, WTL, wxWidgets, QT. These GUI libraries have their own
characteristics, in fact, as long as we first understand, as long as the
in-depth understanding of a GUI library we can, when you need to learn
other things which presently not enough, in essence, are similar, will
soon be to get started. MFC although there are many design problems, but
as an entry is good, also you can gain a lot of information, solve
problems encountered any how.
#3 Data Structures and Algorithms
Many people ignore the structural
aspects of the data and knowledge of algorithms, especially in some
programming language library that has done a very good, almost do not
need to go to achieve some of the data structures and algorithms,
leading many programmes do not pay attention to even ignoring this
knowledge. But when we want our program to run faster and effective
without using less memory, this knowledge is very much important. Many
programmes are just the beginning and eventually they do not pay much
attention to these languages, but after working for several years they
cram knowledge.
The most likely do not need to start learning too deep, but the basic data structures and algorithms must know.
Recommended data structure C language
version in the data structures and algorithms learning, it is best not
to care about the object-oriented aspects of the technique, use C
language to achieve, so can be more concerned about the content on the
algorithm by itself.
#4 Database
Learning the basics of the database,
becoming the master of database; it is recommended to use MySQL, but it
is best not to use some packaged interface and database API which should
be provided directly by MySQL, the database may be more in-depth
understanding.
#5 Parallel
CPU frequency has been unable to follow
Moore’s Law, and the trend now is to develop multi-core CPU. Whether it
is multi-threaded or multi-process, it is to make better use of CPU
performance, providing a better user experience. This requires us if you
want to write efficient applications, is bound to involve parallel
computing. Spend some energy on parallel computing it, there will be
rich rewards.
#6 Network Programming
Network programming referred to here
refers to socket programming. C ++ applications now many of them are
doing server development, how to develop a high-concurrency, high
throughput, high stability of the server that we want to take into
account.
#7 Design Patterns
A design pattern is not a specific technology, more is how to make the code easier to read and better extension, easier to use.
#7 Using The Library
C ++ standard library provides only some
very basic features, so we often introduce some third-party libraries.
Is probably the most famous is called quasi-standard libraries boost
library that provides various aspects of the technology used in our
programming, text processing, algorithms, network, multithreading, image
processing, and so on. There is also some other monograph on one aspect
of the library, such as ACE is the communication network, TinyXML is to
parse the XML, OGRE graphics rendering area.
#9 Knowledge of The Operating System
Programmers need to understand the
operating system knowledge and ordinary users are not the same, a master
needs to understand all aspects of the operating system, rather than
stay in the use levels. As should be understood to see “windows core
programming,” what knowledge, windows on, Linux’s look at “in-depth
understanding of Linux kernel”, should be able to know what you should
learn.
Second: The Project Experience
If you are proficient in the contents of
the above, it can be considered a more powerful programmer. But for
programmers, project experience is more important. A good project allows
you to carry out the integrated use of various technologies, and can
learn some new knowledge. For example, do you need to learn the game
graphics, and make players want to learn codec regard.
Many programmers will ignore the
experience of the project, but simply the ability to talk about
technology, this is wrong. In fact, this is the relationship between
theory and practice, the technology is the theory of knowledge, to do
the project is to practice, practice there is to know the role of
theory, the practice can deepen our in-depth understanding of the
theory.
Third: Communication Skills
Ability to communicate is a senior
programmer to have soft power. I want to say here is not the general
said communication understandable, speech, speak hype. But on the basis
of technical communication skills.
Comments
Post a Comment