• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

At what point can you say

- When people are dependent on you in seeking solutions to issues be it at work, forums, mailing lists
- when you have written your own language inspired by the language(s) which you've mastered;
- when you can rewrite the entire language from itself ( parser/lexical scanner/logic/specifications )
- when you've written a book that gets positive reviews from established programmers, not just beginners
- when you can pretty much go into any forum specific to that language and answer almost any question
- when you don't go around asking or bragging that you know a language

And unless you invented the language and maintain a good portion of it to this day, you never stop learning it and never really consciously think you know it all.
 
Last edited:
I don't think it's ever wise to say such a thing. The universe will take that claim as a challenge, and you'll lose.
 
Now it depends.

For a specific language, I would say I've mastered C++, There isn't a syntactical thing you can do that I haven't seen/used. However, the libraries available for C/C++ are HUGE, and there is no way I or anyone else could master all the libraries available.

What would I classify as programming language mastery? Knowing ALL of the syntax of a language (even the little known/used archaic stuff. like the ellipsis in c/c++). Along with that, you should know what the language compiles into. For example, I know the difference between the several function calling methods (stdcall, fastcall, cdecl). You should be able to dive into anyone's source code (minus the obfuscated stuff) and understand what is going on.

As for programming in general. There is no such thing as programming mastery. New concepts and ideas come up all the time in relation with programming (that's what makes this field great). Though, if you really want to label it, I would say that Programming mastery is the ability to make any program in any language. (and not just make it, make it well, compact, clean, and efficient).
 
I'm just going to come out and say that complete mastery is impossible. No matter how good you are, you can always get better.

EDIT: Moreover, 'thorough mastery' is not something you can claim for yourself, in my opinion. That title can only be bestowed on you by others -- and only by those considered masters themselves (in turn, by others).
 
When you invent one language to rule them all, one language to find them.
One language to bring them all and in the darkness bind them.
 
When you can bring up notepad and write a complex program with +100k lines of code and your own libraries without any references from books or Google.
 
When you can bring up notepad and write a complex program with +100k lines of code and your own libraries without any references from books or Google.

I completely disagree with that. Someone can write 100k lines of shitty code in notepad just as easily as someone can write 100k lines of shitty code in Eclipse or Visual Studio.

Writing your own libraries does nothing but waste time and prove that you can write the same code that other people can write. A true master in programming will get the job done no matter what, using whatever tools necessary.

The whole 'hardcore programmers use notepad' notion is complete BS imo, use the right tool for the job!
 
when the book you wrote gets published and purchased

The phrase "Those who can, do; those who can't, teach." comes to mind. There's lots of shitty books out there and lots of stupid people who will buy them.

Crusty said:
The whole 'hardcore programmers use notepad' notion is complete BS imo, use the right tool for the job!

Agreed, notepad is shit and the best physical analogy is a post-it note. They're both for quick little scribbles, but that's about it.

Everyone knows that real programmers use vim. =)
 
you can never throughly master a language, only throughly master the code and development tools you have to work with.
 
I'm sorry, but I disagree with the general sentiment of this thread.

My example. BrainFuck. It has 8 characters that do anything in the program, any serious programmer can master that language in a matter of minutes.

I don't know why we have to skate around the term and try and be all PC about it. Its like saying "You can never master piano playing" or "You can never master artistry". Of course you can, people do it all the time.

Heck, I would consider several of you here masters of your own domains. You know how to use the tools very well. That IMO is what a thorough mastery is. Yes, the tools change, but so do you.

Let me put it in another perspective. Picaso was able to do amazing abstract art, yet his realistic and classical art was only so-so. Would you say that Picaso throughly mastered painting? I would. Just because he can't do every aspect of painting flawlessly, doesn't mean he isn't a master at it.

Now, if the question was "can you ever know all there is to know about language x?" then of course, the answer is no. Languages evolve very rapidly (with every person that uses it) but mastery doesn't require full knowledge. Just like you can master english without knowing every word in the dictionary.
 
I'm sorry, but I disagree with the general sentiment of this thread.

I don't. Things move way too fast with regards to computers in general and programming languages are no different. There's always new libraries, API changes, etc happening and unless you're involved in those changes you can't stay on top of all of them all the time.

Let me put it in another perspective. Picaso was able to do amazing abstract art, yet his realistic and classical art was only so-so. Would you say that Picaso throughly mastered painting? I would. Just because he can't do every aspect of painting flawlessly, doesn't mean he isn't a master at it.

I wouldn't say that Picaso mastered painting in general, I would say he mastered abstract painting.

And analogously, one could say that "I've mastered Java 1.4" but that's a very specific and limited statement. Saying "I've mastered Java" has a whole other and larger meaning.

Now, if the question was "can you ever know all there is to know about language x?" then of course, the answer is no. Languages evolve very rapidly (with every person that uses it) but mastery doesn't require full knowledge. Just like you can master english without knowing every word in the dictionary.

And I think therein lies the difference in our opinion. The fact that you can't know everything about a language says to me that you can't ever really master it. By the time you get caught up there will be new aspects to learn. Google has several definitions of the word master but in my mind the one that applies best to this subject is "be or become completely proficient or skilled in" and I don't think anyone can be completely proficient in any language.

Now, mastering programming in general I could see as that's a more abstract idea. Understanding the ideas behind functional, procedural, OO, etc programming is definitely possible and obviously would make learning any language a "simple" case of learning the syntax and libraries for that language.
 
The phrase "Those who can, do; those who can't, teach." comes to mind.

Bjarne-Stroustrup.jpg


<-- Never read his book. 😛
 
I think you guys are mixing up some concepts. Of course you can thoroughly master a programming language. It's just a finite grammar, after all, and there are only so many ways that the symbols can be used.

What you can probably never thoroughly master are all the tools, techniques, libraries, APIs, etc., that are required to make a complex program do anything interesting on a modern operating system.
 
I think you guys are mixing up some concepts. Of course you can thoroughly master a programming language. It's just a finite grammar, after all, and there are only so many ways that the symbols can be used.

What you can probably never thoroughly master are all the tools, techniques, libraries, APIs, etc., that are required to make a complex program do anything interesting on a modern operating system.

My point exactly.
 
True masters would never say they have mastered anything. People who are really good don't feel the need to brag, their work speaks for itself.
 
True masters would never say they have mastered anything. People who are really good don't feel the need to brag, their work speaks for itself.

Yeah, no.

People call and consider themselves experts and masters of their fields all the time. Almost every book published on a technical subject as a blurb about the author where they claim to be an expert in the field.
 
Yeah, no.

People call and consider themselves experts and masters of their fields all the time. Almost every book published on a technical subject as a blurb about the author where they claim to be an expert in the field.

Which is just proof they are not experts.
 
I think you guys are mixing up some concepts. Of course you can thoroughly master a programming language. It's just a finite grammar, after all, and there are only so many ways that the symbols can be used.

What you can probably never thoroughly master are all the tools, techniques, libraries, APIs, etc., that are required to make a complex program do anything interesting on a modern operating system.

And the second part is the more important part which is why I think it's impossible to master a programming language.
 
Back
Top