Pages: 1 [2] 3 :: one page |
|
Author |
Thread Statistics | Show CCP posts - 2 post(s) |
None ofthe Above
278
|
Posted - 2012.06.27 00:52:00 -
[31] - Quote
Xercodo wrote:Personally, to someone that has little experience with programming, I'd suggest starting out in Visual Basic, then moving to C# and then to C++. Which is also in order of how much hand holding they do for you (regarding stuff like memory acquisition and de-acquisition)
I haven't really looked much into Python yet so I can't say much for it.
In the end you'll want C++ though, pretty much every PC/console games company uses it now a days.
Ugh no. Please do not start with VB. Horrible habits.
If you want to be a serious coder, learn C++ first, IMHO. (Spoken as a software engineer and hiring manager.) Java might be a good second choice, or second language.
Python and VB would be good to have in the long run, but since both are used by sys admins and scripters aren't the best teaching languages unless you get lucky with a good teacher or class.
C++ has been a staple for serious programmers for decades. Most C++ courses and texts assume you are trying to be a real coder and don't pass you off with script-kiddie style tips and tricks but instead will teach you good theory and practice. A good grounding makes all the difference.
|
Nate Guralman
Blue Republic RvB - BLUE Republic
28
|
Posted - 2012.06.27 01:33:00 -
[32] - Quote
If you're going to make a career out of software development and you're in it for the long haul, I'd strongly, STRONGLY suggest you consider starting with a functional, non-OO language, such as Pascal or C. Most engineering problems are solved with the fundamentals, such as data structures and algorithms, not through complex architecture. And if you have a strong foundation in those fundamentals, then you'll be better off than most of the "programmers" that I've interviewed.
This is why I suggest starting with something like Pascal or C. OO languages like Java and C++ are important, and so are scripting languages like Python and Perl. You will need these in your career. But even these languages rely on the fundamentals of programming (loops, data structures, algorithms, etc). Starting with Pascal or C will let you focus on these things, rather than higher level concepts like inheritance and polymorphism.
(I'd also argue for assembly, not because it's faster or better, but because it teaches you exactly how a computer works. I guarantee, you'll see your C++ programs differently once you've learned assembly (even if all you ever do is write an application that counts from 1 to 10)).
And stay away from VB until you get experience. VB does very non-standard things, and I consider it a fringe language. Again, it has it's uses, and it's worth learning, but not as a starting language.
Finally, just so I'm not totally off-topic, EVE is written in Stackless Python. The back end database is MS SQL Server. There's an interesting discussion about its architecture on the High Scalability website, with references to information about it. |
ACE McFACE
24th Imperial Crusade Amarr Empire
715
|
Posted - 2012.06.27 01:39:00 -
[33] - Quote
English
Do I win? I just gotta go fast! |
Tao Arnst
Republic Military School Minmatar Republic
25
|
Posted - 2012.06.27 01:40:00 -
[34] - Quote
Must be Polish, 'cause the client is F**KED UP............ Most people embrace GOOD change Parasites embrace BAD change
|
Baljos Arnjak
Dark Praetorian Order
19
|
Posted - 2012.06.27 01:55:00 -
[35] - Quote
Another game engine you might consider using for your experimentation into AI and programming in general would be Unity Game Engine. It's pretty easy to learn and you can program in either C# or Javascript and their documentation and community is pretty good. The basic version is free to download and has all the functionality to make a complete game. |
Thurken
Republic Military School Minmatar Republic
5
|
Posted - 2012.06.27 01:58:00 -
[36] - Quote
Watooshi Makoochji wrote:Thanks for the responses folks; and no, not interested in botting ;)
Just interested in a career move. Given CCP is mostly in Iceland, not sure how that would work out, but there are a lot of great game companies out there. I'm asking around in different forums, trying to get a sense for which languages are used the sorts of fairly recent games I enjoy and would probably enjoy working on.
Sounds like C++ is quite common.
Stupid question but, why Python for EVE Online?
Artificial intelligence programming (not really graphics or UI, etc.) is what I'm most interested in. Helping design a game like ArmA or Fallout, Elder Scrolls, even Rome Total War series or something like the Civilization series would be fun.
Given that context, what would you guys suggest to start with? C++ or Python?
I do understand that the most valued programmers tend to have 'multi-lingual' and use different languages for different context, but given I'm just trying to get going, what would be the best to start with.
Somebody mentioned something called the "Hero Engine" which is evidently quite hot. But I guess that is quite new and learning it through an existing online training/certifcate organization might not be possible, thus it might not be a good engine to start with?
I suggest to start with Logic related Math, When you have a idea how to create AI with that,You can check if existing programming languages are valid tools. If not create your own. It could be that only logic as foundation is not enough. |
Nikodiemus
Jokulhlaup
35
|
Posted - 2012.06.27 02:03:00 -
[37] - Quote
To be frank, anyone that has had no experience with any programming languages will do well just to put a few weeks in learning any of the big programming languages (C++, Java, Python etc.) because you need to introduce yourself to languages and computer coding before you really know what anyone else is talking about when referencing other languages, the differences between scripts and Object Oriented, loops, logic and flow etc.
Python is very simple in terms of syntax and is a good place to start, but the same can be said for many programming languages. Once you get your feet wet though, you can look at a bunch of languages to see what looks like fun to work with and then take it from there.
Another person that said earlier its not just knowing the languages its the type of thinking you have, a logical flow to your program design, and knowing how to solve problems. When you get these down, you can program anything with just some syntax learning for a specific language. Also good because large projects or large companies use a variety of languages to do different things since there is no one language that is best for everything.
The best piece of advice that I can give is when you start learning programming, program a LOT. Practice practice practice practice. This will help you remember syntax and speed your scripting. Also, always cannibalize your older programs or script from libraries since it saves time - nobody starts a program from scratch once they get to a certain point. Most of all though, have fun doing it. Learning programming is hard work but if you enjoy it you will get very good in time. |
Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 02:45:00 -
[38] - Quote
Wow. Some really great advice in here guys Thanks! |
Savage Angel
Garoun Investment Bank Gallente Federation
129
|
Posted - 2012.06.27 03:37:00 -
[39] - Quote
I believe they have said the server engine only speaks gerbil. It only knows 3 words - "Feed Me" and "Oops". |
Fearless M0F0
Incursion PWNAGE Asc
37
|
Posted - 2012.06.27 03:41:00 -
[40] - Quote
Real men code in assembler using EDLIN
Eve is written in Python and it's a good language to learn how to program. Now, if you are looking into AI, there are specialized languages for that, LISP comes to mind, try googling.
As for programming languages to learn, I would say Java and C, C++ are kinda obsolete (although you get paid VERY WELL for knowing them ). If you are just starting, try modern object oriented languages: Python, Ruby, C# |
|
Implying Implications
cuties4life
122
|
Posted - 2012.06.27 03:41:00 -
[41] - Quote
EVE is programmed in html. Minmatar V3 gallery: http://minus.com/mOqXRikn5 |
Poetic Stanziel
Autocannons Anonymous Late Night Alliance
932
|
Posted - 2012.06.27 03:55:00 -
[42] - Quote
Watooshi Makoochji wrote:What languages is EVE Online programmed in? Visual Basic and COBOL.
The STAIN Travel Bookmark Collection - 451 Bookmarks |
Tippia
Sunshine and Lollipops
8236
|
Posted - 2012.06.27 04:06:00 -
[43] - Quote
Fearless M0F0 wrote:Real men code in assembler using EDLIN Gee. Thanks. I had repressed those memories. Now I'm going to have to spend another fortune on therapy to get rid of the dread and horror those five letters evoke.
Also, Scheme > all.
GÇ£If you're not willing to fight for what you have in GëívGëí you don't deserve it, and you will lose it.GÇ¥
CONCORD spawns: quick enough to save you?
|
Poetic Stanziel
Autocannons Anonymous Late Night Alliance
932
|
Posted - 2012.06.27 04:22:00 -
[44] - Quote
Tippia wrote:Also, Scheme > all. Because matching thousands of parens is awesome. (See also LISP.) The STAIN Travel Bookmark Collection - 451 Bookmarks |
St Mio
Imperial Academy Amarr Empire
882
|
Posted - 2012.06.27 05:39:00 -
[45] - Quote
Icelandic of course. Even the comments! |
black cree
Utopian Research I.E.L.
26
|
Posted - 2012.06.27 06:18:00 -
[46] - Quote
Java : not good as learning language despite all the marketing success it has, good for outsourcing large projects.
Pascal : deprecated , good for learning if you want to learn C after that
Python : good for learning, adapted to human mind with lots of semi automatic stuff in the background, performance issue with vanilla version (interpreted language)
C++ : minnie style language : you need to adapt your brain to it, lots of micro managment, no strings attached, old but still active for performance and precision, connected to Unix Oses.
Perl: powerful data modification abilities but obfuscating.
|
Allyria Kylari
Blue asteroids
8
|
Posted - 2012.06.27 08:18:00 -
[47] - Quote
Watooshi Makoochji wrote: If one were to pursue some training in languages applicable to AI programming in EVE Online or similar games what would guys suggest to start with?
The fact that you first ask about programming languages applicable to AI worries me. If all you want to do is program AI, wouldn't you first seriously study AI? How much computer science theory are you already familiar with? If you have a strong foundation in computer science theory, then you can intelligently select the language that is most suitable for the kind of AI programming you have in mind.
If you just want programming language literacy, then what everyone else has suggested here is great. Just keep in mind that AI and programming languages are two very separate things. If you want to learn languages that are commonly used in the game development industry, then all the languages previously mentioned like C and C++ are strong languages to learn. Being a highly competent programmer in these languages will really improve your resume if you are seeking employment in the gaming industry. |
AllUrBase
Parental Control
0
|
Posted - 2012.06.27 10:21:00 -
[48] - Quote
wikipedia wrote: Both the server and the client software for Eve Online are developed in Stackless Python, a variant of the Python programming language. Stackless Python allows a relatively large number of players to perform tasks without the overhead of using the call stack used in the standard Python distribution. This frees the game developers from performing some routine work and allows them to apply changes to the game universe without resetting the server.[67] However, the Eve cluster is taken offline daily for database and server maintenance.[68]
Source
CCP also seem to sponsor/fund the Stackless Python project. [1]
I'm wondering if Erlang could also be used for handling concurrency issues, instead of Stackless Python.
Btw, are there any (detailed) Programming + Infrastructure links/dev blogs/resources about EVE? (before I start searching? :P).
As far as the PL are concerned, imho, Python is great to start. It's easy to learn and lets you focus on 'getting your algorithms right', which is really important when you start to learn how to code.
After that you can begin 'specializing' in what you want.
Whatever you choose, however, it's really important to have a good grasp on both the algo stuff (abstract data types, algorithmic complexity etc), and on low-level details (how the language implements core structs and methods, some compiler optimization stuff, userspace<->kernelspace interaction, interactions with the hardware (CPU arch, caches, memory, I/O)), in order to write optimized and efficient code.
For low-level/systems/performance-critical programming, you have no choice but C (and some (inline) asm perhaps). It's a trikcy language, but you will learn a lot writing in C, and you can do some really cool/weird stuff in it too. ;)
C++/Java/C# for large user-space applications and/or middleware. OO really shines in such apps. But I hate it. :P Scala is becoming quite popular too.
Python or Ruby for smaller user-space apps perhaps, and some scripting. It can also be used for backend web development (Django, Rails etc).
Perl and Shell scripting for admin/maintenance work, handling of text files etc.
Erlang is good if you want to learn about concurrency (and it's becoming very popular in distributed, heavily concurrent systems). Most of the NoSQL db's or AQMP implementation there days are written in either C++ or Erlang, afaik.
Functional PLs, such as SML, are very good for digging deeper into PL, and will put you into a different mindset when coding (ever heard of tail recursion? etc). OCaML is a very nice mix of functional programming and OO, and Haskell, being a pure and lazy functional language, is pretty tricky, but will probably change the way you're writing code forever. :P Lisp probably falls into this category too (too many parentheses however :P), and used to have some applications in AI programming.
If you're into AI, you could also check Prolog (Logical Programming). I never got used to Logical Programming, however it's a nice challenge trying to write a few simple programs in Prolog. Except for Prolog, I think there are some more specialized languages, which focus on machine learning etc.
my 2c |
Vaju Enki
Secular Wisdom
185
|
Posted - 2012.06.27 10:35:00 -
[49] - Quote
Unfortunately from now on it's not writen on "fault language". If you want instant gratification, go stimulate your genitals. EvE is Hard, deal with it. |
Sirinda
Aliastra Gallente Federation
103
|
Posted - 2012.06.27 10:37:00 -
[50] - Quote
01010100101010101001010111011010010101010100111101000110101101010101100101101010011001
That is your answer. |
|
Nate Guralman
Blue Republic RvB - BLUE Republic
28
|
Posted - 2012.06.27 10:59:00 -
[51] - Quote
C and C++ are NOT obsolete. In fact, they're probably the most important languages in use today. For instance, almost all games today are written in C++, and most operating system code is written in C. And there are still tons of business apps written in C++.
The Tiobe Index tracks the popularity of programming languages, and the top three are C, Java and C++, in that order. |
Romar Agent
Ishukone Regional Headquarters
62
|
Posted - 2012.06.27 11:12:00 -
[52] - Quote
As been said, look into C++ and Java and you are set.
Though I would suggest starting with C as it's highly unforgiveable and you will learn everything about the basics (most important memory allocation) in a clear technical way (do this until your synapses bleed and you can shift bits with the best of them ). |
Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 12:51:00 -
[53] - Quote
Thanks a lot Myrkala :)
ADDIT: and lots of other good posts since last night! Thanks everyone.
Myrkala wrote:Watooshi Makoochji wrote:
Given that context, what would you guys suggest to start with? C++ or Python?
I do understand that the most valued programmers tend to have 'multi-lingual' and use different languages for different context, but given I'm just trying to get going, what would be the best to start with.
My adivce, start simple. Learn the basics and expand. TL;DR Java is a good place to start, transitioning into C# and working with a simple framework before you dip your toe in the cool pool that is C++ and all the different libraries/frameworks there are to choose from. 1. Java This is good start, learning materials are abundant and the language is well supported and is very common. So even knowing only this language may help you get your foot in the door somewhere, probably not a games company unless its a mobile games company. (Though: Java FX2, a simple framework can now use GPUs for example.) 2. C# (XNA Framework) This language is very similar in syntax and ideology to Java. (With some exceptions. It is also fairly common, and a great thing that you get with it is the XNA framework, which can be used to write games and applications for the XBOX 360 and the Windows Phone platform. The documentation is decent and there exist numerous tutorials for creating simple games. So yet another useful tool to add to the belt, writing in the XNA framework will give you insight and experience in coding for games. Having learned OOP by learning Java will help you a lot here. 3. C++ The daddy of games programming, a very powerful language but can fail drastically if you have no clue as to what you are actually writing... pointers and whatnot. With great power comes great responsibility is a term that is often repeated about C/C++. Which is why its better to fail at the easy stuff first (in Java and C# which are much more forgiving) before jumping into C++. Games programming is much more than just knowing how to code in a specific language. Its about knowing your OOP, Math and knowing the capabilities of the library/framework you've decided to use/your employer uses. Because lets face it... you aren't going to have the skills to write a whole code library/framework yourself in the first years of learning programming. PS. I myself am just at the C# level, started learning programming before xmas 2011 and today I am working on improvements to my second game made in the XNA framework with C# (Which I started learning in January), a 2D Dungeon crawler. Just to give a perspective how fast its possible to learn, this next semester I will be starting on C++. Another piece of advice I've seen people give is to not only focus on OOP languages but also learn maybe one functional language, perhaps one like Haskell or APL/J. I also suggest checking out http://projecteuler.net/ for some problems to solve with programming/maths, be warned it can be addictive. :) Good luck on your career. |
Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 13:43:00 -
[54] - Quote
Allyria Kylari wrote:The fact that you first ask about programming languages applicable to AI worries me. If all you want to do is program AI, wouldn't you first seriously study AI? How much computer science theory are you already familiar with? . . .
I don't mean true 'artificial intelligence' as in strong or general purpose intelligence
To start I just mean 'computerized opponents' as they exist in various computer games these days. I would assume that the 'rats' and 'sleepers' in EVE Online, and the various other types of computer opponents in contemporary computer games (e.g., the opponent soldiers in games like ArmA, Fallout or Borderlands, etc., or the opponent 'societies' in games like Civlization or Rome Total War) are just a specialized set of the rest of the game code, written in C++ or whatever that particular game is based in?
As a social scientist I have virtually no background in computer science theory, so what I'm really trying to do is go in a new direction, and one that will allow me to get a different job than my current one in academia.
Have to be honest though, eventually being involved in efforts to develop true general purpose intelligent machines is a fascinating prospect. Even some of the oldest "AI" examples are pretty mind-boggling.
http://en.wikipedia.org/wiki/SHRDLU#Excerpt
Quote:Here is an extract from a famous demonstration of SHRDLU (with messages converted from their original upper case for ease of reading):
Person: Pick up a big red block. Computer: OK. Person: Grasp the pyramid. Computer: I don't understand which pyramid you mean. Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box. Computer: By "it", I assume you mean the block which is taller than the one I am holding. Computer: OK. Person: What does the box contain? Computer: The blue pyramid and the blue block. Person: What is the pyramid supported by?
|
Tippia
Sunshine and Lollipops
8245
|
Posted - 2012.06.27 13:48:00 -
[55] - Quote
Poetic Stanziel wrote:Tippia wrote:Also, Scheme > all. Because matching thousands of parens is awesome. (See also LISP.) Meh. The coding environment will do that for you.
The really awesome part is figuring out which one of those thousand parentheses is misplaced to cause the bug you're experiencingGǪ GÇ£If you're not willing to fight for what you have in GëívGëí you don't deserve it, and you will lose it.GÇ¥
CONCORD spawns: quick enough to save you?
|
Alrione
Black Lagoon Inc.
239
|
Posted - 2012.06.27 14:09:00 -
[56] - Quote
If you want to stay at hobbyist level starting with java/python is fine. However if you want to become serious developer dive straight into C++.
Problem with transitioning off java to C++ is whole bunch of bad habbits, also some people mentioned lack of garbage colelction as some sort of difficult/negative thing about language. Well thats frankly rubbish, in majority of cases you don't need to do anything special to avoid leaking memory. As long as you learn to write neat c++ code with use of stl/boost y |
|
CCP Guard
C C P C C P Alliance
2555
|
Posted - 2012.06.27 14:12:00 -
[57] - Quote
In this post I am going to tell you all I know about programming...so bear with me please!
It's Python. CCP Guard | EVE Community Developer |-á@ccp_guard |
|
Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 14:17:00 -
[58] - Quote
Alrione wrote:If you want to stay at hobbyist level starting with java/python is fine. However if you want to become serious developer dive straight into C++.
Problem with transitioning off java to C++ is whole bunch of bad habbits, also some people mentioned lack of garbage colelction as some sort of difficult/negative thing about language. Well thats frankly rubbish, in majority of cases you don't need to do anything special to avoid leaking memory. As long as you learn to write neat c++ code with use of stl/boost y
Hmmmm. Have been looking at some C++ and frankly it would appear there is a LOT of assumed knowledge just to start with learning that language.
Keep in mind, I have basically ZERO computer science training
Don't you think it might be better to start with something a little more approachable like Java or Python?
Actually though, OST does list an Introduction to C Programming in their set of three courese "For the Complete I.T. Beginner."
The other two being
Linux/Unix 1: The Unix file system
Introduction to Object-Oriented Programming
Like I said, I'm starting on a long-term track here, so learning a variety of stuff in the long-run is the plan. But since how I start could make a bit of difference I'd like that first choice to be a smart one. |
Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 14:19:00 -
[59] - Quote
:) ! Well THAT is encouraging!
CCP Guard wrote:In this post I am going to tell you all I know about programming...so bear with me please!
It's Python.
I was initially very much leaning toward Python to start for a couple reasons:
1. it sounds very approachable 2. it is very general purpose 3 it is open-source and has a vibrant community 4. it is used in some of my favorite games, for which I could see myself getting some initial 'practical' experience by making some user mods (e.g., Mount&Blade Warband) |
Bootleg Jack
Potters Field
153
|
Posted - 2012.06.27 14:20:00 -
[60] - Quote
CCP Guard wrote:In this post I am going to tell you all I know about programming...so bear with me please!
It's Python.
Explains alot. I'm an American, English is my second language... |
|
|
|
|
Pages: 1 [2] 3 :: one page |
First page | Previous page | Next page | Last page |