Development I Want to Learn How to Program.

Discussion in 'Software' started by NissanFrontier, 29 Oct 2003.

  1. NissanFrontier

    NissanFrontier What's a Dremel?

    Joined:
    18 Jun 2003
    Posts:
    312
    Likes Received:
    0
    I want to learn how to program but I want to know which one I should start with? I know HTML and I was wondering how much do the two differ? I also don't want to invest any money in this because I just turned 16 and don't have a job yet (can't drive for another 3 months because of a new law passed in my area). This is what I want to do as a career so I kinda want to atleast see what it's like before I go to college. I asked this question at another forums and it started a fight over which one is better so please don't do that here :)
     
  2. tkwsn

    tkwsn What's a Dremel?

    Joined:
    27 Aug 2003
    Posts:
    146
    Likes Received:
    0
    Well, programming is a bit different from web page designing. But it's a start. Learn JavaScript next, I would say, because you know HTML and JavaScript can be used to enhance web pages. After you know JavaScript, you'll be more familiar with programming. After that, learn C, preferably on DOS or Unix/Linux, so it's not so object-oriented, which isn't true programming. After you know C, Perl, PHP, and other languages will be easy. Plus, C is a very powerful language. After you learn non OOP (object-oriented programming), you can learn OOP and create Windows applications.
     
  3. ChillingSP

    ChillingSP What's a Dremel?

    Joined:
    11 Jun 2003
    Posts:
    863
    Likes Received:
    0
    I have to write that down. :hehe: :rolleyes:
    What do you mean with "isn't true programming ?"
    C++ is programming !! 90 % of real software is made with C++.

    My answer is: if you want to program as a career chose the language that is used by professional developer, C++.

    After that, as an hobby you can easily study VB, Perl or whatever ;)
     
  4. tkwsn

    tkwsn What's a Dremel?

    Joined:
    27 Aug 2003
    Posts:
    146
    Likes Received:
    0
    well, OOP isn't that bad (it's slow, though), but GUI programming isn't programming, it's puzzle assembling. I was really joking. C (and C++) is an excellent language. Perl is good for Web Scripts (I use it a lot - it's easy to learn if you know C), but that's really it.
     
  5. pranks7er

    pranks7er mange tout

    Joined:
    25 Dec 2002
    Posts:
    3,515
    Likes Received:
    0
    Try Python, i have the manuals downloaded and printed but havnt got round to it yet.
     
  6. kiltman

    kiltman Victory is Mine!!

    Joined:
    18 Jul 2002
    Posts:
    358
    Likes Received:
    0
    at the college im at we've learned vb, javascript, some kornshell (just a little) and now were away to do java and c++

    i would also say that if you only know html, then you should try javascript to start with, also you'll want to learn about programming constructs i.e. iteration, looping, and so on.

    all of these work in a simular way in each language just the syntax is slightly different in some
     
  7. RTT

    RTT #parp

    Joined:
    12 Mar 2001
    Posts:
    14,120
    Likes Received:
    74
    I never saw the point in javascript, it's an ugly language. I've been 'web-designing' for years and can't say i've ever really used it in a big way. Things like 'focusing' documents, re-directing, just the little things it's useful for, but 'learning' it...?


    Brush up your HMTL/CSS skills and then move onto ASP/PHP for a taster of 'proper' languages, then onto C/C++.
     
  8. kiltman

    kiltman Victory is Mine!!

    Joined:
    18 Jul 2002
    Posts:
    358
    Likes Received:
    0
    you can do alot of things with javascript. its just however used by many for doing crap things like pop-up's and disable right click (like those work anyway)
     
  9. NissanFrontier

    NissanFrontier What's a Dremel?

    Joined:
    18 Jun 2003
    Posts:
    312
    Likes Received:
    0
    Thanks for all the suggestion but I have a slight problem. I don't have a website any more or any reason to have one. So doing PHP and stuff like that is out. I know a little about Javascript but like I said it's been awhile so I'm a little rusty to say the least. So is there anyway for me to go straight into C++ this program sounds the best to me?
     
  10. ChillingSP

    ChillingSP What's a Dremel?

    Joined:
    11 Jun 2003
    Posts:
    863
    Likes Received:
    0
    Buy this book
    It's the best IMO. It starts with the basic C and then introduces C++.

    Or you can download Bruce Eckel's Thinking in c++

    Not as good as the first but it does its job and it's free. ;)
     
  11. Alaric

    Alaric code assassin

    Joined:
    3 Nov 2001
    Posts:
    2,881
    Likes Received:
    0
    Urgh, avoid JavaScript like the plague... really not worth knowing, especially if you then have to start dealing with cross-browser issues etc.

    C++ would be a good place to start, ignore tkwsn, OO is a nice way to program. It doesn't necessarily mean RAD or Visual programming though, which I suspect is what tkwsn means by GUI programming. Things can go wrong in C++ though, and if you're unconfident then you're less likely to do anything killer in Java. But that is slow.
    Java is also horribly verbose, and will give you RSI typing out the full path to an API class... but its OO model is pretty decent.

    PHP could be helpful if you already do web-development, it's got a syntax that is a crunching together of C++ and (mainly) Perl. Perl is in some respects a marvelous language, though not one I'd suggest for a beginner... as it can be quite tricky.
    If you are to go down the PHP route then be careful not to get into any bad habits that it allows, like not keeping track of the types of variables, dynamic variables... and the OO model isn't that nice, so I wouldn't recommend learning OO using PHP.

    Don't bother doing anything like Pascal or VB... they won't really get you any kudos with compscis, as they're pretty much dead (or should be ;)).

    As an alternative to the syntactical style of C/C++/Java/Perl/PHP then Python seems a nice language. It has a few oddities that makes me think they were smoking crack whilst defining it, but is otherwise a nice... albeit interpreted language.

    Personally I'd say C++ or Java, but if you are going to start with them then I suggest you do it thouroughly and really understand it. Most languages will be childs play to pick up after you know one of them, with the notable exception of functional languages... which just **** your brain over :p. Eckel is a good start, complete idiot's guide/teach yourself/dummies isn't, O'reilly books can be a little dry.
    Don't know what they have on the MIT OpenCourseWare site for programming, but they might have something of interest... it's always good to know about things like Algorithms when you're programming anyway.

    good luck

    Alaric.
     
  12. NissanFrontier

    NissanFrontier What's a Dremel?

    Joined:
    18 Jun 2003
    Posts:
    312
    Likes Received:
    0
    You read my mind because that was my very next question. How much of a chance is it to totally mess my system up? I might can get my hands on a OLD OLD computer to program on. It's a pentium 1 processor. Would I be able to program on it?
     
  13. Hargle

    Hargle What's a Dremel?

    Joined:
    13 Oct 2001
    Posts:
    404
    Likes Received:
    1
    It's really quite hard to completely break something. At worst you could hang the system and even that's difficult nowadays. The way protected mode works you're not going to run into many situations where an array out of bounds or something like that is going to start messing up other processes and files.

    About the worst I've had recently was debugging a program I had written that used window hooks to spy on window messages. Because the debugger also uses window hooks things got a little confused and I did need to restart once or twice. Generally though you shouldn't have any problems. That doesn't mean you won't have programs crashing all the time, that's just a fact of life, but they just close, you debug them and then hopefully they work :).

    It's not easy and it'll probably take you years to even start to completely grasp exactly what's going on but I would say it's worth it if you're interested.
     
  14. Deviate

    Deviate What's a Dremel?

    Joined:
    3 Jun 2002
    Posts:
    1,515
    Likes Received:
    7
    I'd say the earlier you start...the better off you are. Youcan learn faster when you're younger. heheh

    I've been programming for about 5 years now and I had no formal training...well I failed the only programming class I took in college. And now I'm programming for a large corporation...go figure! So here's how I did it:

    I started way back with html too. It was fun to play with, and nowadays, it can help if you want to get a job working with web apllications on a front end. The first programming language I learned was Perl. It's fairly simple and pretty straight forward. The great thing about it is there is a ton of online resources. And it's free! I started out modifying other peoples scripts and then started to understand them and began writing my own for parsing logs and things like that. You can write Object Oriented Perl. But it kinda defeats the purpose.

    VB is also a good language to get you feet wet with. It's great for creating a simple gui form with tabs and things.

    Next I went to Smalltalk. It is very similar to Java in a lot of ways. You basically code in English. It almost forces you to write Object Oriented code, which is the best way to code...I don't care what anybody says. Smalltalk is not something that is free, and there is not a lot of support for it these days.

    Next was C++. C++ is very powerful. Of all of the languages I know, it's still my favorite. It seems very logical and there are a lot standards in place. But you can get into trouble...memory leaks, fatal exceptions, crashing machines...but only while you are running your program. :D It's really not that easy to blow up a system unless you are really doing things you shouldn't be....like trying to mess with system resources.

    Now I mostly do Java. It's okay. Seems like it's what everybody wants these days. There's a huge online community and a lot of open source stuff. You can pretty much find someone who has already created what you need to do...you just have to modify it to meet your needs. But that also comes at a price....open source means free with no promised support. You have to rely on forums and things to get answers for a lot of it. JavaScript has it's uses...but I agree....stay away from it for most everything you do..

    As for running a development environment on an old machine, it depends on the language and IDE you're using. Perl, VB, even Java can run on old slow machines. C++...you'd be better off with something a little faster...especially if you start compiling larger programs. Same for Java if you use WebSphere Application Developer or IntelliJ or some similar development environment.
     
  15. NissanFrontier

    NissanFrontier What's a Dremel?

    Joined:
    18 Jun 2003
    Posts:
    312
    Likes Received:
    0
    Thanks Deviate that helps alot! I'm really trying to decide between Java and C++. C++ sounds the best but it sounds to powerful for me to start with. Java sounds like it would be the best to start with. I'm used to going to forums for answers :D so that does not bother me. What kind of stuff can you make with Java? What is a easy first time program to make besides the "Hello World" one.

    Edit: I just went to Java's website and wow it's alot harder then I even imagined. I did not know you had to go into MS-DOS I have had alot oh problem with DOS. I tried to put a game on my old computer which was Windows 95 and this game ran on DOS and it messed my system up big time. I got hung in some kinda of DOS loop atleast thats what the guy told me. So why do I need to go into DOS? I really don't know about messing with DOS.
     
    Last edited: 30 Oct 2003
  16. ChillingSP

    ChillingSP What's a Dremel?

    Joined:
    11 Jun 2003
    Posts:
    863
    Likes Received:
    0
    C++ and java are similar.
    A java program is usually slower than a c++ one and java is poorly used in professional applications.
     
  17. Deviate

    Deviate What's a Dremel?

    Joined:
    3 Jun 2002
    Posts:
    1,515
    Likes Received:
    7
    There is a lot of stuff on the java.sun.com site, plus lots of other sites out there. Maybe try Java Boutique. There are some examples on there that you may be able to run through to get an idea of what's going on. It says they are simple but requrie some basic programming knowledge.

    You don't have to go into DOS, but it's going to be the easiest way to compile your programs unless you use an IDE of some sort or Ant. When I first started java I used TextPad. You can get it at textpad.com. It has a "compile java" function. You can also download syntax libraries so that things will be spaced and colored like an IDE would do. These days I use IntelliJ or WebSpere. But I only do this at work. When I'm at home I'm too busy playing DoD or modding. :D

    The most important thing, is don't get overwhelmed. You have to approach it from the standpoint that you want to have fun and learn something new. If it stops being fun, take a break or you can get burned out real quick. Java is a fairly advanced language. Most all of the tutorials and all are going to assume you have some knowledge of programming.
     
  18. NissanFrontier

    NissanFrontier What's a Dremel?

    Joined:
    18 Jun 2003
    Posts:
    312
    Likes Received:
    0
    What is IDE? What is the worst I could do to my system with java? Also what are some programs that use Java besides the yahoo games?
     
  19. NiHiLiST

    NiHiLiST New-born car whore

    Joined:
    18 Aug 2001
    Posts:
    3,987
    Likes Received:
    6
    IDE = Integrated Development Environment

    Basically a program to edit your code that 99% of the time will colour code it for you and offer various functions like compiling, debugging etc.

    Not a lot of programs use Java because for most things it doesn't have much use (please don't start a flame). It's main plus points that it's platform-independant and can be embedded easily (applets on pages, J2ME on phones etc). A lot of universities seem to teach Java which always seems odd to me considering how few jobs there are programming it compared to other languages.
     
  20. Deviate

    Deviate What's a Dremel?

    Joined:
    3 Jun 2002
    Posts:
    1,515
    Likes Received:
    7
    IDE is Integrated Development Environment. Basically it is an application such as Visual Cafe, IntelliJ, WebSphere, etc that brings all of the common development tools together in one application. So you can use it to write code, compile code, execute code, debug....everything. Typically, an IDE is going to cost money. That's why I was suggesting textpad. Heck...I would download textpad regardless. I use it for html, perl, java....it's just a great text editor.

    I don't think you can do too much damage at all to your system by playing with Java. Really the only thing that my Java environment really has to do with my system is that the JDK is listed in my system path.

    Java programs are generally going to be web based. Any website that uses JSPs (Java Server Pages) are using Java. You'll see those on sites that have a lot of forms that collect information and send it servers to be processed. Like order forms and things.

    But java can do a lot more than that. We use it for our UI, middle-ware and work flow systems. But that is in a business environment. We use it for rule processing (there is an open source project called drools which is very fast for processing rules based decisioning). So we use it for translating messages that are being communicated between different protocols.

    For example, a web application needs to retrieve some data from a host system. That host system may be written in cobol and provides only an IMS interface. So we have a Java middleware component that acts as a translator to take that HTTP xml request and convert it into a string that the host system can understand and vice versa.

    It's not a language you're going to see Doom3 or HL2 written in. C++ is much more powerful and suited for something like that. Typically java is what you want to use for business applications that are broken into small, reuseable pieces that can run on any OS....especially in a web application server environment.
     

Share This Page