If You Know a Code Language Are You Bilingual
How to Become Fluent in Multiple Programming Languages
Unique tips to aid yous become multi-programming-linguistic communication-lingual.
Learning a new programming language is much like learning to speak a new tongue.
However, as I'm sure many of my bilingual and polyglot friends would agree, it tin can sometimes go confusing to switch between two or more languages.
For example, my native language is English language, but I was enrolled in French Immersion in school. While this certainly paid off and made me perfectly fluent in both languages, it did have some unintended consequences when I was working in English language. For the longest time, I would add together E's onto many words or I would place the dollar sign at the stop of a set of numbers (32$ instead of $32), both things that are requirements of the French language, simply don't be in the English language language. With time and practice, these mix-ups somewhen went away and I'1000 now able to switch between the two languages seamlessly (more or less).
I've noticed this happening again for me, although this time, I'g trying to transition from the structured globe of C# and Java to Python. While I was in higher, all of my courses revolved effectually strict programming languages such as C#. Now, I'm trying to brand a transition to data scientific discipline, and I'one thousand currently in the process of learning Python. For someone who likes things very organized, Python is a nightmare language. For me, there is a severe lack of semi-colons, curly braces, and typed variables. It's as if I'm learning a new language (Python), that is completely different from my native language (C#).
Learning like programming languages (such as C#, Java, and JavaScript) is alike to learning similar natural languages. For instance, by knowing French, it would be piece of cake for me to pick upward similar languages such as Italian, Portuguese, and Castilian. However, learning a programming language (Python) that is semantically different from ones I already know, is like to how my French groundwork wouldn't be much help when learning Icelandic or Mandarin.
However, as I've discovered in the by, learning a new programming linguistic communication is the same as learning a new natural language. Furthermore, becoming fluent in multiple programming languages involves some of the aforementioned fundamentals and tips I used when becoming fluent in multiple natural languages.
Learn the statically-typed and syntactically-specific languages first.
Nearly every article titled "Which Programming Language Should I Learn Starting time?" suggests that Python is the perfect first linguistic communication for someone to learn. While I hold that Python is a practiced first language due to its simple syntax and flexibility, I believe that several programming fundamentals won't be learned that volition exist necessary afterward on.
Therefore, I would offering some counter-intuitive advice: learn the statically-typed and syntactically-specific languages first.
Instead of learning the language that will hold your hand and will offer you a comfortable path to wade into the world of programming, learn the linguistic communication that will yell at you lot if y'all forget a semi-colon or volition reject to work because your data types are wrong.
Statically-typed languages.
Statically-typed languages (such as C# and Java) require a data blazon to be assigned to their variables. Data types include strings, integers, and Booleans, to name a few. Variables are jump to the information types they are assigned when they are initialized and can't be changed, otherwise, errors will exist thrown in the code before they run.
Dynamically-typed languages on the other hand (such as Python) don't require information types to exist assigned at the initialization of the variable. The variable type will be checked to see if the types are correct at runtime (after the program has been compiled and run).
By learning how to work with statically-typed variables, yous get a foundational understanding of data types that you can build upon in the future. For instance, JavaScript is a happy little programming language that has no bug calculation together integers and strings. Notwithstanding, not beingness aware of datatypes tin can cause problems afterward when bugs arise. Past being strict with your learning and gaining a firm understanding of data types, you tin can salve yourself a lot of headaches further on down the route when learning a dynamically-typed language with variables that can change datatypes on the fly. Additionally, learning a statically-typed language first will add together a layer to your coding process logic.
Syntactically-specific languages.
When learning a new natural language, you offset learn your alphabet, and then you go on to learning the words, the sentence structure, the punctuation, and the grammar of that language.
Learning a programming language is similar, in that each language has a specific syntax you must utilize for the code to piece of work. In other words, each programming language has a mode in which information technology likes its sentences to be structured and its paragraphs to be formed.
Some languages, (such as Java and C#) are very specific near their syntax and will refuse to work if you forget a single semi-colon (semi-colons are oft put at the finish of a line of code, similar to how a catamenia is placed at the end of a judgement to signify its terminate). Other languages, such every bit Python, take relatively no syntax structure that must exist followed. For case, Python has relatively no semi-colons, and very few curly braces to organize its code compared to C#.
Learning a syntactically-specific programming language showtime will requite you lot a firm understanding of the proper structure you need to follow when writing code. By becoming aware of the proper indentation structure, the necessity to finish your line of code with a semi-colon, and the requirement for your functions to be written within the confines of curly braces, yous will be able to write lawmaking that is easily-understandable, more organized, and easier to maintain and debug. Furthermore, this volition assistance give you a template with which to write your code when you begin venturing into new languages that aren't as strict with syntax.
In essence, learn the discipline now, and reap the rewards later.
Become fluent in your first language.
Information technology would exist rather difficult to alive a life speaking a little of each language spoken effectually the world instead of speaking one language very well, wouldn't it? Furthermore, if you only empathise a piffling of each language, and so you wouldn't be of much use to anyone, would you? Because y'all would neither accept a very large vocabulary nor a very stiff understanding of whatsoever specific linguistic communication, you wouldn't even be able to type something into Google Translate to attempt to communicate with someone from half-fashion effectually the world. The likelihood is that both of yous would end upwards very confused!
In my stance, the same applies to programming languages. Instead of trying to learn several different languages without understanding any of them to a competent level, become fluent in your first linguistic communication, or your language of choice.
I'm not suggesting that you need to be 100% fluent in a programming linguistic communication before picking up some other one. Nonetheless, you should take a firm agreement of programming concepts in a single language before attempting to learn a new 1.
Why? Well, when you learn the fundamentals of code in one language, yous can assume that the fundamentals will exist roughly the same in a dissimilar language. For instance, if/else statements carry out the same office in every single programming language you come across, but the simply deviation is in the syntax you use to communicate them. For instance, an if/else statement in C# requires the statements to be organized using curly braces, whereas an if/else statement in Python has no curly braces and instead separates each statement using a single colon and code indentation. Fundamentally though, the statement works the aforementioned style in both languages.
It'due south like how y'all learn to say "Hullo" and "Farewell" in your native language. Once yous understand what those words hateful and how to use them, y'all can learn how to say "Hullo" and "Goodbye" in a multitude of different languages. The words will hateful the same thing in a unlike linguistic communication, the only departure is that you lot write them using a different syntax and use them post-obit unlike conventions.
Past understanding whether your starting time programming language prefers a single class or multiple classes, if it has specific variable naming conventions, or if it requires an object-oriented structure, you lot'll become more fluent in your showtime linguistic communication and the subsequent languages as y'all progress. One time you become fluent in ane linguistic communication, you lot'll exist able to option upwardly on the nuances of other languages quicker as y'all become more aware of the differences between programming languages.
Don't code with an accent.
When speaking a natural language, you lot tin empathize someone if they are speaking with an accent. For case, I was understood past people whose native language is French, even though I spoke French with an accent. Because I was using the French conventions, they understood what I was trying to get across fifty-fifty if I used a round-about sentence structure or mispronounced a word.
To go fluent in a new programming language, you can't code with it as if information technology was a language you already know. If you do, the likelihood is that the language won't necessarily empathize what you're asking it to exercise, or it will do what y'all're asking in a very inefficient mode.
I fell into this trap during my college capstone project when we were using Athwart for the frontend of the arrangement. I understood JavaScript well at the fourth dimension and knowing that Athwart is like to JavaScript, I tried to code in Angular using like conventions that I would employ in JavaScript. Unfortunately for me, trying to code with an emphasis didn't yield expert code, and it likely stemmed from not understanding Athwart's conventions. My code was all in Angular, but information technology was speaking with a heavy JavaScript accent.
In other words, don't repeat my mistake — utilize the new language in the mode it was intended and don't code with an emphasis.
Past immersing yourself in the new linguistic communication and forcing yourself to understand all of its unique conventions, you learn how to code with the linguistic communication in the way it was intended without using it as a language you already know. This will allow yous to become fully fluent in multiple languages, without speaking them all with a thick emphasis.
For example, if English is your native linguistic communication, but you decide to quickly learn five other new languages, you're likely to stop up speaking Russian, Italian, Swahili, Yiddish, and Arabic, all with a thick English language emphasis and using English conventions. If you had instead chosen to learn the conventions of the Russian language, native Russian speakers would understand you. The same goes for the other languages. If you were trying to speak Swahili using the typical English sentence construction, you would likely not be understood past someone from Kenya.
Take the fourth dimension to read the documentation provided past a programming language, and get a feeling for the specific conventions of that linguistic communication. Not only will this brand yous more than fluent in the language, but it will also brand you more valuable when working on squad projects with others who empathise the linguistic communication and await you to exist able to follow their conventions.
Yous may have to force yourself initially to code without an accent, but the difficult piece of work will pay off when yous tin can fluidly switch from language to language with few hiccups.
Last thoughts.
This commodity outlines some of the more unique ideas for becoming multi-programming-language-lingual that I take come up across in my time of condign a programming linguistic communication polyglot. These tips all helped me tremendously, but it wouldn't be a fully useful article if I didn't mention some of the more conventional tips that are out there:
- Become fully immersed in the language by reading the language documentation, reading source code, replicating code examples using your ain "words" in the new language, write yourself a cheat sheet for the new linguistic communication, etc.
- Follow along with coding tutorials in the new language using a variety of sources such equally Youtube, Medium, and StackOverflow. You need to be willing to get your hands dirty when learning a new programming linguistic communication. In other words, active learning will be your friend hither.
- Copy projects you lot've already completed (even the unproblematic ones) with the new language y'all're learning and try to use the new language to the best of its abilities.
- Enter into hackathons, Kaggle competitions, and coding challenges that require you to utilise your new language.
- Work with someone who knows the language well. I ever learned a lot from pair programming with individuals who were well-versed in the language I was trying to acquire. Getting to hear their thought procedure while they were writing a specific slice of lawmaking gave a lot of insight into how the language works and why they were coding the solution in a specific way.
The best advice I tin give is to be persistent. Learning a new linguistic communication is tough, and programming languages are no exception. Don't discard the language if it takes a little effort to acquire. Luckily, multiple resources around the cyberspace can assist brand the learning process easier and more than intuitive.
Most of all, don't forget to apply the advice and tools bachelor to you when learning a new linguistic communication. Not only will y'all come out agreement the linguistic communication better, but you will as well get a improve developer or data science in the long run.
Source: https://towardsdatascience.com/how-to-become-fluent-in-multiple-programming-languages-9f473c146b90
Post a Comment for "If You Know a Code Language Are You Bilingual"