why is it a MUST for students to learn C++ as their first programming language (and learn it really well). Because, by learning C++, students have to:
- worry about memory management;
- know the difference between compiler, linker and loader;
- find out that compilers make some optimizations (compilers code better than you);
- learn meta-programming;
- distinguish compile time from run-time;
- really understand low-level implementation of polymorphism (such as virtual tables and virtual table pointers, or dynamic type identification);
- pointer arithmetics, which could be a good base for understanding node-based data structures (f.i., linked lists, trees or graphs);
- find out that compiler generates platform-specific code, and discover that there are many other platforms, instead of Windows on x86;
- find out that there are ELFs and PEs and other executable file formats, each of which has a bunch of sections you should at least partially be familiar with;
- find out that the size of data types is something you have to worry about (sometimes);
- implement some function pointers to understand the under the hoods of callbacks;
- dive deeper into generic programming;
- use and understand iterators, implement containers supporting various categories of iterators;
- … the list goes on and on and on..
These are some “knowledge” that are a MUST for any CS student, at least for any CS student who is willing to become a good programmer. Mastering C++ guarantees required experience to master almost any other programming language.
No comments:
Post a Comment