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

Time for me to learn programming languages, suggestions?

Recommended Posts

Now that I have spare time, I'm going to autodidactically learn a programming language.

I'm looking for a language that is commonly used in the industry. I want to be able to work with large databases and mathematical calculations in the future, with a possibility of game creation somewhere down the road.

I'm thinking C#, what does the Doomworld collective think?

Share this post


Link to post

Idk, I just started Java a few months back in September. I find that it's somewhat similar to ACS and very easy to pick up, so far, at least.

I gave C++ and C# (Visual Express) a shot, and found that Java was the easiest for me to pick up.

Share this post


Link to post

Start with Python because it is relatively easy to learn, will teach you plenty of programming paradigms, and remains useful in practical production scenarios too (well, hyptothetically you could stick on python and survive without anything else, but that's no fun and limits your potentials).

Use this: http://learnpythonthehardway.org/

Share this post


Link to post

My background: I started with Java way-back-when, moved over to C# in two weeks and it has since been my main language and eventually a source of income. I've used lots of other stuff (C, C++, Python, more Java, VB...) because of school and other projects but always ended up sticking with C#. And like I mentioned, C# has now been paying my bills for 2 years and counting, so I can't really complain.

With that said, Python is very good to start with if you have no programming/scripting/etc. experience what-so-ever. It's probably the easiest big language to pick up and it enforces its syntax on you which is good, because getting used to indenting your code and stuff is very important in the long run.

But once you're done with the basics, I can't recommend anything more than going for C#. Although you always should look into other major languages, those being C, C++ and Java, to know what's going on in the world. It's also good to be aware of different concepts that occur more commonly in other languages than the one you're most proficient with. For example, although you can use pointers in C#, they are a rarity compared to C and C++, so it's good to learn pointers with the languages they're used in.

In the end, once you know enough of programming it becomes relatively easy to switch languages. Most languages act very similarly, so unless you need to know relatively intricate and arcane inner workings of the said languages, you can pick up the syntaxes rather quickly at that point. It is, of course, best to learn one language well, but you shouldn't be afraid of a little change either.

If we're talking about overall utility, in today's world C# and Java are pretty much unparalleled. Anything from desktop programming to web development to game development to embedded systems can be done with them. Essentially, pretty much anything that you could do with C/C++ plus the web. The only significant advantage of C and C++ would be the large number of available libraries, but you can always find alternatives with the other languages. Speaking of game development, there's a number of games made in C# on Steam, including Terraria.


So, yeah. Do Python for two weeks and move on to C# for the rest of your life. :P

Share this post


Link to post

I've got to agree with Chungy that Python is a good starting point; it's easy to pick up other object-oriented languages once you understand it. The tutorial he linked is the one I used, too.

If you are interested in making games, Python has a library called Pygame for rough 2-d games.

Share this post


Link to post

Learning the programming mindset is more important than the individual language, though obviously you'll have to learn at least one on the way. From what I've heard, I'd put Ruby in the same class as Python as far as a learning language goes. I tried learning it, but since I started with C++ in high school, I seem to be too stuck on C-like paradigms to really get into Ruby.

Share this post


Link to post
eargosedown said:

Javascript

ROFL. Okay, these days you pretty much have to know Javascript if you're doing anything on the net, but it's a fucking horrible language.

eargosedown said:

PHP

Is even worse. Not to mention that PHP is, in practice, very limited in what you can do with it: It's for text manipulation.

Share this post


Link to post

Jodwin's Law : every thread about someone wanting to learn to program will inevitably devolve into a discussion about the redeeming features (and lack thereof) of various programming languages.

Share this post


Link to post
andrewj said:

Jodwin's Law : every thread about someone wanting to learn to program will inevitably devolve into a discussion about the redeeming features (and lack thereof) of various programming languages.

I'd figure that's the point of threads where you ask which language to learn. :P

Share this post


Link to post

Mister Anderson, what good is a programming language without a text editor?

*slaps some "ed" on that big mouth*

Hahaha, now what, muthafucka?

Share this post


Link to post

There are three indispensable languages
C: to see how the computer works;
Haskell: to learn what programming really is all about;
Ruby: to develop practically.

Share this post


Link to post

Start with Python. Really. It's a great language for learning to program in, with the advantage that it's not just a "teaching language" either - it's powerful enough that you can do serious real world stuff in it.

Avoid PHP or any form of BASIC (includes VB). You can try C# or Java but you'll have more fun with Python.

Share this post


Link to post

I'd say go with C, never used Python though. But if I can write functional programs in Standard UNIX Shell (not bash), then I could probably write it in Python.

However, you can't just take up programming because there are two kinds of programmers: Those who enjoy programming and do it every day (such as myself) and make stuff you enjoy creating (like ReMooD and other various projects), then there is job programming where you hate it and you have no passion for it. Although fun programming can somewhat turn into a job depending on how well you code. Also the learning curve is steep. When you want to program effectively you need to change your style of thinking. Being lazy does not cut it, and those who are lazy usually end up fixing their own problems years later, do it once and do it right (unless of course you find a way better algorithm).

But, good luck to you!

Share this post


Link to post

If you use python:
1) its hard to even make an exe. Sure, you can google something that supposedly does it, but does it actually work? In my experience, no. But some argue that I'm retarded (like bloodshedder for example), so your usage may vary. See, everyone has heard "google uses python" and google is NSA, so why do they want to promote python? Its a trick to herd the masses into a dead end of controlled opposition. Controlled because exes are hard to make so all the code has to be open source. That's normally a good thing, but the NSA has secret supercomputers with sophisticated search algorithms search all this open source code to cherry pick things to steal and then patent. Its all automated. Python is the cornacopia of human-computation that skynet steals to self improve at a geometric rate. Python is the farm and the crop is human minds.

2) If you want to do doom stuff, you might have to use this program called omgifol by that guy who's picture trolls post hell. Well it is written in alienspeak; hard to use, impossible to edit.

3) for game stuff there's pygame, woop dee doo. Its slow, there's few good examples to immitate. Well I've never used the actual SDL, so not sure how it compares. Meh, its ok... you can make pong/pacman/tetris.. maybe even mario 1/2/3. Of course you'll run into "object oriented programming" eventually, and this will make your brain absolutely bipolar; you'll be too occupied with hate for OOP and figuring out ways around it to ever figure out the basic essentials to make something like mario 3 in the first place. Its obvious that oop sucks, yet all the examples use it. Sure, python "allows" imperative/non-oop programming, but good luck learning it when there's no examples.

Also python 3.x was recently released. Elites release new versions like that when they want to extinguish a system; maybe they felt python users were progressing too much so better to destroy python and herd everyone over to whatever other newfangled purposely broken system, "go" perhaps? So now when you look at an example code you'll be like "uh, is this in 2.x or 3.x" and no forum even has a subforum distinguishing the 2. All the libraries only work in 2.x so 3.x is just there to make python as a whole harder for everyone to use.

If I could restart, I'd choose plain C, not stupid OOP C++ or stupid OOP c# (notice the memetic warfare there, they both have "c" in the name, thus purposely burying the actually useful plain ansi c in search results, and herding everyone toward proprietary hijacks or OOP which is designed to stunt everyone to reduce competition for the elites who know not to use those languages). But here's a trick to search for plain ansi c stuff... you have to find a sub-concept which is a fairly unique word and unique to ansi c (not normally part of c++ or c#) and search for THAT word, plus c (like "c" & "struct" maybe, not sure cuz I haven't tried c much yet).

But now that I finally learned which languages are real and which are the honeypots, I still can't learn programming because their new tactic is to destroy the economy. So now I have to spend all my time obtaining those elusive fiat coins so maybe I can have shelter & food if they choose to let me, with no time for doom or programming. Luckily someone invented bitcoin though, the anti-tyranny currency. It circumvents taxes/the man/regulations using MATH instead of law. Lets see how powerful your laws are against math bitches, ha ha ha ha!
http://www.zerohedge.com/news/2012-11-04/bitcoin-seen-through-eyes-central-banker
The the bane of humanity, its jersey shore watching majority won't let it catch on.

Share this post


Link to post

gggmork, I think you have the right mindset to learn Perl. And don't worry, it's "open-source", but only perl can parse Perl, so it's safe. ;-)

Share this post


Link to post
gggmork said:

But now that I finally learned which languages are real and which are the honeypots, I still can't learn programming because their new tactic is to destroy the economy.


This is the part we were waiting for.

Share this post


Link to post

That link was fun. Well, the comments, mostly. You have to wonder how long it has been since some of these guys ever stepped out of the house.

Share this post


Link to post
gggmork said:

If you use python:
2) If you want to do doom stuff, you might have to use this program called omgifol by that guy who's picture trolls post hell. Well it is written in alienspeak; hard to use, impossible to edit.

Interesting.

Of course, you don't "have" to use some particular library; writing some custom code to edit WAD files isn't too hard, and might even be a good learning project for a beginning programmer (omgifol was some of the first Python code I wrote).

Share this post


Link to post
Fredrik said:

Interesting.


Please don't take my posts/critisism too seriously. I just find trolly half true paranoid negativity more entertaining than normal posts. Obviously I successfully used omgifol and it allowed me to do some interesting stuff (like randomize textures in a map or scale architecture horizontally + vertically), which I probably wouldn't have figured out otherwise, so thanks for sharing it. I usually can't understand ANYONE's source code, not just yours in particular or anything. So that's probably my stupidity at fault, but I'm more comfortable when I can blame the rest of the universe for stuff.

Share this post


Link to post
gggmork said:

Please don't take my posts/critisism too seriously. I just find trolly half true paranoid negativity more entertaining than normal posts.

Yeah. It's getting kind of boring at this stage.

Share this post


Link to post

Here's a new angle: figure out what your peers know and learn that. Why? They can help you, and maybe you can help them. Learning is easier when you have people who can question or bounce ideas off of. If the only people you know who write code are on DW then take the common advice and learn Python or C# (or both) since there's lots of expertise here and those two are popular here. If your best friend in meatspace knows VB.NET, Matlab, QBasic, or whatever, then give that a shot.

Note that a lot of complex projects will necessarily involve you using multiple languages. The application I'm building for a client uses ASP.NET, C#, SQL, and JavaScript. That's just how things roll on the web. If I wasn't using Microsoft tools I'd probably be using RubyOnRails, HTML (4 and/or 5), JavaScript, etc. Desktop applications are often written in only one language unless they use a database, but most of the time you'll find one language can't be all things.

Share this post


Link to post

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
×