New to Programming

Lutger lutger.blijdestijn at gmail.com
Fri Jan 5 16:50:02 PST 2007


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++.



More information about the Digitalmars-d mailing list