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

Beginning new languages

Options
  • 31-08-2012 5:02pm
    #1
    Closed Accounts Posts: 70 ✭✭


    Well, I'm a keen and enthusiastic 15 year old currently doing TY. I've been computer-mad since before I can remember but I've never bothered learning to code and whatnot. I thought I'd have a go now as it may help me with work experience so that I can try get into a suitable place.

    I'd consider this website and community helpful for this sort of stuff and I think you'd be able to help me out!

    So, this will be my first ever experience with programming, my school doesn't teach it at all, in fact, they don't even do IT unless you're in first year or TY. This year I thought, oh, I'll be taught some in school but no, I have to endure a years worth of Microsoft Word, Excel, etc. :(

    I'm capable of committing around 6 hours a day to learning to code and learning new languages but I need some help on what to learn first and how to go about learning it.
    I have an interest in SA-MP (San Andreas Multi-player) and would like to learn about PAWN so I can work on that and develop new stuff and so on, but I need help with tutorials, which language to learn first and how long it will take. Also, what should I go about trying to develop.

    I'd consider myself a fast learner, having a good amount of knowledge with video editing.

    Hopefully you can help, Jack.


«1

Comments

  • Registered Users Posts: 119 ✭✭Stamply


    Eazzah wrote: »
    Well, I'm a keen and enthusiastic 15 year old currently doing TY. I've been computer-mad since before I can remember but I've never bothered learning to code and whatnot. I thought I'd have a go now as it may help me with work experience so that I can try get into a suitable place.

    I'd consider this website and community helpful for this sort of stuff and I think you'd be able to help me out!

    So, this will be my first ever experience with programming, my school doesn't teach it at all, in fact, they don't even do IT unless you're in first year or TY. This year I thought, oh, I'll be taught some in school but no, I have to endure a years worth of Microsoft Word, Excel, etc. :(

    I'm capable of committing around 6 hours a day to learning to code and learning new languages but I need some help on what to learn first and how to go about learning it.
    I have an interest in SA-MP (San Andreas Multi-player) and would like to learn about PAWN so I can work on that and develop new stuff and so on, but I need help with tutorials, which language to learn first and how long it will take. Also, what should I go about trying to develop.

    I'd consider myself a fast learner, having a good amount of knowledge with video editing.

    Hopefully you can help, Jack.

    http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books

    Focus on Maths in school and learn about data structures and algorithms if you can understand the terminology in some of these books.

    Try learning C or C++ first because they are smaller languages and then moving onto more complex languages like Java, PHP and Ruby.

    Javascript is useful and HTML5 will be also.

    Tryruby.org
    codecademy.com

    Don't underestimate yourself and don't let teachers either,

    Best of luck :-)


  • Closed Accounts Posts: 70 ✭✭Eazzah


    Thanks for the helpful reply, Stamply!

    I'd consider myself great at some sections of Maths, such as algebra and others. I do have some difficulty at sections like Geometry and Trigonometry though, would that be a problem?

    I'll try some C++ and some PAWN, maybe read up on some HTML too.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    Eazzah wrote: »
    I have to endure a years worth of Microsoft Word, Excel, etc. :(

    Unless you are allergic to money you should really pay attention to learning Excel.


  • Closed Accounts Posts: 70 ✭✭Eazzah


    Excel I won't mind, if it's being taught ok. Currently, what we've learned so far after 5 IT classes is how to centre align a title in MS Word! This is going to be a long few more classes, luckily, however, I get something out of it in the end. (We are doing the ECDL's)


  • Registered Users Posts: 119 ✭✭Stamply


    Not a developer yet myself, so probably better if a dev on this forum confirms or denies what I've said there.

    What I've put down is how I'm learning to code at 25 - you have a good head start on me at 15 ;)


  • Advertisement
  • Registered Users Posts: 7,157 ✭✭✭srsly78


    Stamply wrote: »
    Try learning C or C++ first because they are smaller languages and then moving onto more complex languages like Java, PHP and Ruby.

    Other way around.

    Got no idea what a "small language" means, what you probably meant was high level vs low level languages.


  • Registered Users Posts: 377 ✭✭CarefulNow


    CoderDojos around the country will be starting up again soon. Go to one if there is one in your area.


  • Registered Users Posts: 119 ✭✭Stamply


    There should be a Coder Dojo in every school!


  • Closed Accounts Posts: 70 ✭✭Eazzah


    There's one in my area, too bad my laptop is a piece of crap!


  • Closed Accounts Posts: 5,482 ✭✭✭Kidchameleon


    Eazzah wrote: »
    There's one in my area, too bad my laptop is a piece of crap!

    A bog standard laptop from years ago is more than enough to learn programming on... Many of us here probably started learning on commodore 64's!

    *Edit: Oh just looking at PAWN there, looks allot like C and other languages. If you can do some PAWN code then you could easily move onto C, C++ or Java.


  • Advertisement
  • Closed Accounts Posts: 48 ermahgerd


    If I were starting again, particularly at that age, I'd start with Python.

    Easy to learn, well supported, easy to put projects together etc.


  • Closed Accounts Posts: 2,616 ✭✭✭8k2q1gfcz9s5d4


    Stamply wrote: »
    Try learning C or C++ first because they are smaller languages and then moving onto more complex languages like Java, PHP and Ruby.

    totally disagree! for a total begineer with no teacher or lecturer to look over their shoulder and correct the syntax errors the op would be mad to look at C++. I would suggest java or c# as a good start for an object orientated language.

    http://www.csharp-station.com/Tutorial.aspx

    good tutorial there, it contains links to visual studio express 2010 which you will need to download.


  • Registered Users Posts: 2,022 ✭✭✭Colonel Panic


    Starting with an object oriented language isn't the best idea in the world, or at least using the object oriented features of a language when first starting out is a bad thing.

    I think the motivation behind the C recommendation is that you learn about functions, variables, data structures, scope, passing by value and reference and at least being aware of the relationship between allocating memory and how data structures map to memory free from huge base class libraries that do everything for you, from stuff like lambdas, from other programming constructs like classes, templates or whatever.

    It also helps because you realise that everything else builds upon lower level languages.

    That said, it increases the learning curve and staring at printouts in a console or terminal window is pretty boring in a world where you see all these magical apps on phones and the like.

    So yeah, something like Python which can be used with minimal OO trappings and has a lot of libraries when you're ready to move beyond loops and conditional statements is a good bet in my book.


  • Registered Users Posts: 1,686 ✭✭✭RealistSpy


    Ah I started programming around your age aswell with VB6, Python and HTML. I would recommend python. Well depend on where you see yourself, a web developer, application developer etc. Do what you find interesting and fun.

    Also don't be afraid to go to your nearest college and ask any of the programming student to teach you something. :)


  • Registered Users Posts: 13,104 ✭✭✭✭djpbarry


    Eazzah wrote: »
    I'll try some C++ and some PAWN, maybe read up on some HTML too.
    You need to be more focussed. Pick one thing to start with. I would suggest C.
    ermahgerd wrote: »
    If I were starting again, particularly at that age, I'd start with Python.

    Easy to learn, well supported, easy to put projects together etc.
    Or, you could start with the language that Python was written in?


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    That is a ridiculous argument. Next are you gonna tell him to build the PC himself and code an os+compiler with assembler?

    Notice how universities all start with high level languages these days.


  • Registered Users Posts: 13,104 ✭✭✭✭djpbarry


    srsly78 wrote: »
    Notice how universities all start with high level languages these days.
    UCD don't. They still use C. And I'm really, really glad they do, because I'd be struggling now if they didn't.

    If you can programme in C, you can pick up the likes of Python and Java (and a whole bunch of other languages) very, very quickly.

    Ultimately it depends on what the OP wants to do. But, given that they're only 15, I see no reason why they should limit themselves. There's no reason why they can't at least have a go at C.


  • Registered Users Posts: 1,311 ✭✭✭Procasinator


    My opinion is that the best way to learn something is to have an active interest in it, and that quick results helps in keeping interest.

    If you have an interest in GTA modding and PAWN helps you achieve this, then that is what I recommend you try first.

    I don't know much about PAWN, but I'd start here:
    http://wiki.sa-mp.com/wiki/Scripting_Basics

    Then just start digging into the Wiki, they have articles like:
    http://wiki.sa-mp.com/wiki/PAWN_for_Beginners

    To start off, you just want a tight loop of reading and experimenting. Don't get bogged down too far in details, just have fun.

    A benefit of the modding community is often you'll have access to others people code, and seeing how others achieve their solutions is another great way to learn.


  • Registered Users Posts: 2,022 ✭✭✭Colonel Panic


    djpbarry wrote: »
    UCD don't. They still use C. And I'm really, really glad they do, because I'd be struggling now if they didn't.

    But that's you, not everyone.
    djpbarry wrote: »
    If you can programme in C, you can pick up the likes of Python and Java (and a whole bunch of other languages) very, very quickly.

    In theory, but I've seen plenty of programmers who write rotten C that have moved on to using C++ like C with classes and then carry on those bad habits to C#.


  • Closed Accounts Posts: 67 ✭✭Alexidium


    This is how I started and would recommend anyone to start:

    HTML
    CSS
    JavaScript
    Java
    PHP
    MySQL
    .
    .
    .
    Ruby and so on...


  • Advertisement
  • Registered Users Posts: 13,104 ✭✭✭✭djpbarry


    But that's you, not everyone.
    I think a lot of people would find it problematic to move from something like Java, where memory management is not something the programmer has to worry about too much, to C. Moving in the other direction is comparatively easier.
    In theory, but I've seen plenty of programmers who write rotten C that have moved on to using C++ like C with classes and then carry on those bad habits to C#.
    I’m not saying that programming in C will necessarily make someone a good programmer. But, I think getting a grounding in C before moving to something like Java will more often than not make someone a better programmer.

    As I said above, it all depends on what the OP wants to do in the longer term. But considering C has influenced so many languages, it provides tremendous scope for further learning.


  • Registered Users Posts: 586 ✭✭✭Aswerty


    If your learning in your own time I don't think it really matters what language you start with. If you go with a high level language you'll hit productivity quicker but will have a weaker understanding of the fundamentals but if you go with a low level language you'll gain a greater understanding of the fundamentals but it will take you longer to become productive.

    For someone starting out once they know their options they can pick which route they want to take and they'll reach the same destination either quicker or with more knowledge.

    I like the article Joel Spolsky wrote with regards to this debate http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html . MY opinion is it is fine to start off with a high level language but at some point you should be picking up a low level language to fill the gaps in your understanding. Or if not that then delving into how the high level language does things such as passing arguments, garbage collection, etc.

    With regards to the OP, considering PAWN is a descendant of a derivative of Small-C a subset of C I think learning C from a book while delving into existing PAWN scripts would be a good way to go. A nice tutorial here although maybe not suited towards someone learning to program.


  • Closed Accounts Posts: 5,857 ✭✭✭professore


    This guy is starting out. If he has an interest in PAWN (whatever the hell that is :D ) because of some game he is into then let him start there.

    Starting him doing bubble sorts and linked lists in C, or object orientation will put him off for life guaranteed. Plenty of time for him to start learning those later.


  • Registered Users Posts: 586 ✭✭✭Aswerty


    @professore Hacking around with other peoples PAWN scripts will only take you so far. Learning programming by buying a book, for C go for something like C for Dummies as opposed to K&R, that steps you through the various areas of programming is always the best approach IMO. From looking around the web PAWN resources don't look that great especially for a beginner.

    Also there is no requirement to go down the algorithm/data structures route of learning. Go for the 99 bottles of beer on the wall/tic-tac-toe route.


  • Registered Users Posts: 3,735 ✭✭✭Stuxnet


    for a gentle introduction id recommend

    http://www.educational-freeware.com/freeware/small-basic.aspx

    if that's a bit too easy, ease yourself into some java, and a brilliant beginners IDE is BlueJ, you'll need to install the java jdk first, before being able to run/compile your code

    http://www.bluej.org/about/about.html


  • Registered Users Posts: 446 ✭✭Ant


    Eazzah wrote: »
    There's one in my area, too bad my laptop is a piece of crap!

    If you haven't done so already. I'd suggest installing a light-weight GNU/Linux distro on your laptop. You'll get a lot more power out of your hardware and it'll be a good learning experience. It's also a great development platform. Best of luck.


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    These threads always turn into such a train wreck.

    Someone asks where they should start, and there are 20 different replies, making 20 different suggestions:

    - Some people suggest mega high level game programming frameworks like XNA. In my opinion, thats not a good idea, because there is too much 'magic' going on - the abstractions are so high level, its hard for the student to build a clean conceptual model of whats going on.

    - Other posters suggest starting at a very low level, because "if you start with C, you'll be forced to learn functions the hard way, and functions are useful".
    Theres merit to that argument, but I think thats a labourious way of starting, if you are hacking in your spare time.

    - Personally, I like the idea of starting with something in between, like Python.


    But:
    How is a beginner supposed to make sense of all these different opinions?
    How are they supposed to choose the right approach?
    Are we really helping the OP, when every 'how do I get started' turns into a debate between the different positions I outlined above?


    I suggest:

    1) A sticky 'How do I get started' thread. Yes, its not something that comes up with extremely high frequency - but its a pretty important topic.

    2) A well formulated standard answer. I suggest re-directing people to one, or several of the following:

    https://www.coursera.org/course/programming1
    http://www.udacity.com/overview/Course/cs101/CourseRev/apr2012
    http://www.khanacademy.org/cs/tutorials/programming-basics
    Coder Dojo http://coderdojo.com/

    Those resources are some of the best 'intro to programming' resources out there; getting stuck in to any one of those is probably better than receiving a debate on the relative merits of different languages.


  • Registered Users Posts: 1,686 ✭✭✭RealistSpy


    To be honest I believe the OP can research about each language and then figure out what would suit. At the end of the the day we all have our preference.

    So OP go out and experiment around, see what comes to you. Remember once you learn one language, other languages comes quicker.


  • Registered Users Posts: 760 ✭✭✭mach1982


    Check out http://thenewboston.org/
    Great site


  • Advertisement
  • Registered Users Posts: 13,104 ✭✭✭✭djpbarry


    fergalr wrote: »
    A well formulated standard answer.
    Is it really possible to formulate a standard answer to "Which programming language should I learn?"


Advertisement