R
Richard Bos
Enteng said:Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
No. Try Pascal instead.
Richard
Enteng said:Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Chris Hills said:What is an ivy league university?
I don't know.
For instance in the bioinformatics course we taught people to program using
Java. The problem was that, for many, object-orientation was a step too far.
For instance I once told a girl to reverse an array, and she just looked at
me blankly. The idea of doing something in a unit hadn't sunk in.
Another important point is that the source code for my Basic is available,
and relatively short and readable. So it helps to demystify the tool.
In conventional Basic subroutines are pretty unusable because there are no
local variables, no way of passing parameters, and the line system means you
cannot cut and paste code between programs.
Richard Bos said:Things like Yale and Harvard. Law schools. If you want a _real_
scientific institution, try MIT or CalTech.
Richard
Enteng said:Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
Procedural decomposition aka "structured programming" is one programmingFlash Gordon said:Well, since your implementation does even include subroutines the only
thing I would use it for is illustrating what a programming language
should NOT be.
C is portable assembler. If you know a real assembly language you willNot really. C is a very programmer unfriendly language.
Programming languages are not social affectations like "How do you do?"Chris Hills said:What is an ivy league university?
This pre-supposed that US universities are "the best circles" something
most outside the US would argue with.
John said:I would seriously suggest looking elsewhere for an introductory
programming language. Although my experience with them is minimal,
I've heard good things about Python and Ruby. If you're interested in
object-oriented programming, you might want to look at Java or, if on
Windows, C# for .Net.
^^^^^^^Roland Pibinger said:You frequently see job ads for 'C/C++ programmers'. Those people are
supposed to be proficient in a programming style that can be
characterized as C with classes. The (to be maintained) program
usually is written in procedural C style enhanced with some C++
The word you are looking for is "beautified".constructs, especially classes (sometimes with excessive inheritance
hierarchies), but without 'advanced' C++ features like exception
handling and templates. This programming style was created in the
early nineties and seems to be prevalent to this day. In that sense
the Deitels certainly deliver something that their customers want.
Procedural decomposition aka "structured programming" is one programming
methodology. Some people are so used to it that they confuse it with "good
programming". Though the various methodologies have to be taught, it is not
obvious to me that an introductory language is the place to do it.
No, not as your first.Enteng said:Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
Thanks in advance!
-entengk
Malcolm McLean said:C is portable assembler.
Kernighan and
Ritchie's "The C Programming Language" is accurate (one would hope so,
as they're the ones who originally developed the language), but doesn't
offer that much in the way of tutorials.
Paddy3118 said:C is a very important language however and you should also plan to
learn C later.
Or in other words, "some people have described C as a 'portable assembler'Richard Bos said:Nonsense. It's hardly the ideal beginners' language, but if you think
it's a portable assembler you know neither C nor assemblers very well.
The programming methodology, be that sturctureed programming, a stateFlash Gordon said:Malcolm McLean wrote, On 22/01/07 20:31:
Unless you are talking about Visual Basic or some other bastardisation
then Basic does not have any support for OOP, functional programming or
any other method of breaking either the problem or program in to
manageable blocks other than through procedural composition. Since the
Basic in question does not have subroutines (or procedures or some
equivalent) I somehow doubt it has support for any other form of
programming other than the "one big mess" method which is a *very* bad
method. A programming language that only supports the "very big mess"
method should not be taught as anything other than an example of what
should not be.
If it does support some other method but not subroutines then I would
suggest it is something other than Basic that just happens to share some
of the same syntax and features. Just as Java is not C but some other
language that shares some of the syntax and features.
The programming methodology, be that sturctureed programming, a state
machine, object-orientation, is not a characteristic of the language the
program happens to be written in.
MiniBasic doesn't provide support for any of these methodologies, that is,
constructs that make it particularly easy to use them.
> I did consider adding
subroutines. However they add complexity after complexity to both the
language speciifcation and the implementation, and the design goal was that
the interpreter should be simple enough for someone with no previous
experience in writing scripting aplications to understnad and modify, also
for the language to be simple enough for a non-programmer to write programs
in. I think I made the right call on it.
If you don't know what you are doing, you can create a much bigger mess with
subroutines than without. However obviously you wouldn't use MiniBasic for a
major project, unless completley crazed.
As for BASICdraw, it is basically a structured program, but it abstracts the
image processing logic.
If you want to play with BASICdraw, download it from
http://www.personal.leeds.ac.uk/~bgy1mm
MiniBasic is designed for short programs, or rather functions. TheFlash Gordon said:Malcolm McLean wrote, On 23/01/07 23:52:
No, but using OO in Fortran77 is not easy and so would a lot of the
functional programming I was taught many years ago, I don't think
procedural programming is easy in LISP and so on. As described it would be
hard to use any of the methodologies used for any significant sized (more
than 20 line and often even under that) project in your Basic.
You can read more than twenty lines of a book without any structure?I find that without such constructs it normally getting painful by 20
lines where the 20 lines include comments and blank lines.
Then modify BASICdraw to use DOS shell scripts for the image processingAs you may have noticed I disagree. Unless it is for "programs" under 20
lines long in which case you might as well stick to a subset of whatever
scripting language is installed by default.
That's good news. He spends a week, and at the end of the week has masteredAlso some people *do* reach the point of needing
functions/subroutines/object/whatever to break down their programs within
a week of starting to program, and since this thread is about someone
wanting to learn, how is therefore probably motivated to put in the effort
to do this, your MiniBasic is not appropriate since the OP could well have
outgrown it within a week.
Modify BASICdraw to use MSDOS 3 command scripting for the image processingI would not even bother with it for a 10 line script. If it is worth the
effort of using something beyond what MSDOS 3 provides as in command.com
it is worth using something better than MiniBasic.
Exactly. Thats where endless complications creep in. Yu see now the wisdomI know that some versions of Basic are extremely good, My comments where
specifically about a version of Basic lacking even subroutines.
By the way, I would also recommend against a beginner starting with a
basic that did not at least have procedures and multi-line functions since
procedures and multi-line functions are easier to use than subroutines and
plenty of basic implementations provide them.
You obviously haven't downloaded BASICdraw and played with it. Yet you feelHowever, all of this has nothing to do with C and so does not belong here.
Feel free to have the last word if you want.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.