A starter for most is deciding on which programming languages one would like to pick up and learn. A few questions raise to mind:
- Which language is easy to pick up; low learning curve
- How widely used is the language by industry
- How many projects use these languages
- How long has the language been around
C
Born: 1972
Learning curve: Medium
Notable Projects: Linux OS
Mostly used: Embedded Devices, Library extensions for many other languages
Mostly used: Embedded Devices, Library extensions for many other languages
C++
Born: 1983
Learning curve: High
Notable Projects: Blender, Apache
Mostly used: Desktop applications, Mobile applications, Financial service platforms
Mostly used: Desktop applications, Mobile applications, Financial service platforms
Erlang
Born: 1986
Learning curve: Medium
Notable Projects: ??
Mostly used: Telephony messaging
Java
Born: 1995
Learning curve: Medium
Notable Projects: Hadoop
Mostly used: Desktop applications, Mobile applications
Javascript
Born: 1995
Learning curve: Low
Notable Projects: ??
Mostly used: Web applications
Mostly used: Web applications
Perl
Born: 1987
Learning curve: Medium
Notable Projects: ??
Mostly used: ??
Php
Born: 1995
Learning curve: Low
Notable Projects: Facebook
Mostly used: Web applications
Python
Born: 1991
Learning curve: Low
Notable Projects: OpenStack
Mostly used: Web applications, Desktop applications, Scientific data crunching
Mostly used: Web applications, Desktop applications, Scientific data crunching
Ruby
Born: 1995
Learning curve: Low
Notable Projects: Twitter
Mostly used: Web applications
Scala
Born: 2003
Learning curve: Medium
Notable Projects: ??
Mostly used: ??
Mostly used: ??
Tcl
Born: 1988
Learning curve: Low
Notable Projects: ??
Mostly used: ??
Mostly used: ??
Developers now will need to know controlled versioning. Controlled versioning is a system that supports multiple developers working in the same set of codes. Common version systems used are.
- SVN (born 2000)
- GIT (born 2005)
- Mercurial (born 2005)
Several good ways to get started.
- Online tutorials like nettuts or w3c
- Check on developer forums
- Participate in developer opensource contributions like Apache Software Foundation, Github, Bitbucket, Google code
Final note is, that like all languages, the syntax is different but the core philosophy is the same. If you can weave comfortably in one language, using the next is mostly about picking up the structure, libraries available for use, and syntax. Good luck!