What programming language should I learn?

Associate
Joined
21 Jul 2018
Posts
5
Hello everyone,

This is my first post here and I'm seeking advice.

I'm planning to study some programming languages in order to be able to start a career in web and app development I was wondering though what programming languages should I concentrate on?

Thanks
 
As far as learning programming Python largely seems to be the choice at the moment - though you won't use that much in web development but any skills would be transferable to app and web stuff which are mostly based around languages with a lot of overlap with Python.
 
Out of interest, how will you be learning them? I started about a year and a half ago and am using Udemy. I've probably spent about £250-£350 on different courses and have learnt basics of several languages now. There are the subscription versions of sites, which now, looking back, I wonder if I should have just signed up on. Initially I thought I would only by 2 or 3 courses, but ended up with 20+. Just wondering which way you're planning to learn?

Do you have a specific project to work towards initially? An app, a website? I found that really helped me, having certain targets. I had an Android App I wanted to write, so I learnt some Java and then moved on to Android.

Then I wanted to make a specific website, so I moved on the HTML, CSS and PHP. Now I'm dabbling with Javascript and have just finished an SQL course as well as doing a Swift course to be able to make iOS apps.

A lot of things you learn are transferable between languages, you just need to get the right syntax.
 
As far as learning programming Python largely seems to be the choice at the moment - though you won't use that much in web development but any skills would be transferable to app and web stuff which are mostly based around languages with a lot of overlap with Python.

Depends on your definition of "web". I work as a python developer for the backend of a mobile app. We write programs to provide APIs that our app uses to do what it does. That's web development... Just not front-end web development.
 
Out of interest, how will you be learning them? I started about a year and a half ago and am using Udemy. I've probably spent about £250-£350 on different courses and have learnt basics of several languages now. There are the subscription versions of sites, which now, looking back, I wonder if I should have just signed up on. Initially I thought I would only by 2 or 3 courses, but ended up with 20+. Just wondering which way you're planning to learn?

Do you have a specific project to work towards initially? An app, a website? I found that really helped me, having certain targets. I had an Android App I wanted to write, so I learnt some Java and then moved on to Android.

Then I wanted to make a specific website, so I moved on the HTML, CSS and PHP. Now I'm dabbling with Javascript and have just finished an SQL course as well as doing a Swift course to be able to make iOS apps.

A lot of things you learn are transferable between languages, you just need to get the right syntax.


I'm planning to attend a coding school
 
For web development I would look at HTML, CSS, JavaScript and PHP.

MMTUTS has some great free tutorials on YouTube (I'd recommend you drop him a few £ on patreon if you find his courses useful).
 
For front end web- HTML, CSS, JS

For back end web- Python, Ruby or PHP
If it is enterprise back end then they might use Java or C# (ASP.NET)

For apps- Java or Kotlin for native Android apps, Swift for iPhone apps, possibly Dart for Flutter framework (cross-platform) and JS for React Native Framework (cross-platform)
 
As mentioned by others a large portion of knowledge transfers fairly easily between languages and platforms.

I would be tempted to steer you initially to a more disciplined and less single platform language, like Java. Learning the more RAD (Rapid Application Development) languages first, such as PHP, Python or even JS will teach you bad habits. Things you can get away with when a single person writes a 200 line script, but not things you can get away with when 25 people write a 2 million line of code application.

Java will guide you into learning about object orientation in a more true sense. While languages like Python are "object orientated" they are hybrids and support procedural/function orientated programming and do not provide the kind of discipline of Java.

.Net development is very bespoke to .Net. It has bespoke tools like Visual Studio and as it has many handy point and click coding facilities you spend less time writing code and more time poking a GUI to write code for you. Besides .Net dies away quickly when you try and move away from the Microsoft platform.

You can move from Java to almost any language and reapply the skills.

If you have more interest in lower levels and want to learn how computers actually work, in reference to how code executes and functions, then C would be a good start. A fun way to get into C these days is with an Arduino starter kit.
 
As recommended by the other users already;
For web development - JavaScript.
A vast majority of popular client-side rendering frameworks for web applications such as React and Angular are JavaScript (or TypeScript) based.
JavaScript is also very popular as a full stack language which means that you're able to use JavaScript throughout every aspect of a web application, from the front end (client facing 'stuff'), to the back end (server 'stuff') and everything in between.
A popular 'stack' (and one you are likely to come across in your research, I'm sure) is the MEAN stack - which stands for MongoDB (database program, where all of your persistent data will be stored), Express - a web application framework that allows you to create web applications and APIs (to simply put it), Angular - a front end web application framework (allows you to 'make' web applications) and Node.js - which is the thing that 'runs' all of the JavaScript code. The A in MEAN can be replaced with a number of other popular JavaScript libraries/ frameworks that allow you to make user interfaces (customer facing web applications) such as React, Vue.js or Pug - which are all JavaScript based.

The latest Stack Overflow developer survey also showed that JavaScript was the most popular programming language amongst all of their user base (including industry professionals). https://insights.stackoverflow.com/survey/2018/#technology

One thing you have to remember with front-end web application development is that everything has to eventually boil down into HTML and CSS for the browser to show you the results. I would recommend starting from the bottom, learning what HTML, CSS and JavaScript is and how it all works together to form a functioning website and build up your knowledge from there. It helps to know the basics before moving on to the more advanced topics and best practices.

As for mobile applications:
Depends what platform you wish to develop for. The two most popular mobile operating systems, Android and iOS, use Java and Swift/ Objective-C respectively.
Although it is entirely possible to create 'cross-platform' applications using JavaScript with technologies such as React-Native and Ionic. This essentially means that you can create your mobile application using web technologies such as HTML, CSS and JavaScript and then 'convert them' into their native counterparts (build them as 'native' Java or Swift applications) for you to install and on your devices.

Not saying that JavaScript is a well suited, efficient, all round best language for everything (because it isn't) but it's one that you can easily pick up and learn. I also think that grasping the concept of Object Oriented programming (as mentioned by another reply) could be made a little easier with JavaScript.

I also agree with the rest of the replies here. It doesn't particularly matter which language you learn because regardless of the language, the skills gained can most certainly be transferred/ applied across them all.
 
Last edited:
I hate Javascript with a passion. It's just such a bad language. But it's popularity in browsers makes it essential for client side web apps.

It's got nothing to do with Java. It's based on Closure. So while it hides in a Java or C like syntax it's a recursive language where everything is a function that takes a function as an argument and returns a function that takes a function, which is a bit of a mind F.

Also it's barely object orientated and rarely used that way. It's more "structs" with recursive functions.

So while it's a good tool to put in your toolkit, it would not make a good language to learn the basics of modern programming with. It is also incredible loose on discipline, promotes bad habits and is never really the same on any two browsers, without frameworks doing all the browser compatibility stuff at the low level it's next to useless.
 
Python is a great language. You can use it for mobile development as well as backend server programming for websites. It is incredibly easy to learn and almost reads like written English.

Although my first programming language was C which I'm glad I learnt as it gave me knowledge of essential programming concepts such as memory management and pointers.
 
Back
Top Bottom