• Forum
  • Lounge
  • How in-depth should you know a language?

 
How in-depth should you know a language?

I learned programming from "Programming -- Principles and Practice Using C++" after that I wanted to learn C++ in-depth and I read "The C++ Programming Language".

I am confident enough to work on a project in C++, but I can't say that I know it in-depth. For instance recently I read Chapter 5. Rvalue References, Move Semantics, and Perfect Forwarding from "Effective Modern C++" and there were some new things that I didn't know before. Also I was reading something on en.cppreference.com and again there were a lot of things that I didn't know before I read it there.

I also know a couple of other programming languages, but not that in-depth as I know C++. I plan to learn a few more languages in the future. How in-depth should someone know a programming language?
Last edited on
How in-depth should someone know a programming language?
As much as you need it. You will never know language fully.
As soon as you feel that you can find an answer to any language question (You know where exactly to seek and how to read standard), you know language enough.

As soon as you stop fnding stuff which makes you think "Hey, this does exactly the same thing I spend weekend implementing" and would roughtly know what standard library has to offer and know where to find answers to questions on library usage, you know library.

Note that this does not mean that you know common language idioms, useful patterns and code style agreements.
As @MiiNiPaa said, you'll never know a language fully, and a lot of it's due to computer science simply being fairly new compared to other sciences like biology, and chemistry which have thousands of years of history behind them. From first generation programming languages (assembly) to what we have now fourth generation languages (SQL), there's barely a century's worth of time in there.

My professor, being the old guy that he is, likes to rant about repeat stories. But one that especially catches my attention is how programming language philosophies change rapidly. How did object oriented programming (OOP) come to be? Who thought of the possibility of defining a function to save them less time? How were pointers introduced? etc.

Who knows, maybe 20 years down the line, a hotshot from MIT will look at the current C++ standard and say, hey we can redefine pointers and references this way, and everyone will follow suit because it'll be that much more efficient.
YFGHNG wrote:
a lot of it's due to computer science simply being fairly new compared to other sciences like biology, and chemistry which have thousands of years of history behind them.
Um, what? The problem is the limitation of the human mind. I'm pretty sure no biologist or chemist knows everything in their field of study.

Also, unless some amazing breakthroughs in gene splicing and brain science occur in the next 20 years, I don't think anybody from MIT (or anywhere) will look at C++ like a tiny thing.
Last edited on
So combine the limitation of the human mind with a long time span. What do you get? A helluva lot of theories and experiments to further the field of computer science. No one's gonna argue that a chemist or biologist knows absolutely everything in their field; that's just ridiculous. What I'm saying is computer science as an entire field of research and study hasn't had nearly the amount of time those other sciences have had to hash out their foundations.

Probably the closest comparison I can think of is US History as compared to Chinese, European, or Middle Eastern history. Or rather, any other region's history.

A lot of the foundations of computer science will stay the same, because that's just basic logic. But we don't know and probably won't ever know the full extent of what it's capable of.

Also I never said they'd look at it like a "tiny thing" I said they'd look at it differently. Using the words, "pointers and references" was just an example.
Either I understand what you're saying but not how it's relevant to this topic, or I don't understand what you're saying at all. :\
It doesn't really have a lot to do with what @OP asked. It was more addressed to you, because your disagreed with something I said earlier.
Topic archived. No new replies allowed.