Good language to learn for non-CS student

Jerry_03

Weaksauce
Joined
Oct 12, 2009
Messages
92
Hello all, I'm a Computer Networking major (a la sys admin). as part of my coursework i took take a few 100 level introductory programming classes in python and java. I havent program outside of these classes, but I'd like to keep things fresh so im looking for a new language to learn just on my own time as a hobby/for fun.

i think learning some web development could be useful, i know java is used in web development, im not sure what else, besides maybe PHP.

like most of us here, im a gamer and game development seems very interesting, but realistically, probably too difficult for my current level.

I also notice how smartphone apps have been exploding lately, so I'm thinking learning some andriod app development could be useful. im not sure what languages would be useful there

and im thinking about getting into the hobby of arduino. electronics always fascinated me. not sure what languages are used there either

remember this is just to learn as a hobby for now. though in future it could probably be useful with a career as a sys admin.
 
Thats a wide range there.

I would suggest furthering your skills in python and java before jumping into yet another language.
 
yeah i know, thats my problem, i try to be the jack of all trades but and end up being the master of none.....
 
Powershell would be a good candidate, and it has relevance to your current career path.
 
Choice of language won't matter too much. Learn C++ at some point (everybody should), and learn at least one high level language and those should meet your needs.

If you've learned C++, learning some other language will be fairly trivial, so if you find out it'd be important to know Groovy or Ruby, it won't be difficult to learn that. The important skills of programming are language agnostic.
 
Ruby is very easy to learn due to it's syntax.

However, if you really want something portable, I think JavaScript may take the crown.

Front end web development? Check
Back end web development? Check (Node.js)
Mobile app development? Check (Cordova / Phonegap)
Software development? Check
Game development? Check (Unreal Engine 4)

JavaScript, although fairly easy to grasp for a programmer that knows a C-like language, is actually quite hard.
 
JavaScript, although fairly easy to grasp for a programmer that knows a C-like language, is actually quite hard.

To a large extent, I agree with this statement. Writing bad JavaScript that 'works' is almost trivial so JavaScript gets a very strong reputation as being an easy language, but the important thing to consider is that writing good, robust JavaScript that properly leverages the languages behaviour and features actually has quite a learning curve.
 
Not to mention that the process of building large-ish scale JavaScript applications is really pretty difficult due to loose typing, lack of support for information hiding, no built-in module system and a general lack of good tooling. It's an utterly fantastic language for building up smaller apps, though, especially with a good transcompiler to simplify writing object-oriented code (JavaScript's prototypical approach makes building up inherited class-like structures fairly complicated). See: CoffeeScript, TypeScript.

With respect to the OP's semi-unusual request for a "good language for non-CS student", I'm going to argue that there's no language — perhaps with the exception of assembly languages — that really demands a computer science background. Although more knowledge of fundamental computer operation is required to exploit languages like C, the amount of knowledge required isn't really all that great. If you can understand memory, you can work with C pretty fluently. So don't be afraid to dabble with C/C++ if you want to write high-performance, hard real-time apps.
 
I think based on your desires, C might be a good language. It's a bit lacking in functionality, but it provides a good ground work for programming in Arduino, as well as C++ and C#, both of which are very relevant.
 
Your goto's today (pun intended? --- don't ever use a goto) typically are Java, some variant of C (C, C++, C#), and Ruby / Python.

In terms of electronics, there's another whole slew of languages, but a lot of those were built on assembly languages (LC3 was one of them). I program automation for a living and many companies have their own programming languages (concepts are all the same though). To make it easier for the electricians and electrical engineers I program in ladder logic, though I could easily do statement programming as the above languages do.

Really learning languages shouldn't be your focal point, it should be the concepts. If you learn how to do if statements, loops, methods, etc. (started that list very basic) that's all pretty static across any language. Languages are essentially the grammar of programming. Learn the concepts and apply that to any language and you're set!
 
Learn more Python, since at least it could be useful for your career.

If you want to learn something different, Java isn't a bad choice. C/C++ are better choices for nerd learning.
 
Back
Top