Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


So you want to be a real programmer?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
61 replies to this topic

#1 Serapth   Crossbones+   -  Reputation: 5792

Like
13Likes
Like

Posted 05 June 2011 - 01:17 PM

When I was starting out, I was just dying to earn my “real programmer badge™”. At the time “real programmers” used assembly and I was taking the lazy easy way out using C. So, in my quest to earn my real programmer badge I taught myself assembly. Now it took me 10 times as long to write my code and it sure was more difficult; no doubt my badge would be in the mail! Sadly… no, it didn’t arrive.





The years went by and assembly became more and more niche. In the meanwhile, higher level languages came to the fore. There were even languages that hacks and simpletons could rapidly create programs in, like Delphi ( pascal ) and Visual Basic. Of course real programmers looked down upon these amateurs, everybody knew that this wasn’t real programming. Hell even C++ was looked down upon, it was way too high level and slow for real programmers to use, so being a real programmer I kept using C. Things sure were slow and painful, lots and lots of work, no doubt my real programmer badge was on it’s way!





Another generation of languages came along, new pretenders like Java and C# rose in popularity and the lazy and weak flocked to them like mad. Real programmers of course knew that C++ was the one true language. Sure, those class libraries and the freedom from memory management sure looked tempting, but I am a real programmer damn it, so I continued working in C++. My god was it difficult so I truly must be getting close to getting my real programmer badge. When it didn’t arrive I decide there surely must be a mistake at the post office!





Then the current generation of languages came to the forefront. Scripting languages had risen in popularity, to the point that it seemed more people were “scripting” than programming these days! Scripting? What real programmer in their right mind would ever work in a lowly scripting language? I am a real programmer, I will leave scripting for the hacks and newbies, thank you very much! Real programmers work in C++! Oddly enough, I still haven’t received my badge…?





Recently a funny thing happened… I took to a project under a tight deadline, it absolutely had to ship on a given date. There was no way I could possibly succeed in time using a real programming language, so I took to using the plebian tools. Working in C#, the wonderful class libraries sure did make development fast. At times I actually sunk to the lowest of the low and used scripting languages! It felt so dirty but I have to admit the rapid turn around and interactive tools sure did things quick. In the end, it was a challenge and I had to prostitute my pride, but I shipped on time! The following day, a FedEx truck pulled up to my front door and delivered my prized Real Programmers Badge™!




Of course, this story is completely full of crap but the moral is completely true. When I was starting out C was truly looked down upon as being a tool of “fake” programmers. Through the years the language has changed but there has always been an “IT” language that new programmers to the field think they have to work in to be a real programmer. It sadly often takes years of experience to realize how stupid this mindset actually is. Can you imagine a carpenter that wouldn’t use a drill because “real carpenters” use screw drivers, would you hire this person?

A real programmer uses the right tool for the job. For those of you just starting out, “the job” very much includes “learning to program”. In the end a real programmer makes the best product they can, as efficiently as they can, using whatever tool works best. Sometimes, that tool might even be C++!


This thread actually started life as a blog post here but based on so many comments I see in this forum, seemed applicable here.



Sponsor:

#2 JBourrie   Members   -  Reputation: 1204

Like
0Likes
Like

Posted 05 June 2011 - 02:04 PM

You know, "Real Programmers" also recommend against learning those "hand-holding" engines like Unity - it's so much better to wrestle with the 10+ year old SDL and write all of your own 3D. Personally, I think SDL is also too high-level, I like to build my own monitor from old televisions so I can design the hardware interfaces from scratch. Then I can interact with those interfaces using my custom-made computer that runs on vacuum tubes and punch cards (transistors are SO n00b).

I hope within the next decade or so I can reveal the project that I'm working on. It's really cool: it kind of feels like you're really playing table tennis in a frictionless environment!

We should sticky this post. Fantastic! Especially when it comes from a guy whose website it "GameFromScratch.com"... it's nice to see you don't define "from scratch" as "reinvent the wheel".

Check out my new game Smash and Dash at:

http://www.smashanddashgame.com/


#3 Telastyn   Crossbones+   -  Reputation: 3730

Like
0Likes
Like

Posted 05 June 2011 - 02:25 PM

Maybe if this weren't a poor retelling of a 10 year old article (with Java as the holy grail). Now to find that link...

#4 Serapth   Crossbones+   -  Reputation: 5792

Like
0Likes
Like

Posted 05 June 2011 - 02:39 PM

Maybe if this weren't a poor retelling of a 10 year old article (with Java as the holy grail). Now to find that link...


First off, I take exception to being a "poor" retelling, I like to think of it as at least a mediocre retelling.

Second, actually it wasn't a retelling. Now, by no means is the story new. In fact that is exactly the point of it, we all go through it eventually, or at least most of us do. Have other people had and put to word similar experiences? Of course they have... welcome to a world with six thousand years of written heritage, you are bound to get a bit of overlap!

Finally, I posit no "holy grail", I actually attempted to make it clear that many languages should be considered, even "the villain" of the story.

#5 medevilenemy   Members   -  Reputation: 326

Like
0Likes
Like

Posted 05 June 2011 - 02:43 PM

Nah, real programmers use a magnitized needle and a steady hand :cool:... you know someone was going to say it. Don't know if this conversation is going anywhere real, so I may as well put my $0.02 in... I tend to think the qualification of real programmers and engineers is not the language -- you can program in COBOL for all I care (but please don't :P), but rather a certain set of design skills and an approach less about what is best for business/most profitable/prettiest and more about "how do I get this to do what I want it to do in the best way I can" (and maybe have some fun with it along the way)
There was a saying we had in college: Those who walk into the engineering building are never quite the same when they walk out.

#6 PrestoChung   Members   -  Reputation: 184

Like
0Likes
Like

Posted 05 June 2011 - 03:15 PM

So by some trickery I was made to install Visual C# Express in order to run the game Terraria.

After playing around a bit it was really tempting but I want to use OpenGL. Is it possible to use SDL/OpenGL in C#?

#7 Serapth   Crossbones+   -  Reputation: 5792

Like
0Likes
Like

Posted 05 June 2011 - 03:22 PM

So by some trickery I was made to install Visual C# Express in order to run the game Terraria.

After playing around a bit it was really tempting but I want to use OpenGL. Is it possible to use SDL/OpenGL in C#?


Yeah, there are OpenGL bindings for just about every language.

Ditto for SDL.


And of course, Tao is a binding of both as well as ODE physics.



All that said, that is NOT the point of this thread. I am not saying C# is the "one true language" either. There is no "one true language", that is entirely NOT the point of this thread. You could just as easily swap my reference to C# with Java, D, Ruby, Python, whatever... and the story would have been just as valid.

Please please please for the love of dog, don't take this as a pro C# post, totally not the intention.

#8 DarklyDreaming   Members   -  Reputation: 366

Like
0Likes
Like

Posted 05 June 2011 - 03:24 PM

So by some trickery I was made to install Visual C# Express in order to run the game Terraria.

After playing around a bit it was really tempting but I want to use OpenGL. Is it possible to use SDL/OpenGL in C#?


Not a clue what this has to do with the question at hand, but the answer is yes.
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe

"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
~ Bregma

"Well, you're not alone.

There's a club for people like that. It's called Everybody and we meet at the bar."

~ Antheus


#9 Ninjaboi   Members   -  Reputation: 112

Like
0Likes
Like

Posted 05 June 2011 - 03:24 PM

I agree, magnetized needle for programming is a must if your serious about your craft :wink:. It's also essential to be programming on a system that of which you built from the bottom up with parts you made by melting down the elements around you and molding them into their appropriate forms. You then have to create the OS, firmware, drivers, and essential applications for said system in order to make it easier on yourself ( but by all means you can still do it using the needle ). If any of you people are using anything short of this, your a noob programmer at best!

Obviously the paragraph above is bogus. Don't reinvent the wheel ( as someone mentioned ), and use the right tool(s) for the job. If your building something that requires lots of control and power in the application, stick with a lower-level language to build the application with more resource-efficient code. If you have a deadline, or just don't want to bother with the low-level stuff, go for the higher-level languages and their great resources and tools. There is no "one size fits all" way to do something, therefore there is no "one language fits all" solution to programming. Also, this thread should be a sticky, if not for the information than for the exaggerated remarks in the replies :lol:.

#10 sketckasketch   Members   -  Reputation: 106

Like
0Likes
Like

Posted 05 June 2011 - 04:58 PM

What's the point? I don't really understand what you're trying to express, every language, even a scripting language, has it's pros and cons. It was very close-minded of you to not think about that when programming.
boolean isLearning= true;
boolean isOpenToAdvice= true;



#11 Ninjaboi   Members   -  Reputation: 112

Like
0Likes
Like

Posted 05 June 2011 - 05:17 PM

sketckasketch, not sure if you read through the whole article ( and the replies ), but it's a point being put across that there is pros and cons to every language, and nobody is raising up any language. Everyone here has said that you should use the right language for the right task. Not sure how that is relays to being "close-minded", but unless you didn't read through all the thread your not going to see that were not shunning anyone for what they use to do their tasks. In the end, nobody can say their language is better in every situation.

Again, I'm sure you just didn't read the ending of the article first posted, and the exaggerated remarks made by the repliers as a joke.

#12 JBourrie   Members   -  Reputation: 1204

Like
0Likes
Like

Posted 05 June 2011 - 05:21 PM

What's the point? I don't really understand what you're trying to express, every language, even a scripting language, has it's pros and cons. It was very close-minded of you to not think about that when programming.


:)

Check out my new game Smash and Dash at:

http://www.smashanddashgame.com/


#13 return0   Members   -  Reputation: 444

Like
4Likes
Like

Posted 05 June 2011 - 06:28 PM

Java really does suck though.

#14 radioteeth   Prime Members   -  Reputation: 1146

Like
0Likes
Like

Posted 05 June 2011 - 06:39 PM

My philosophy is:

do whatever makes developing your project as easy on yourself as possible while keeping it as fast as possible, and eliminating the need for run-time dependencies that will only aggravate and inconvenience the end-users of your project.

Programming is an art where programmers create a virtual machine that is intended to do virtual work, taking virtual input, and creating virtual output. It would then only make sense the machine does the job without costing more time and money than it should for both the programmer and the end-user. Find strategies for writing code that help you make your machine work properly without spending 90% of your development time finding bugs that could have been avoided, this of course is something that only comes with practice and experience, so keep on practicing and gaining experience.

Languages don't matter unless your goal is speed, whatever language you are most proficient at is the one you want to use, unless learning a new language that's quick and easy to pick up will save more time than sticking with your mastered language.

Code in a way that makes everyone happy, or as happy as possible. That's all!

#15 D.Chhetri   Members   -  Reputation: 181

Like
0Likes
Like

Posted 05 June 2011 - 06:46 PM

Java really does suck though.


Why? I feel like most people says this but that language actually makes a lot of jobs easier. Sure there are a couple of things in Java thats 'weird', but I wouldn't go to say that java sucks. Its actually isn't thaaaat bad as people display it out to be. Maybe you can show me why exactly java sucks? Is it all the libraries it provides? Or the automatic garbage collection? Or all of the exception safety it has? Or all the libraries it provides? or all the libraries it provides? Or is it because its not manly enough?
Edge cases will show your design flaws in your code!
Visit my site
Visit my FaceBook
Visit my github

#16 JBourrie   Members   -  Reputation: 1204

Like
1Likes
Like

Posted 05 June 2011 - 06:53 PM


Java really does suck though.


Why? I feel like most people says this but that language actually makes a lot of jobs easier. Sure there are a couple of things in Java thats 'weird', but I wouldn't go to say that java sucks. Its actually isn't thaaaat bad as people display it out to be. Maybe you can show me why exactly java sucks? Is it all the libraries it provides? Or the automatic garbage collection? Or all of the exception safety it has? Or all the libraries it provides? or all the libraries it provides? Or is it because its not manly enough?


I think all of the Java-hate out there is mainly by C# users, because C# (in most cases) is a better designed and more effective programming language for the "average" application.

Of course, even then it's only sucks relative to C#. In fact, it's a pretty decent language with good performance, support across nearly every platform in existence, and C# wouldn't even exist if Java didn't. Even though I try to avoid using Java whenever possible (I try to stick with C#), I'd favor it over lower-level languages (like C++) or script-like languages (like Python) for most applications.

Check out my new game Smash and Dash at:

http://www.smashanddashgame.com/


#17 papulko   Members   -  Reputation: 948

Like
0Likes
Like

Posted 05 June 2011 - 07:20 PM

From the perspective of an already experienced programmer like yourself that's an easy thing to say. Pick the right tool for the right task. Problem is you can't decide which tool is best if you don't have at least some understanding of how each of them work. You wouldn't use a chainsaw to tie your shoes would you? In my limited experience there are no shortcuts in learning good programming. I say grab the bull by the horns and start out by learning a lower level language, let it sink in, and work your way up from there. It doesn't necessarily have to be difficult, but it will take some time for most people.

#18 A n00b programmer   Members   -  Reputation: 105

Like
0Likes
Like

Posted 05 June 2011 - 07:28 PM

Someone once told me learning C++ was like learning how to juggle knives...

#19 Servant of the Lord   Crossbones+   -  Reputation: 21164

Like
7Likes
Like

Posted 05 June 2011 - 07:43 PM

Someone once told me learning C++ was like learning how to juggle knives...

That's not true at all! C++ doesn't require anywhere near the hand-eye coordination juggling requires. And with C++ after you slip and kill someone with the knife, you can reuse it for something else afterward. With actual knives, you have to get rid of the evidence.
It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal

[Fly with me on Twitter] [Google+] [My broken website]

[Need web hosting? I personally like A Small Orange]


#20 Ninjaboi   Members   -  Reputation: 112

Like
0Likes
Like

Posted 05 June 2011 - 09:15 PM

That's not true at all! C++ doesn't require anywhere near the hand-eye coordination juggling requires. And with C++ after you slip and kill someone with the knife, you can reuse it for something else afterward. With actual knives, you have to get rid of the evidence.


So true.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS