Ask Experts Questions for FREE Help !
Ask
    PirateForHire's Avatar
    PirateForHire Posts: 11, Reputation: 1
    New Member
     
    #1

    Aug 29, 2006, 08:21 AM
    Best First Programming Language
    I'm have a hard time deciding which programming language I should learn first. I have a friend who learned Java and said it's relatively simple, and it seems to have more compatibility than something like C or C++, but then I hear the C# will. My friend is using Java to make computer games, and if that's what I decide I'd want to do most, I've also heard Blitz Basic is great for game programming. PERL is I guess considered a programming language, and that sounds like fun because then maybe I could do some CGI stuff for my website... Anyone have a opinion of any of the above languages? I need help deciding where to start.
    dmatos's Avatar
    dmatos Posts: 204, Reputation: 26
    Full Member
     
    #2

    Aug 29, 2006, 05:50 PM
    You should consider instead what you want to do, then choose an appropriate language to implement it in. Learning for the sake of learning isn't going to stick as well as learning for the sake of doing.

    Personally, I started with BASIC on my dad's Apple IIe. We had old magazines with program listings. You'd enter the program in and run it, then play some kooky little game. The process of doing this (and fiddling with the programs - yay infinite lives!) is what started me up the programming learning curve.

    Any procedural programming language with flow control structures will be a decent place to start. Object-oriented languages require a bit more abstract thought. Crazy things like Prolog need an entirely different approach to solving a problem, but they're usually only used in niche applications anyway (though those applications are really interesting).

    Anyway, my recommendation is to choose a task, choose any appropriate language, and start.
    PirateForHire's Avatar
    PirateForHire Posts: 11, Reputation: 1
    New Member
     
    #3

    Aug 29, 2006, 05:57 PM
    Well, what about socket programming? I know that you can do that with Java, C, and PERL. I guess maybe I'm asking which language is easiest, and most versatile.
    dmatos's Avatar
    dmatos Posts: 204, Reputation: 26
    Full Member
     
    #4

    Aug 29, 2006, 08:58 PM
    In that case, I'd suggest Java. Most of the hard, low-level stuff is already done for you in the libraries that you can use. You can concentrate on the fun stuff that you want to do once the socket is open.

    I'll probably get flamed for this, but Java is easier to develop in, and C/C++ give you faster applications in the end, though it's much easier to shoot yourself in the foot with them. PERL is good for any parsing tasks, and a few other tasks as well.
    LTheobald's Avatar
    LTheobald Posts: 1,051, Reputation: 127
    Ultra Member
     
    #5

    Aug 30, 2006, 04:35 AM
    You won't get flamed - I agree. OK so true, I am a Java programmer and would say that but oh well :P

    I think going for a popular language such as Java or C++ is your best bet. There will be plenty of sites out there with tutorials, articles etc. This is what you really need as I don't think you'll want to be spending £20-£50 a time on a book.


    Here are a few Java sites to help you get started:
    http://www.javaworld.com
    http://java.sun.com - The forums are good for getting your questions answerwed
    http://forums.devshed.com - Also a great Java forum there
    http://www.onjava.com
    http://www.javaranch.com/

    And of course here! Ask away and people here will do their best to help.
    ScottGem's Avatar
    ScottGem Posts: 64,966, Reputation: 6056
    Computer Expert and Renaissance Man
     
    #6

    Aug 30, 2006, 06:03 AM
    I can teach you the basics of programming in the time it takes to read the following:

    Do...While and If...Then...Else

    75% of programming involves those two concepts also known as looping and conditionals. The other 25% is presentation.

    Once you understand those two concepts it only remains to learn how they are implemented in the particular language you want to use.
    PirateForHire's Avatar
    PirateForHire Posts: 11, Reputation: 1
    New Member
     
    #7

    Aug 30, 2006, 04:39 PM
    Thanks for all the help, guys. I do understand some of the basic concepts and such because I once started both PERL and Blitz Basic... but then the books had to go back to the library, never checked them out again... makes me sound real lazy I guess. Ok, I guess then I'll try Java. Oh, wait... What about things like LINUX? I know that some versions have fancy GUIs, but I've heard that it's kind of like DOS and you've got to learn commands, and it helps if you know a programming language. Are there any specific programming languages that are best with LINUX?
    ScottGem's Avatar
    ScottGem Posts: 64,966, Reputation: 6056
    Computer Expert and Renaissance Man
     
    #8

    Aug 30, 2006, 05:23 PM
    Linux is an operating system not a programming language. Most any programming language (with the possible exception of VB) will work under Linux as long as you have the right compiler or interpreter.
    PirateForHire's Avatar
    PirateForHire Posts: 11, Reputation: 1
    New Member
     
    #9

    Aug 30, 2006, 05:47 PM
    Sorry, I'm not getting things across very well today. I know that LINUX is an operating system, and not a programming language. People have told me though that it has built in compilers for specific languages... which languages though is what I guess I was asking about.
    LTheobald's Avatar
    LTheobald Posts: 1,051, Reputation: 127
    Ultra Member
     
    #10

    Aug 31, 2006, 01:03 AM
    This will depend on what Linux distribution you have. I believe most come with compilers/interpreters for C, C++, Java, Perl, Python and PHP. Of course you will have to ask it to install some of these on setup.

    Also Scott - Any Microsoft language (VB, C#, ASP etc.) won't work on Linux unless somebody (not Microsoft) has hacked apart a version to work. But then that's not the original, official language anyway.
    ScottGem's Avatar
    ScottGem Posts: 64,966, Reputation: 6056
    Computer Expert and Renaissance Man
     
    #11

    Aug 31, 2006, 05:47 AM
    Quote Originally Posted by LTheobald
    Also Scott - Any Microsoft language (VB, C#, ASP etc.) won't work on Linux unless somebody (not Microsoft) has hacked apart a version to work. But then that's not the original, official language anyway.
    I didn't realize that C# was a specific MS product. Didn't think to include ASP and the .Net stuff. But that's why I mentioned VB. Microsoft doesn't write compilers for other OSes.
    LTheobald's Avatar
    LTheobald Posts: 1,051, Reputation: 127
    Ultra Member
     
    #12

    Aug 31, 2006, 08:40 AM
    Quote Originally Posted by ScottGem
    I didn't realize that C# was a specific MS product. Didn't think to include ASP and the .Net stuff. But that's why I mentioned VB. Microsoft doesn't write compilers for other OSes.
    That's because there's no reason for anyone to want to run anything but Microsoft products :P
    ScottGem's Avatar
    ScottGem Posts: 64,966, Reputation: 6056
    Computer Expert and Renaissance Man
     
    #13

    Aug 31, 2006, 08:52 AM
    Quote Originally Posted by LTheobald
    That's because there's no reason for anyone to want to run anything but Microsoft products :P
    You've been listening to Dollar Bill too much :D
    cajalat's Avatar
    cajalat Posts: 469, Reputation: 66
    Full Member
     
    #14

    Aug 31, 2006, 10:39 AM
    Scott is right on the Linux thing. You can find many development environments ready to go under most of the linux distro's out there.

    One that comes to mind that is an excellent starting linux environment is UBUNTU Linux. It is based on Debian which is a solid linux implementation (frankly most linux distro's are pretty solid I find for what I need). The nice thing about Ubuntu is that it is geared towards educational environments so it makes for a great learning tool.

    Another of my favorite distro's is Mandriva which I use pretty much daily and run many Enterprise functions on top of it (DNS/DHCP/NMS/IDS/etc). RedHat also is an "Enterprise" grade OS but it has gone commercial long ago and in my opinion became more of a hindrance and less flexible over time so I tend to stay away from it if I can help it.

    Linux (pick your flavor) now-a-days has a decent interface and GUI while allowing you full CLI environments. Also, when you work under a Linux environment you tend to be have to be more engaged in the OS and how it actually works. It is harder in the beginning but I personally think that it made me a better developer/administrator/engineer. Whereas windows seems to present itself to me as to have to rely too much on a GUI and not really understand the interworking of the OS as well as I could under Linux (again, this has been MY experience).

    So if you're starting fresh then go with Linux... There will be plenty of Windows around and forcing yourself to learn Linux will, In my opinion, make you a better Windows programmer.


    Good Luck
    PirateForHire's Avatar
    PirateForHire Posts: 11, Reputation: 1
    New Member
     
    #15

    Sep 1, 2006, 09:15 AM
    Quote Originally Posted by cajalat
    RedHat also is an "Enterprise" grade OS but it has gone commercial long ago and in my opinion became more of a hindrance and less flexible over time so I tend to stay away from it if I can help it.
    How does going commercial make it more of a hindrance? Not quite sure I understand that.
    cajalat's Avatar
    cajalat Posts: 469, Reputation: 66
    Full Member
     
    #16

    Sep 2, 2006, 05:19 AM
    Quote Originally Posted by PirateForHire
    How does going commerical make it more of a hindrance? Not quite sure I understand that.
    Very good question. And in fairness to RH I should have clarified by adding "hindrance to my general needs".

    RedHat made a decision based on their customer requirements which was to keep their revisions and changes very controlled and on a longer term cycle for new releases of the software. If there were a lot of software updates to libraries, headers, packages, etc then that would cause some other commercial software that was dependent on the OS to break. This worked fairly initially. However, what ended up happening was that they fell behind on many common updates to things like KDE, GNOME, and most importantly (in my opinion) the kernel in favor of stability. Over time, other packages suffered and also fell behind. In addition, RedHat in their infinite wisdom decided to remove some of the most common features of the distribution in their WorkStation release. Features considered "services" such as MySQL were removed and were an extreme pain to add back in unless you purchased their "Advanced Server" platform.

    The beauty of the various Linux distributions is that depending on what packages you choose determines whether your system would be a server or a workstation. The baseline is the same for all linux distributions (i.e. the kernel) and the rest are packages. So choosing what package you want (i.e. workstation utilities, server applications) was up to you at install or after install. RedHat locked down their distribution so much that you couldn't do that anymore and if you wanted a workstation that also had a DB engine running on it then you needed to purchase their Advanced Server. I think they've since corrected that (in the case of MySQL) in their latest RH 4 but I'm not entirely sure. Furthermore, updates to RedHat can only be accomplished IF you subscribe to their update service. So any security patches or bug fixes would only be available to you if you pay for their update service.

    The point is that RedHat is very restrictive in favor of stability and to satisfy the many other commercial applications that are dependent on it. This isn't necessarily a bad thing... IF you have commercial applications that you want to run on Linux. However, if you want to learn, use this for home use, or use it for historically built-in features of Linux (Server/Workstation apps) then I personally think RedHat is a hindrance. I would much rather use Mandriva or Ubuntu which offer amazing flexibility in package selection.

    Hope that helps.
    metagami's Avatar
    metagami Posts: 10, Reputation: 2
    New Member
     
    #17

    Sep 26, 2006, 02:55 PM
    EWeek magazine has a recent article entitled "10 Programming Languages You Should Learn Right Now". Java is number 8 on the list, but has more job openings (as listed on dice.com) than all the others put together.


    http://www.eweek.com/article2/0,1895...MNL091806EP11C
    LTheobald's Avatar
    LTheobald Posts: 1,051, Reputation: 127
    Ultra Member
     
    #18

    Sep 27, 2006, 03:29 AM
    Good list. I'd agree with all those.

Not your question? Ask your question View similar questions

 

Question Tools Search this Question
Search this Question:

Advanced Search

Add your answer here.


Check out some similar questions!

Windows Programming Language [ 2 Answers ]

I am interested in learning the main programming language for windows.Can anyone please tell me the main (best)programming language to learn. Thanks in advance Bitrate

First language literacy and second language litera [ 1 Answers ]

What are the differences between first language literacy and second language literacy?

C programming help [ 1 Answers ]

Hi people I want to shut down my system after a specified time I want to use the time() method but I need to know the exe file that runs after the specified time. Please let me know also if there is any other way to shut down my system after some particular time Thank you Best regards


View more questions Search