which language is highly sought

salik89

Junior Member
Joined
Nov 18, 2014
Messages
79
Reaction score
0
Hi all, I apologized in advance if my topic is posted in the wrong place.

Was wondering if anyone could give me any insights of what/which programming languages are highly sought nowadays for work and in what sort of industry?
Additionally, is there any growth for programmers in Singapore?
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
Hi all, I apologized in advance if my topic is posted in the wrong place.

Was wondering if anyone could give me any insights of what/which programming languages are highly sought nowadays for work and in what sort of industry?
Additionally, is there any growth for programmers in Singapore?

My very first advice to your first question is DO NOT CHASE AFTER THE WIND. Your question has the tendency for chasing after the ghost.

Now if you just want the answer as a reference of the global trend, you can refer to http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.

However as a decade old developer working in the local enterprise stream, my take is the following not sorted since I have no empirical results to support this claim. So you take it with a pinch of salt.

Java, C#(.NET), Ruby, Python, Javascript

The above few programming languages would likely to get you entrenched for years in the enterprise software houses and projects.

Outside the list above, some emerging ones are Clojure, Scala, Groovy, Golang, Coffeescript, Typescript which you can take closer looks.

For your 2nd question, yes there will certainly be growth for developers in Singapore regardless of local or foreign talents. My observation is, there is really a lack of really good software developers. When I say really good software developers, I am referring to a versatile mature full stack developer whom embraces the frontier technological knowledge into web, network, storage, infrastructure, mobile, IoT, databases, distributed, architecting etc.

You will find lesser developers which are heavily desk bounded types which may be just good enough to code, but not versatile outside of understanding one or 2 programming languages + some knowledge in web technologies but mostly surface knowledge. Having myself has been a long time software developer, I don't see many of which I can truly admire for their skill sets. Good enough yes, really fantastically good that I can regard as someone I will look upon in awe, nope. Hence I say there are a lot of rooms for someone whom is passion about technology and willing to an good lots of efforts for it.

Programmers are working in a creative environment and they are creators. Hence innovation and creativeness is the essence of how we should survive in the industry. If you just need a job, then I'm afraid you will burn out very fast in this industry. If you are in for challenges, there are plentiful waiting for you daily. If you are good, you will love to confront challenges, not avoid it.
 
Last edited:

tuxguy

Arch-Supremacy Member
Joined
Apr 1, 2011
Messages
12,820
Reaction score
4,941
which-programming-language-should-i-learn-first-infographic.png
 
Last edited:

Daimon

Banned
Joined
Oct 26, 2011
Messages
10,301
Reaction score
0
Did David receive First class honors in CS?

My very first advice to your first question is DO NOT CHASE AFTER THE WIND. Your question has the tendency for chasing after the ghost.

Now if you just want the answer as a reference of the global trend, you can refer to http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.

However as a decade old developer working in the local enterprise stream, my take is the following not sorted since I have no empirical results to support this claim. So you take it with a pinch of salt.

Java, C#(.NET), Ruby, Python, Javascript

The above few programming languages would likely to get you entrenched for years in the enterprise software houses and projects.

Outside the list above, some emerging ones are Clojure, Scala, Groovy, Golang, Coffeescript, Typescript which you can take closer looks.

For your 2nd question, yes there will certainly be growth for developers in Singapore regardless of local or foreign talents. My observation is, there is really a lack of really good software developers. When I say really good software developers, I am referring to a versatile mature full stack developer whom embraces the frontier technological knowledge into web, network, storage, infrastructure, mobile, IoT, databases, distributed, architecting etc.

You will find lesser developers which are heavily desk bounded types which may be just good enough to code, but not versatile outside of understanding one or 2 programming languages + some knowledge in web technologies but mostly surface knowledge. Having myself has been a long time software developer, I don't see many of which I can truly admire for their skill sets. Good enough yes, really fantastically good that I can regard as someone I will look upon in awe, nope. Hence I say there are a lot of rooms for someone whom is passion about technology and willing to an good lots of efforts for it.

Programmers are working in a creative environment and they are creators. Hence innovation and creativeness is the essence of how we should survive in the industry. If you just need a job, then I'm afraid you will burn out very fast in this industry. If you are in for challenges, there are plentiful waiting for you daily. If you are good, you will love to confront challenges, not avoid it.
 

peterchan75

Supremacy Member
Joined
Apr 26, 2003
Messages
6,469
Reaction score
447
@davidktw,
No VBA, C++, perl or php ? :(
Granted that Cobol, pascal and fortran are dead.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
@davidktw,
No VBA, C++, perl or php ? :(
Granted that Cobol, pascal and fortran are dead.

My coverage of programming languages mentioned in my earlier post is not in anyway complete.

Why regards to the programming languages you have mentioned above

VBA - Nope this is very much entrenched into Microsoft and mostly at Microsoft Productivity Office Suite and Windows Applications. I'm not in the Microsoft software development world, but I do sense the new generation are moving away from it.

C++ - Still very much a low level programming language given these days the number of safer and more featured programming languages around. I'm afraid the software development world have lesser of these experienced developers and with the vast coverage a software developer need to cover nowadays C++ will be too hard a language to start with. But I will definitely encourage anyone to try it out and get a feel of it. It is a powerful language, just way too error prone for inexperience developers

Perl - My all-time favourite programming language for being a very expressive language with fantastic regex, but unfortunately it has just the same amount of quirkiness in it that will take developers a while to get use to. There is no trend meanwhile to expand on Perl meanwhile, but definitely I will recommend any software developers whom want to be a full stack one to learn it.

PHP - It's definitely widespread in the industry, but unfortunately it has too much stigma around it and the enterprise world is not embracing it. Nonetheless having there are a lot of PHP developers, startups can consider it.
 

Daimon

Banned
Joined
Oct 26, 2011
Messages
10,301
Reaction score
0
I think not many people know how to create powerful queries with SQL. Their knowledge is limited to simple query.
 

peterchan75

Supremacy Member
Joined
Apr 26, 2003
Messages
6,469
Reaction score
447
@davidktw,
Salute!:)

For spreadsheet users, VBA is godsend. :s8:

BUT what's the use of all these niceties without have ability to store and retrieve data. MySQL, postgre or other relational database integration is worth taking a look. :D
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
I think not many people know how to create powerful queries with SQL. Their knowledge is limited to simple query.

True, because of these few reasons
1) some developers believe not to empower too much to databases so that there system is DB agnostic, which I believe make sense for products but not for project since products are often write once and deploy multiple times, but projects normally had no such luxury.
2) nowadays developers are spoilt with ORM which tends to create a DB layer which has more or less common denominator across all DB hence developers at most are savvy about this layer instead of power of SQL and each DB own DDL and SQL dialect

It ends up there are just a lot of CRUD database access and unless the tasks include reporting or data warehousing, most of these complexities are shifted into the app layer.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
How come? I think you are quite intelligent.

IQ does not necessarily have a correlation with your academic achievement. Besides l have taken some hardcore modules during my uni days and score moderately for them having I wanted to try out what those modules offers and knowledge.

I don't believe in scoring well in university for a certificate. I believe in the knowledge that make my money spent worthwhile
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
For spreadsheet users, VBA is godsend. :s8:

BUT what's the use of all these niceties without have ability to store and retrieve data. MySQL, postgre or other relational database integration is worth taking a look. :D

Definitely. RDBMS is just one of the databases available and one of the oldest. There are column based database, object oriented database, document based database, graph database and probably even more.

Just RDBMS alone, there are a lot of advance topics ranging from how to design data structures, how to store data like should it be a tree-like/hierarchical structure within the tables, dynamic creation of tables and pointing from one into another, usage of session tables, stored procedures, performance tuning on queries such as the basic of using EXPLAIN plan execution, which type of tables, transactional or not, how to create indices and the caveats and composite indices etc. Remote tables, tables unions etc...

Gosh I'm just scratching the surface of RDBMS alone with all the topics above, and these are critical to good software development. Not to mention how to create availability and redundancies and load balancing or repetition etc.

Beyond just databases, we still need to look into how to perform caching of database entries and how to work with unison of the application and web tier to create easy invalidation of cache which can result in offloading from the database

A good software developer should not be biased against technologies and ought to understand as much technologies as possible and then make good assessments across all the options available to him/her.

When designing solutions (Take note I say solutions, not application. Solution is beyond just application, it is like the word implies a problem solving mechanism for the end-user), we need to let loose our imagination and integrate as much as possible and reuse often. We can't just always create things from scratch, it will not fit into the current fast pace industry, we need to embrace and improvised new techniques along the way.
 

Azzizz81

Suspended
Joined
May 4, 2001
Messages
49,430
Reaction score
2,303
Hi all, I apologized in advance if my topic is posted in the wrong place.

Was wondering if anyone could give me any insights of what/which programming languages are highly sought nowadays for work and in what sort of industry?
Additionally, is there any growth for programmers in Singapore?

Knowing some programming languages is a basic requirement for a programmer and will not make you "highly sought" after. Different industries/domains/companies/projects will have different requirements, I suggest you go to some job portals and do some research there.
 

natnai

Supremacy Member
Joined
Nov 6, 2007
Messages
8,020
Reaction score
1
1. Java
2. Java
3. Java
4. Java
5. Java

I think David is right about not chasing the wind. Makes no sense. Get a few under your belt and pick one you really like. PHP is good for quick and dirty, but feels like a half-baked Java without generics and safe typing. The API is also like a big huge mess. At least it now has namespaces, which makes things easier. Ruby is a pretty good all-round but not compiled language and also doesn't give you type safety like Java. I feel Ruby and Python are pretty similar and you can do similar things with both. I don't have much experience with Ruby but I've done some minor stuff with Python (mostly financial data crunching for my own purposes).

Javascript is good in some situations but David will tell you all about how hard it is to find proper JS developers who have a grip on the weird scope/inheritance model/this binding in enterprise JS development. Tooling in JS is also pretty abysmal compared to Ant/Gradle. Frameworks are very roll your own in the backend. NPM is huge but there are a lot of crappy modules that just aren't well-written. Personally I like JS a lot, but the probably has to do with my general discomfort with verbosity, something you'll see a lot of in Java as you probably know anyway. Java gives you loads of nice tools, enforces some OOP principles out of the box, but JS gives you freedom to do things in basically whatever way you see fit.

I myself have picked up Java quite seriously in the last couple of months, and I like how it is so robust and mature. That being said it's pretty verbose. If you really need static typing you can just use a meta-programming language like TypeScript that transpiles to vanilla JS, if a fast development cycle is important to you. And by fast I mean DevOps 2/3/4 deployments to production per day fast. I still think it's important to know a very robust language like Java though, since JS just lacks quite a lot of features you might need in certain projects, especially mission-critical ones where type safety and minimisation of runtime bugs is important. That's why so many enterprise projects run on Java. Before I took Java seriously I never quite saw the usefulness of a compiler, but seriously, sometimes it just saves you so much pain. Also stack traces in JS are quite crappy, although there are hacks now to give you a good long stack trace so you can find bottlenecks and problems.

So after WOT, I would say if you want to pick some:

a) PHP is probably not a good choice, but some basics will probably do you good.

b) Pick one between Python/Ruby and become fairly good at it. They're both decent at bridging the OO/FP paradigms. Python has nice map/reduce/filter/recursion stuff built in. So does Ruby.

c) Java is literally unavoidable. Even if you don't want to take it too seriously you should at least get to grips with basic things in Java, like its type system (boxed/unboxed), generics (erasure/reflection/co and invariant collections etc.) and threading. Especially threading since that's how async is generally done in Java.

d) Javascript is ubiquitous in web-based development now. Many big companies have shifted big parts of their codebases to large scale JS. PayPal and Uber come to mind. Netflix too. There are more that have shifted off from Java to JS because of fast development cycle + easy async + manpower requirements (according to reports) go down if you have a full JS stack from end to end.

So learn Python/Ruby, Java, and Javascript. It's not difficult to learn just these three. They're all nice languages and maybe with the exception of Java, pretty easy to pick up.
 

natnai

Supremacy Member
Joined
Nov 6, 2007
Messages
8,020
Reaction score
1
True, because of these few reasons
1) some developers believe not to empower too much to databases so that there system is DB agnostic, which I believe make sense for products but not for project since products are often write once and deploy multiple times, but projects normally had no such luxury.
2) nowadays developers are spoilt with ORM which tends to create a DB layer which has more or less common denominator across all DB hence developers at most are savvy about this layer instead of power of SQL and each DB own DDL and SQL dialect

It ends up there are just a lot of CRUD database access and unless the tasks include reporting or data warehousing, most of these complexities are shifted into the app layer.

I think ORMs are the culprit. Frankly I am completely crap at SQL. I can write better queries with Mongo than I can with SQL. Just because the level of abstraction for NoSQL ODMs is a lot lower. ORMs have such a high level of abstraction that you don't even need to know SQL to do most things you need to do. Hell, until I started messing up joins I didn't even know how to write a join in SQL.

That being said I eventually got round to writing basic but still fairly robust SQL queries because I realised abstraction is not the answer to every damn problem in software engineering.
 

twinbaby

Master Member
Joined
Jul 8, 2014
Messages
3,569
Reaction score
598
Programmers are working in a creative environment and they are creators. Hence innovation and creativeness is the essence of how we should survive in the industry. If you just need a job, then I'm afraid you will burn out very fast in this industry. If you are in for challenges, there are plentiful waiting for you daily. If you are good, you will love to confront challenges, not avoid it.

Use Hand Tracing and Desk Checking for debugging - prevent interrupting
Get a bigger desk space
Dual Monitor

All these may help to improve creativity.
 

*Pickle*

Arch-Supremacy Member
Joined
Aug 18, 2014
Messages
19,116
Reaction score
5
Perl - My all-time favourite programming language for being a very expressive language with fantastic regex, but unfortunately it has just the same amount of quirkiness in it that will take developers a while to get use to. There is no trend meanwhile to expand on Perl meanwhile, but definitely I will recommend any software developers whom want to be a full stack one to learn it.

Having meddled with Perl for a little over a month, I can see why the language isn't beginner friendly. Those magic variables and operators like the diamond operator - which does a job that require probably more than 10 lines of code in python - might look like gibberish to the "untrained" eye. Coupled with the weakly typed nature of the language and the TIMTOWTDI philosophy, it's too easy to end up with unmaintainable code.

Perl's regex support is beyond awesome tho but I'm having a love hate relationship with the language due to its level of implicitness and its quirky OO support…I do find myself using it more often in place of awk and sed, and at times when I need to whip up sometime quick and dirty.

That being said, what do you think of Perl 6? I took a quick look and it seems like 6 and 5 are two different languages, with 6 moving towards being more explicit. Have you "migrated" to 6 yet?
 
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ. Forum members and moderators are responsible for their own posts.

Please refer to our Community Guidelines and Standards, Terms of Service and Member T&Cs for more information.
Top