Is learning a new programming language difficult?

Watch this thread
Reinard.C
Badges: 3
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#1
Report Thread starter 2 years ago
#1
Say your an expert at one programming language, would it be hard learn a new one? I hear that it's more on understanding a "accent/dialect" rather than learning something completely new
0
reply
stoyfan
Badges: 20
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#2
Report 2 years ago
#2
(Original post by Reinard.C)
Say your an expert at one programming language, would it be hard learn a new one? I hear that it's more on understanding a "accent/dialect" rather than learning something completely new
If you learn the basics of programming well and you know how to use the paradigms that are used in the 'new programming language', then it isn't hard at all.
0
reply
HoldThisL
Badges: 21
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#3
Report 2 years ago
#3
bit more than a dialect but for a language in the same 'sphere' as another it's very easy. for example, two website development languages would be similar

however, for two separate languages, you'll find there are structural differences which cannot be assimilated so easily even if the langauge can. for example, the website developer has to deal with a variety of security-based issues like database vulnerability but not with issues like memory allocation whereas the low-level language developer does have to deal with memory allocation but probably not so much with santising inputs
0
reply
winterscoming
Badges: 19
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#4
Report 2 years ago
#4
(Original post by Reinard.C)
Say your an expert at one programming language, would it be hard learn a new one? I hear that it's more on understanding a "accent/dialect" rather than learning something completely new
That depends a great deal on which programming languages you're comparing and what you're using them for. The core skill of computational thinking doesn't change at all -- this is undoubtedly the hardest part of learning to program that people struggle most with (i.e. learning to "think like a programmer") -- you only learn that skill once; it's universal because it's about learning to think algorithmically and learning to solve problems in ways that a computer can understand, so it transcends all programming languages.

But learning a new programming language can still be a lengthy process because you're (usually) learning a lot more than just its syntax and structure. With that said, some can be very similar. Although it gets progressively easier each time. Your 2nd language might still feel tough. but your 10th language will feel fairly natural and intuitive.

E.g. switching between VB.NET and C# is extremely easy and painless because those are basically alternative syntax exactly for the same language and there's nothing to un-learn or re-learn except for syntax. Also switching between C# and Java is generally OK because the syntax is mostly the same, although the runtime, tools and libaries work differently. However, jumping from a language like 'C' up to Java can feel more challenging because there's an enormous "gulf" between them, but still definitely easier than learning Computational Thinking from scratch.

Every programming language has its own idioms, patterns, good/bad practices and habits. Programmers often think in terms of the patterns and capabilities that they're most-familiar with from their 'main' language; but if you attempt to apply those same thought processes to another language you may end up building ugly, hacky solutions which go against the grain and spirit of the language you're working with. A 'good habit' in one language may be a 'bad habit' in another, and it takes time to be able to adapt to understand the techniques and styles that work for a particular language.

There are other issues too - for example, different IDEs will work in different ways, and the availability of tools to be able to automate certain things can make your life much easier or harder as a programmer. The same is true for libraries and frameworks; Every tool you pick up will also have its own rules and capabilities, but those won't necessarily translate across to the equivalent tool in another language either. For example, if you know how to build a web app using ASP.NET in C# then attempt to build the same web app using Flask in Python, you'll find tonnes of differences and that the overall patterns and design you used for one language/framework would need a re-think with the other.

Lastly, there are different paradigms. For example, switching from a plain procedural language like 'C' up to a high-level "multi-paradigm" language like Java or C# is going to be a giant leap because those high level languages use paradigms which would be totally new/unfamiliar to someone who has only ever used procedural programming. Different parts of Java are built around alot of different paradigms including "Object orientation", 'Event driven' programming, functional programming, 'Generic' programming, 'Aspect-oriented' programming... So by learning a high-level language like that you also end up being exposed to all those paradigms (ways of thinking), which may or may not exist in other languages.

Overall it's not so hard per-se because someone who has already figured out the core programming skills will eventually 'get it', but it is certainly time-consuming and takes a lot of persistence to get it right. Sometimes it can feel like un-learing things that you had assumed to be always true in another language. Or it can feel like the habits you were taught as "good" only apply to one language and you need figure out how to be more adaptable and accept different ways of thinking. Someone who is an expert in one programming language may still need 6 months working full-time in a new language and its tools, libaries, frameworks, and general ecosystem in order to be fully productive in that other language. That's pretty normal though just because of the sheer massive volume of new stuff to (re)-learn.
Last edited by winterscoming; 2 years ago
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

Were exams easier or harder than you expected?

Easier (21)
26.92%
As I expected (24)
30.77%
Harder (29)
37.18%
Something else (tell us in the thread) (4)
5.13%

Watched Threads

View All