Thread: Hello everyone :)

  1. #1
    Registered User FloatingPoint's Avatar
    Join Date
    Jun 2003
    Posts
    191

    Hello everyone :)

    Hi

    Very new here Just to make my presence known and hopefully welcomed

    The thing is I'd like to start learning programming, but not really sure how or where to begin.

    Some say to make the first step w/ Java, others w/ C++ and there's some that suggest that I go Visual C++.

    I dont really have an immediate goal, just want to know what to do when it comes to programming. Or perhaps this statement doesnt even merit..?

    Lately I've been into using/learning Linux and do some 'static' web designing. I've heard that if I want to do well in both of these fields I'd have to start learning programming.

    Any suggestion or word of wisdom highly appreciated, so that I dont easily lose hope once things get tough, since I know programming is not something that you become adapt at in a matter of a few days

    Thanx.

  2. #2
    Registered User codegirl's Avatar
    Join Date
    Jun 2003
    Posts
    76
    Just because the way the classes are set up at my school, the first language I learned was Java, and a little later I learned C++. I was able to pick up C++ after a while, but a lot of other students never really got it. I've always heard it's best to learn C++ then Java. Even though C++ is harder, once you figure it out Java will be a piece of cake. But if you learn Java first, you get used to Java doing a lot of things for you that you have to do manually in C++ (like memory deallocation). Java also catches more errors before it lets you run the code, while you can write tons of buggy C++ code and the compiler will let you run it! Finally, C++ has these funny little things called pointers that you use everywhere, which are totally foreign to Java programmers

    Don't know if that helped any...

  3. #3
    Registered User FloatingPoint's Avatar
    Join Date
    Jun 2003
    Posts
    191
    Thanx for the input.

    We seem to have registered in the same month

  4. #4
    Registered User
    Join Date
    Nov 2002
    Posts
    1,109
    You both registered the same day, and at that, welcome!

    Anyways, being you asked this at a c++ forum, most would recommend learning c++ first. c++ is what is behind visual c++, so you should learn c++ before diving into learning visual c++. I haven't programmed in java yet myself, so I can't help you there, but codegirl's response should help.

    I hope this helped some. Best of luck!

  5. #5
    Registered User
    Join Date
    Apr 2003
    Posts
    2,663
    Get a good book. I can recommend "Ivor Horton's Beginning C++". If you want to learn windows programming with MFC(Visual C++) after learning C++, get "Ivor Horton's Beginning Visual C++ 6". The first half of that book teaches you C++, and the second half moves on to Visual C++. Visual C++ involves "windows programming", which means you're using windows as the means of interacting with the user of your program.

  6. #6
    Registered User codegirl's Avatar
    Join Date
    Jun 2003
    Posts
    76
    I also recommend "C++: How to Program" by Deitel & Deitel. The first few chapters go over the very basics for inexperienced programmers, but if you make it through the whole book there are a lot of more advanced topics at the end. There's also tons of example code and a case study to introduce you to object-oriented programming.
    My programs don't have bugs, they just develop random features.

  7. #7
    Hardware Engineer
    Join Date
    Sep 2001
    Posts
    1,398

    Smile Welcome!

    [DISCLAIMER] I don't know Java.

    JAVA vs C++
    Simple programs are easier in C++. So, it's easier to start learning. And, short example-programs are easier to understand. It's better for learning the "nuts-and-bolts" of programming.

    GUI is easier in Java.

    If you took a Java class and a C++ class, at the end of the semester you would be writing "cool" GUI (Graphical User Interface) Java programs. Your C++ programs would all be console programs (text-based). You might start writing GUI C++ programs after 2 semesters of console C++.

    If you want to learn the details of how "programming works"... how computers "think"... about looping and branching (decision making), then start with C++. I think that command-line BASIC is the best language as an introduction to what programming is all about... But, command-line BASIC is getting rare.

    If you want to make cool, impressive programs ASAP, then start with Java.

    VISUAL C++ and GUI PROGRAMMING -
    Microsoft Visual C++ is not a programming language. It's a compiler. (To add to the confusion... Visual BASIC is a language and a compiler.) Visual C++ runs in a "visual" environment (Windows), and it can create console applications as well as GUI applications. These types of compiler packages are called IDEs (Integrated Development Environments). They include GUI syntax-highlighting editors, debugging tools, etc.

    Both Microsoft and Borland have free command-line compilers. You have to use you own editor (Notepad, etc). Although these run from a command-line, they can create Windows GUI applications.

    Writing Windows GUI applications gets rather involved... Compilers that can create Windows Applications have special functions that call the Windows API (Application Programming Interface). There are lots (over 1000) of WinAPI functions. These only work on Windows machines, so they are not part of standard-portable ANSI/ISO C++. (Java is a portable GUI language.)

    Visual Basic, MFC (Microsoft Foundation Classes), and Java (I believe) "package" these WinAPI functions, so you don't have to write as many lines of code yourself... Er, something like that...

    GETTING STARTED -
    Read "everything" on this site. Especially the tutorial and the Programming FAQ . Check-out the various links.

    Get a compiler. If you take a class, get the same compiler that the instructor and the other students are using. If you are self-learning, check the compiler links. More free compiler information at TheFreeCountry.com

    Also if you are self-learning, I recommend "Teach Yourself C++ in 21 Days" by Jesse Liberty. It covers the material clearly, then there are questions and exercises at the end of each chapter, with answers and solutions in the back. It is also a handy (but incomplete) reference book. [NOTE] Some people here seem to hate the "21 Days" books... I don't know why.

    Enough rambling...
    Last edited by DougDbug; 06-05-2003 at 01:49 PM.

  8. #8
    Toaster Zach L.'s Avatar
    Join Date
    Aug 2001
    Posts
    2,686
    I'll throw in a bit more about GUI's. No matter what you use, GUI's will not be simple in C++.

    For MS compilers (i.e. Visual C++), there is the MFC (Microsoft Foundation Classes). These are, in my opinion, not terribly well put together.

    For Borland, there is the Visual Component Library (VCL), which is written mostly in Delphi (aka Object Pascal). These are a bit easier to learn, and Borland C++Builder has a nice drag-and-drop style GUI designer.

    Both of the above, however, are Windows only, and don't really reach their full potential without the use of the Win32 API.

    There are platform independent GUI libraries out their too though. Qt is a good (although not free) one. Free libraries include GTK+ and the FOX Toolkit - both are pretty nice libraries.

    Learning C++, it'll be a while before you get to GUI's though.

    As far as C++ books, I'd go with Deitel & Deitel. The 21 Days books are decent, but you'd probably get more out of the other.

    If you really want to get into how computers 'think', as Doug was reffering to, I'd go with LISP or Scheme (a LISP derivative).

    In those languages though,
    (you (would (have (to (deal (with (lots (of (parentheses)))))))))

    Cheers
    The word rap as it applies to music is the result of a peculiar phonological rule which has stripped the word of its initial voiceless velar stop.

  9. #9
    guest___one
    Guest
    I was just reading this thread and had a few things to add. maybe it's a post more for seniors.

    I went through assembly language -> C -> C++ -> java and now I am about to go on to C# and J#.

    I've been around for these languages and I would say that you should start with a tiny bit of C for getting familiar with the syntaxe, then go for C++ for the Object Oriented programming and then maybe move on to Java.

    I have done a lot of Java this past year, and one thing for sure: it's very easy to program in java and therefore it's even more easy to produce the crappiest code on earth ever.

    java is a language meant to totally hide the OS it relies upon and to avoid to the programmer the hastle of dealing with memory. In my opinion, it should be used only when you need cross platform code or graphical interfaces.

    that's my piece of adivce:
    if you need low-level programming, go for C++
    if you need nice graphical user interfaces, go for Java.

    In my case for example I develop ActiveX and COM objects in C++ and wrap them in Java for a nice looking GUI.

    And I write most of my servers in C++. If they need a GUI, then I have a Java interface subscribing to them and pulling information out.

    oh, and by the way I believe Java from Sun will be deprecated very soon. J# and C# are the new technology. Very similar syntax without the burden of Java. The java language was missing a few keywords, Sun made a law suit for it => it resulted in J# and C#. I am not sure Sun really won.

    Java is supported my microsoft only until next christmas.

    So, go for C# and J# if you don't want to deal with old school languages that guys like me had to learn.

  10. #10
    Registered User FloatingPoint's Avatar
    Join Date
    Jun 2003
    Posts
    191
    Thanx for all the positive comments and for making me feel welcomed already

    OK, here's my plan in the very near future, I'll start w/ C++ and after a few weeks, say 4-5 weeks, I'll begin learning Java so that by the end of month 4, I'll know how to write almost-impossible-to-break encryption algorithm and in another project some DOOM III-quality game

    So that John Carmac wouldnt have to think twice to let me have a position at id software

    Thanx ppl

  11. #11
    Registered User FloatingPoint's Avatar
    Join Date
    Jun 2003
    Posts
    191
    As for books/references I got this one plus one or two ebooks, also an interctive learning CD by the Dietel Brothers.

    http://images.amazon.com/images/P/02...1.LZZZZZZZ.jpg

    Personally I prefer the good old fashioned printed material rather than having to stare long hours at a monitor screen.

  12. #12
    Registered User FloatingPoint's Avatar
    Join Date
    Jun 2003
    Posts
    191
    Some 900+ pages long. Wonder when I'll be able to cover all the topics in there...

    Hmm..do you think it's advisable to skip certain areas?

  13. #13
    Registered User codegirl's Avatar
    Join Date
    Jun 2003
    Posts
    76
    If you really want to get into how computers 'think', as Doug was reffering to, I'd go with LISP or Scheme (a LISP derivative).

    In those languages though,
    (you (would (have (to (deal (with (lots (of (parentheses)))))))))
    I'm not sure what Zach L. was getting at here -- in my Programming Languages class we learned that imperitive languages (C, C++, Java, FORTRAN, and most other common languages) most closely model the computer's architecture (hardware). That is, those languages do represent how a computer "thinks," more or less. (Of course assembly language most closely resembles what's going on with the hardware -- but I would not recommend that for a first language!) Lisp and Scheme are based on mathematical functions and do not model the underlying computer hardware, which is why they're usually slower. (But some programs are much easier to write in Lisp or Scheme than other languages, which is why people use them.)

    Anyway, you probably made a good choice learning C++ first -- once you understand what's going on in C++, you'll have a better idea of what Java is hiding from you.
    My programs don't have bugs, they just develop random features.

  14. #14
    Registered User FloatingPoint's Avatar
    Join Date
    Jun 2003
    Posts
    191
    Just d/loaded Bloodshed Dev 4.0 compiler. Installed it and everything seems to be ok. Hope its as good as anything else out there

  15. #15
    Toaster Zach L.'s Avatar
    Join Date
    Aug 2001
    Posts
    2,686
    Okay... perhaps the reference was a bit misleading. What I meant was Scheme type languages let you focus more on the logic behind the programs (hence the term 'think') rather than messing around with all the implementation details, such as C/C++.

    Hope that un-muddles things a bit.
    The word rap as it applies to music is the result of a peculiar phonological rule which has stripped the word of its initial voiceless velar stop.

Popular pages Recent additions subscribe to a feed