PDA

View Full Version : Programming Experience



shoutatchickens
04-02-2008, 11:23 AM
I was noticing that many of you here are very knowledgable about many aspects of programming. I am interested in knowing how much experience you all have and what formal education if any.

I have been programming on and off--mostly off--for about 6 or 7 years. I have had some classes on programming but they pretty much consisted of copying visual basic code out of a book and did not provide any real understanding of programming.

I had an account here on this forum back when I first started programming and learned a lot through asking questions here.

Now I am at a point where, even thogugh I am programming and getting paid for it, I read these forums and realize just how little I actually know.

So rises the question: How much experience do you guys have? :)

Daved
04-02-2008, 11:25 AM
Bachelor's degree in computer science and 8 years experience as a developer, but most of the answers and advice I provide is based on what I've learned reading and answering questions in forums like this.

Dino
04-02-2008, 11:26 AM
I wrote my first line of code in 1984.

Elysia
04-02-2008, 11:27 AM
About 8 years of C++... No education. Mostly self taught.

brewbuck
04-02-2008, 11:28 AM
Bachelor's degree in computer science and 8 years experience as a developer, but most of the answers and advice I provide is based on what I've learned reading and answering questions in forums like this.

Apparently, I am a clone of Daved. 8 years pro experience, but I've been programming far longer than that: 23 years.

SlyMaelstrom
04-02-2008, 11:29 AM
I don't want to say that people here aren't extremely knowledgable, but please don't underestimate the amount that people tend to look up references as they post to ensure complete accuracy of their statements. It's one thing to have a general idea about many aspects of programming and quite a different thing to be able to explain everything in full detail right off the top of your head. Everyone has their expertises and usually they learn the rest from reading, studying, and working with other people and their expertises. Honestly, professionally, I have learned much more about tax and finance (none of which you'll hear on this forum), but where I'm learning about that, others are learning about programming. School teaches relatively slowly compared to work experience. If you just started out working in programming, I'm sure you'll find yourself much, much more knowledgable in a year.

Anyway, I started really programming back in highschool. (2004... search my threads to see a really disappointing looking series of events) It was only a hobby. I went into college as an art major, changed to Comp Sci after a year. Dropped out cause I needed money to work... went back for evenings only (where I had to drop Comp Sci and switch to Computer Information Systems). Since then, I've dabbled in C, C++, Perl, Java, Visual Basic, and various web languages... do to the fact that I work primarily in Visual Basic, I'd say I'm most proficient in that, now. I'd like to eventually get my masters in Computer Science and get a C or C++ job.

I should mention that I stopped talking about programming on this forum a very long time ago and when I used to, it was never very exciting. I really have to will to start up, again, right now... but maybe some day when I start programming in C or C++ again.

brewbuck
04-02-2008, 11:34 AM
I don't want to say that people here aren't extremely knowledgable, but please don't underestimate the amount that people tend to look up references as they post to insure complete accuracy of their statements.

I think Google has completely transformed the meaning of "intelligence." You can't tell anymore if the person you're talking with online is actually clueful, or is just taking everything from a reference. There's nothing inherently wrong with that, but the key is that the references themselves are created by people who are genuinely knowledable -- if we lose those people, we lose the references, and possibly everything.

Having massive resources at your fingertips is great but also potentially dangerous if the resource suddenly evaporates.

SlyMaelstrom
04-02-2008, 11:42 AM
I think Google has completely transformed the meaning of "intelligence." You can't tell anymore if the person you're talking with online is actually clueful, or is just taking everything from a reference. There's nothing inherently wrong with that, but the key is that the references themselves are created by people who are genuinely knowledable -- if we lose those people, we lose the references, and possibly everything.

Having massive resources at your fingertips is great but also potentially dangerous if the resource suddenly evaporates.Well of course... and I don't want to name names, but we've had several people on this forum that don't know the first thing about programming pretending they're great game programmers cause they can find code off the internet and modify a few variables. It's usually not too hard to tell the fakers from the real thing. You can't find the good references unless you know the buzzwords to look for and you don't generally learn the buzzwords unless you've studied the topic. Yes, I agree, though that it is very dangerous... you want to see a whole load of bad information, go to Yahoo! Answers.

Daved
04-02-2008, 11:42 AM
Of course, then you have the people that regurgitate references who decide to create a wiki FAQ that others then use as a reference and eventually create their own references from, until the original sources of the genuine knowledge are far removed from the resource created.

(Note: That was not intended as insult, I am making a commentary on myself as much as anybody else.)

mike_g
04-02-2008, 11:46 AM
I started programming 2 and a half years ago. Most of what I did back then was in Blitz Basic, but through my college I have covered the basics of C, C++, Javascript, Java, and PHP. I wouldent say I was very experieced with any of the languages I keep learning new stuff all the time, but I enjoy it.

SlyMaelstrom
04-02-2008, 11:46 AM
Of course, then you have the people that regurgitate references who decide to create a wiki FAQ that others then use as a reference and eventually create their own references from, until the original sources of the genuine knowledge are far removed from the resource created.*points at dwks*

Hehe, just kidding. DWKS is certainly the real thing in my opinion, I just thought I'd be topical. Anyway, what you said, Daved, is a natual aspect of life. It's been this way forever... things change as word spreads... we were taught this as children when they asked us to play telephone.

Mario F.
04-02-2008, 12:01 PM
Most of what I did on these forums in terms of trying to help somebody was definitely the result of a quick look at a book or internet reference. Most of what I learned on this forums was definitely almost certainly (i like this construction) the result of that too.

There's very little of C++ I can say I have on my mind. The general language rules, semantics and some patterns. That's it. Everything else I have to lookup even when programming. However I have years and years of Visual Basic and SQL experience. That didn't stop me from the exact same thing.

I don't consider myself particularly intelligent. I'm certain I'm not that much intelligent in fact. And it never hurt me to say that. Being intelligent, knowledgeable and smart are all three very distinct things. What I know is that programming, for me, was always a struggle. I always had to work hard and painfully to learn programming languages. However that didn't stop me from a most enjoyable and rewarding career.

So... Sly is absolutely correct. A lot of us use references. I use them... a lot! One of the reasons actually I stopped posting on the C++ forums and delegated myself to this forum. I don't feel I fit in there. Only if I'm on the question side. However, by means of using references and buying books I was able to learn how to program in C++ enough to become productive in 2 years (look at my join date) and I no more feel the need to post a question. So... I must be doing something right.

abachler
04-02-2008, 12:31 PM
29 years experience here, started in 1979. Self taught mostly, except a class in C/C++ in my 4th year of college. First I learned BASIC on the VIC-20, then assembly on the same machine, both by the age of 10. Now I'm a senior engineer at a software R&D firm. Some of my algorithm's and code are probably going into one of the mars missions in the next decade or so.

dwks
04-02-2008, 12:33 PM
*points at dwks*

Hehe, just kidding. DWKS is certainly the real thing in my opinion [...]
Glad to hear it. :rolleyes: :)

So I am "that Wiki FAQ guy"? Sigh . . . .

Personally, I actually have access to the internet rather rarely. (Semi-astute members may have noticed that I tend to post lots of posts at one time at regular intervals.) That doesn't mean I don't have access to references -- "man 3 printf", for example -- but it does mean that I appreciate Google when I have it, and tend to save webpages a lot . . . which is one reason that I had several CBoard threads about codeform saved that I was able to put onto my website when CBoard crashed. (Semi-astute members will remember this, too.)

It's hard to measure programming aptitude. I could tell you that xuni, one of my projects, is 11,837 lines long. I could claim that I could look at any function and tell you whether it is a standard C function or not. (Which is probably true).

But I think general programming knowledge is more important: I was able to pick up Python, which I had never used before, in a few minutes in time to help debug some Python code. (Keep in mind that reading code is a lot easier than writing it.)

Once you understand how programming works, the language doesn't matter so much. I think that's the best way to measure experience -- how much you understand about programming in general.

(Having said that, of course, I prefer C because I know many of its nuances very well . . . .)

Wow, congratulations, abachler! It sounds like you're the most experienced of all of us, number-wise.

No, I don't feel like calculating how long I've been programming for. ;)

abachler
04-02-2008, 12:54 PM
[decrepit old fogey voice] Now if I could just remember half the things ive done over the years. [/decrepit old fogey voice]

I agree that work experience makes you learn faster. I didn't really start programming for win32 until about 2 years ago. Before that it was mostly microcontrollers and PLC's. I programmed computers for my personal research in cryptography, but nothing like I do now.

Knowing several languages is good, but you really need strong problem solving skills and a good memory. I have to look stuff up all the time because if I tried to remember everything it just wouldnt fit, so I just remember where I can find the information when I need it. A few things that I work on extensively I know by heart. Some things that are almost useless I still have memorized, like the fact the 6502 uses A B X and Y as its registers, completely useless trivia. The point is, don;t get bogged down tryign to remember every little detail about some system that in 10 or 20 years will just be collecting dust.

heras
04-03-2008, 01:32 AM
When I was a wee boy I used to program BASIC on my BBC Micro :'(
Does that count? Nah, I didn't think so ...
:D

matsp
04-03-2008, 02:45 AM
A brief life-story:

Around the time that Todd started programming, I had a couple of years experience with the predecessors to PC's, Z80 and 6502 based machines. I wrote my first programs in Basic, then Assembler, then Pascal, then more Assembler (I wrote a Z80 simulator running on PDP-11 as a final year project in 1984/85 school year, and at the same time, started working part-time before I finished school).

My first job, starting part-time, I did Pascal programming of an administration system for car rentals, and then a video rental admin program.

After that I spent some time working for a couple of different "voicemail" companies, writing applications that answer those premium rate numbers, billing systems for voicemail applications, and such things.

When I got fed up with this small company not paying very well and struggling to keep itself afloat (mainly due to incompetent management), I joined a contracting/consulting company that did real-time OS development, and I was maintainer of one processor-variant of their RTOS kernels, as well as "hired out" to one of their clients, working with the RTOS and processor debugging for a rather complex embedded system.

I joined AMD a couple of years later, and in the process moved to England (from Sweden). I worked for the embedded processor division, then moved to desktop processors a few years later. I spent just over 7 years with AMD.

I worked for a graphics company for a couple of years working on graphics drivers for Windows, then went back to AMD working with their new virtualization technology.

Now I'm working for an embedded OS company.

In total, that's about 22 years of "paid for programming" experience, in various areas, most of which involved working inside an OS of some sort or another.

--
Mats

zacs7
04-03-2008, 03:01 AM
Started programming about 5 years ago during highschool (as a hobby, nothing to do with school). Taught myself. Loved it so much I'm now doing a Bachelor's degree in Software Engineering. I would like to move to Canada, because I like the idea of it ;) -- But I'm sad to hear I'd be unable to get a certified engineering licence, since I'm educated outside of Canada :(

As to what I have to show for it, nothing huge -- just a few small things. Mostly useless and are now kaput. I mainly do it because I like doing it, I suppose you could think of like an author that writes a few good books and doesn't bother to publish them, but eventually hopes to one day.

> (Semi-astute members will remember this, too.)
Oh oh oh, Me!

Wow matsp the programming village bicycle ;)
@matsp or @brewbuck, Since you've been doing this for such a damn long time, through the boom and all. Have you personally found out-sourcing to be a problem? You don't have to answer that if you don't want to. I'm just keen to know.

Mario F.
04-03-2008, 03:11 AM
My programming experience starts pretty much with the Sinclair's ZX81 processors and BASIC some 25 years ago. I was living in UK back then and was probably one of the first buyers... or my dad was. Quickly moved to Pascal when my dad bought the first PC, an Amstrad PC 1512. I also started playing around with other solutions, most notably DBASE that started my love affair with databases that lasts to this day.

My first job was at Alcatel Portugal where after an hiatus of 1 year as an operator to the IBM ES9000 Mainframe, I was finally able to start programming for money... with COBOL, for that same mainframe. I also quickly learned VMS and soon enough was administering the company's two VAX minicomputers.

From there my life took a turn. Visual Basic was introduced to me and I kinda stopped in time as my profession and the success of this language kept me forcing using it. Starting with version 3 of this product no longer I had the time to pursue other interests. It was however this period the most... ahem... profitable of my career.

2 years ago, after more or less 25 years of programming I quit the profession and am now running a bookstore. My lifelong dream. Picked up C++ two years ago and have been ever since experimenting with everything I can put my hands on.

manav
04-03-2008, 03:38 AM
Mario a strange thing on your side:

This ...


Mario F.
Using VC++ 2005

and this ...


After 20 years of Microsoft (Goodbye and thank you for all the fish), I moved to Linux. The culture shock I feared never happened. Be smart.

So you use VC++ 2005 on Linux? How? Why?

Mario F.
04-03-2008, 03:59 AM
So you use VC++ 2005 on Linux? How? Why?

Should I answer you, or just kind of ignore the question?... I'll answer you, since I want to believe it was a question made in good faith; Because I still have windows, duh!

I just don't use it anymore past VC++ 2005 (and a few other odds and ends until I find their replacements for linux)

FYI, my current wxWidgets based project needs some work to be ported to Linux. Work I don't want to do. So it stays in Windows and will probably be fully developed in there and only then ported.

manav
04-03-2008, 04:26 AM
Sorry if I derail this thread.
But I have successfully use MASM on Linux. Most programs compiled using MASM (for Windows of couse) also run fine.
I used wine for this.

So i thought maybe you were doing something of similar level.

Mario F.
04-03-2008, 04:38 AM
I don't think wine will do. Visual Studio uses the .net framework and wine can't work around that, as far as I know. (Or too troublesome or too slow to be a viable option)
It's however possible to use the command line compiler - I've seen it described somewhere - with an acceptable loss in performance, I reckon.

matsp
04-03-2008, 04:40 AM
Sorry if I derail this thread.
But I have successfully use MASM on Linux. Most programs compiled using MASM (for Windows of couse) also run fine.
I used wine for this.

So i thought maybe you were doing something of similar level.

Or you can use nasm in native Linux, which is (nearly 100%) masm compatible. gcc, I believe, is even capable of producing nasm-compatible output.

--
Mats

manav
04-03-2008, 05:00 AM
Again, sorry for the derail:
But MASM is much higher level, NASM is too low level. And I could easily compile native Linux binaries (along with the Windows binary run under wine) using MASM and binary tools. MASM would make .obj files and I would convert them using binary utilities. This was when I used to do asm programming.
But now it's all QtC++ for me :)

And to the topic, I have only more than 6 months of professional programming experience.
I hope to catch you all soon, say, by 2010. ha ha

Mario F.
04-03-2008, 05:04 AM
Sorry about my reply however. It's not your fault. It's mine. I've been taking maybe a little too much crap on the forums lately and am becoming too defensive.

as you say, back to topic.

Prelude
04-03-2008, 07:33 AM
>I am interested in knowing how much experience
>you all have and what formal education if any.
I say I have no formal education because I didn't learn jack from the courses I took. I'm self-taught in that I didn't go to school to learn how to program, but it would be a horrible lie to say that I haven't learned a lot of what I know from other people. The rest is from experimenting and just writing my own code. I've been programming for about 12 years now.

>It's one thing to have a general idea about many aspects of programming and quite a
>different thing to be able to explain everything in full detail right off the top of your head.
There's just so much information that it's impossible to keep it all in your head and not make a mess of things. There's also something to be said for being able to find the answers even if you haven't memorized them or figured them out on your own. That's a skill I've found lacking in new waves of programmers.

In my case, I can generally keep the stuff I use on a regular basis in my head and can explain it with excellent accuracy (I've been called a human compiler because of this :rolleyes:). For everything else, I use references to double check myself simply because if I don't use it, my recall becomes hazy. I'll also use references to double check myself if I'm debating with some pedantic boob who nitpicks everything. ;)

SlyMaelstrom
04-03-2008, 07:58 AM
There's also something to be said for being able to find the answers even if you haven't memorized them or figured them out on your own. That's a skill I've found lacking in new waves of programmers.That's not a skill in my opinion, it's actually a natural talent. That is to say, you really don't get better at this (not to a significant degree, anyway), you're just born with it. The reason you don't see it so much in the "new waves of programmers" is because as computer technology becomes so much more mainstream, programming (read: h0w 2 b a hax0r or m4k game cod3z) has become more of a fad than it used to be and people who really shouldn't be programming are making an (unhonest) attempt at it because it simply seems cool.

Not to knock the new waves of programmers (in fact, I'm sure most here would consider me in the new wave), because there are still plenty of young talent out there... it's just that I agree in that it seems a larger portion of the "new wave" seems to lack the necessasary ability to be a good programmer.

That said, I should also mention that I have always had a gripe with those who consistantly tend to find their own solution for a problem rather than researching and finding what has been tested to be the best solution. I'm really only talking about sitations where the solution will have its dependancies in reality, not in cases where people are just solving for pleasure. This makes me think of Prelude's hashing tutorial in which she explains the most efficient hashing algorithms and why they should be used rather than just coming up with your own (likely worse) algorithm. In many cases, even if you are able to find a solution, it is not the best... and if you are reaching for the best code, then it's worth it to put the reasearch and see if someone else has done the testing, already.

Prelude
04-03-2008, 08:25 AM
>That's not a skill in my opinion, it's actually a natural talent.
I don't agree. Perhaps some people are more inclined to research first, but the research process itself is a learned skill. The problem is that too many new programmers are used to having things handed to them and don't understand what it's like to have nothing to work with.

indigo0086
04-03-2008, 08:30 AM
That's not a skill in my opinion, it's actually a natural talent. That is to say, you really don't get better at this (not to a significant degree, anyway), you're just born with it.


Wouldn't a natural talent be knowing something without needing to look for it?

Either way I don't think that's a talent, looking for something I mean.

SlyMaelstrom
04-03-2008, 08:44 AM
Wouldn't a natural talent be knowing something without needing to look for it?The ability to analyze a situation with no (or limited) prior knowledge is what I'm calling the natural talent.

In fact, I would have to say that I've found more "new wave" programmers being more inclined to attempt to figure things out on their own rather than being diligent and researching the correct solution. It's a great ability to be able to take a step back at a problem and work it out without any knowledge of what you're seeing... however, this is something I only find useful in situations that only require a solution and not necessarily the best solution.

indigo0086
04-03-2008, 08:52 AM
I think most things people consider talents can be learned. I've heard people play with a natural talent in music but hardly sound as interesting as people who study hard and practice a lot. I learned programming and analyzing with what I beleive is through studying rather than a natural talent. I struggled with programming for years before I stepped into it. I'm in no way an exceptional programmer but there's some room for me to learn to be one. I doubt it will happen any time soon but I'm not doomed to hid from the prodigy's

Mario F.
04-03-2008, 08:56 AM
I'd be a little careful about this "new wave/old wave" thing. I don't see many differences between old and new programmers. They are today as bad as they were 20 years ago. You can still only count the number of good programmers in your typical organization with the fingers of one hand.

Let's not forget the years of abuse languages like C or C++ seem to have endured. Or is buffer overrun a novelty? Sure it ain't. Speaking of my own experience languages like SQL or Visual Basic always experienced abuse and were always thrown in the hands of highly incompetent payed professionals.

If anything today there's less excuses with all the information available.

abachler
04-03-2008, 09:03 AM
Well, there is something to be said for researching the best solution, but generally that doesn't invovle using someone elses code, just their methods, and applying them to your specific problem. I know a lot of other olde tymers think their code is perfect in every way simply because they understand it, but its usually a half ass solution when applied to a new situation. Either its too general or too specific to the problem they were solving. You might have a great client server database netowork backend, but that doesnt mean it is going to work for me, and at some point I have to make the decision to either keep looking for the perfect solution, or to just write the code from scratch. Maybe I'm wierd, but i always found it faster to just write my own code than to read someone elses. It's more than just understanding the language, you also have to have the same mindset as the programmer that wrote the code. When the programmer has a significantly different mindset due to education, culture or level of intelligence, it makes reading their code more difficult. If you are part of the median group, this isnt much of a problem, but when you are quite outside the median it simply becomes a matter of time efficiency.

SlyMaelstrom
04-03-2008, 09:04 AM
I think most things people consider talents can be learned. I've heard people play with a natural talent in music but hardly sound as interesting as people who study hard and practice a lot.No, no. You're just arguing semantics, here... the key word in my rant was "natural," not "talent." I could have just as easily said "natural skill" or "natural ability," but I didn't because I try to diversify my vocabulary when I speak. Perhaps that was not the best time...

Regardless, while you can use my wording to compare the ability to analyze a situation with the ability to play music, they're simply not the same thing. This is opinionative, I'm sure... but I do not think people can improve too much on their ability to make something from nothing. Either you can do it or you can't... and if you can, there are many degrees as to how well you do it.

tabstop
04-03-2008, 12:34 PM
I don't want to say that people here aren't extremely knowledgable, but please don't underestimate the amount that people tend to look up references as they post to ensure complete accuracy of their statements. It's one thing to have a general idea about many aspects of programming and quite a different thing to be able to explain everything in full detail right off the top of your head.

In fact, some of us are learning C++ by answering questions on the forum. :p It's good practice at taking what I think I've read somewhere, and actually figure out what works.

VirtualAce
04-03-2008, 06:55 PM
My programming began with GW-BASIC way back in like 1981 or 1982. Since then I've learned assembly, VB, C/C++, and some Java. I took an interest in games which really got my feet wet and pretty much knee deep in huge piles of poo very early on. I find coding for work projects is actually much simpler than most everything I've done up to this point. I do not have a degree in CS but do have a 4 year degree in another field. The only class I've taken is BASIC in high school and the teacher had to give myself and another friend 'special' assignments just to keep us busy. We had a game like missile command on the third or fourth day of class while everyone one else was still learning to print their name on the screen a hundred times.

The internet has been a huge plus or I guess I should say was a huge plus. My list of 'trusted' sites is quickly dwindling as more and more of them become polluted with people who really just don't know what they are talking about. I usually answer questions in the game programming section which doesn't mean I know everything about games. In fact there is a lot that I don't know about it but most of the questions we get here are rather basic fundamental ones that I usually know the answers to. I do tend to stay away from the C and C++ boards because any answer you give is usually not worded just right and someone else will let everyone know that fact. That is just annoying so I avoid those boards as much as possible (and as much as a moderator can and still moderate.).

One thing I appreciate about this board is that most, if not all, of us at one time or another have admitted that we simply do not know the answer to a question. However we do know how and where to find the answer which, IMO, is as important if not more important than knowing the solution. Programmers who can find answers on their own are usually more productive. However, in the same token they should also give themselves a definite time limit. You wouldn't want to research a problem all day long when the answer was just down the hall. You also wouldn't want to ask every question in the world about an existing code base because you would then be monopolizing someone else's time and the answer could be found by a bit more code spelunking.

I have learned a lot and probably the most from this board. There are a large number of knowledgeable people that know vast amounts about their area of interest or their area of expertise. None of us know everything but all of us collectively represent a huge body of knowledge. With all of the API's and different areas that C/C++ can be applied in I don't think it is possible for any one person to have all the answers. It amazes me how much information I have stuffed into my own head that comes spilling out at times when someone asks the right question. When you think about the deluge of information we have to retain from day to day in programming it's amazing we remember anything at all.

michaelp
04-03-2008, 07:14 PM
I've been programming for about a year. C++ since July/August '07.
Why did I start? I wanted to play pirated games on my PSP because of an advertisement I saw. :|

zacs7
04-03-2008, 07:27 PM
"CBoard the book" isn't a bad idea by the sounds of it ;)

> Why did I start? I wanted to play pirated games on my PSP because of an advertisement I saw. :|
:o

XSquared
04-03-2008, 07:33 PM
Hmm, I started programming back in grade 5 (~1995-1996, that seems like a looong time ago now) with QBASIC, then moved on to VB6. I didn't pick up C/C++ until 2002, which is when I started hanging out here. I've got just over 2 years of paid C++ developer experience under my belt now, and I'm working on a CS/C&O double major at a damn good university.

Vicious
04-04-2008, 01:00 PM
Thanks for all of the replies. This thread has made me feel more confident for sure.

(I was OP, the name was too long and kept deforming the threads so I had to sit and remember a 6 year old password :D)