Do I need to understand the Internals of a programming language?

I am beginner to Python and I really like it so far.
One question that comes to my mind very often is if I need to understand and therefore learn the Internals of a programming language (as in my case Python). As you might know, Python itself is written in C.

So my question is: How deep do have to dive into a programming language to be proficient or fluent in this language. I compare this question to “natural” languages. I don’t know every detail in grammar in my mother language but I am able to express myself with no problems in that language. This is when I say I am fluent in a language. Does that apply to programming languages too?

8

You don’t need to know anything about the internals of a programming language, in order to write programs in that language. However, the better you understand the language, the better your programs are going to be.

  1. Knowledge of data structures and algorithms will help you choose the data structures that are most appropriate for your particular task. Some languages possess these data structures internally.

  2. Understanding the “culture” of the language helps you write programs that follow “best practices,” making them easier to understand, more maintainable, and better performing.

  3. Writing a compiler for that language (or a compiler for another language in that language) can give you a deep understanding of the language, and improve your programs beyond being merely average.

  4. Being proficient in other languages (especially those of a different paradigm) makes you a better programmer in your primary language, because you can bring those skills and tools to bear in your primary language.

As a corollary, you don’t need to know anything about your computer to write programs on it. But knowing how your computer works makes you better at writing programs for it.

I don’t know every detail in grammar in my mother language but I am able to express myself with no problems in that language. This is when I say I am fluent in a language. Does that apply to programming languages too?

Simply put, yes. As long as you can express yourself (and understand others) well, then you are considered fluent in the language.

That said, simply being fluent isn’t enough for some jobs. Certain sorts of authors, jobs that require exemplary public speaking skills and some academics that focus on the language need to know it “better than fluent”. Likewise, some programmer specialties require knowledge of the language internals, but for most people knowing the programming language equivalent of how to ask for her number or order a cheeseburger is sufficient.

I’d define “proficient” with a language as:

  • Understand the majority of the syntax, and sufficient knowledge to research any new features you find in other people’s code.
  • Working knowledge of any standard libraries and/or frameworks, and the ability to find, read, and understand official documentation on anything new you need to use.
  • Understanding of and ability to use common idioms and naming conventions for the language.

Notice that how the language works is not on this list, but there is a great deal of “ability to learn”. Having at least a cursory understanding of the internals can be helpful, but is not necessary to be proficient. However, knowing enough about them that you will be able to understand any references in the documentation you’re reading is a very good idea.

For example: I know that both VB.NET and C# is compiled to .NET’s IL (Intermediate Language), which is then compiled for the target framework. I don’t know much about IL, but I know enough to recognize it when I see it, and understand in a general sense how it handles certain things. I consider myself proficient in C#, but not in VB.NET, even though the “internals” are the same, and my understanding of them is not deep.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật