Author Topic: programming???  (Read 18173 times)

chowderhead

  • *
  • Posts: 162
    • View Profile
    • http://www.geocites.com/bigchowderhead
programming???
« on: 2001-08-31 18:42:00 »
Okay, so since I got canned last month, I've went back to my (previous) and whoop-de-doo, it still sucks.  So I've went back to school (community college, so I can take night courses) and I'm out for something.  Not quite sure what I'll do yet, but something related to computers.  Now here's the rub.

Since I had to take some prerequisite courses before I could dive into the 'meat' of what (I think) I'll need, I had an extra class I could take to fill things up.  Soooo, I took one in BASIC programming.  So far, it's pretty cool, and I'd think I'd like to take some more programming classes in the future.  So here's my question:

If I do go farther than this with it, where should I go next?  C?  Java?  Are they all pretty much related on most of the basic concepts?  I know you can't decide for me, but I'd just like some of your opinions...


Alhexx

  • *
  • Posts: 1894
    • View Profile
    • http://www.alhexx.com
programming???
« Reply #1 on: 2001-08-31 19:30:00 »
Well, I'm currently programming in VB. I like it, b'cause it's quite easy - MUCH more easier than C/C++ or anything else.

But there's something else: VB isn't the most popular language here (ask SaiNt or Fice    :D ). I'm currently trying to learn (MS Visual) C++ (6) - it sux! It's quite hard to learn it...I mean, you've got to insert a lot of code... but I'm going to learn it anyway, b'cause I WILL need it in the future...(b'cause of that cross-platform and source-from-other-guys-thingy...)

My Tip: If you are going to program a bit, you should try to learn VB. If you are going to program more, you should learn Delphi (Fice: Yeah!). If you are going to program REALLY professional or cross-platform (Windoze, Mac, Linux), or you want to use source from other programmers on the world then you should learn C++ ...

Okay, at least that's my opinion. I'm quite sure that SaiNt and Fice MIGHT have other opinions...

- Alhexx

- edit -
Added some comments and:
'bout that source-from...:
I know that there's also a lot of source available for VB or Delphi...but most 'normal-user' tools are programmed in C(++)

- edit 2 -
Hey, that's my 255th post!
I wonder if I can post on or do I have to use a 2-Byte Integer?  :)

[This message has been edited by Alhexx (edited August 31, 2001).]


chowderhead

  • *
  • Posts: 162
    • View Profile
    • http://www.geocites.com/bigchowderhead
programming???
« Reply #2 on: 2001-08-31 19:39:00 »
Visual basic is an option as well, but I know what you mean about the *ahem* venom dripping and flaming arrows when you mention it  :wink:  that's why I didn't bring it up before.  


eerrrr

  • *
  • Posts: 1020
    • View Profile
programming???
« Reply #3 on: 2001-08-31 20:22:00 »
I'm gonna start programming in VB. The bloke who I'm buying VB off decided to go on holiday, so now I've got to wait even longer  :x. But hopefully he'll be back next week. If you're gonna learn VB chowderhead take a look at  http://www.vbweb.co.uk" TARGET=_blank>VB Web , thats what I'm gonna use to learn it. I'm hoping that once I get to college, I'll be pretty good at VB, and maybe they'll have a C course running so I could start learning that too.

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
programming???
« Reply #4 on: 2001-09-01 16:08:00 »

I'd regard VB as a bad move, purely because there's nowhere to GO from it. If you learn Delphi (or C++, or Java) you can probably use any OOP language - which is most of the main ones - without too much effort beyond syntax changes. VB isn't properly OO so switching to a PROPER OO programming language afterwards is a real shift - there's so many things to get used to ... you're far better off starting with OO from the beginning. I, of course, recommend Delphi, simply because it's well designed, OO, AND easy to use. C++ is an option, but it is a bit complex for a beginner. Java isn't much use for a home user, but it's a fairly good language generally.

BTW, if you go to any half-decent university, knowing Basic/VB is marginally better than not knowing programming at all, but not much - and I'm not exaggerating there. What languages have I touched in my first year?

-C
-Java
-SML
-Assembler
-Perl
-A very small amount of pascal

Knowing VB means you'd have a basic knowledge of how programming works, but that's all ... knowing just about ANY other language would give you skills in something specific - like object orientation (*very* important - I can't really emphasise that enough) - which would be a big boost on lots of topics. Java, Delphi, or C++ would all give you that, and make uni a lot easier. Plus you've got a good chance of USING one or more of those languages! The chance of a proper computer course needing VB are very, very, very low.

VB is just about OK for people whose main job isn't programming, or even computing. The accountant who needs a small macro in Excel, say. If you're serious about computers at all, though, just DON'T touch VB. PLEASE. It won't help you much.

[This message has been edited by ficedula (edited September 01, 2001).]


eerrrr

  • *
  • Posts: 1020
    • View Profile
programming???
« Reply #5 on: 2001-09-01 13:20:00 »
Argh, well I've kinda bought VB now. I guess I will take Delphi or C or whatever if they have them at college, but I'll give VB a go first.

Alhexx

  • *
  • Posts: 1894
    • View Profile
    • http://www.alhexx.com
programming???
« Reply #6 on: 2001-09-01 13:43:00 »
Fice: Wooo, that's hard...

Fice 2: What the heck is OO?

....

- Alhexx


Anonymous

  • Guest
programming???
« Reply #7 on: 2001-09-01 13:51:00 »
Message.

Sir Canealot

  • *
  • Posts: 900
    • View Profile
programming???
« Reply #8 on: 2001-09-01 17:15:00 »
Hmm.
A freind of mines cousien although only 18 knows C++ damn well. Hes getting quite a name for himself apprently.

He said to me and my freind with programing its best to five into the pool(with C++) then get in slowly(with Vb).

Thats all I have to say on the subject though.


Ant

  • *
  • Posts: 402
    • View Profile
programming???
« Reply #9 on: 2001-09-01 19:45:00 »
Fice:  Isn't VB.NET going to be totally object orientated?

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
programming???
« Reply #10 on: 2001-09-01 20:59:00 »
OO does mean Object Orientated, yes. How to explain. Oookay, this is gonna get long...

In most programming languages, you can define your own "types". Then you can declare variables of that type (which store that sort of information, which use your "template", however you want to look at it). VB will do this.

Now, objects contain methods - code - as well as data.

Don't understand? A record (NOT an object) is a "type" that contains ONLY data. Like:

MyType = record
    Age:     Integer;
    DOB:     Date;
    Height:  Integer
.....
etc.
etc.

So then you can declare variables of type "MyType" , eg. Person1: MyType, Person2: MyType, and do

Person1.Age = 23
or
Person2.Height = 100

or whatever.

Now, with objects, your type could also have code (methods) in it. So as well as that, you could also do

Person1.ShowDetails()

which would run some code, ShowDetails, associated with that type which - presumably - popped up a nifty little window showing their details.

I think the later versions of VB can do this, too. It's still not full object orientation.

With proper OO, your type can "inherit" from another one. For example, I could do

MyNextType = class(MyType)
end;

and I've got a new type which AUTOMATICALLY has all the variables, methods (code), and so on that MyType had. And I can add more in, of course.

Now the clever thing is, say some code is expecting me to give it a MyType variable. I *could* give a MyNextType and it'd still work perfectly OK - after all, it still has all the data and code that MyType does! So it works fine.

This is cool, then. You can have general types that all your code works on, and then a few more specific cases you store EXTRA data, methods, and so on - but all your old code will still work with it, since you've just *added* stuff on. All the data the old code needed is still there in your new data type.

This STILL isn't OO though! For PROPER OO, you need abstract and virtual methods.

What THIS means is: Say I've got a type, TPerson (like the MyType I showed above). It contains these properties:

Name
Age
Height

And it contains these methods (code):

ShowDetails()
GetTelephoneNumber()

(presumably, ShowDetails pops up a window with details in it, GetTelNo looks up their number in a database or something. Who knows. Who cares.)

Now, say we declare ShowDetails() to be ABSTRACT. What THIS means is, we don't write any code for it! Seems silly? All will be revealed .... all we define is the name of the method and what parameters it takes (any data we need to give to it, for it to work).

Now, we declare two NEW types, TCustomer and TEmployee. They obviously both "inherit" from TPerson (they're more specific examples of a Person, so they need everything a person has - plus some more specific data, like Rank for an employee, or CustomerNumber for a customer).

Now, in both of those, we now write code for the ShowDetails method! The employee ShowDetails obviously needs to do different stuff to the customer one, so each has its own version.

Now comes the clever part. Say you're dealing with a person. You've got a variable P of type TPerson. What you can do now is call P.ShowDetails(). But Person doesn't have a full ShowDetails() method, I hear you say! Well, this is the clever part. You could actually have an Employee variable here - since Employee is a kind of TPerson! Or you could actually have a Customer variable. Now, the language will either call the Employee or the Custom ShowDetails() code for you. You don't have to tell it which one to use! You don't have to test, "oh, what type of person is it, well, if it's this type, run this code, otherwise, run this code" - the computer will figure it out for you. In fact, YOU don't need to know exactly what type of Person it is at all. The computer will figure it out even if all you know is "there's SOME sort of Person here".

I hope you understood that  :wink: I probably didn't explain it very well. But trust me, OO is VERY useful. The Remake engine relies on it for practically all of the rendering (display) and input code, and believe me, it saved me hours of work.


eerrrr

  • *
  • Posts: 1020
    • View Profile
programming???
« Reply #11 on: 2001-09-01 21:26:00 »
Wow, you know I think some of that made sense to me. Like the words, but when I put the words together it became kinda strange. So does VB really suck that much? Should I start straight away with C or C++? I'll see if I can change the program for....Vicual C? Is that the program used? Man, from what fice just wrote I think it's gonna take me a long time to get to grips with programming.  :(

dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
programming???
« Reply #12 on: 2001-09-01 21:35:00 »
Woah, congrats on one of the longest posts on this board (I think). I didn't read it because I know what OOP means...

Anyway, I'm going to be even more radical than the others in here. The others have proposed mainly tools for creating graphical applications:
 - VB should of course be avoided as the plague
 - Microsoft Visual C++ should be avoided because it makes you learn the Microsoft-infested horrible library known as MFC (they use CONSTANTS for communicating types of events for crying out loud! Every windows message is a given number! I mean, everyone knows (well, should know) that if you are even thinking about adding a "switch" statement to a C++ program then you are dealing with some very bad design decisions...)
 - Delphi is probably the one most beginner-friendly, and also it has a lot of good principles. My main problem with Delphi is that it is mainly graphical...

To really learn programming one should begin with console programming (at least that's the traditional approach). This means writing what you might describe as "an obsolete DOS text-based program". The thruth is that most text based programs are still far better than most graphical ones (not games of course), you should care more about learning how to code than eye-candy. I just programmed from Windows on a Linux box on the other side of Europe...try doing that with a windows system.

But, Delphi is nice if you are addicted to the windows GUI way (otherwise you should start with console C++ programming). And, you can download Delphi 6 for free at http://www.borland.com." TARGET=_blank>www.borland.com.

Later on, when you have learned programming, you should always learn new languages. The most useful thing now is to become really really good at OO (at least to the level that you know "programming patterns" (like the very useful visitor pattern (related to my "switch"-rant above)) and how to use them). Then, they way further would be looking at the languages that use other paradigms like Common Lisp, ML and such. I haven't gotten that far yet myself but I have a growing suspicion that those really are better than the OO that has become popular (OO isn't everything, there is better paradigms out there they just aren't widely used).

To sum up: Get a book on whatever you want to learn (which should be either C++ console-mode programming ("C++ for Dummies" does the trick as it has a very good explanation of polymorphism/virtual functions, if a somewhat shallow description of the language...the thing is you don't want to dive deep yet!), or Delphi grapical app programming).


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
programming???
« Reply #13 on: 2001-09-01 22:16:00 »
(You don't need to pay attention to this if you're learning programming ... it's a reply to Dag).

I've learnt ML (well, SML, which is basically the same) and ... it's freaky. First of all you think "that's crap!". Then you realise that for some things it's incredibly efficient and concise. But then you realise that at anything else, it's REALLY crap.

Which doesn't mean you shouldn't learn it, of course - every language has pros and cons. ML just has EXTREME pros and cons.

For those of you who wonder what ML is ... well, it's a functional language. You can't (well, aren't supposed to) issue any commands. The main thing this boils down to, for newbies to ML, is that there aren't any variables. Or at least, you can't change the value of a variable - once it's set, its fixed.

If you're a programmer already, you're probably thinking "that's crap!". Well, congrats, you've just entered Stage One like I documented above  :wink:

(No variables - that's not its selling point, of course, but it was the main thing everyone learning it complained about at the beginning - understandably, if you're used to normal "imperative" programming).

So what is its selling point? Well, for one thing, instructions can be executed to some extent out of order and it doesn't make any difference. The main advantage of THAT is, you can execute ML programs in parallel (ie. on multiple CPU's simultaneously) without designing them to do so specially.

Damn, that was TOTALLY off topic wasn't it? Urgh.


Alhexx

  • *
  • Posts: 1894
    • View Profile
    • http://www.alhexx.com
programming???
« Reply #14 on: 2001-09-01 22:51:00 »
I've saved this site to my comp so I can read it offline  :D

- Alhexx


The SaiNt

  • *
  • Posts: 1300
    • View Profile
programming???
« Reply #15 on: 2001-09-02 12:24:00 »
Well of the above, let's say I'm best at C. (Slowly moving to C++)

I've touched Visual Basic before, and I can tell you that Visual Basic is simple. Honestly, thats where its good points stop. VB is many abstraction levels higher than C so you can expect it to be much easier to understand, but after a while you'll find out how limiting it is. It's alright if you need to write something quick and dandy.

I went throught some of the MFC classes and all I have to say is, it sucks. Unfortunately, I have to stick to it cause I've been having problems looking for resources on how to build "windows" using the console. So, most of my written programs are "console" based.

I've never touched delphi before so I wouldn't be too sure. I'm starting Java in November I think. It's part of my course so it isn't my choice   :wink:

I wouldn't recommend VB at all. Go ahead and start with C/ C++. It doesn't matter if you start with either of them, C++ is a superset of C so you don't lose out either way. However, IIRC, there are slight differences if you use specific C / C++ compilers I think. If you start of from C & progress to C++, you'll really appreciate OO   :wink:
Using classes, inheritance & polymorphism really kick ass   :wink:

*EDIT*
Did you know that php is SO C++ based?

[This message has been edited by The SaiNt (edited September 02, 2001).]


eerrrr

  • *
  • Posts: 1020
    • View Profile
programming???
« Reply #16 on: 2001-09-02 17:58:00 »
Wow! Delphi's free?! I'm gonna start that then. From what you guys have been writing it sounds great too. Hmm, I'll look for a website on Delphi tutorials, and maybe a dummy book too. Yay, I've finally decided! Hey chowderhead, why dont you learn Delphi too? Then we can learn it together!......uhh    :-?

EDIT: Nooooo, I'm downloading Delphi 6 Personal Edition and its.....140MB!!! NOO!! 3KB/sec. This is gonna take forever.   :(

EDIT 2: There's no point. It'll take WAY too long. And sometimes DAP re-starts the download when you resume it for some wierd reason, I really wouldnt want that to happen at 100MB. Does Delphi come in cheap boxed pakages? On the site it only delivered to the U.S.  :x. Well, I could be stuck with VB then...

[This message has been edited by eerrrr (edited September 02, 2001).]

[This message has been edited by eerrrr (edited September 02, 2001).]


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
programming???
« Reply #17 on: 2001-09-02 19:01:00 »
I've got every version of Delphi previous to v5 on cover CD's from various mags - PC Plus in particular is good about giving away Delphi versions, sometimes even the Pro releases rather than the Standard versions.

You live in England? Then you could probably order a back issue of one of the Delphi cover CD's straight from PC Plus for about £5 or so. If you want to that, I'll dig out the issue no's of coverdisks with Delphi on them.

[This message has been edited by ficedula (edited September 02, 2001).]


eerrrr

  • *
  • Posts: 1020
    • View Profile
programming???
« Reply #18 on: 2001-09-02 20:43:00 »
Hey that would be cool fice. Could you dig one out with Delphi Pro? Preferably a recent one? If there isnt a recent one with Pro, Standard would be fine. That way I'd be able to get hold of it easier.

dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
programming???
« Reply #19 on: 2001-09-02 20:43:00 »
Functional languages (Ficedula): I don't know much about ML...I've heard that to do output the rule of side-effects is...stretched a bit. Anyway, I'm mostly referring to Lisp...Lisp works in a functional way but you can still use OO techniques etc., basically they say that it's very easy to define OO yourself in the language (everything can be defined, kind of like operator overloading in C++ just much much more powerful). The only reason I'm not learning it straight away but saving it until I actually get the time is that it is not type-safe and that puts me a little off...

Saint: Creating windows shouldn't be too difficult...first you must "#include " (you probably already knew this) and then you must call the right API functions (get hold of the Microsoft Windows Platform SDK and it should getyou far in that). But using an abstraction layer is usually better (unless it's one created by Microsoft)... if you have access to a Unix of some sort I'd try out QT (you can use QT on windows as well I think, http://www.trolltech.com)." TARGET=_blank>www.trolltech.com).  And of course there's Borland C++ Builder, it's not perfect (it feels like forcing a Delphi library into C++) but at least it's way better than MFC.


Anonymous

  • Guest
programming???
« Reply #20 on: 2001-09-02 21:24:00 »
ive been having a lot of fun learning javascript

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
programming???
« Reply #21 on: 2001-09-02 22:17:00 »
eerrrr: The March 2000 PC Plus cover cd has Delphi 3 Pro on it. The Jan 2001 DVD has Delphi 4 standard on it ... the CD version may well also have Delphi on it, but I don't know of course, since I only have the DVD version.

Not sure which to recommend ... the Pro version has more features like Net connectivity, advanced synchronisation and so on ... but D4 has more language features like method overloading.

Dag: Yes, ML doesn't exactly have a fully consistant paradigm ... when you're dealing with file manipulation, you're really using non-functional commands that've been wrapped by a functional/ML layer ... there's no way around that, since file systems ARE imperative concepts.


dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
programming???
« Reply #22 on: 2001-09-03 00:05:00 »
Delphi availability...well, 6 is best of course, 150 MB isn't so bad is it? I mean, if you know someone with ISDN or DSL it shouldn't be a problem.

Delphi 4 Standard is IMO much better than Delphi 3 Proffesional...think dynamic arrays...and all the other nice langauge features added in. (If you get Delphi 4 you have to take care to install all the service packs though as it's very buggy).

BUT, Delphi 3 Prof. has the VCL source code included. Myself I wouldn't be able to create a single Delphi program without the source code for the libraries, your mileage might vary (most people don't look on the source until they have at least a year of experience with Delphi anyway...I think...)


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
programming???
« Reply #23 on: 2001-09-03 02:20:00 »
Personally I wouldn't say you need the source code THAT much - I don't need to refer to it that much even now - the Delphi help files are very good at documenting everything. It's good to have it, though.

For a beginner, I guess D4 is perhaps better, since as Dag says when you're starting having the VCL source isn't really important.


chowderhead

  • *
  • Posts: 162
    • View Profile
    • http://www.geocites.com/bigchowderhead
programming???
« Reply #24 on: 2001-09-03 07:41:00 »
Thanks for the dynamite responses, guys-you've really helped a lot.

I'll probobly go ahead and enroll in a C course next semester-my uni (as ya'll lovingly refer to it) says I have to take it before I move on to C++.   :(   Oh, well, I can always buy the book and study ahead...

http://www.pvcc.cc.va.us/" TARGET=_blank>This place  doesn't offer a ton of courses, but will get me by until I can move on to a "regular" university.  (these places are rather expensive, aren't they?)

Fice:  Sorry, no Delphi courses where I'm at-but that doesn't mean I'll not try it out, either.  I think I might have a disk here with an older version of Delphi on it.

Hey eerrrr, you ready to do some studying?