PDA

View Full Version : What Programming Language should I learn?


knock7
05-05-2008, 11:23 AM
It seems like INTJs enjoy learning programming languages. I am having a hard time deciding what programming language to invest my time in. I have done some programming in perl, but I see perl 6 going no where. What should I learn next?

MichaelH
05-05-2008, 01:07 PM
There are a million opinions on this one.

Python is a great place to start, or a good "next" language. It's got libraries for everything. It's one of the official languages at Google.

To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.

Do you already know a programming language? Are you looking for something different? LISP is an amazing language with its share of eccentric adherents. The last program I implemented was in LISP, and it was a truly freeing experience. (LISP could use better library support, though.)

To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts. Programs

If you want to write Windows progarams, Visual Studio is still the best way to do that. You can create games in Flash with very little programming.

Let us know how it goes, whatever you decide!

knock7
05-05-2008, 02:07 PM
There are a million opinions on this one.

Python is a great place to start, or a good "next" language. It's got libraries for everything. It's one of the official languages at Google.

To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.

Do you already know a programming language? Are you looking for something different? LISP is an amazing language with its share of eccentric adherents. The last program I implemented was in LISP, and it was a truly freeing experience. (LISP could use better library support, though.)

To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts. Programs

If you want to write Windows progarams, Visual Studio is still the best way to do that. You can create games in Flash with very little programming.

Let us know how it goes, whatever you decide!

I did like perl, but I see it as a dead language. I wrote about fifteen small programs that I would stack together for whatever I wanted to do. I liked that. I would say my programming level is pretty basic. I understand most of the concepts.

I have thought about python, but it has limitations. I also like unix so I have been considering C. My frustration with C, is that books don't seem to show how to go from basic programming functions to making it useful, ie a ssh or web scrapper library.

PRBori
05-05-2008, 02:52 PM
I would highly recommend ASP.net, C#, CSS, JAVA and VB.net. Knowing them will take you to a career path that can begin at 60K and go up to 120K+ as you built-up experiences

knock7
05-05-2008, 03:06 PM
I would highly recommend ASP.net, C#, CSS, JAVA and VB.net. Knowing them will take you to a career path that can begin at 60K and go up to 120K+ as you built-up experiences

I am not doing it for a career. It is more for my own enjoyment.

bucolic_
05-05-2008, 03:56 PM
I'm sure some would object, but I started out with C++, and have no regrets. C++ is my most familiar language, so I may be biased, and some would say it's too difficult for a newb, but considering how widespread C++ is, if you can handle it as a first language, I'd say go for it.

Edit : I see that you've done some programming already, so that would make C++ even more attractive for you IMO.

knock7
05-05-2008, 04:11 PM
I'm sure some would object, but I started out with C++, and have no regrets. C++ is my most familiar language, so I may be biased, and some would say it's too difficult for a newb, but considering how widespread C++ is, if you can handle it as a first language, I'd say go for it.

Edit : I see that you've done some programming already, so that would make C++ even more attractive for you IMO.

How difficult is it to move code from one platform (windows, mac, unix) to another? How accessible are the internet libraries? Are the GUIs cross platform?

Jakalwarrior
05-05-2008, 05:07 PM
I learned Java in college and still remember a bit. I couldnt really find a use for it though when I sat at home and said "lets write a program!" or when I wanted to pass it to my friends even though its supposed to be the cross platform language :(

PRBori
05-05-2008, 06:42 PM
I am not doing it for a career. It is more for my own enjoyment.

Even if it is for fun those languages are what's being use today. Technogy changes every month and is best to keep up because even if it's for fun you may change your mind later on. Even in todays market where we may deepen into recession development work will stay steady and hardly affected by such. It's something to consider.

Why would you spent time learning something you don't plan to use? I'm sure that your interest goes beyond just enjoying , or at least I would hope that's the case. Is nevr too early or to late to learn something that can shape your future...

qwerty
05-05-2008, 06:55 PM
How difficult is it to move code from one platform (windows, mac, unix) to another? How accessible are the internet libraries? Are the GUIs cross platform?

It depends on your implementations. If you are interested in libray based development the job is quite simple.
The last program I wrote with C++ and the wxWidgets library took a few minutes to recompile between linux and windows.

As far as moving on past "Teach yourself [insert lang] in [inster time]" the idea is to show you syntax, variable definition, flow and control statement blocks. From there they sort of imagine that most people can figure out the rest :P.

Generally if you want to know about library implementations you can either buy a basic book - for example you wish to work with ssh libs and tcpip, so I would recommend you read about the OSI model, sockets etc.
Most librarys have these books in them now.

The second way to learn about library use is just to good "SSH c++ [libname] example" or snippet or howto.
Most libraries will provide a basic implementation to prove that their stuff works. So if your on linux then download the -dev and -doc parts to a lib.

Once you have example code you can begin to play. Most of the time I don't know what I'm doing when I start working with something new so I try changing variable values, and look at the description for each function being called.

It's very much a case of learn by doing.

The only other suggestion is this - for GUI programming - you will be confronted with a diff idea than simple OO or sequential coding that you do for scripts and cmd line apps.
So you should really try to find a book on GUI programming.
I mean you can learn about the msg loop quiet easily and event based programming, but I found it much easier to read the technical details first.


As far as a language goes, different languages do different things well. So for the others to continue recommending languages I suggest you talk about what sort of apps you 20scripts are focused towards.

PRBori
05-05-2008, 07:46 PM
As far as a language goes, different languages do different things well. So for the others to continue recommending languages I suggest you talk about what sort of apps you 20scripts are focused towards.

True... You can do scripts for network management using PERL, C++, Javascript, and VB.net which do not need an web interface..., they are only develop to gather information or allow communication between different interfaces.

But if you want to develop a web interface, then the ones I recommend it will apply. Either way learning to program on any of them is a big plus if you ever consider entering the programming world.

knock7
05-06-2008, 11:48 AM
My background is in building networks, systems, VOIP and security. I am very familiar with all of these technologies. It really boils down to just programming for me.

I have been thinking about this and I have a strong interest in Unix and the OpenBSD project in particular. OpenBSD is written in C. I think I am going to take a closer look at it.

MichaelH
05-06-2008, 07:40 PM
I have been thinking about this and I have a strong interest in Unix and the OpenBSD project in particular. OpenBSD is written in C. I think I am going to take a closer look at it.

Great! C has very simple syntax, and even better, most languages have syntax similar to it. You can easily migrate from C to C++ (bucolic's fave) if/when you need more features from the language.

HackerX
05-06-2008, 07:53 PM
If you're going to learn C, for god's sake learn C++ and save yourself years of bad habits.

Monte314
05-06-2008, 11:46 PM
For maximum marketability, a good skillset would be:

1.) C and C++ for application programming
2.) JAVA, HTML, and Visual BASIC for interface development
3.) SQL and PERL for data base queries and string manipulation

You probably want some familiarity with some version of both the Windows and UNIX operating systems.

And, take a course in networks. Mainstream computing is moving more and more onto the web, with lots of systems architected as web-based service oriented architectures (SOA's).

A good undergraduate CS program will provide you with opportunities to learn all of these.

walfin
06-14-2008, 01:47 AM
C++ is unrivalled for versatility (except by Object Pascal n C, but C++ is a superset of C and Object Pascal is a little more verbose). You can write ALMOST anything in it (save some esoteric stuff like shader programs which hv 2 b written in Cg/HLSL or watever). It's also pretty easy to learn, with rather few keywords for a programming language (though > C of course).

You can do interface development in C++, given a good library (QT? GTKMM?) & designing tool (KDEVELOP/GLADE). Borland C++ Builder showed e world tt interface devt in C++ could b as easy as VB.

C++ is much better at strings than C, thanks to the STL, which is usually quite efficient (most impls), if a bit cumbersome.

SQL is needed to supplement C++ for databases though.

And of course, you can write web server modules in C++.