Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

programming language for starters?

Options
  • 26-08-2008 8:36pm
    #1
    Moderators, Computer Games Moderators, Social & Fun Moderators Posts: 80,439 Mod ✭✭✭✭


    Hey
    Im looking for a good starter programming language,could someone sugguest one and where I can download a compiler for it too.

    cheers lads


Comments

  • Registered Users Posts: 545 ✭✭✭ravydavygravy


    How about java - its relativly easy to learn, teaches you about object-orientation, and loads on on-line resources.

    Either use the JDK, command line and notepad to start off, or a very simple IDE - I feel a complicated IDE will confuse a beginner, or hide important details from you (e.g. how the code compiles, etc..)

    JDK: http://java.sun.com/javase/6/ (look for JDK download)
    Simple IDE: http://www.bluej.org/index.html


  • Closed Accounts Posts: 194 ✭✭charlesD


    I agree with ravydavygravy that at least at first, you will be better served just using notepad and the command line tools, but Eclipse is a pretty solid IDE that is fairly straight forward and has a good amount of documentation. ( http://www.eclipse.org/ )

    I think one of the most important things is to learn the concepts behind programming, which reduces the importance and dependency of any one language.

    For me, I read and worked through several C++ books, before learning any other languages.


  • Registered Users Posts: 2,534 ✭✭✭FruitLover


    Python
    or hide important details from you

    Ironic that you recommend Java then. If the nitty-gritty is king, then you should be recommending C or assembly, n'est pas?


  • Moderators, Computer Games Moderators, Social & Fun Moderators Posts: 80,439 Mod ✭✭✭✭Sephiroth_dude


    thanks very much for the replies lads,anymore sugguestions?


  • Registered Users Posts: 695 ✭✭✭DaSilva


    Am I one of the only people who thinks OO languages are not the best too start off with? I think Assembly aint the best either as it's too low level. I'd think start with C or so, forget GUI's etc. Get a solid understanding of data types, expressions, string manipulation, file IO. Be at the level where you can write a program to read in text files and print out certain text etc. Then move onto network data transfer, sockets etc.

    Then either make the jump too OO programming and you will be able to appreciate why it exists, or go the other way and go down to assembly too get a real eye opening "AHA!" moments as to what is really going on in your code and then go too OO programming.

    I recommend you start coding in C, just use notepad for your editor (ide's are great but will just be confusing for you starting out).

    If you do do that, heres a link to a compiler : MinGW GCC
    During set up just accept all the default options, like (Download & install, Current package, Minimal version)

    You will have to do one thing after, and that is (assuming winXP):
    Right Click "My Computer" > Properties
    Go to "Advanced" Tab
    Click "Environmental Variables"
    Under "System Variables" Select "Path" and click edit.
    Append ";C:\MinGW\bin\" to the end without quotation marks (assuming you installed MinGW to default folder)

    Heres a guide to learning C. I don't know how good it is I just googled it :P but it looks decent.
    http://beej.us/guide/bgc/output/html/multipage/index.html

    too compile C code you then just type in dos.

    gcc -o OutputFileName.exe YourFileWithCCode.c


  • Advertisement
  • Closed Accounts Posts: 1,567 ✭✭✭Martyr


    php or python might be good start.


  • Registered Users Posts: 26,579 ✭✭✭✭Creamy Goodness


    DaSilva wrote: »
    Am I one of the only people who thinks OO languages are not the best too start off with? I think Assembly aint the best either as it's too low level. I'd think start with C or so, forget GUI's etc. Get a solid understanding of data types, expressions, string manipulation, file IO. Be at the level where you can write a program to read in text files and print out certain text etc. Then move onto network data transfer, sockets etc.

    I recommend you start coding in C, just use notepad for your editor (ide's are great but will just be confusing for you starting out).

    i agree with you 100%, but i would suggest getting a text editor with syntax highlighting (e.g. textpad, notepad++), as notepad is a bitch to code in
    php or python might be good start.
    php would be a diaster to start with in my opinion of course.

    it's a very messy language and learning proper coding practices with php would not be as much of a benefit as say with C.


  • Registered Users Posts: 16,288 ✭✭✭✭ntlbell


    I would of thought html would be a good place to get the basics

    PHP

    and move on to something like phyton

    it really depends were your interests lie and what you want to be able to do down the road


  • Closed Accounts Posts: 194 ✭✭charlesD


    Am I one of the only people who thinks OO languages are not the best too start off with? Get a solid understanding of data types, expressions, string manipulation, file IO.

    I would agree with you that a proper foundation is imperative for success. I think C++ is a better choice though. This is because while C++ is an OO language, you do not have to code using OO concepts to use it and can be used procedurally.

    This means you can learn the basics, like data types and string manipulation, then once you have a firm understanding, you can jump into the OO side of it and will already be comfortable with the language and how it works.

    Of course being so similar, it is not too big of a jump to move from c to c++, but I think you save a step by starting with c++.


  • Registered Users Posts: 9,480 ✭✭✭projectmayhem


    Cremo wrote: »
    i agree with you 100%, but i would suggest getting a text editor with syntax highlighting (e.g. textpad, notepad++), as notepad is a bitch to code in

    Yeah I'd echo this and say go for C and get a good text editor to boot. C will teach you more introductory stuff then any other language, and then migrating to C++/Java to learn OO will be a bit less of a pain.


  • Advertisement
  • Closed Accounts Posts: 25,848 ✭✭✭✭Zombrex


    I would recommend C, as I think it is a good idea when learning programming to learn concepts in the order they were invented, as they build upon on another. Learning OO in Java and then looking at procedure programming in C would seem rather confusing I would imagine.


  • Closed Accounts Posts: 5,284 ✭✭✭pwd


    ntlbell wrote: »
    I would of thought html would be a good place to get the basics

    PHP

    and move on to something like phyton

    it really depends were your interests lie and what you want to be able to do down the road
    html would only be useful if you wanted to learn about web development. It wouldn't be useful for learning about programming in general - it's a markup language, not a programming language.


  • Closed Accounts Posts: 448 ✭✭ve


    I also recommend C. This was my first language and once it clicked I found it very easy to learn new languages. I have coded in practically every popular programming language available, and even though C is a structured programming language (compared to more contemporary Aspect / Service / Object Oriented methods) it makes you think about programming at a level that is invaluable to someone starting out.

    My advice, don't rush, learn well. Then later when you move on to other languages you will appreciate the power at your finger tips.

    I wish you the very best of luck ;)


  • Closed Accounts Posts: 1,567 ✭✭✭Martyr


    php would be a diaster to start with in my opinion of course.

    a disaster? thats silly..
    it's a very messy language and learning proper coding practices with php would not be as much of a benefit as say with C.

    ANY language can be messy, it depends on the programmer.


  • Moderators, Computer Games Moderators, Social & Fun Moderators Posts: 80,439 Mod ✭✭✭✭Sephiroth_dude


    ve wrote: »
    I wish you the very best of luck ;)

    thanks for much buddy :-)

    and thank you everyone else too,I appreciate your sugguestions,I learned a bit of html in college bout 4yrs back,its a very basic web language handy all the same though,mite try and find my college notes and have a look at it,also I did learn c++ in college and found it very confusing,so I mite try phython or sumthing see how I get on with that,actually has anyone used visual basic?I use to try and program with Qbasic back in the days of dos,ah the good auld days :).


  • Closed Accounts Posts: 891 ✭✭✭conceited


    Thanks for changing it :)


  • Closed Accounts Posts: 448 ✭✭ve


    I learned a bit of html in college bout 4yrs back,its a very basic web language handy all the same though,mite try and find my college notes and have a look at it
    It all helps, but just to be clear HTML is not actually a programming language, best to think of it as a language for writing scripts that are handed to a program (a web browser) which interprets it and renders a web page. A programming language is something that you use to create programs, such as a web browser for example. Therein lies the difference. Also HTML and it's correct use has changed significantly in recent years so perhaps the likes of www.w3schools.com would be a better place to learn that than the old notes (not to cast any aspertions on your old notes of course).
    I did learn c++ in college and found it very confusing,so I mite try phython or sumthing see how I get on with that,actually has anyone used visual basic?I use to try and program with Qbasic back in the days of dos,ah the good auld days :).
    I used to lecture computer programming @ University and I found that a lot of students who were thrown straight in to Object Oriented Programming (with languages such as C++) often found it difficult to grasp, and just ended up resenting software development in general. Well done to you for giving it another shot, I assure you, you can learn how to program, and you will probably really enjoy it too. If you persist, it will "click" with you, and sure you'll be back here teaching someone else what you've learned in no time.

    You see software development is not all about the actual programming languages themselves, it actually more about logical and efficient problem solving. The langauges are just tools. The languages are used as a means of expression for the programmer to describe to the computer his/her efficient solution to whatever problem they wish to solve. Coming up with this efficient solution is part of what we call Software Design. You will also find that in some situations some tools (languages) are better than others, it depends on what programs you are trying to develop and where the programs will run (E.g. on a phone / windows computer / *nix server / Washing Machine (yes they run programs too) / etc). Once you have an idea about those things you can start picking your tools (languages). Also you will hear lots of people talk about using different development tools to write and build code. The truth of the matter is that all you need are the following things
    1. An ASCII text editor (such as Notepad or vi)
    2. A compiler (for the language you want to compile, for the OS/hardware architecture you want it to run on E.g. Win32 / x86, or Virtual Machine)
    There are some more bits in there, but for the sake of brevity you simply need an editor to write / save / edit your code in, and a compiler to take that code and produce a binary (platform specific program) which you will be able to run. On windows all those .EXE files you may be used to are examples of binaries for the windows platform. There are many other types of binaries, but this would be a popular example. When you produce a platform specific binary (E.g. .EXE file for windows) you can't simply take that program and run it on a Linux computer for example. You would need to take your source code and compile it for Linux which in turn would give you a Linux binary. In more recent times we have seen a trend where code can be "compiled" once and run on many different platforms without being compiled specifically for each platform. An example of this would be Java. With Java I could write a program and compile it once, not in to a platform specific binary, but in to something in between the original source code and platform specific binary called byte code. Then using a platform specific program or binary called a Virtual Machine, I can give it this compiled "byte code" and it will be able to run it on any platform where Java Virtual Machine is available. As you can imagine there are several advantages to such an approach. Although many would argue that this results in slower and resource hungry programs because of the extra layer of complications introduced in order to make all that work.

    So basically I did recommend C to you as a good starting language in my last post, and I still stand by that recommendation. The reason why I choose C is because C is a language that will not let you away without understanding what you are doing. I do not recommend any of the BASIC derivatives, as a starting point as it is possible you will find yourself progressing quickly and later discover that you have to come back and learn some things that you didn't think were necessary in order to move further (if that makes sense). Languages such as VB often hide complexities that are essential for study by any programmign student. Don't get me wrong VB (and it's more recent .NET incarnations) are fine tools, which allow an experienced developer to rapidly produce software prototypes. I also bet if you started using them now yourself you would have a fine windows program put together in no time, but the problem is that you would find it very hard to learn new languages and techniques. Also remember regardless of what programming language (tool) you use, the ability to pragmatically solve problems is a precursor to writing good code. This is something that you will get better and better at with practice.

    I hope that helps, and that I have been able to impart some new knowledge to you at least. My descriptions above can be considered fairly high level and incomprehensive for the sake of discussion, but hopefully enough to convey the message.

    I don't proclaim to be the best programmer in the world, despite my years of experience, but if I can be of any assistance to you, you can post here (or PM me) with any questions you may have and I will do my best to help you. Also (and something I used to always say to students)...

    there is no such thing as a stupid question, just good questions perceived by stupid people. So ask away ;)


  • Moderators, Computer Games Moderators, Social & Fun Moderators Posts: 80,439 Mod ✭✭✭✭Sephiroth_dude


    Thanks alot bud,I appreciate your help :).


  • Registered Users Posts: 1,821 ✭✭✭Skud


    groovy is meant to be a good language to start with, similar to java. i'd nearly recommend html, css and javascript for web stuff, but it depends on what you want to do. If you want something more technical and useful then java. Or if you want, can go for something visual. I always found that a lot more productive as you feel you are doing more :)

    edit: just saw ve's post now :)


  • Hosted Moderators Posts: 7,486 ✭✭✭Red Alert


    I definitely recommend C - I think it teaches good programming practices and also because its a compiled language it teaches you the compiler workflow.


  • Advertisement
  • Closed Accounts Posts: 891 ✭✭✭conceited


    Ruby or c, gets my vote
    http://www.ruby-lang.org/en


  • Registered Users Posts: 3,805 ✭✭✭Setun


    I'm learning Python as my first language, mainly using it for animation/generative graphics. Trying to teach myself and using some tutorials online but I think it'd be a great help to actually have someone looking over my shoulder at times. It's very enjoyable though, and a very rewarding and fun language.


  • Registered Users Posts: 748 ✭✭✭Zounds


    I'm also learning Python at the moment but when I start my computer science degree on Monday I'll be taught through Java.

    Python is a very nice language in my opinion. Fairly simple and fun. I've used java and C++ before but not much.

    I also think that the fact that it's interpreted rather than compiled gives it a particular advantage as a first time language.


  • Registered Users Posts: 2,191 ✭✭✭Feelgood


    I reckon if you a absolute newbie start small such as Liberty Basic.

    http://www.libertybasic.com/

    Programming isn't just about syntax. Liberty basic will give you a good
    grounding into what programming and development is all about.


  • Closed Accounts Posts: 603 ✭✭✭shamrock2004


    If you decide to go with Java,
    here are some very good and lucid eclipse IDE video tutorials by Mark Dexter:
    http://sourceforge.net/project/showfiles.php?group_id=200662&package_id=238344

    Best regards,
    S


  • Registered Users Posts: 748 ✭✭✭Zounds


    Feelgood wrote: »
    I reckon if you a absolute newbie start small such as Liberty Basic.

    http://www.libertybasic.com/

    Programming isn't just about syntax. Liberty basic will give you a good
    grounding into what programming and development is all about.

    Are you joking? It costs money and blatantly lies on its website.


  • Registered Users Posts: 2,191 ✭✭✭Feelgood


    Zounds wrote: »
    Are you joking? It costs money and blatantly lies on its website.

    No it doesn't there is a free version of the Liberty Basic compiler on there...

    Liberty basic is just an extension to Basic really, Basic is a good language for anyone to start with me thinks!. I actually got the idea from reading Deitel & Deitel programming books which are more or less standard reading for colleges and universities at this stage.

    They recommend in their books to learn Basic to get to grips with programming and it really does help. They also supply a copy of the liberty basic compiler on the cd that comes with the book and its available free on the website.

    Its not glamorous and doesn't have all the bells and whistles of C or Java, but yes it definitely does help you nail the concepts and theories of programming as a whole which to me is the most import thing.

    Anyone can learn commands and syntax, that doesn't make an expert programmer.


  • Registered Users Posts: 9,225 ✭✭✭Chardee MacDennis


    Fantastic resourse for learning python for any level, but particularly for a beginner, is How to Think Like A Computer Scientist

    check it out here:

    http://www.classyhumor.com/Python/thinkCSpy.pdf


  • Registered Users Posts: 2,534 ✭✭✭FruitLover


    Feelgood wrote: »
    it definitely does help you nail the concepts and theories of programming as a whole which to me is the most import thing.

    Python does this in a far more functional manner. Python also supports OOP, which is important for modern programmers to progress to once they have the basics down.


  • Advertisement
Advertisement