PDA

View Full Version : What is the most appropriate programming language to learn?



yanvolking
September 24th, 2011, 04:58 PM
Hello Community,

I am a fanatical Linux enthusiast who uses mostly Ubuntu. After having gone through a pretty good learning curve with LAMP and then Joomla, I am looking for new horizons to explore. I am thinking of going into programming. After having flirted with BASH, Javascript and PHP, I would like to tackle something heavier. I have been thinking of PERL or C++. At this stage its purely academic and the objective is really to keep getting these incredible Nerdy Trips I get when I finally hit "return" and the screen gives me what me what I was looking for (anyone know what I mean?).

Well does an advanced IT enthusiast or IT professional have any suggestions as to hte best route to take on my fascinating IT exploration odyssey?

Thanks in advance.

Yan

nothingspecial
September 24th, 2011, 05:02 PM
Moved to Programming Talk.

magsnus
September 24th, 2011, 05:02 PM
Python perhaps?

Smart Viking
September 24th, 2011, 05:12 PM
My best tips is to do what you think is fun.

I'd suggest Python as the poster above me, it's a fun language, and it's growing in popularity. The language has a bright future.

But if you don't find the language fun, then learn something else, I suspect that you'll like it though. :)

simeon87
September 24th, 2011, 05:19 PM
Python is a good choice. But both Perl and C++ are freely available so what's stopping you from trying either? A strong C++ programmer has a good future in the industry, Perl I have no idea. Python is good for many things; in the industry it's used for web programming with Django for example.

Lars Noodén
September 24th, 2011, 05:21 PM
The choice of programming language depends a lot on what you plan to do. What is it you are interested in?

system administration - shell, perl, python
web - java, python, perl, php
mobile - c++, java, objective c
operating systems / network - c

karlson
September 24th, 2011, 05:30 PM
Well does an advanced IT enthusiast or IT professional have any suggestions as to hte best route to take on my fascinating IT exploration odyssey?


I would suggest finding a problem that you need to solve with the help of the computer and developing a solution for it. This way you can actually learn by doing something useful otherwise you will just become a repository of useless information that seemed cool at the time.

yanvolking
September 24th, 2011, 05:31 PM
Thanks for the reply (and so quick). Lars Noodén's comments are quite interesting. I am not an IT pro, just someone who loves open source IT and enjoys playing around with a PC to explore and learn for fun. It seems Python is a good bet for me as it can be applied to Web Design as well as systems admin and as Smart Viking says : "It's fun", and for an amateur, fun is really important.

I'll read up a bit on Python and C++ and make a choice soon.

Thanks again guys.

karlson
September 24th, 2011, 05:31 PM
The choice of programming language depends a lot on what you plan to do. What is it you are interested in?

system administration - shell, perl, python
web - java, python, perl, php
mobile - c++, java
operating systems / network - c

You forgot Objective C for mobile.

ingeva
September 24th, 2011, 05:45 PM
Well does an advanced IT enthusiast or IT professional have any suggestions as to hte best route to take on my fascinating IT exploration odyssey?
Thanks in advance.
Yan
A very interesting question. I've been thinking along the same lines.
I have a background of professional programming, doing real-time programming mostly. This involved writing OS modules like drivers etc., and very machine oriented programming in languages like assembler, Fortran and C. This was before C++ or C# were available. I also touched into Pascal. We did object oriented programming before this was incorporated in available languages.

The last 12 years I haven't been doing any programming in compilable languages. I do it all in PHP and JavaScript. I do all my programming for the WEB. For local use, I still use php because I have my own local server. I don't think there's any need for those "high-level" languages any more.

I would stick to php, which is a powerful language and almost as efficient as C. I would perfect my knowledge of that and related methods like Ajax for the WEB. There's a lot to learn and you'll never finish learning. What you learn is important, but what you can do with what you have learnt is crucial. You can learn all your life, but one day you must start using it or it will all be a waste.

nvteighen
September 25th, 2011, 03:16 PM
Hm... try any of the general programming languages. Perhaps Perl would be a nice challenge for you, but be careful: it's a very particular language :P If you want to delve into low-level programming, I'd suggest you C before entering into C++... It's almost impossible to really understand C++ without really understanding C.

llanitedave
September 25th, 2011, 04:18 PM
Why choose? If your motivation is pure nerd nirvana then the world is already your oyster -- what you really want is a good balance of skills.

I'll second Python because it IS fun and powerful. If you're already proficient in Javascript, then don't give that up either. The two together used in tools like Django create a powerful 1-2 punch.

To that I'd suggest C. C++ may be overkill for you, since you'll already have all the Object design tools you need with Python, Javascript, and PHP. Python is designed to be able to work with C modules. C is simple but subtle and challenging to get the most out of, and will give you the raw performance to compliment the sophistication of the other languages. Python and C used together judiciously in an application will give you all the flexibility and performance you could dream of.

cgroza
September 25th, 2011, 07:52 PM
It's almost impossible to really understand C++ without really understanding C.
I tried C++ after python. Never touched C before but I could grasp C++ pretty easy. Then I touched C and found it very easy to learn after learning C++.

yanvolking
September 26th, 2011, 05:50 AM
Hi Ingeva,

A very interesting reply. I do have some experience in PHP and Javascript, although limited, but it is still a good base that could easily be built upon. Furthermore, one of my main IT activities is the design and creation of web pages, using HTML, CSS, PHP and MySQL from first principles and increasingly with Joomla. Expanding on my PHP knowledge base would obviously have direct practical benefits for this activity.

Now, when you say that you don't use compilable languages any more and that you think that there is no more need for those high level languages, do you think that PHP is so powerful and versatile that it could to a large extent substitute languages such as PERL or C++ in a substantial amount of situations (ie. stuff traditionally done in PERL - including non-web programming - could actually be done in PHP)?

nvteighen
September 26th, 2011, 09:35 PM
I tried C++ after python. Never touched C before but I could grasp C++ pretty easy. Then I touched C and found it very easy to learn after learning C++.

That's interesting.

But be aware that C++ is a very huge language; some claim you never end up learning it, because it's so full of caveats and obscure things that it always ends up bringing up you didn't know about. Some of those issues are that low-level that you have to know C and ASM to understand why it works that way (e.g. the whole "pre-main" static initialization issues).

cgroza
September 26th, 2011, 09:53 PM
That's interesting.

But be aware that C++ is a very huge language; some claim you never end up learning it, because it's so full of caveats and obscure things that it always ends up bringing up you didn't know about.
It is true that C++ is a huge language and complex language, but I don't think you need to master every obscure corner to accomplish your task.

karlson
September 26th, 2011, 10:00 PM
It is true that C++ is a huge language and complex language, but I don't think you need to master every obscure corner to accomplish your task.
Depends of course on what your task is. :)

Pynalysis
October 10th, 2011, 01:52 AM
Python perhaps?

Python indeed. It is an interpreted programming language that allows rapid development and code testing. It is also a "glue" language allows interaction with other programming languages quite easily.