So you want to be a real programmer?

Started by
60 comments, last by Alpha_ProgDes 12 years, 10 months ago
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++!




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

Advertisement
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/

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...

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.
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.
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#?

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.

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."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
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:.
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;


This topic is closed to new replies.

Advertisement