The Library Phantasmagoria

Programming Language Proficiency

Added:
By Ariel

I'm a firm believer that being half-good at many things is generally better than being particularly good at one thing. It's one of the reasons why I've been trying to focus more on Japanese and drawing than on technical skills. I'd rather be a Rennissance man than a the best in a field.

But this approach does have diminishing returns. There's only so much time in a day, and there's a certain minimum level for every skill where it becomes useful and not just trivia. Programming languages are particularly noteworthy in this regard: - Your first programming language will take extra effort to get to a level where it's useful. Most of this time is spent on learning things like flow control, variables, OOP concepts, etc... but these concepts can then be applied to most languages. - Your second programming language onward will take even more effort because you need to learn the differences in syntax and reach a level where using that language is better using your first. - The exception is for specialized uses (JavaScript is required for browsers, PHP is generally required for web services). But Rust vs Python vs C vs Java is generally not as useful if you're looking to make something like a Discord bot.

For this reason, you'll generally want to stick to the languages you know because the extra time to learn a new one will probably outweigh the benefits you'll get from the new one. This is the core of the issue I've faced with learning new languages.

I learned Python in my first university programming class. Later ones had me learning Java and C. I've used C once since then: for massive number crunching that would have been even slower with Python. I haven't touched Java since my final project of comp sci II. Yet I've used Python a few times for personal use and quite often for work. I have no great reason to use anything else.

But I want to be able to use something faster. Specifically, I want to be able to use Rust for the safety and helpful compiler. This means that I'll need to put extra effort into potentially useless things for a while.

I'd love to be able to know more languages than just Python and Rust. JS, PHP, and Golang would be useful for my job. But I don't have any passion for those and it wouldn't be worth the time effort right now.