Forums

Forums (http://www.abandonia.com/vbullet/index.php)
-   Programming (http://www.abandonia.com/vbullet/forumdisplay.php?f=25)
-   -   What Programming Language For A Complete And Utter Newbie? (http://www.abandonia.com/vbullet/showthread.php?t=12549)

Mighty Midget 03-11-2006 10:17 AM

I have been curious about programming for some time, but never got down to actually starting. Now I wonder: What language would be a nice portal into general programming, just to get the idea of how languages in general work? I'm looking for a language that is easy to get into, but is powerful enough to allow me to later on create "whatever I want" or thereabout :D (relax, I don't ask for The Ultimate Language). So: A language that is easy for beginners, powerful and will teach me as much as possible that I can use in other languages.

Also, are there any on-line tutorials, docs and so on on that particular language?

TiA

Abi79 03-11-2006 03:06 PM

I recommend you C++ (I only tried the DOS version made in 1992), since I managed to learn how to work in it at the age of 13 with the help of a teacher, and there are also children at my school who can work in it and are 9, so I guess that this one is pretty easy. As for guides, just search the net. Google is your friend. Also, try to get the Windows version, not the DOS one. Still, if you want the DOS one, assuming that it is not warez (I don't have a clue), I can send it to you. :)

Mighty Midget 03-11-2006 03:25 PM

Thanks mate! I got a C++ visual (whatever that means?) and a hefty turorial. Let's see if I got the brains for this. "Hello world." :D

Eagg 03-11-2006 04:32 PM

C++ is quite a complex programming language, but if you are serious about programming and are especially interested in game programming then it would be a good one to know.
C and C++ requires knowledge not only about syntax but also quite a bit about data structures, memory allocations, pointers ect.


Java and Python would be an easier introduction to programming I think, but it really doesn't matter where you start, the first programming language will be the most difficult to learn because you will have to adapt to the way of thinking you need to solve problems with it.

Quote:

...there are also children at my school who can work in it and are 9, so I guess that this one is pretty easy.[/b]
Hehe, well there are 9 year olds that could beat most of us in chess, that doesn't mean chess is an easy game (neither that we are just stupid :blink: ). A 9 year old could certainly program in any language given some intelligence and hard work, though he will in no case be good at it at that age, since with a language like C++ it really takes 10+ years to master it (meaning not mastering the language, but mastering the process of creating effective and good code with that language).

guesst 04-11-2006 12:51 AM

He he, get to plug my thread.

First of all, there's a free complier for C++ called DevC++, which you can get here.

Second, and this one should be easy to find becasue it's pinned (gloat) but "Guesst's Games" has several fine examples of C programs, if I do say so myself.

Mighty Midget 04-11-2006 07:22 AM

I read that thread :), but without enough explaination on the stuff, a newbie like me is rather lost in all that. I'm currently reading some basic stuff (I think) just so I can see what, for instance, your examples are all about. Don't worry. I will probably use that thread in my studies :ok:

velik_m 04-11-2006 12:00 PM

more free compilers:

Open Watcom (http://www.openwatcom.org/)

GCC - gnu compiler collection (http://gcc.gnu.org/)
(also take a look at Code::Blocks at http://www.codeblocks.org/ as a free alternative to visual studio)

Eagg 04-11-2006 02:14 PM

And the probably best IDE today and one of the best compilers, also in a free edition: Microsoft Visual Studio Express.

Gottfried 04-11-2006 06:53 PM

although not much used, Visual Basic is quite simple (i wrote down two text games in old dos Qbasic) and HTML code, although it's not what you wanted to hear, is it? ^_^

Koen 05-11-2006 08:54 AM

Visual Basic is easy to learn and has enough functionality to write complex applications (I'm currently writing a RTS game in it, using an 3d engine that was written in vb6, works great! :kosta: ). Also it has an easy interface to design forms with.

Although, the release of vb.net (2003 / 2005 / etc) ruins the language in my opinion, and makes VB look more like Java. And VB is slower in doing cpu intensive stuff.

If you never programmed in the past, I wouldn't start with C++. It's 'unfriendly' as in it doesn't warn you when things go wrong (writing to memory places where your application shouldn't be etc), and I found it hard to learn. Java and VB are much more helpful in that.

Mighty Midget 05-11-2006 09:13 AM

VB noted. Thanks. I'll check it out then. I'll look into both and maybe some more, to see which one to go for.

The Punisher 06-11-2006 01:53 PM

GML (Game Maker Laungage) VERY easy to learn, and comes with a big maual and its very powerful. Here is the homepage. Game Maker is an easy game creation program but it has also a powerful code laungage. Try it!

Mighty Midget 06-11-2006 03:21 PM

Thanks all. I'm browsing AR's programming section, and it seems like a good place to start.

Reup 06-11-2006 06:51 PM

C# and Java are also both pretty easy to learn... And managed as well, so a lot less memory leaks and crazy pointer errors... But I'm the kind of guy that chooses productivity and simplicity over complete control any day.

Ioncannon 11-11-2006 04:47 PM

I found C++ much easier to get into the Java. I dunno but I guess having your programs as classes just confused me.

Reup 14-11-2006 06:57 AM

Wait... C++ and NO classes... That's just plain silly!

DOSGamar 15-11-2006 01:50 AM

i am 13 and started about a week and a half ago and have been able to make this
all with ruby!!!!!!!
with no previous programming experience

Nick 24-11-2006 11:09 AM

<div class='quotetop'>QUOTE(Mighty Midget @ Nov 3 2006, 02:17 PM) [snapback]265136[/snapback]</div>
Quote:

I have been curious about programming for some time, but never got down to actually starting. Now I wonder: What language would be a nice portal into general programming, just to get the idea of how languages in general work? I'm looking for a language that is easy to get into, but is powerful enough to allow me to later on create "whatever I want" or thereabout :D (relax, I don't ask for The Ultimate Language). So: A language that is easy for beginners, powerful and will teach me as much as possible that I can use in other languages.

Also, are there any on-line tutorials, docs and so on on that particular language?

TiA
[/b]

Basic of course. Then Pascal (well I didn't write a line in it :) ) to get familliar with semicolons and then C++.

Mike_G 20-12-2006 01:10 AM

If youre want to code games as a hobby then id say go for a language like blitz basic

Its easy to learn and you can make a prog with graphics and stuff fast.

C / C++ is fussy and the syntax is considerably harder to get to grips with. If you want graphics you need to learn SDL, Open GL, Allegro, DirectX or something else.

Trust me for a noobie to coding in C is a headfull. I been coding for a year now and I still aint got to grips with it. Then again if you want to be a pro then C/C++ is still industry standard.

The way I see it is unless you are planning on developing cutting edge games/apps then you might as well code in a basic language. As the speed you lose is negligable for on a modern computer for most things.

The Bard 29-12-2006 10:59 AM

Pascal is by far the best language for total beginners, and then c++, i did it the same way, and i can tell you it really works...

crazedloon 29-12-2006 11:05 PM

Don't bother learning a traditional programming language - it will take years before you're competent enough to use OOP effectively to design and code worthwhile games (even Tetris is a challenge). What some people have mentioned: stuff like BlitzBASIC and new languages exist that are expressly meant to quickly execute an idea for a game using a high level of abstraction. This is a good use for modern computers' power and speed - don't need to mess around with C/C++ if you just want to code a 2D tile game for instance.

Apart from games dev languages there are complete games development systems for specific types of games that make things really much easier. For instance, Game Maker 6 is very good. And RPG Maker 2000. There are so many programs to put together RPG style games, 2D scrollers, etc. Even MUGEN for Street Fighter 2 games.

Life really is too short to learn the perfect respected programming language (C/C++) AND become competent enough to use it to make a really good game with nice graphics and sounds. If you've got an idea for a game, just spend the time on music, sprites, background, etc., and use a games dev kit.

The Bard 30-12-2006 12:20 PM

That is why developing teams exist, right? I lose some time to become "competent enoguh to use c++ to make a really good game", and my friend does the graphics, my girlfriend does the sounds, etc...

crazedloon 30-12-2006 03:30 PM

Exactly! The days of one man having an idea and doing a whole game programming project from start to finish are long gone (they did exist, but mainly during the 80s). The companies all use division of labour (expert musicians, graphicians, coders, storytellers, etc) and try to use ready-made and tried and tested programming libraries to save time and the vast amount of money they spend to develop their games.

It reminds me of this interview of David Carradine I saw once. He said "People want to learn to kung fu so they can crack heads, but by the time they could conceivably crack a head, they don't want to cracks heads any more".

I had this game idea once, that I was really keen on. I took some advice and learnt to program in C, from scratch. I don't regret it because it was useful and fun to teach myself a subject I was interested in, but now I've forgotten that game idea (and obviously haven't developed a game). Using a game creation utility (like Game Maker 6) I could make a nice game in about a week. I think that's a better use of time than working out a design to code the whole game from scratch.

It's like you're a boss of a big company. You need to know that the people under you can do their job, but you don't necessarily need to know exactly how the postman uses the stamping machine on the envelopes, or how the secretary's spreadsheet works, etc. You just give policy orders like: this month we're focussing on making more Far Eastern sales or whatever.

haakjay 02-01-2007 09:10 PM

VB 6 is really easy. I started programming in it at the age of seven. Made a game called gameworld and a quiz game that no one could answer. :P

Reup 03-01-2007 12:21 PM

VB6 is also old. Use VB.Net at the very least if you want to stay productive! Get the Visual Studio Express edition from M$!

haakjay 12-01-2007 11:27 PM

No .Net makes it look more like other coding languages. Use VB6 :P
In another way it has more functions (but they have also removed some)

Choose wisely :P

plix 15-01-2007 01:56 AM

<div class='quotetop'>QUOTE(Mighty Midget @ Nov 3 2006, 06:17 AM) [snapback]265136[/snapback]</div>
Quote:

relax, I don't ask for The Ultimate Language[/b]
An option I'd actually suggest rather strongly is Lisp (either Common Lisp or Scheme). It's easily the best programming language ever created (from a language standpoint). It'll give you an appreciation for a multitude of paradigms of which you'll only find subsets of in the languages listed above. Chances are you probably wont use it much in "real" projects you may embark upon as you become more proficient, but it will make you a better programmer in any language.

nitro 16-01-2007 11:12 AM

I started with GWBasic and QBasic and later Visual Basic. Later I learned C++ and Java and I learned to use classes and now I never use VB again.

You could start with either VB or Java. Just look for some nice tutorials and when you know how the basics ork it's easy to transfer to a different language. If you are going to use Java, then download and install a good development enviroment. I use JBuilder but you could also use Netbeans.

GrimFang4 16-01-2007 06:45 PM

<div class='quotetop'>QUOTE(crazedloon @ Dec 30 2006, 11:30 AM) [snapback]272813[/snapback]</div>
Quote:

Exactly! The days of one man having an idea and doing a whole game programming project from start to finish are long gone (they did exist, but mainly during the 80s).
[/b]
This is more alive than you think. Scratchware and independent developers are where good games come from, especially for the PC. Ever heard of Darwinia? If you don't work for EA, chances are you're a team of about 3 guys pounding out a wonderful game in less time for less money. I personally make games and the only reason I'm not publishing them yet is because I'm in my senior year of college in Physics (then on to grad school), not Computer Science or Game Development, and I don't have the time.

It took me from knowing absolutely nothing about programming about two months to learn how to make and then make a functional game using C++ and SDL (Simple DirectMedia Layer), and this was during a full-time job!



For those looking to jump into game development, I offer this:

C++ is the current standard for professional game development.
As was said before, the first language you learn is the hardest regardless of the choice. Java is like an easy version of C++, but doesn't have the hundreds of thousands of libraries out there that exist for C++. You can make basic games without even using pointers if they scare you.
C++ can be learned on your own (I even wrote a great tutorial, if you'd like that).
SDL is a fantastic way to get 2D graphics into your games. It's by far the simplest I've seen and offers full power, cross-platform support, as well as linking well with OpenGL for when you want to do 3D.
C++ syntax is not a problem when you get used to it. It's the same syntax Java uses and the similarities between C++ and every other language are significant. That's kinda what's indicated by calling it a language. It's mostly just different words and sentence structure.

Trust me, I've learned C, C++, Java, Scheme, and Perl (and Physics is my thing!), but if you're serious about making a start in game development and you don't want to sacrifice parts of your idea just to make it possible in those specialized game design programs, then talk to me about C++.

crazedloon 17-01-2007 12:57 AM

<div class='quotetop'>QUOTE(GrimFang4 @ Jan 16 2007, 07:45 PM) [snapback]275209[/snapback]</div>
Quote:

It took me from knowing absolutely nothing about programming about two months to learn how to make and then make a functional game using C++ and SDL (Simple DirectMedia Layer), and this was during a full-time job!
[/b]
Perhaps the speed of your learning was possible because you knew nothing about programming, rather than in spite of it. In any event, a quick search of Google and Usenet would reveal that 2 months is extremely atypically short, to learn to program in C++.

OOP (which is what C++ is for) is a method of thinking they're teaching these days to anyone who expresses an interest in learning how to program. The structure of university courses teaching computing and IT-based subjects is strongly centred around getting students used to the idea of using OOP. Whereas in my day (the days of DOS) it was considered something extremely extraordinary that I was a schoolkid who knew how to use BASIC inside and out, and could handle other computing tasks, when other kids struggled with the concept of "booting up" a PC. Traditional line-numbered BASIC uses a completely different thought process (procedural programming) which is nothing like your OOP. In my experience, people have not become any brighter since the 1980s, but the environment has changed and educational institutions are not indoctrinating people with systems of thought and methodologies for which certain existing industrial conveniences, like C++, are already well-suited. It's fine because if you now consider that the students are to be considered objects belonging the class IndustrialProduct, but the new students might be less adaptable to other programming approaches. Realistically, few of us here will be going into the games development industry, so there is no value in the industrial standard (i.e. using C++ so that code is easily maintainable and programmers more replaceable). Also, would McProgramming students be as suitable as myself if they were forced to deal with assembly language programming and had their high-level tools taken away? I really doubt it.

You are a university-level physicist and certain concepts such as discrete mathematics are naturally a piece of cake to understand for you, but they might not be to the hypothetical "complete newbie" who might be a kid or someone who just likes to have a smoke/drink and play Sonic after work, and then one day has a brainwave and becomes enamoured with the idea of making a cool game, and doing a better job of it than the pros. But that person would be able to prepare their game pretty fast and without doing any study on the obscure formal syntax of a programming language, by taking advantage of what's there.

I chose a non-science and non-computing path in my formal education, so what I now know about non-OOP C programming and OOP programming concepts is entirely self-taught and self-directed. OOP is doctrinal, and as someone who has ploughed through Randall Hyde's book it also seems to be an unrealistic representation of what's going on under the bonnet. If you're resigned to using such a high level of abstraction as C++ or Perl or Java, as well as other people's extensive free dev libraries such as SDL to build your game program, what's the big difference with using a Rapid Application Development tool? It's progress. If you prefer C++ and it's the fastest way for you to get things done, continue to use it by all means. But it's not right to recommend it for beginners because your situation is for the reasons given atypical. Whatever you use, it all turns out to be zeros and ones.

GrimFang4 17-01-2007 11:53 PM

It may be obvious that the younger you start programming, the more likely you are to succeed. To be completely realistic, out of every handful of gamers, you'll find someone who has the talent for game development. There are enough people reading this thread to make a handful.

I definitely agree that the said programs ("Rapid Application Development tool" is how you put it; I like that term) are useful for some, but I don't want to limit anyone's design ideas (especially since I haven't heard them yet) by conforming it to one of these programs that aren't fully powered (So don't bother learning Scheme just for games).

C++ is much more than just Object Oriented Programming. Even without classes, C++ adds tons of useful features to C that make certain things simpler. If you know about OpenGL, you probably love C++'s function overloading. Some games are made in C, after all, so since C code works in C++, you don't have to use OOP at all to make games.

Personally, I didn't run into tough math (considering arctan stuff and collision response as tough) until my most recent game. An elementary level math education is good enough for programming some cool things. I just have some problems with the results of most games made without programming. Mainly, they are too similar to one another (RPGMaker as an extreme example).

I choose C++ because at some point, you have to recognize a level of abstraction that has enough power to get the job done while being high enough level so that the job is not too complicated to complete. To put it another way: Assembly language - Too complicated, Specialized Programs - Too weak, C++ - Very close to just right (It's at least in the ballpark when it comes to language quality). It is indeed just zeroes and ones, and that's why modern programming languages exist to fill in the middle ground between tweaking bits and dragging scrollbars.

carpetsmoker 19-01-2007 07:13 AM

Quote:

Exactly! The days of one man having an idea and doing a whole game programming project from start to finish are long gone (they did exist, but mainly during the 80s).[/b]
I think that whenever it is feasible one man should write a program.
It will keep the program clean, manageable, and fast.

Note that this MUST be a very experienced programmer, if you have a less experienced programmer bugs and mistakes are more likely to creep in, and then there will be no one around to correct him.

Back to the original question.

I think you should start with an idea, not a programming language.

Think of something to program, don't aim to high, something simple (few idea's: text adventure like adventure or trek, a program to catalogue your games/books/comics/whatever, a RSS reader)

In my opinion and experience it's always best to simply solve problems you're having, for example, I wanted to receive RSS newsfeeds in my mailbox, so I wrote a small program to do so, I wanted an automatically updating forum signature, so I wrote a program to do so. ect.

It doesn't really matter in which language you start, basically they're all the same, it's just the syntax that's different.

crazedloon 19-01-2007 03:34 PM

RSS feed? What's that? I would have thought "write a program listing all the prime numbers from 1 to 1000" would be a more suitable exercise. This is not just my opinion - this is what's in the GNU C manual, K & R, etc. I think knowing Unix/Linux and internet technologies isn't going to help you write your game (unless it's a network multiplayer game of course).

carpetsmoker 19-01-2007 04:08 PM

Well, this is from my personal experience, I suppose it depends on the person.

List prime number is nice, you "ooohhhh" for a second and then what...? waiting until you discover a new prime number...?

Writing a useful program, one I use every day, is much better in my opinion.
It's ~100 lines, easy to understand, easy to make, and useful, besides that.
It's nor written in C, it's written in PHP, which is greatly undervalued as a general purpose scripting language (almost a drop-in replacement for perl)

Anyway, Writing (simple) useful programs did much more for me than "learning experience programs" .

Quote:

I think knowing Unix/Linux and internet technologies isn't going to help you write your game[/b]
I think it does, for example, my rss to mail script has the following components which could be useful anywhere (including game programming):
- Storing RSS links in an "ad-hoc" ASCII database plain
- Parsing command-line arguments
- Parsing a configuration file
- Error handling (As in: Something better than "This shouldn't happen, goodbye!)
- And ofcourse the usual statements (if, for, ect)

All simple and even trivial task, but all must be learned and practiced nevertheless, I prefer doing it this way, another prefers doing it another...

This put aside, I think that general computer knowledge(unix or otherwise) is always useful when writing a program.
Simple example: Hack (and all deviates such as nethack, angband ect.) have the setuid bit set on their binaries.
Symbolic and hard links can be very usefull in all kinds of situations.

Mighty Midget 19-01-2007 04:31 PM

The usefulness in writing a program that will find, store and make a list of prime numbers is that you will then search for better algorithms, faster ones. The challenge in factoring numbers is that it is extremly time consuming given large enough products. That fact is the core of cipher algorithms like RSA. An RSA cipher can be broken, sure, but only by factoring N which is the product of two giant primes. I gather that today's N would take a single computer many, MANY times the age of the universe to factor N, but it can be done. Theoretically.

Another thing is the list: If you want to look into primes and their nature, a list of every prime from 2 to [whatever] could prove interesting.

So, all in all I'd say a program like that has its fields of application.

crazedloon 19-01-2007 08:55 PM

This is very interesting stuff. I wonder how much emphasis should be put on becoming a reasonably proficient mathematician. It seems to me that in the field of programming, a strong grounding in maths is necessary to understand all kinds of stuff, such as for instance the JPEG algorithm, or polygon mesh for 3D or even public-key encryption algorithms.

Mighty Midget 19-01-2007 09:29 PM

I believe matematics should be emphasized when dabbling in computers and programming. The field of math and how much proficiency would depend on what you want to use the computer for. You can create programs or games without being a math geinious, but computers and math both work according to logic, and you should have an interest in and appreciation for logic in any case.
Some of the guys involved in the developement of the RSA and other cipher algorithms were into number theory, and maybe number theory will provide some of the insight you'll need if you want to become a cipher-breaker, but I don't think you'd need any number theory to understand JPEG algorithms. Punch-line: It's all about getting into the right field of mathematics. I wouldn't know much about any level of proficiency though.

crazedloon 19-01-2007 09:54 PM

Interesting thoughts. I agree 100% about the necessity of knowing the basics about number systems, because you just can't avoid coming across that when programming, and understanding it helps. But yes, the JPEG standard always involves the DCT-2 transform, and that's something not normally taught in schools here in UK (although I appreciate the situation may be different on the continent), so it's down to what the hobbyist is trying to achieve. In addition, some of the graphics stuff from SVG to 3D polygons require a high level of competence in Euclidean geometry. I take the view that when discussing what's advisable for a complete newbie to programming, although it's "safe" to just dispense the tough answers and say: "learn for yourself what I was taught", it's nice to bear in mind that not everyone has a higher education background in maths/physics, and it's easy to put people off this exciting hobby for life.
I just want to be nice and help people. A really nice forum for people thinking about starting off in game programming is:

http://www.gamedev.net/community/forums

Mighty Midget 19-01-2007 10:10 PM

As for me, I never finished school, so my education is lacking, to say the least. Beside, I'm not sure if I have what it takes in hard core math studies :) but I like mathematical logic because I believe one can trust the answers, unlike other fields of logic having been presented to me that I found dodgy. About numerical systems (if I understand you right): Yes, that is an obvious fact you'd need to understand numerical systems, being it decimal or binary. I mentioned number theory (which is not the same as number systems) because those fields dabble a lot in primes, the core in modern ciphers.

My level of programming proficiency borders to absolute ignorance however, and for now I need to learn where I will find the "start line". Any help in pointing out exactly where to start to understand rudimentary programming is greatly appreciated. I understand that there is quite a lot I need to learn before I can even consider learning an actual programming language.

EDIT: Thanks a ton for the link. Bookmarked.

Unknown Hero 20-01-2007 12:39 AM

i think you should first start in qbasic and create a quiz. then you should go to c++ as soon as possible and start doing some real programming!

good luck!

Mighty Midget 20-01-2007 01:01 AM

Thanks, and thanks for the cheering too :)

However, I think I need to get my hands on some sort of "programmer's dictionary for dummies" and some understanding of how a program (any program) is structured, from the very basic level of programming.

I come across words like "register", "class", "library", "pointer" and that sort of things, but I have no idea what they all mean. Reading is for me extremly time consuming so I have to look for books with lots of pictures in them or, better still, sites that will explain all this without filling the monitor with text. PS: I'm not dyslectic :D it's just that I find it difficult to read large blocks of text.

I remember from primary school one teacher showed us these logical diagrams with triangles and all sorts of shapes, that would explain how a program would work. But I can't for the life of me remember what it was called. Seeing and learning to use that diagram would perhaps be a start.

plix 20-01-2007 02:00 AM

<div class='quotetop'>QUOTE(carpetsmoker @ Jan 19 2007, 12:08 PM) [snapback]275665[/snapback]</div>
Quote:

It's ~100 lines, easy to understand, easy to make, and useful, besides that.
It's nor written in C, it's written in PHP, which is greatly undervalued as a general purpose scripting language (almost a drop-in replacement for perl)[/b]
I've been developing with PHP professionally for nearly 10 years. I love the language and I have a ton invested in it. However, it's no where near a "drop-in replacement" for perl. Perl still absolutely spanks it in terms of string and file handling, among many other things. Much as I love PEAR and PECL, they don't yet hold a candle to CPAN. The list goes on and on.

My point is that choice of language is appropriate. A beginner would probably be better suited to learning a higher-level language which handles memory management and has a more traditional, procedural model. Tcl, Perl, and PHP are all fine choices (Python is an excellent first language, but not really suited to that list). Someone with a stronger background in math (discrete math, lambda calculus, etc) may find languages such as Haskell, Lisp, and their ilk easier to learn. OOP is not the easiest paradigm in the world to wrap your mind around and writing garbage that's object-oriented just for the sake of it is counter-productive. Ever see a long-time C programmer's early stabs at Java? It's not pretty.

Personally, it all comes back to the functional languages for me. I'll always love C, but there's little in the programming world as expressive and elegant as Lisp.

velik_m 20-01-2007 07:42 AM

<div class='quotetop'>QUOTE(Mighty Midget @ Jan 20 2007, 03:01 AM) [snapback]275717[/snapback]</div>
Quote:

I remember from primary school one teacher showed us these logical diagrams with triangles and all sorts of shapes, that would explain how a program would work. But I can't for the life of me remember what it was called. Seeing and learning to use that diagram would perhaps be a start.
[/b]
http://en.wikipedia.org/wiki/Flowchart

nitro 20-01-2007 05:36 PM

I think you should just choose a language and get a book or a tutorial on the internet and just start with simple stuff. Don't try to make something that is verry complicated at first because you first have to learn the basics.
If you are going to make a command line RSS reader you will need to
  • Open a tcp/ip socket
  • implement the http protocol
  • parse xml data
  • print the result on the screen
I am not talking about storing the messages on your drive or creating a nice gui.

If you want some nice programs to star with then Try the exams posted in this forum. Once you have done a few of those then you will know some basic stuff and you can try to make something bigger.

My very fisrt program was a small game where you had to guess a number between 0 and 100 and the computer would say if the correct answer is higher or lower.

Good luck and let us know if you have made something.

Mighty Midget 20-01-2007 06:05 PM

<div class='quotetop'>QUOTE(Mighty Midget @ Jan 20 2007, 12:10 AM) [snapback]275695[/snapback]</div>
Quote:

I understand that there is quite a lot I need to learn before I can even consider learning an actual programming language.
[/b]

<div class='quotetop'>QUOTE(Mighty Midget @ Jan 20 2007, 03:01 AM) [snapback]275717[/snapback]</div>
Quote:

However, I think I need to get my hands on some sort of "programmer's dictionary for dummies"

I come across words like "register", "class", "library", "pointer" and that sort of things, but I have no idea what they all mean.
[/b]

<div class='quotetop'>QUOTE(Nitro @ Jan 20 2007, 07:36 PM) [snapback]275793[/snapback]</div>
Quote:

RSS reader[*]Open a tcp/ip socket[*]implement the http protocol[*]parse xml data
[/b]
:huh:
Like I said, I am a newbie to the extreme ;) so all this made practically no sense at all. Sorry.

nitro 20-01-2007 07:58 PM

<div class='quotetop'>QUOTE(Mighty Midget @ Jan 20 2007, 09:05 PM) [snapback]275798[/snapback]</div>
Quote:

<div class='quotetop'>QUOTE(Nitro @ Jan 20 2007, 07:36 PM) [snapback]275793[/snapback]
Quote:

RSS reader[*]Open a tcp/ip socket[*]implement the http protocol[*]parse xml data
[/b]
:huh:
Like I said, I am a newbie to the extreme ;) so all this made practically no sense at all. Sorry.
[/b][/quote]
I didn't want to scare you. I just wantd to point out that writing a big usefull program is not something you can do when you are learning how to program.

Also words as class, pointer and library are things you don't have to worry about yet.

As for a language to use. C++ is one of the most powerfull languages, but also one of the most difficult. Java is a lot easier and is better for learning the basics.

Good luck!

carpetsmoker 21-01-2007 05:55 AM

Quote:

I believe mathematics should be emphasized when dabbling in computers and programming.[/b]
I don't think that math be viewed as an end-goal for programmers.
I know that almost all, if not all, non-trivial programs have some degree of math, but math is just one of many means to reach a goal, and should not become a goal upon itself.
Sure, math is useful when dealing with RSA encryption, or JPEG compression, but just how many programmers deal with that? (you just use libssl, or jasper)

For example, when a kid learns to ride a bike, he learns to ride a bike.
He doesn't learn how to steer, or how to to peddle, or to watch out.
He just learns to ride a bike.
The steering, peddling, and watching out comes as a part of that, or with experience

I finished high school, never went to college.
Although I do quite a bit of reading on physics, math never really interested me, and never did any serious reading on the subject.
I won't say I'm a top-of-the-line programmer, but I'd like to think that I'm "ok", even though I keep writing stuff, never release it, and eventually just delete it :/

Quote:

As for me, I never finished school, so my education is lacking[/b]
Mark Twain once said:
"I never let schooling get in the way of my education"

Schooling and education are two different things, if you can learn stuff on your own without listening to crap teachers and paying enormous college bills then that's a good thing.

plix 21-01-2007 08:05 PM

<div class='quotetop'>QUOTE(carpetsmoker @ Jan 21 2007, 01:55 AM) [snapback]275844[/snapback]</div>
Quote:

Quote:

I believe mathematics should be emphasized when dabbling in computers and programming.[/b]
I don't think that math be viewed as an end-goal for programmers.
I know that almost all, if not all, non-trivial programs have some degree of math, but math is just one of many means to reach a goal, and should not become a goal upon itself.
Sure, math is useful when dealing with RSA encryption, or JPEG compression, but just how many programmers deal with that? (you just use libssl, or jasper)

For example, when a kid learns to ride a bike, he learns to ride a bike.
He doesn't learn how to steer, or how to to peddle, or to watch out.
He just learns to ride a bike.
The steering, peddling, and watching out comes as a part of that, or with experience[/b]
All programming is predicated and modeled upon various disciplines of mathematics. If you can't pedal, steer, and maintain you balance you can't ride a bike. Playing a game of semantics doesn't change the fact that your grasp of discrete mathematics, lambda calculus, and formal proofs will have a significant impact upon your skills. The only forms of math you even mentioned were continuous, which is a very handicapped view of the subject.

Sure, just sort of throwing your feet out to the sides and using them to push the bike forward and maintain balance could probably be considered "riding" the bike, learning how to pedal and steer makes riding said bike practical.

GrimFang4 26-01-2007 01:50 PM

Here ya go (tutorial for C++, starting from absolute scratch):

http://www.eggdisk.com/files/181125_nmpkj/...l%201-19-07.zip]Jonny D's C++ Tutorial 1-19-07.zip

crazedloon 27-01-2007 12:51 AM

Thanks for sharing that with us GrimFang. I'm interested in reading this document just as a matter of interest, but I'm having trouble unzipping it - I think there might be an error. Could you check it?

Also, I came across an interesting article which sort of fits in with my general instinct about the time it takes to learn new things:

http://norvig.com/21-days.html

While the points made probably don't apply to all the people all of the time, I find that with my own attempts to learn new skills (especially music) my ability has taken years rather than months to mature, seemingly irrespective of the intensity of the effort applied.

STFM 29-01-2007 01:30 AM

<div class='quotetop'>QUOTE(plix @ Jan 20 2007, 01:00 PM) [snapback]275726[/snapback]</div>
Quote:

I've been developing with PHP professionally for nearly 10 years.
[/b]
Woah! you must have jumped in early!!

plix 29-01-2007 04:53 AM

<div class='quotetop'>QUOTE(STFM @ Jan 28 2007, 09:30 PM) [snapback]276940[/snapback]</div>
Quote:

Woah! you must have jumped in early!![/b]
During the development days of PHP 3. I toyed around with PHP/FI a bit, but it was on it's way out at the time. Back then I was working in Perl, mostly, and a guy I worked with was really psyched about PHP and convinced me to give it a try (though since he was lead on a few projects, in many ways I didn't have a choice).

nitro 29-01-2007 03:39 PM

<div class='quotetop'>QUOTE(GrimFang4 @ Jan 26 2007, 04:50 PM) [snapback]276577[/snapback]</div>
Quote:

Here ya go (tutorial for C++, starting from absolute scratch):

http://www.eggdisk.com/files/181125_nmpkj/...l%201-19-07.zip]Jonny D's C++ Tutorial 1-19-07.zip
[/b]
The file is ok.

I don't think this is a very good tutorial because everything is in one big example. When you are learning how to write a program you should start with small examples.

STFM 31-01-2007 01:30 AM

<div class='quotetop'>QUOTE(plix @ Jan 29 2007, 03:53 PM) [snapback]276951[/snapback]</div>
Quote:

During the development days of PHP 3. I toyed around with PHP/FI a bit, but it was on it's way out at the time. Back then I was working in Perl, mostly, and a guy I worked with was really psyched about PHP and convinced me to give it a try (though since he was lead on a few projects, in many ways I didn't have a choice).
[/b]
Good choice then :) Must be good to see a technology develop itself into a leader like that

I remember being in on an interview for a Java developer and the applicant proudly (and smugly) stated
"Ive got 8 years Java experience"
This was in 2001.
Needless to say he didnt get the job!

plix 31-01-2007 02:17 AM

<div class='quotetop'>QUOTE(STFM @ Jan 30 2007, 09:30 PM) [snapback]277219[/snapback]</div>
Quote:

Good choice then :) Must be good to see a technology develop itself into a leader like that

I remember being in on an interview for a Java developer and the applicant proudly (and smugly) stated
"Ive got 8 years Java experience"
This was in 2001.
[/b]
The funny thing about PHP is that I will always have a love-hate relationship with it. It has advanced in ways which I absolutely love (there are meta-programming techniques that have been introduced that have allowed for some really neat things), but the strides taken toward "security" have equally frustrated me. register_globals was one of the *huge* selling points of PHP back in the day (very few people seem to remember what an absolute pain query parsing could be with Perl; PHP simplified all that). At the same time, while shifting away from what made it popular to begin with, the developers are really avoiding a few major shortcomings (I've been following the namespace specification proposals for years all the while in pain over how long it's taking).

The irony of your story is that I currently develop with Java professionally. I'd rather like to carve my eyes out. If it weren't for the Java tooling communities I'd have lost my mind long ago (Eclipse is by far the single best IDE I've ever used). I've always been of the "MIT approach" mindset (see: Peter Gabriel, "The Rise of Worse is Better"), though, and am really first-and-foremost a functional programmer. There are days I dream of a CS landscape ruled by Lisp.


The current time is 09:34 PM (GMT)

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.