Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

Which programming language is best for beginners?

Java
C#
C++
Other (Please specify)

Pages: 1 ... 3 4 [5]

Author Topic: Learning Programming  (Read 12025 times)

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Learning Programming
« Reply #60 on: October 14, 2011, 04:36:16 pm »

Well that came next...

Askot Bokbondeler

  • Bay Watcher
  • please line up orderly
    • View Profile
Re: Learning Programming
« Reply #61 on: October 14, 2011, 08:28:43 pm »

i voted other because i wanted to view the resutls, and the show results button wasnt working. i'm also enjoying learning with python

Chattox

  • Bay Watcher
    • View Profile
Re: Learning Programming
« Reply #62 on: October 15, 2011, 07:56:46 am »

i voted other because i wanted to view the resutls, and the show results button wasnt working. i'm also enjoying learning with python

I've kinda considered Python. What's it like to learn, and how does it differ from other languages? The only thing I know about it is the IDE is called an IDLE because of Monty Python, or at least that used to be the case :P
Logged
"10 z levels down, 10 tiles north is some blood, i shall go clean it before it drives me to insanity with it's crimson color"
The setting of Half-Life 2 Episode 3's release: "It is the 41st Millennium. For more than a hundred centuries the Gabe has sat immobile on the..."

MagmaMcFry

  • Bay Watcher
  • [EXISTS]
    • View Profile
Re: Learning Programming
« Reply #63 on: October 15, 2011, 11:16:03 am »

Out of interest, which library do you yourself use for graphics?

I currently use SDL, and have written an object-oriented layer over it, so it's a bit like SFML, but only a bit, and only I know what my layer does and how you use it, so it probably won't help you. But I suggest that you use SFML, because then it's just much easier to get something done quickly without lots of experience.
Logged

Starver

  • Bay Watcher
    • View Profile
Re: Learning Programming
« Reply #64 on: October 15, 2011, 04:31:22 pm »

Been thinking a bit since I left work last night (came back in today for various other things) and this looks like a good post to hang my intended question off.  But first an aside...

(not counting all these weird but awesome ones on http://www.esolangs.org/)
If you see one pop up there called "Quad" (just four, uncomplicated (not SUBLEQ-complicated, certainly) opcodes, and ripe for self-modification) I've gotten around to doing something other than just letting my nearly two-decades-ago university project other than let it fester on doubtless unreadable 5.25" diskettes and all the more recent thoughts just rattling around in my mind.

Quote
Warning: Never ever use an advanced programming environment to learn programming (it will only frustrate you), just use some simple text editors, preferably with syntax highlighting.
(Considered something along the lines of "wuss, we don't need no steenkeeng syntax highlighting", but I must admit it's useful when the IDE points out those little typos (and thinkos) one makes. :)

Anyhow...  main question.  Recently I've been mostly developing my C++ in a Linux environment.  Somewhere I still have my paid-for Borland Turbo C++ package (for DOS!  Also the related Assembler IDE) goes back to some time after I left Uni, but I'm sure it'll have issues with the various Windowses of the post 9x-era.

So, given I'm not a student now (although, I am considering something... but that'll be a couple of years down the line), what's your suggestions for MS-platform free IDE for C++ (and probably related languages, and possibly unrelated ones, like the Gnue Compile Collection now is, though I don't intend to touch Ada with a bargepole!).

I see that GCC has at least three different Wintel-ready variants (or of course I could build it myself, but I'm not sure whether I want to mess about with compiling and configuring said syntax-highlighting interface...) and there are some other names I recognise (and some that I don't) that seem to be of a similar cut, but...  Personal recommendations?

Of course, I could just use one of the many notepad-clones that has inbuilt multi-lingo identifying/highlighting support.  And, at the same time, I'm really not into the Powerbuilder-style environment (as was, at least, given my experience is from ten years ago) which tries to visually show the connections between objects.


Regarding your rant, BTW, here's a bit of my history.

I was taught Pascal (DOS-style text editor...  it was in the '80s) as my first non-BASIC/non-Assembler language, and I later picked up TurboPascal (Lazarus's inspiration/predecessor, a later purchase from Borland) on my own.  While it isn't pretty by some standards, and on the rare occasions I go back to that for some rapid non-console interface prototyping (personally find it easier convert to that and than use Perl/Tk, even though I tend to prototype my non-visual code in Perl) and have had to fight to remember which particular bit of header I need to put global stuff into, the rest does fairly well pad out.  Nothing like as bad as COBOL or Ada (two different languages, worse than Delphi in their own particular ways, if you forgive me for dismissing your dismissal of Pascal :) ) and I don't find Pascal/Delphi to have such an ugly syntax, on a line-by-line basis.  But, then again, I see what you mean.

I don[t find the case insensitivity to be an issue.  If you've got "VAR1" and "var1" and "Var1" and possibly even "VaR1", "vAR1" and "VAr1" in your code and you intend them to be separate entities for separate purposes, you're probably coding wrong.

Not that I'd ever consider using "var1 = 'foo'" as a trivial statement and "VAR1 = 'bar'" as a statement to operate on the same variable but MORE NOTICEABLE!  And neither do I always stick with camelCase (I might put constants in ALLUPPER and various other schemes of representation to differentiate 'working' variables from the ones either arriving as function parameters or intended to eventually be returned at the end).

Tell you what, though, when I was originally using Delphi regularly, I'd usually spend hours and hours and hours doing all the largely unnecessary coding needed to ensure that when the windows were resized, the buttons and other visual components rearranged and resized themselves aesthetically... And then, I'd get around to setting up the various buttons/checkboxes/spin controls/whatavyer to give me the control I needed over the process, and eventually I'd get around to writing (or porting) the stuff I'd originally wanted to get going behind the scenes...  Absolutely rubbish project development skills, I'm sure you'd agree.  :)


edit: So many typos (e.g. "Gnue Compiler Collection") or at least awkward bits of grammar.  And, not the least, I somehow typed "TurboPascal" instead of "Delphi" at one point... a bit of a Freudian slip?  I've no idea how my brain and fingers managed to screw that one up.  Can only assume I was being distracted by something when I typed it.
« Last Edit: October 16, 2011, 04:23:44 pm by Starver »
Logged

Reiina

  • Bay Watcher
    • View Profile
Re: Learning Programming
« Reply #65 on: October 15, 2011, 05:08:51 pm »

Mingw for the windows gcc(I don't even know what the others 2 are), gives you a shell linux style with it.

Code::blocks is a very good ide I used for a while(currently using the free visual C++ 2008 express edition), though when I used it I had to turn off auto completion as that was terribly buggy, not sure what the current state is(but apparently there are regular builds added on the forums). Also it's made to work with mingw so it doesn't require any configuration as far as I remember, you launch and you're ready to go :).
Logged

Askot Bokbondeler

  • Bay Watcher
  • please line up orderly
    • View Profile
Re: Learning Programming
« Reply #66 on: October 15, 2011, 05:10:20 pm »

i voted other because i wanted to view the resutls, and the show results button wasnt working. i'm also enjoying learning with python

I've kinda considered Python. What's it like to learn, and how does it differ from other languages? The only thing I know about it is the IDE is called an IDLE because of Monty Python, or at least that used to be the case :P
i really can't compare it with anything else, i can only say that at least the basic concepts i've grasped are fairly intuitive, and there's plenty of documentation on it, my main dificulties with learning to program have been finding time to dedicate myself to it

nenjin

  • Bay Watcher
  • Inscrubtable Exhortations of the Soul
    • View Profile
Re: Learning Programming
« Reply #67 on: October 15, 2011, 05:26:53 pm »

Python uses a lot more language in place of syntax than does C++. In that sense it's a lot easier to read, and being easier to read, it can be easier for new programmers to structure their thinking.

For example, Python has this thing call "in". When combined with a "for" loop, it basically tells your function to "walk" through each piece of the data and do something to do it. This is all completed by For X In Y.....

Where as in C++, you've got to write an iterator that knows how to look at each data element and fool with it. Which ends up being a substantial bit of code compared to the simplicity of Python's "in" statement.

Python is essentially doing what C++ is doing, only it's abstracted it under another layer of code that you, the programmer, don't see.

This is ultimately WHY I went with C++. It's harder to learn and execute because it asks more of you as a programmer. You have to write more, account for more and understand more. The margin of error increases because everything, relatively, is in your hands. But with that comes a great amount of power to manipulate code, whereas in other languages you might be constrained by the abstractions of the language. Say there's something with the For/In loop you want to do that's novel and may conflict with the interior operation of the For/In loop...you may end up having to write a solution around their abstraction to get it to do what you want...while in C++, you'd simply build your loop/function piece by piece. I say "simply" but it's not simple....but in my mind it's more direct.

I'm not trying to dissuade anyone from Python, its user friendliness is really outstanding especially for people who are just diving in. For me, knowing that coding is a bunch of thousands of little working parts built on other little working parts....I decided I needed to know, that going with a high-level language was going to leave me with more questions than answers. For people that really need to make something NOW, I think Python is a pretty good starting point until you crave more. All the lessons you'll learn in Python will carry back to learning C++, it's really the syntax (and the libraries) that you have to take the time to learn specifically. (The deep level stuff like, for example, overloaded operators, order of operation, type casting, all that mysterious crap, is up to you to learn. Not all of it needs to be known, but once you've started learning it can be hard to stop.)
« Last Edit: October 15, 2011, 05:37:24 pm by nenjin »
Logged
Cautivo del Milagro seamos, Penitente.
Quote from: Viktor Frankl
When we are no longer able to change a situation, we are challenged to change ourselves.
Quote from: Sindain
Its kinda silly to complain that a friendly NPC isn't a well designed boss fight.
Quote from: Eric Blank
How will I cheese now assholes?
Quote from: MrRoboto75
Always spaghetti, never forghetti

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Learning Programming
« Reply #68 on: October 15, 2011, 05:37:42 pm »

Does python has something similar to the IEnumerable interface?
That is, for c#, if you make something implement IEnumerable then foreach loops will work on that class, so you can use foreach to iterate through arrays, but also lists and what ever custom class you want.

Virex

  • Bay Watcher
  • Subjects interest attracted. Annalyses pending...
    • View Profile
Re: Learning Programming
« Reply #69 on: October 15, 2011, 05:41:09 pm »

I've always found types to be a rather weird addition to C (and C++ by extension). Assembly languages don't have types, operations treat data as a binary representation of a certain type. Assigning types to data instead of functions feels somewhat backwards.
Logged

PsyberianHusky

  • Bay Watcher
  • The best at being the worst at video games.
    • View Profile
Re: Learning Programming
« Reply #70 on: October 16, 2011, 01:17:44 pm »

So, also trying to start coding a simple game.
No formal experiences, but I want to know if anyone can recommend good communities to lurk in, and any good online video series for learning these things as a skill.
I have a lot easier time recalling things I hear over reading, and then I can use the text to clarify.
Logged
Thank you based dwarf.

Virex

  • Bay Watcher
  • Subjects interest attracted. Annalyses pending...
    • View Profile
Re: Learning Programming
« Reply #71 on: October 16, 2011, 01:28:06 pm »

Tigsource is a good starting point for game developers, as is Gamedev. AIgamedev sometimes has interesting articles for free, though most require a subscription. The C2 Wiki is always good for an interesting read, though it doesn't provide much in the way of help.
Also, a word of advise Before you do anything, write a design document, with as much detail as possible, first mapping out the user side of things and then the code side. You don't want to find out halfway through that you've been approaching things all wrong.
« Last Edit: October 16, 2011, 01:30:25 pm by Virex »
Logged
Pages: 1 ... 3 4 [5]