Advertisement

what lang. is the best to start programming?

Started by January 01, 2003 05:09 PM
195 comments, last by caandom 21 years, 10 months ago
quote: Original post by Anonymous Poster
You should not assume people are beginners just because they state that c/c++ was a breeze to learn or at least you made it sound like that.

I don''t make the assumption people are novices because they state C++ was easy to learn. I make an informed guess that various people are novices based on their posting history, including the posts where they claim C++ is easy to learn.
quote:
And also them being paid or not makes no difference as far as
talent goes.

That''s true, but if they have never worked in a large team, then they are unlikely to understand what works for anyone other than themselves. People fall into the trap of thinking how they learned is how other people should learn. If someone wants to recommend C++ as a good language for caandom to begin with, I don''t have a problem with that. I do have a problem with people making such a recommendation without having a clue why C++ might be a good language for learners. In effect, if people cannot explain why they said something, then they are posting just to post. That is not the way to inform a newbie.
quote:
I believe in more informative help when someone asks a question.

OK, let''s try a different approach. If so many people think C++ is a good language for new programmers, would someone please explain why that is the case. Just to pre-empt, here are some non-explanations:

"Because I learned it and it was easy".
"Because lots of games are written in C++".
"Because there are lots of books about C++".

quote:
If you feel someone is lacking help them out rather than writing some (for them) useless piece of answer.

If someone wants to explain why they think C++ is good for beginning programmers, I am prepared to state the case for Python.
quote: Original post by MSW




If you are just starting out, pick up a language that will teach you the basic programing concepts...loops, conditional operations, variables...




The book I learned c++ from went over all of that quite well. C++ is a great language for beginners and learning basic or python is not going to make it easier.



[edited by - evil sausage on January 2, 2003 3:21:56 PM]
And so, the evil religion thread stole the wonderful "What the Heck?" thread's throne. Truly a sad day for gamedev.
Advertisement
quote: Original post by evil sausage
C++ is a great language for beginners

Please explain why.
quote:
learning basic or python is not going to make it easier.

I won''t vouch for Basic, but I''ll say Python will make it easier. Python is dynamically-typed, and thus does not require the user to repetitiously provide the compiler with all manner of type information simply so that it can make various optimisations which are useless to the unsophisticated user. The overall effect of dynamic typing is fairly profound - it leads to cases where the code does what the user wants without too much effort. Before long, any newbie will run into problems with the C++ type-system. That''s when they turn up on the forums posting code full of type-casts.

C++ is so interspersed with borderline cases and idiotic braindamage that it has spawned an entire sub-industry based on resolving the problems inherent in C++ programs (did you ever check out the licence fees for Parasoft or Rational tools). C++ potentially could be a good language for beginners, but the quality of learning materials is really bad. So, each day we see new beginners turning up on these forums asking how to resolve their problems with c-strings or overrunning array boundaries without realising they don''t have to contend with those problems. The reason C++ allows you to do such things is in the name of efficiency - something which a newbie simply does not care about.

So, instead of repeatedly asserting that "C++ is a great language for beginners", please try persuading us that you have a brain by explaining how it is so great for beginners. BTW, I don''t consider a schoolkid to be the best of authorities on programmer productivity (which is what this is all about if you hadn''t realised).
For those of you who care about my two cents (Canadian) on some basic programming concepts

My path was: BASIC -> Perl4 -> Java(poorly) -> PHP -> Perl5 -> C++ -> Lisp -> Python.

Now, most of you can figure out why my syntax is so ugly, but I learned two good lessons from PHP: RTFM, and dissecting programs is a wonderful way to learn... as long as you have a way to test your disections.

Anything before PHP was really horribly done, but you can guess that from the Perl4, and (poorly) labeling them.

And thus Dake Desian Confusion Engulfed the land that once thought Bennetian Slow Motion Combat Bubbles were the worst of their troubles
Brotherhood of Landfish Return }>BLR<{
Erm... do not look at where this image is linked too... (jedi mind trick)
[ Six Hour Game Contest | ( Thread | Blog | Wiki | 6hour Bio ) ][ Website | (Blog | Gallery ) ]
I started with Apple BASIC ->GW Basic->QBasic->Visual Basic->C++

According to an old resume I wrote I had a month or so of Pascal but I don''t recall any more. I gave it up because it was too complicated and I couldn''t do graphics easily. I was limited to text and that limited what games I could make. I picked up a copy of C for Yourself around that time as well and gave it up for the same reason. I got a scrolling graphical demo going but I felt using LIBs was cheating and it was too complicated to do anything anyway.

When I finally move to C++ I had no problem doing what I wanted to do because I knew the concepts behind what I wanted to do. Learning keywords is easy.

However until recently I had a very structed style of programming. No matter what language you learn, learn CONCEPTS not syntax or style. I have no problem picking up languages and doing what I want without much effort. GameShot took a week having never used mySQL or PHP before. Now, I have a number of sections that use it.

I had a hell of a time understanding OO when I first started. Now I know enough to make my code nice and clean though I havn''t learned any of the advanced concepts. They may be useful but for the work I do, I''ve been able to get by without them. If I hadn''t spent so much time in BASIC, picking up OO might have been easier. However, if I hadn''t spent so much time with BASIC picking up C++ would have been signicantly harder.

I''ve never used Python so I can''t say how it would fare as a beginner language. I liked BASIC because I could do 2D tile based games easily without LIBs and even did some 3D stuff. I didn''t feel limited except in the amount of colors I could use. And even then I didn''t care. That was purely cosmetic. It didn''t stop me from learning concepts that every game ever made uses.

Ben


IcarusIndie.com [ The Labyrinth | DevZone | The Wall | Hosting | Tiberian Merchandise | GameShot | Fun With Cutouts ]
quote: Original post by KalvinB
I started with Apple BASIC ->GW Basic->QBasic


Erm... I would like to ask... but other than the IDE, and APIs given in their distro... what the heck is the difference between those three langauges?

quote: I gave it up because it was too complicated and I couldn''t do graphics easily. I was limited to text and that limited what games I could make. I picked up a copy of C for Yourself around that time as well and gave it up for the same reason. I got a scrolling graphical demo going but I felt using LIBs was cheating and it was too complicated to do anything anyway.


Erm... again, my ignorance is appearing like a stream of bats'' piss, but most langauges require some sort of extension to do this anywhere near decently. Even in VB you get people using DirectX. In Perl, it became so apparent, that CPAN''s module archives were made. PHP following other langauges now has PHP/gtk and PEAR. There are versions of libSDL, and DirectX that are available for many other languages.

I will retract this point, however, if you attempted this before windows 95, or even 98 came out, or were using books from before that period.

Just remember, not using the API would be a heck of a lot harder (this point on it being "too complicated"), because then one would have to remember the memory locations of everything on every hardware platform.; A reason nobody is mentioning ASM in this thread.

And thus Dake Desian Confusion Engulfed the land that once thought Bennetian Slow Motion Combat Bubbles were the worst of their troubles
Brotherhood of Landfish Return }>BLR<{
Erm... do not look at where this image is linked too... (jedi mind trick)
[ Six Hour Game Contest | ( Thread | Blog | Wiki | 6hour Bio ) ][ Website | (Blog | Gallery ) ]
Advertisement
I have only read parts of this forum...

Those who recomend C++ as a good beginners-language do not know what they are talking about.. One good starting language is Visaul Basic where a few lines of code make much if you think of the visual part. Also, the language contains the logic used in all languages like loops, if-statements and so on...

[s]--------------------------------------------------------[/s]chromecode.com - software with source code
quote: Original post by Enselic
Also, [Visual Basic] contains the logic used in all languages like loops, if-statements and so on.


Other than case sensitvity where Case, CaSe, CaSE, and CASE would all be different variables... or atleast not in the examples I have seen floating out there. It is either than, or the examples I have seen, have not exactly came from the most prowlest of programmers. Examples that almost made my brain explode trying to figure out what the heck it was suppose to do, when the author had absolutely no recognisable code conventions.

Does VB have any method of ending an expression? Even if it is a newline and/or caraige return, it is fine with me (as I have no problem with Python, which uses tabbing, newlines and carraige returns for its syntax). However, if it does not... that just scares me even more.

Based upon this, and until all this is proven wrong or unproven, I will state that VB does not make a good language to learn first, as it does not teach coding style and practice, which would make a large project workable. I would suggest a Bondage and Disciplin Language like Pascal or Delphi as your first.

Then if that really floats your boat, learn Intercal.

And thus Dake Desian Confusion Engulfed the land that once thought Bennetian Slow Motion Combat Bubbles were the worst of their troubles
Brotherhood of Landfish Return }>BLR<{
Erm... do not look at where this image is linked too... (jedi mind trick)
[ Six Hour Game Contest | ( Thread | Blog | Wiki | 6hour Bio ) ][ Website | (Blog | Gallery ) ]
quote: Original post by SabreMan
It's my suspicion that many people here are not paid to develop software.


I am, and I recommend C++.. I also don't feel that every opinion need be backed by a research paper.

aut viam inveniam aut faciam

[edited by - Ronin Magus on January 2, 2003 4:55:11 PM]
True, C++ is hard... but once you''ve mastered it, every other language you learn will be a piece of cake.
A good plan would be: first C, and then C++.


This topic is closed to new replies.

Advertisement