1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Development What programming language should I learn?

Discussion in 'Software' started by PA!N, 12 Sep 2005.

  1. PA!N

    PA!N What's a Dremel?

    Joined:
    16 Jul 2005
    Posts:
    697
    Likes Received:
    4
    Ok so I'm a total n00b when it comes to coding etc. ... BUT
    I want to change that ,the prob. is I cant decide which language
    I should learn ?Mabe Visual Basic?Any suggestions?
     
  2. ErisDS

    ErisDS What's a Dremel?

    Joined:
    15 May 2004
    Posts:
    190
    Likes Received:
    0
    It all depends on what you want to do.
     
  3. hitman012

    hitman012 Minimodder

    Joined:
    6 May 2005
    Posts:
    4,877
    Likes Received:
    19
    VB is a good one for getting to grips with the basic principles of programming - you'll find that other languages get difficult a lot more quickly. Once you understand these ideas, you should find it a lot easier to move onto a more advanced language like VC++ or similar.
     
  4. SteveyG

    SteveyG Electromodder

    Joined:
    23 Nov 2002
    Posts:
    3,049
    Likes Received:
    8
    I think most people generally start off learning C, C++ or Java. Certainly C should start you off well.
     
  5. RTT

    RTT #parp

    Joined:
    12 Mar 2001
    Posts:
    14,120
    Likes Received:
    74
    I'm going to disagree.

    Moving from Visual Basic to C++ will be really, really hard. It should actually be the other way around. VB teaches you hardly anything about programming because it does absolutely everything for you - all you need to know to write VB is the syntax and the absolute basics of programming (that's the point of it ;)).

    You (as in anyone wanting to 'learn to program') should learn the lowest level language you possibly can first so that when you reach a high level language (such as VB, Java, C# and the other .NET variants) you actually understand what is going on. Starting lowest first will also allow you to program a lot better in a high level language for the same reason.

    Low level -> high level. It generally doesn't work the other way around. Which is why I think it's absolutely absurd that universities like to teach students VB first and then move them onto assembly and C - it breeds bad programmers. These are the same Uni's who claim that they prefer to teach people with no prior programming experience because then they don't have to correct all of their bad programming habbits :confused:

    I'd recommend learning C up to a point of being reasonably confident with it then progressing to a higher level language of your choice, be it VB, Java, any .NET flavor... whatever :)
     
  6. hitman012

    hitman012 Minimodder

    Joined:
    6 May 2005
    Posts:
    4,877
    Likes Received:
    19
    You've good a good point - I started with VB and taught myself that before learning PHP, C etc and I think that it did really help. However, I never thought of it in the way that you've put it, and now that I've read that I think that it would indeed be beneficial to start on a lower-level language.
     
  7. Hepath

    Hepath Minimodder

    Joined:
    20 Oct 2003
    Posts:
    730
    Likes Received:
    0
    I agree with RTT. In fact I'll extend his argument....

    People these days concentrate too much on programming langugages rather than training themselves in programming and software design principles.

    Personally I think people should be taught Structured Programming, followed by contrasting Object Oriented design with traditional procedural code. This should be facilitated by a *choice* of programming language; which should be a language applicable to all paradigms. To this end I would choose C. This would be extended to C++. This allows the pratical application of programming methodologies without the constraints of the language.

    Personally I think there are niche areas... real time; assembler and their ilk, which are specialisms of the programming sphere and should be treated separatley.

    VB? I laughingly call it Visual B****x - it hides much from you, tries to be too clever and ends up mutilating the registry and other things.

    Universities love it because muppets (err ok, non-tecchie courses like accounting, tourism or fine art) find it easy and intuitive - they should! It was orginally conceived and designed as a prototyping tool!! However it was a victim of its own success and the RAD brigade took it over. The rest is history.

    C++ is more intrinsically difficult to learn - you have to think of pointers and indirection and memory management - so academia leaves that alone for the most part (we'll only let the *intelligent* ones near that!)

    This is not to say VB6 and C++ are mutually exclusive - I've programmed in both for over 15 years now as well as the next pretender: the .NET environment.

    The question is does the underlying language affect your ability to program. The answer is YES. Just a like a builder, a decent applicaiton should be left to design an application choosing the tools which fit the job.. this might be a VB front end talking to C++ objects or VB all the way through.

    Yeah this is a rambling thing and in parts grossly generalised; but having worked in a number of companies I am just astounded by the number of people who know a language, but cant use it, nor create a decent application if their life depended on it!

    My advice - take up C++ and learn not *what* to program, but *how*!
    Look for "patterns" in the code - you'll be amazed at how often different topic, applications or spheres of work utilise the same "patterns" - finally this dawned on someone and wrote a book on the thing that most decent programmers had been using tacitly for years!

    ...erk almost a rant! Sorry :blush:
     
  8. PA!N

    PA!N What's a Dremel?

    Joined:
    16 Jul 2005
    Posts:
    697
    Likes Received:
    4
    Thanks a lot for the Replys, guys! What I wanted to do is "lear to hack"
    just like that... :worried: after reading some tutorials I noticed that they teach me how to use programs that somebody else made...
    BUT THAT IS NOT WHAT I WANT TO LEARN!
    I want understand how programms work and how I can controle
    and manipulate them...If you know what I mean ?!
    Thats why I asked which language would help me the most to get
    an idea of how they work (dont want to be a skriptkiddy)! :D :hehe:
     
  9. MiT

    MiT Don't feed me after midnight!! nom

    Joined:
    18 May 2005
    Posts:
    736
    Likes Received:
    12
    I guess if you learn the basics of programming , you can learn how to control them. "learn how to crawl, before you learn how to run"

    Pick a language, start from basics. I agree with some of comments above, learn the basic that all programmes use, like "if loops", "for loops", functions and other stuff. Each language ha its own way of working, but all follow a simlar pattern. Some you have to define functions at the begining, some you can define as you go along. (This will make sence after some reading)

    I sugguest you search the web, for specilist web sites on coding, and read thier information.

    the order i have learnt programing are as followes, starting from past to present.

    Turbo pascal, (College)
    (Below at Uni)
    C
    C++
    Micro Assembly
    PHP, MY SQL, HTML,

    I only learnt from books, guides and practise, help from friends.

    Theres so much out there to learn, you have to be carfully, and be willing to spend alot of time.

    EDIT: If you want to make ur own programes am guesing you need C++, and Visual basic. may be .Net. Am not sure.

    Good luck
     
  10. VincentVega

    VincentVega What's a Dremel?

    Joined:
    13 Aug 2005
    Posts:
    60
    Likes Received:
    0
    I second the comments on Visual Basic. Don't bother learning it - it may be pretty easy to pick up compared to C++ or whatever, but quite frankly, it's a dreadful programming language (I've been programming in VB5/6 for around five years and in VB.NET for about three). In its pre-.NET forms, it is very inflexible and in all its forms, the syntax is clunky and long-winded. At work, I am in the middle of developing a large (100000+ line) application in VB.NET; if it were in C# instead, I would easily be a week or more ahead of where I am currently. VB is clumsy and overly-verbose, especially when you are dealing with stuff like reflection, inheritance and the like.

    Your best bet, if you want to do some Windows application programming is to learn either C# or C++. Of the two, I'd recommend C# to start off with, as it's simpler (no pointers and the like to worry about). There are plenty of resources out there (books, websites, etc) as well and Visual Studio .NET is a first-class development environment. C++ is more complex (certainly if you do Windows API/MFC/ATL), so it might not be a good idea to jump in at the deep end and learn this at first. If you learn C# (or Java, for that matter) first, it shouldn't be too big a deal to pick up C++ later on.

    Other languages you might want to consider are PHP (for web stuff), Perl or Python.

    Once you've decided on a language, you need to try and learn the basics first - all the various flow control statements (if, while, do, etc). Don't try and produce a killer app straight away - that can wait. It is important that you get to grips with (as mentioned above) structured programming, OOP and so on. Write simple console programs (e.g. not WIMP ones) at first and then graduate on to GUI stuff like forms, buttons and list boxes.

    IMHO, learning a programming language in your own time is far better than going on a course. I have been programming since I was around seven or so, typing in listings from magazines (this was in 1983, when such things were common). I have never been on a course to learn a programming language and I think that I am a better programmer for it. In the various jobs I've had, I've come across countless individuals who have learned VB or whatever by going on a course. Because they've been on a course, they think that they're the best programmer since Kernigan and Ritchie (pioneers of C et al). When I look at their code, it's complete garbage: it's inefficient, jumps all over the place and looks plain ugly when you view it in an IDE. There are no comments in the code to explain what it's doing (which isn't usually a big issue as the code is no simplistic that it's fairly easy to figure out). They use hideous and pointless naming conventions (e.g. Hungarian notation), ending up with ridiculous variable names like v_strUserName and insist on all kinds of weird programming practices like only DIMing one variable per line (which is fairly wasteful and takes up lots of screen real-estate).

    The order in which I learned:

    1. BBC Basic (a good variant of BASIC!).
    2. C.
    3. ARM assembly language.
    4. C++ (a bit rusty now).
    5. HTML (not strictly a programming language).
    6. VB 5 (yuck).
    7. PL-SQL/SQL (Oracle).
    8. VB.NET.
    9. C#.
    10. T-SQL/SQL (SQL Server).
    11. CSS and XML (again, not strictly programming languages).
    12. Python (well, a little).
     
  11. finboz

    finboz What's a Dremel?

    Joined:
    11 Aug 2004
    Posts:
    403
    Likes Received:
    1
    how about python, ive had a try at this and seems to be aimed at noobs like myself
     
  12. MiT

    MiT Don't feed me after midnight!! nom

    Joined:
    18 May 2005
    Posts:
    736
    Likes Received:
    12
    I heard SQL is a good program to learn, good career prospects. What comments would you give to this language? Dis/Advatages. Social aspects, like career, easy to learn, e.t.c. If this is off topic am sorry, but since its infor regarding what language to learn i hope its ok to ask.

    cheers guys.
     
  13. planki

    planki ...

    Joined:
    20 Dec 2003
    Posts:
    1,132
    Likes Received:
    0
    sql isnt a programming language per se, its the language used to control/manipulate/edit databases etc hence why its called Mysql, MSSql etc.

    You can learn all of the commands and functions etc in sql to learn how to control the databases fully from the command line and end up being a database engineer or something along those lines if you really want.

    But it's not really a programming language, but you can use it with a programming language such as php, asp etc
     
  14. dfhaii

    dfhaii internets

    Joined:
    24 Mar 2002
    Posts:
    520
    Likes Received:
    0
    You could give java a bash, its very good for learning OOP and the sdk is a free download. C++ is also a good one, I never bothered with C myself and went head first into C++.
     
  15. doryakov

    doryakov What's a Dremel?

    Joined:
    8 Aug 2005
    Posts:
    254
    Likes Received:
    0
    you cant run when you dont know to walk . all programming program have a base . learn the base and after that make a progress step by step until you know perfect the programming language . to be a hacker you must to learn perl , c , c++ and more . all the language have the same principles but the different between them is the writing . so if you want to be a hacker you must to learn some programming languages .
     
  16. Hepath

    Hepath Minimodder

    Joined:
    20 Oct 2003
    Posts:
    730
    Likes Received:
    0
    /agree!

    CAVEAT: I do not condone hacking in any sense! "Hacker" used to be slang for those people who were the elite of the elite programmers. These days it means any person able to to have 2 brain cells and a copy of NuMega dissaembler/debugger.

    If you must go down the hacking route you need to know how people write programs - my point about patterns becomes even more relevant.
     
  17. NoMercy

    NoMercy What's a Dremel?

    Joined:
    23 Nov 2004
    Posts:
    161
    Likes Received:
    0
    1. BBC Basic (a good variant of BASIC!).

    Amen to that brother :)


    I'll not list my set of programming languages, the first was Amsoft/Amsdos basic though... I'd recomend C as a good language to start with, and don't expect to start with anything grand, most people start off with simple text input, and printing things out on the console/dosbox. Admitidly it's probably worth looking at C# after youve worked out the basics, if your not programming on linux then you'll almost certanly want to start using windows GUI elements and that's probably the safest way to do so :)
     
  18. Hazza

    Hazza What's a Dremel?

    Joined:
    25 Nov 2003
    Posts:
    467
    Likes Received:
    0
    as someone who learnt VB and is now looking at C++, I can vouch that it's really hard
     
  19. OneSeventeen

    OneSeventeen Oooh Shiny!

    Joined:
    3 Apr 2002
    Posts:
    3,454
    Likes Received:
    2
    I definitely agree with most arguments here, definitely start with C and understand the core of programming (data structures, variable types, and such).

    I also think that we need to take the concept of hacker back. There are still guides to hacking reputable software apps, because hacker is still hanging on as a good term as long as we don't remove the positive definition and start associating malware with hackers.

    Hackers aren't the type that would involve themselves in malware.

    (I'm reading "The Hacker Ethic" right now, so I'll probably be on about this for a while :p )

    But definitely teach yourself programming basics, I liked "C Primer Plus" an old Waite's (sp?) group book, which went in-depth while assuming you've never looked at programming before.

    Edit:
    Hacking, in my opinion, is about spreading information (in a legal manner), and the best way, is to enhance Open Source products that are out there, such as writing firefox extensions, hacking PHP, and things like that.
     
  20. Cyberbob:-)

    Cyberbob:-) Minimodder

    Joined:
    16 Jun 2002
    Posts:
    672
    Likes Received:
    1
    I was told my the college I went to, (night class that is).

    before I should learn C++ I need to do a structured language which I did.

    COBOL now I'm still stuck trying to learn C++.

    Which C++ is the best?
     

Share This Page