Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Thinking about learning to program, where should I start?


dariken
 Share

Recommended Posts

Programming's always something I've wanted to do and I think I want to take that first step.   Problem is I don't know what that first step is, can somebody tell me how I should start and what I should start with.   And yes, I'm fully aware that I'm not gonna be making the next Final Fantasy or World of Warcraft.
Link to comment
Share on other sites

dariken congrats, coding is fun to learn and its very important if you wanto further your computing.

the thing I tell everyone when they ask what language should I learn first or start?

the real question here is what do you wanto make? figure out what you wanto make then start there

for example if you wanto make games VB6 is one of the worse languages for doing so take a look at eclipse its still the same buggy laggy unstable piece of shit its been from 2001 when the source was stolen and renamed eclipse.

find out what you wanto make then learn the best language for it.

do not start with C or any hard languages like that, all this will do is teach you to ignore (the more advanced things you should not learn at the beginning) things and thats bad in programming.

programming is not hard, it doesnt take a genius as long as you can read you can do it.
Link to comment
Share on other sites

I want to make an MMO that has stuff like raids and other things that encourage team play.   I may play around with eclipse but I doubt I'll ever do anything serious with it.   I know what I want will take years and i'll have to start out small and I'm willing to do that.   How's Ruby?   Should I start out with that and just start out making custom systems with RPG Maker?
Link to comment
Share on other sites

I would suggest using C or java. It is really prefrenced based from there on out, on if you want to work with the lower end of code and manage things yourself, allowing you to make faster games, or if you want the approch of using already made functions and systems to speed up programming a bit and ignore how a program actully works under the hood. I would suggest Taking your time and reading through some Ebooks or go out and buy some books on the language you choose if you like the way it functions. If you do however choose C i can help you there.

> [Mutedwar](http://www.eclipseorigins.com/community/index.php?/user/75133-mutedwar/) : do not start with C or any hard languages like that, all this will do is teach you to ignore (the more advanced things you should not learn at the beginning) things and thats bad in programming.

Honestly that is not true in the slightest. Also i would not suggest learning vb6 as it does not adapt well with learning other languages, becuase soon vb6 will no longer be supported and you will be force to learn another language. unless of course you belive windows XP will support all the newest hardware in later year, doubtful really.
Link to comment
Share on other sites

I can help you learn C , i can help you are having issues with C as in compile errors or generlized programmign errors. i can help you get setup with an enviroment to program in C as well as give you some free C ebooks to help you learn. i also have a cheat sheet for C that contains all the basic methods and a Varible layout image to show you the max sizes and varible types. Just add me on skype, steam email me etc Look in my profile for that stuff =].
Link to comment
Share on other sites

So further info on this from the professionals here - I've a friend that has shown a site where it offers essential teachings of VB11 and C….  but would I be farther off learning this Python first?  Absolutely NO programming experience here whatsoever, but like Dark, I'm wanting to learn!
Link to comment
Share on other sites

Every language was created for a purpose, and every language will fit one niche better than another will.

If you are just starting out, and you are interested in cross-platform programming but don't want to get your hands too dirty, I suggest using one of the following:

Java

    - Pros: Large user base, quite a bit of support online on sites like stackoverflow, has browser applets, relatively easy to learn, plenty of snippets online to learn from, has decent OpenGL support through LWJGL

    - Cons: Currently missing things like lambda expressions (being introduced last year), doesn't have operator overloading, kind of messy coding conventions in the JVM, not always easy to integrate with native binaries, only has signed integers

C#

    - Pros: Fairly large user base, has more features and organization than Java, has MonoGame (open source, cross platform XNA reimplementation), plenty of snippets floating around the web, pretty good for Windows development, supported on Windows because it was made by Microsoft, supported on other platforms by Mono (open source)

    - Cons: Terrible OpenGL support in comparison to the other desktop application languages I will list, is not equally supported among all platforms for all versions of .NET and the language itself

JavaScript (or CoffeeScript which compiles to JS) & HTML(5)

    - Pros: In the browser and thus supported by most platforms (really just browser dependent here), much smaller learning curve, plenty of documentation and support on the internet, can write code in CoffeeScript (Google it for more information)

    - Cons: In the browser and most certainly **not** as 'equally supported' among browsers and platforms, performance between platforms can vary greatly, scripting language (not compiled at all), much more difficult to secure your intellectual property than the others, even with obfuscation techniques

If you want more control over the aspects of your application, and are prepared to learn a lot in order to write clean, efficient and _safe_ code:

C

    - Pros: Nice to use, extremely large user base, gives you down to the metal access (almost) and control, easy to use OpenGL/AL/etc, feature set is pretty much set in stone (if you want Object Oriented functionality, use C++) so implementations are pretty standard (byte ordering e.g. Little and Big Endian is not standardized however, that is system specific), supported in Visual Studio 2012 (very nice IDE) you just need to create an empty C++ project and tweak some settings

    - Cons: Requires memory management, no OO, no generics iirc, small standard library, not updated too terribly often (not that it needs to)

C++

    - Pros: All of the pros of C, has OO, has generics, large standard library, everything in C is supported in C++ (note: _C++_, I know nothing about Visual/Borland/Bloodshed/Dev/w.e.), generics, operating overloading

    - Cons: Requires memory management, has a steep learning curves for people who don't know anything about programming (anyone who is asking for help on where to start are in the category of "don't know anything"),

not as easy to manage multiple platforms (but is definitely possible), not updated too terribly often (not that it needs to)

Languages I know are used for games and other applications but I don't use myself (Warning: somewhat opinionated, not a whole lot of information like the others):

Python - Similar syntax to CoffeeScript, not terrible, somewhat popular and has bindings for some of the more popular media/game development libraries and toolkits

Ruby - I wouldn't use this for desktop application games and I think the syntax sucks

Erlang - Nothing to say, I read an article about how it simplifies concurrency yesterday (if that helps)

Scala - Nothing to say, I don't know what it looks like, but I have heard (from _actually_ reputable sources) that it is useful for sever-side programming

Lua - Look at Love2D

Languages I use but don't really think apply to game development, but may be useful alongside it:

PHP - Awkwardly similar to Java/C/C++ in syntax/functions, good for web back-ends (however almost nobody uses it right)

Perl - No comment

Languages that I think you are wasting your time on:

Any and all variants of Visual or otherwise Basic, F anything (Microsoft's stuff), J# or J++ (more Microsoft junk)

If you want to be in a world of _**pain and danger**_, try Assembler (aka ASM). My preferred variant is NASM, for Netwide Assembler, and I have also used MASM (Microsoft's ASM ;3) and I have seen other variants such as TASM.

In summary, for beginners I recommend C# and/or Java, and after heavily investing time in one of those two, you might be ready to transition to something like C/C++ (my preferred).

I personally use Java for quick little things, typically for browser-rendering type stuff (3D for example) or quick 3D programming or testing, and naturally for Minecraft modding/plugins, and for 3D I use the LWJGL library.

I use C# and Monogame together, generally for 2D games though, and I also use C# for programming at work, and small GUI applications.

I use C and NASM/MASM for really low level things, but I also use C in my computer science classes for various purposes and assignments.

I use C++ when I want to create something to stay or when I do something _extremely serious_, and I always use OpenGL with it. I generally use a combination of GLEW, GLFW and FTGL when doing OpenGL programming.

Note: I recommend utilizing the language for its purpose. If you use Java or C#, write OO code, and static/procedural where it is necessary. If you use C++ you can mix OO and procedural however way you want, as that's what it is meant to be able to do.

Unlike Zesh and genusis, I do not recommend just jumping into C or C++ if you don't know anything about programming, which is obviously the case if you are here asking advice on how to _start_ programming. You need to understand the fundamentals of programming before you move onto something as expansive, unrestricted and powerful as C/C++, or you'll end up causing more issues than you can handle.
Link to comment
Share on other sites

> I've thought about learning Ruby and making custom systems for RPG Maker.   How's that for a start?

If you want to make systems for RPG Maker that's a start. If you want to learn how to _program_, no that isn't really a start at all, considering RPGM uses a specific Ruby script variant of Ruby – a.k.a. a waste of time.

Quite frankly, if you think I'm being harsh, I'm not. You asked for our advice and then picked one of the languages that none of us suggested. In fact, I'm the only person who actually acknowledged you bringing it up and I said it's not for what you obviously want to do -- desktop game applications.
Link to comment
Share on other sites

What Panda has said is great and I agree that you shouldn't learn anything Microsoft, apart from Visual Basic 6 which is a basic but powerful language to get into. It is a lot better than the crap that is .NET. When I say powerful, I'm talking about its RAD capabilities, nothing comes close to VB6 in that department. Also, don't fall for the bullshit that learning VB6 means that you're learning programming the wrong way or that it somehow inhibits you from learning a language like C++.

That being said, I suggest you start with C/C++. C++ seems to be the industry standard in game development. And no, you don't need to start with a smaller language to "understand the fundamentals of programming". If you spend the time learning C/C++ properly and can digest the information then learning a smaller language is pointless but this ofcourse depends on the individual.
Link to comment
Share on other sites

I never said don't learn anything Microsoft, I said don't learn anything -Basic, it's just a time waster. C/C++ may be industry standards for large professional games such as Guild Wars 2 or Final Fantasy XIV: ARR, but Android games are typically Java (or C# if using MonoGame), and I believe iOS uses Objective-C and again C# + MonoGame and I believe there is now some Java support (unofficial like with MonoGame). Aside from that you have the slew of games using XNA, Unity, LWJGL (e.g. MineCraft) So no, C/C++ really is not the end game industry standard any longer. C/C++ is a dangerous animal in the wrong hands, and if people have a simpler solution (C#/Java) they should use it, even if its not permanent. C# and Java are both good ways to ease into programming if your final destination is for example, C++, because garbage collection and pointers are handled for you.

And remember, I'm not speaking from a C#/Java perspective. My preferred language is C++. I also know what hyenas lie in the C++ plains just waiting for a newborn antelope to just waltz in. Learning a step language when available is always better than scaling the wall, and C# and Java are both really good step languages if learned properly (VB family languages aren't step languages to C++ at all).

P.S. I'll edit the post when I get to a computer instead of my phone to improve clarity and organization.
Link to comment
Share on other sites

Now, if you really want to be dumb, you could learn a language like VISUAL then go and try to make your own, but I haven't really seen that style ever work and most people just give up. I'd just go and reread these posts then go and google a few of the languages that might be what you are looking for. Also, can anyone here direct me towards a language that would be great for creating a game engine like Eclipse so I can try to make my own game with fewer errors and more options?

P.S. I'm not a complete novice, I have used Java, HTML, Batch, and a few others but not a lot in them, I'm best with Batch. Any direction would be nice.
Link to comment
Share on other sites

There isn't such a language. The language is only as powerful as the programmer and the tools used. Less errors and more options will only come with more time invested, a better code structure/design, and simpler code (which should inherently come with a better design).

If there was such a language that would do as much work as the programmer, I'm fairly certain Eclipse wouldn't be using VB6 anymore.
Link to comment
Share on other sites

As I said in my original post, every language was created for _different purposes_. There is no "god among men" language, at least not to any decently open minded and intelligent programmer. There _are_ bad languages (I would lump in VB.NET into this category), and there are _stupid_ (which can be justified to be called bad) languages (meant to be stupid and challenging), such as Whitespace, Brainfuck (that's the name of the language, seriously, don't get mad at me for saying it), etc.
Link to comment
Share on other sites

Learning visual basic is like learning english since the syntax is clearly defined. C# is without a question similar to visual basic, and its cross platform, as well as quick, and easy to learn. So I would go with C#. If its to much of a learning curve for you to begin with, then learn Visual Basic first. Thats were I started. Oh and when I say Visual Basic I dont mean vb6, try visual basic 2012.

Good Luck

-Daxter
Link to comment
Share on other sites

> If you want to make systems for RPG Maker that's a start. If you want to learn how to _program_, no that isn't really a start at all, considering RPGM uses a specific Ruby script variant of Ruby – a.k.a. a waste of time.
>
>  
>
> Quite frankly, if you think I'm being harsh, I'm not. You asked for our advice and then picked one of the languages that none of us suggested. In fact, I'm the only person who actually acknowledged you bringing it up and I said it's not for what you obviously want to do -- desktop game applications.

I don't think you're being harsh.   I've found someone to teach me C so I'm going with that.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...