Software Development/Network/Databases

<p>I’d like to self-learn some programming languages so that I can get a job in software development, or database/network administration. Where should I start?</p>

<p>Check out the TIOBE index; start from the top and work down?</p>

<p>That’s a tough question to answer because different programming languages are used depending on the domain you work in. For instance, you won’t find many companies looking for web developers with C/C++ knowledge, and you won’t find many companies looking for embedded systems programmers with experience in Ruby.</p>

<p>I don’t think starting from the top of the TIOBE list and working down is a great idea. There are a lot of very domain-specific languages (PHP, actionscript, objective-C) on there as well as legacy languages (Fortran, Ada, Pascal), and some languages that you’re just better off staying away from (Perl, PHP).</p>

<p>If you’re not sure what exactly you want to do, I think that starting with a language like Java or C# is a good idea. Eventually, you’ll want to learn C/C++. It’s also a good idea to learn a high level scripting language like Python or Ruby. Finally, you should try to learn a more “academic” functional language like haskell or Lisp. Note that learning all of these languages will take a few years, so take your time.</p>

<p>For the record, the top 3 entries in the TIOBE index are what you recommend, and all your recommendations -are in the top 13 and given an “A” rating as regarding importance. So perhaps using the TIOBE as a guide isn’t such a bad idea at all.</p>

<p>Regarding staying away from Perl/PHP… these are personal preferences, really. I certainly have them, too, and while sharing them is good - that is, after all, part and parcel of the whole discussion forum thing we’re doing - it’s also good to separate objective and subjective measures.</p>

<p>Learn SQL for database management/administration. You can learn the theory using another language, and apply it to SQL.</p>

<p>To be even more up to date with the “data” industry…</p>

<p>Learn “big data” technology. Just Google it and see the skill-set.</p>