www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - New to Programming

reply Walter Prescott <Chakravanti01 aol.com> writes:
Greetings,

I realize that my questions might come across as somewhat silly considering
that this is a forum for programmers not newbies, so to speak. I apologize
ahead of time if I offend anyone but Ill gladly appreciate any assistance I
receive.

With little to no programming experience Id like to get into programming. Im
somewhat experienced with running server and client side variations of the
windows operating system and mainly client operations on linux distributions.
The only programming languages I know are Markup Languages such as HTML/XML
and its subset AIML (for fun, and yet AI has its limitations in a Markup
language whereas implementation in a solid programming language might be
better).

Id like to learn a flexible, fast and powerful programming language thatll
have near limitless possibility. My main interest with programming lies in
computer security and writing programs simply to effectively manage and run
background processes I see fit (as time expands so too would I like to expand
my programming knowledge).

Would Digital Mars be a good first step?

The truth is Ive tried to learn C and C++ in the past and found working with
them difficult, still Im open for anything. I found Python easier due to the
fact that it was interpreter based and yet it was extremely restrictive as far
as what I could do, if that makes sense. I heard D mixes elements of C/C++ and
Python which sounds cool to me (all-in-one is really what Im looking for).

That being said I should also note that Im terribly bad at Math! C/C++ books
have a terrible tendency to remove real world examples out of programming
books, instead they give mathematical examples which throw me off completely.

Is extensive Math knowledge required for programming languages? Is it required
to learn the bare minimum of D? Or is D only for really advanced C/C++
programmers?

Currently in my possession are the Schaums Outlines books Data Structures
with C++ and Programming with C++.

I would greatly appreciate anyone willing to give me pointers when it comes to
programming languages, what to expect with D, what Ill be able to do with D,
and the type of knowledge required to initially get into the language. Please
feel free to email me or contact me via the forums.

Thanks!
Jan 05 2007
next sibling parent Stewart Gordon <smjg_1998 yahoo.com> writes:
Walter Prescott wrote:
 Greetings,

Welcome.
 I realize that my questions might come across as somewhat silly 
 considering that this is a forum for programmers not �newbies,� so to 
 speak. I apologize ahead of time if I offend anyone but I�ll gladly 
 appreciate any assistance I receive.

"I?ll"? You could do with a better newsreader. Or failing that, sticking to plain ASCII quotation marks/apostrophes rather than fancy ones. (Almost any newsreader is better than a web interface, which appears to be what you're using, but that's far from the only reason.) But anyway....
 With little to no programming experience I�d like to get into 
 programming. I�m somewhat experienced with running server and client 
 side variations of the windows operating system and mainly client 
 operations on linux distributions. The only programming languages I 
 know are Markup Languages such as HTML/XML and its subset AIML (for 
 fun, and yet AI has its limitations in a Markup language whereas 
 implementation in a solid programming language might be better).

First things first, HTML isn't a programming language - it's just a means of describing the content and structure of a document. By writing HTML, you are no more "programming" than you would be by typing a letter or essay in MS Word. See also: http://www.cs.tut.fi/~jkorpela/prog.html <snip>
 The truth is I�ve tried to learn C and C++ in the past and found 
 working with them difficult, still I�m open for anything. I found 
 Python easier due to the fact that it was interpreter based and yet 
 it was extremely restrictive as far as what I could do, if that makes 
 sense. I heard D mixes elements of C/C++ and Python which sounds cool 
 to me (all-in-one is really what I�m looking for).

D has things in common with a few C-like languages - Java and C# to name a few more. That said, I don't know C# so I can't really compare D with it.... <snip>
 Is extensive Math knowledge required for programming languages? Is it 
 required to learn the bare minimum of D? Or is D only for really 
 advanced C/C++ programmers?

If you know C or any C-like language fairly well, then you should be able to get used to D without much trouble. I don't really know the best way to learn D otherwise, but you could try some of the tutorials out there. http://www.dmoz.org/Computers/Programming/Languages/D/
 Currently in my possession are the Schaum�s Outlines books Data
 Structures with C++ and Programming with C++.
 
 I would greatly appreciate anyone willing to give me pointers when it
 comes to programming languages, what to expect with D, what I�ll be
 able to do with D, and the type of knowledge required to initially
 get into the language. Please feel free to email me or contact me via
 the forums.

Much of what you're asking can be found here: http://www.digitalmars.com/d/overview.html Stewart.
Jan 05 2007
prev sibling next sibling parent Kevin Bealer <kevinbealer gmail.com> writes:
== Quote from Walter Prescott (Chakravanti01 aol.com)'s article
 Greetings,

 I realize that my questions might come across as somewhat silly considering
 that this is a forum for programmers not newbies, so to speak. I apologize
 ahead of time if I offend anyone but Ill gladly appreciate any assistance I
 receive.

You might also try the "D.learn" forum on this page.
 With little to no programming experience Id like to get into programming. Im
 somewhat experienced with running server and client side variations of the
 windows operating system and mainly client operations on linux distributions.
 The only programming languages I know are Markup Languages such as HTML/XML
 and its subset AIML (for fun, and yet AI has its limitations in a Markup
 language whereas implementation in a solid programming language might be
better).
 Id like to learn a flexible, fast and powerful programming language thatll
 have near limitless possibility. My main interest with programming lies in
 computer security and writing programs simply to effectively manage and run
 background processes I see fit (as time expands so too would I like to expand
 my programming knowledge).

Computer security and AI are considered advanced topics, but it depends what you want to do with it of course, so don't let me discourage you. One note for someone with an HTML background: A language like D is much more generalized than something like HTML. This is good, but one of the consequences of this is that you need more syntax to tell the language what you want from it. So the payoff is bigger, but it will seem like more work to get something done for a while.
 Would Digital Mars be a good first step?

I would recommend it over C++ or C. The only downside is that once in a while when something fails, its because the language is new and changing. That might be tricky but shouldn't be a problem until you get into advanced stuff. ...
 Is extensive Math knowledge required for programming languages? Is it required
 to learn the bare minimum of D? Or is D only for really advanced C/C++
 programmers?

Not too much, (but I think that all knowledge helps some). The math in most programs is just counting and basic arithmetic. There are some mathematically concepts that you will need though, like what hexadecimal, octal, and binary numbers are. Other than that, you will need the math that relates to what you are doing with the program. I think the reason examples use math such as prime number stuff, is that originally programming was done by the math and electical engineering departments at colleges. One caution: Someone once said that the best way to learn something is to teach it to a really dumb person; but no real person is ever as dumb as a computer! So you will find that if you want to write a program for playing tic-tac-toe, that you will learn *A LOT* about tic-tac-toe. This is a blessing of programming that feels like a curse at first!
 Currently in my possession are the Schaums Outlines books Data Structures
 with C++ and Programming with C++.
 I would greatly appreciate anyone willing to give me pointers when it comes to
 programming languages, what to expect with D, what Ill be able to do with D,
 and the type of knowledge required to initially get into the language. Please
 feel free to email me or contact me via the forums.
 Thanks!

I think D could work for you, although there might be a lot more "beginner resources" already written (such as tutorials) for a language like Java or C. This might be a good starting point for D tutorials: http://dsource.org/projects/tutorials/wiki/TutorialFundamentals Kevin
Jan 05 2007
prev sibling next sibling parent reply Lutger <lutger.blijdestijn gmail.com> writes:
Walter Prescott wrote:
 Greetings,
 
 I realize that my questions might come across as somewhat silly considering
 that this is a forum for programmers not �newbies,� so to speak. I
apologize
 ahead of time if I offend anyone but I�ll gladly appreciate any assistance I
 receive.

I find this a friendly newsgroup myself, no problems here. For the future, I think your question belongs in the digitalmars.learn newsgroup.
 With little to no programming experience I�d like to get into programming.
I�m
 somewhat experienced with running server and client side variations of the
 windows operating system and mainly client operations on linux distributions.
 The only programming languages I know are Markup Languages such as HTML/XML
 and its subset AIML (for fun, and yet AI has its limitations in a Markup
 language whereas implementation in a solid programming language might be
better).
 
 I�d like to learn a flexible, fast and powerful programming language
that�ll
 have near limitless possibility. My main interest with programming lies in
 computer security and writing programs simply to effectively manage and run
 background processes I see fit (as time expands so too would I like to expand
 my programming knowledge).
 
 Would Digital Mars be a good first step?

Yes and no. How best to learn (programming) is not a hard science, this is my thoughts on the the matter: - Don't attach too importance to the language, the programming concepts are more important to learn. - With the above in mind, the language that is best suited for the applications you want to write is not necessarily the best language to learn in. - Be wary of tutorials on the internets, especially for C / C++. Best sources to learn are quality books and expert advice. Or to put it more bluntly, the vast majority of C/C++ tutorials are crap and will learn you bad ways to program. - C++ is a very nasty language to start out in. I think D is much better and viable as a first language. BUT there is one major problem, there are as of yet no books on it at all and the vast majority of material on D assumes some programming knowledge. So when you look at the language I would say yes, but there is no doubt about the lack of learning materials.
 The truth is I�ve tried to learn C and C++ in the past and found working with
 them difficult, still I�m open for anything. I found Python easier due to the
 fact that it was interpreter based and yet it was extremely restrictive as far
 as what I could do, if that makes sense. I heard D mixes elements of C/C++ and
 Python which sounds cool to me (all-in-one is really what I�m looking for).

Although python might not be the language you ultimately want to program in (for what you want to do), I still think it is a better choice to continue with it. That way you can learn the basics of programming much faster as there is a lot of material and some good books on it. Plus you get to play around with the interpreter achieving a quick feedback loop on what you are doing. Stick with it for a while, then after you feel you're ready and python is too restrictive for what you want you can start with D. I assure you any time spend on python will not be wasted for 2 reasons: 1) most of what you learn you can apply to D and 2) knowing more languages is an advantage, sometimes it will be easier to write things in python and other times D is better suited. Plus there is a library developed already to interface D with python so you can even mix the two languages in one project.
 That being said I should also note that I�m terribly bad at Math! C/C++ books
 have a terrible tendency to remove real world examples out of programming
 books, instead they give mathematical examples which throw me off completely.
 
 Is extensive Math knowledge required for programming languages? Is it required
 to learn the bare minimum of D? Or is D only for really advanced C/C++
 programmers?

Don't worry about the math. It depends on the problems that you will want to solve with programming. If you want to do 3D graphics for example then obviously you are going to need it, but otherwise it is not required, although it might help to pick up a little. Then again a C++ textbook is not the best way to learn math. I don't think D is only for advanced C/C++ programmers. One of it's design goals is to make a clear and easier (than C++) language to program in, as far as the complexity of it's scope allows.
 Currently in my possession are the Schaum�s Outlines books Data Structures
 with C++ and Programming with C++.
 
 I would greatly appreciate anyone willing to give me pointers when it comes to
 programming languages, what to expect with D, what I�ll be able to do with D,
 and the type of knowledge required to initially get into the language. Please
 feel free to email me or contact me via the forums.
 
 Thanks!

As I said, imo a better route would be python then D. Whatever you do, C++ is not a good way to start. You would do better with C# or Java probably. This looks like an ok book for python: http://www.ibiblio.org/obp/thinkCSpy/ Of course I have mostly ignored all advice I have given here when I started out. But I tell you, D brought the fun back in programming for me after I got tired of C++.
Jan 05 2007
parent Daniel Keep <daniel.keep+lists gmail.com> writes:
I'll throw my lot in with Lutger and say: if you are new to programming, 
learn in Python first.  It's not as fast as D, and it can't do some of 
the fancy stuff D can, but it's a *much* easier language to work with.

I mean, if you said "I want to learn programming, but I don't want to 
bother with 'easy' languages: I just want to skip straight to the 
advanced level", then I'd throw you an x86 Assembly reference (quite 
possibly concussing you :3).

I would recommend that you read through Dive Into Python by Mark Pilgrim 
[http://diveintopython.org].  It's a fantastic book for teaching Python, 
and it uses real-world examples.

As for math, I suppose it depends on what you want to do.  Application 
programming won't require that much.  AI uses a fair amount of very 
high-level maths, but it's mostly just logic and even then you don't 
really need to understand it to use the AI tools.

The most important thing in programming is the ability to solve 
problems.  The solution to, say, testing a number for primality is the 
same in Python as it is in D as it is in C, C++, C#, Java, VB, Boo, 
etc., etc.  Once you've got your algorithm down pat, the rest is just 
typing, grammar and spelling. :P

I guess the best advice I can give you is to devour everything you can. 
  Learn new languages, try solving problems in code, anything.

Sorry I can't do any better than that: being self-taught, I'm not really 
sure how I got here in the first place :P

	-- Daniel

P.S.  Don't worry too much about math.  Math scares the hell out of me, 
and I can't add two numbers to save my life, and I do fairly well for 
myself.  Obviously it's not as hard as I'd like to believe. :3
Jan 05 2007
prev sibling next sibling parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Walter Prescott wrote:
 I realize that my questions might come across as somewhat silly considering
 that this is a forum for programmers not �newbies,� so to speak. I
apologize
 ahead of time if I offend anyone but I�ll gladly appreciate any assistance I
 receive.

There have so far been two mentions of the most appropriate newsgroup for this discussion. Unfortunately, somehow both of them seem to have screwed up the actual name of the group :P. For the record, it's digitalmars.D.learn (not D.learn or digitalmars.learn).
Jan 05 2007
parent Lutger <lutger.blijdestijn gmail.com> writes:
Frits van Bommel wrote:
 There have so far been two mentions of the most appropriate newsgroup 
 for this discussion. Unfortunately, somehow both of them seem to have 
 screwed up the actual name of the group :P. For the record, it's 
 digitalmars.D.learn (not D.learn or digitalmars.learn).

Ah yes sorry, and it was even before my eyes as I messed up...
Jan 05 2007
prev sibling parent reply janderson <askme me.com> writes:
Walter Prescott wrote:
 Greetings,
 
 With little to no programming experience I�d like to get into programming.
I�m
 somewhat experienced with running server and client side variations of the
 windows operating system and mainly client operations on linux distributions.
 The only programming languages I know are Markup Languages such as HTML/XML
 and its subset AIML (for fun, and yet AI has its limitations in a Markup
 language whereas implementation in a solid programming language might be
better).
 
 I�d like to learn a flexible, fast and powerful programming language
that�ll
 have near limitless possibility. My main interest with programming lies in
 computer security and writing programs simply to effectively manage and run
 background processes I see fit (as time expands so too would I like to expand
 my programming knowledge).
 
 Would Digital Mars be a good first step?

My 2p I think it would be a good step. D has less pitfalls then languages like C++. Also I think the people on the D newsgroups are a great resource and generally much nicer then *other* newsgroups for other languages (at least in my experience). The only problem I see for learning is stability and design changes which effect newer languages more then old. One of the advantages of joining D at this stage is you get to be a pioneer. Talk directly to the language writers and people who contributed ideas to the language. See how a language evolves. Actually theres a still record of it in this and the old D newsgroup. You'll learn a lot more about other languages. I've learn a lot about C++ due to this group. As far as easy, it depends on what u want to do. I suggest you learn the basics then volunteer for one of the projects on www.DSource.org if you don't find something that you'd like to play with. (Note that some of these will require someone with loads of experience (ie Mango) however I'm sure there are projects that will happily take you on.) Maybe you could write down your experiences learning D as a guide to others. I mean, only if you want to contribute in that way course. * D is more like a religion then a language. Lots of reading, a lot of hype and a little bit faith * PS: Ok, I hope that didn't sound like a marketing pitch. I'd recommend C# as your next best choice. Also always have a goal in mind before you begin coding, it helps a lot.
Jan 06 2007
parent janderson <askme me.com> writes:
So if you want to learn D (or any language for that matter) I suggest 
you find out what people recommend in these areas:

1) How to install the language
2) How to run language.
3) What are good editors for learning that language (they may even do 
step 1 and D) if it doesn't come packaged with one (D doesn't)
4) What are some good basic everyday libraries to use.


-Joel
Jan 06 2007