@everyone “Which programming language should I learn first?”
Rich Winnie
Principal Content Publishing Manager @ Microsoft Learn | Instructor, Author
@everyone is an ongoing question and answer series of questions I get from people in the world of technology. For other series from LinkedIn Lynda.com authors, search for the hashtag #FromTheInbox
To ask Doug a question, send a message on his Facebook Page, or on Twitter.
Q: Which language should I learn first?
A: It all depends on what you want to do, and where you are starting from
This is a common question I hear, but there unfortunately isn’t a clear cut answer. The truth is, a lot of this depends on what you already know and are familiar with, and, where you want to go with coding and programming throughout your career.
This is also a common question that can get a lot of different answers, and everyone in the programming world seems to have different recommendations and can get very passionate about what they feel is right or wrong. I’m not going to steer you away from anything, but I’m sure that my suggestions here might be different than others, but it is something to help you start the decision-making process.
There are three factors that I would consider as you start to decide what language to embark on learning.
What do you want to do?
There are different languages that go with various types of projects you want to do. For instance, if you are interested in making websites, you will probably need to learn the basic three languages of HTML, CSS and JavaScript, and then look into something like PHP to help teach you how to make websites that are driven by data.
If you want to make more application-like websites, you will need to look towards a web app languages like Ruby on Rails or node.js (which is JavaScript).
For mobile applications, the languages you chose will be based on the platform. For iOS it will be Swift, for Android it will be Java, for Windows it will be C# (for the most part). There are other platforms like Xamarin that target all three of these platforms, and that uses C#.
If you want to make games, Unity is a great choice to get started, and most projects use C# as the programming language for that.
What do you do today?
Often when you are learning something new, you want to connect it to something that you do today. Learning to program can be the exact same thing.
For instance, if you regularly are using Excel at work or for other activities, you might want to look into learning VBA, or Visual Basic, to help extend what you can do with Excel, and lead to other languages that work with data like R and Python.
If you are already working as a 3D artist, you can extend many 3D applications with languages such as Python, and automate and create extensions for applications to improve your workflow, or even package and sell to others.
You can also look at skills you have today and find ways to transfer them to other media. For instance, if you work in graphic design, you may be interested in moving into web design or user experience (UX) design. A lot of projects in that space will be around web or mobile applications, and having some programming experience with those areas can make it easier for you to work and collaborate with developers on your team.
What do you have available to learn with?
There is finally the limitation of what you have available to learn with. To program for iOS, you need to have a Mac and an iPad, iPhone or iPod touch. For Android, you should have an Android device, and for Windows, you will need a PC. While there are workarounds with some of these (like using virtual machines), generally you are best off using the standard hardware.
Also, if you are learning on a relatively old machine, you may find that compiling code may take a long time on your computer. I have a MacBook Air that can work for some iOS projects, but it is starting to show its age, and if I get into anything too complicated, I find I am waiting too much and get frustrated. If you have an older machine, working with browser-based languages may be best, but your mileage will vary. If you are interested in learning 3D game development, a machine without a good graphics card can also slow you down quite a bit, so in that case, you might want to stick to 2D games at first.
You also need to consider the “admittance” price. Most of the platforms have some sort of developer program you need to pay for to submit apps to the store. For example, you need to be part of the Apple Developer Program to submit iOS apps. Windows and Android have similar programs as well. While the tools you need learn to build apps are free, to go much further with them, you will need to pay either a developer license, or enroll in a developer program.
Wrap Up
So, like I said at the beginning. There is no simple answer to the question. But hopefully, this can give you some good questions to consider as you start out. I would emphasize one thing though—if you are going to learn a programming language, look at learning general foundations of programming before you start learning a specific language. This will teach you more about how programming languages, software and hardware work together to create apps and products. This information is universal, regardless of the language you ultimately choose, and it will make you a more well-rounded and overall better contributor to a technology team.
Good luck!
Head of Digital Marketing | Lead Generation | Google Ads | SEO | Social Media Marketing | Email Marketing
7 年Nice and informative article. I agree with the point you say. I suggest to take a look at this website https://www.egrovesys.com/python-development-services/
Real CTOs Disrupt | Complexity Science |
8 年This is similar to asking, "which should I learn first: French, Latin or Mandarin?"
Very well written article, and also nice. I do agree with the author. It's very important to define the scope of the project, and from this starting point, develop the skills you need to have in order to create something you wish. The right tool for the right job I would say.
Business Intelligence Manager at Optasia
8 年For me C is the best choice!If you manage to learn C,it will be very easy for you to understand other languages!!