For all beginners, this choice always becomes a headache. There are so many technologies and languages that even experienced IT gurus get lost in this diversity. However, do not be afraid. From my own experience, I will tell you where to start.
Every language and technology exist for certain tasks and purposes. For example, some languages are only for website development, others are for Windows development only, and some may combine both. There are separate languages for programming on Android and iOS.
From experience, our experts can say that many of these languages are very similar, and the difference is in their capabilities. Therefore, first, choose a not very complex language that will meet your goals. Consider which languages are right for you.
The direction of development of sites and various services is rapidly gaining momentum, becoming increasingly popular, and this is its advantage. To implement all your ideas, you will need to learn the basics: HTML markup language and cascading CSS style sheets. If you want your site to correspond to modern realities and have more than one page, you will need a language such as PHP.
Yes, this is not the easiest area. However, the main thing is to master HTML and CSS, and the rest is studied within the course of PHP. There are many nuances, but they are all addressed in the learning process. So do not panic and go to your goal.
It is said that the development of “regular” programs for Windows is declining. However, computers have more features than Android or iOS. So, if you have an idea for a serious PC program, you will need the right tools. Several languages are suitable for this task. The most popular of them are C #, C ++ and Java.
C # is best for learning from scratch. In my opinion, this language combines the best aspects of C ++ and Java. For beginners, the most important thing is to learn to think like programmers and understand the basic principles of development. For someone who has not previously programmed, C ++ and Java will be difficult, it may be difficult to understand certain aspects on their own. Of course, simplifications of traditional design principles do the same Java honour and give some advantage. But a beginner should first master the established principles and tools before beginning experiments with languages.
Also worth mentioning is Python: it’s a pretty good and understandable language. It is somewhat similar to Java, but its tasks are slightly different. It is commonly used in machine learning and data analysis. If you are interested in one of these areas, then try this language.
Development for Android and iOS has a clear division. There are two main languages for iOS: Objective-C and Swift. The first has its roots in the distant 90s and is quite difficult to learn from scratch. The second one came out recently and is simpler, so start with it if you want to write apps for iOS. However, it will be even better to study Objective-C after that, because it is still considered the standard on this platform.
As for Android, it is a bit easier, because of the standard in Java. However, C # has also recently developed the ability to develop for Android with Xamarin’s toolkit, and it offers many benefits. First, you only need to know one language, regardless of the platform for which you want to write the program. Secondly, if you need to transfer your application to Android, you do not have to write it again in another language. This saves a huge amount of time and effort.
We wanna give you one interesting example. In the beginning, when you are learning to walk, you need to learn to walk, at any speed and in any direction, you will choose the direction later. The same goes for learning to swim, ride a bike, and drive a car. First, you learn how to run properly, train and then run a marathon. The list of these analogies is endless. First, you master the instrument and develop skills in yourself, then you choose the direction of movement and areas of development that are interesting to you within the framework of the skill. It’s the same with programming.