Advertisement

How many of you are self-taught/hobbyist programmers

Started by August 30, 2012 09:25 PM
66 comments, last by 21st Century Moose 12 years, 5 months ago

I don't think everyone has an appreciation for just how much work and time can be saved by taking your time and researching things properly when solving a problem - instead they just jump in, hack something together and then wonder why they need to go back over it a few times to get it right.


This has been my experience as well. People just don't want to do the research, even if said research only takes 5 minutes to do. I can't tell you how many times I've solved programming issues for my various teams in 10-15 minutes doing some some simple research that they struggled on personally for hours or even days... Albeit knowing what to look for and how to look for it may be the difference... The hacking together part though is what has always bothered me the most. With the management excuse of "agile" development methodologies, its getting harder to enforce good practices, but hey, if they want it bad, we can give them bad.
Well after reading these posts, i feel a lot better. Back when I was naive I thought a degree was the only way to be a programmer. But since ive been at it for a year and reading these posts its def. the opposite! I think I might go for CS degree some day once I get tons of hobbyist experiance under my belt
Advertisement
I'm about 99% self taught, but I took a few game institute classes. I'll get a degree though once I'm finished with highschool. I think the hardest thing to teach myself so far has been network and database programming. Ah the wonders of Google...

[quote name='Ectara' timestamp='1346626123' post='4975864']
The amount of people that get angry at me for not giving them instant gratification is staggering.


An unfortunately side effect of the world we live in I think :([/quote] I suppose some really do think game development involves "tightening up those graphics."

I don't think everyone has an appreciation for just how much work and time can be saved by taking your time and researching things properly when solving a problem - instead they just jump in, hack something together and then wonder why they need to go back over it a few times to get it right.
[/quote]Remember that as the ease of learning to program has gone up, so have product qualities and expectations. That would explain why many newbies to this day want to make an MMO, or some other overly ambitious endeavor.

Those that do stick around have to face the cruel reality that such things require often impossible amounts of work and resources, given their circumstances. It's those who've met this reality, and decided to embrace and understand what limitations they have who usually "succeed". Of course, that goes for almost anything, whether you are writing a game (developing a product) or starting a business (or both).
Remember that as the ease of learning to program has gone up, so have product qualities and expectations. That would explain why many newbies to this day want to make an MMO, or some other overly ambitious endeavor.[/quote]

Agree with this. Getting a bit off topic...

It's very true about the lack of easy documentation in the old days. I *think* the spectrum came with a primer on basic, and for the bbc micro there was the 'advanced user guide'. Aside from that it was learning from typing in programs from magazines, and learning from friends, and good old trial and error (can you believe trial and error as a method of learning laugh.png ).

But aside from the languages themselves, there weren't huge APIs to learn. You wanted to move pixels on the screen, you just changed the bytes in screen memory. Simple as that. Although programming in principle is just knowing your language, in practice it's also about knowing APIs and being able to do things to a standard that users have come to expect.

So I suppose I agree that while the languages have got a bit more complex and a lot more powerful (OOP, templates etc), the better access to documentation / tutorials has balanced this out to an extent. But the big change has been in the APIs : they have become vastly more complex to learn, and what's more, they are a moving target. You invest time learning some particular API, and the chances are it will be completely changed in 3 years. There's also the concepts involved - consider 3d math compared to moving 2d pixels up down, left and right.

Anyway... I now await the crowds of 'X doesn't have a degree!' who for some reason think that exceptional cases of people who started their careers many years ago somehow applies in all cases or something like that...


Somehow I think they are busy doing stuff instead of hanging around here happy.png Degrees are knightly titles now at days. We all know it and still we attend the programs as we feel more safe with a title.

"The only thing that interferes with my learning is my education"

Albert Einstein

"It is a miracle that curiosity survives formal education"

Albert Einstein

Advertisement

I suspect that my self-taught background allowed me to get more out of the college classes than those without. I could spend less time stressing out about homework and cramming memorization and more time contemplating the reasons and ramifications of things we were being taught. While some graduates feel like all they got out of college was a piece of paper to find a job, I feel like I actually got my money's worth.

Wasn't going to post originally, since I was both self taught and have a degree (few months from a masters), but this is my general feeling also. I had programming experience starting before high school since it was my hobby. When I decided to go to a university I just skipped the first class and jumped into advanced courses right away. Learned a lot of interesting algorithms and new ways to look at problems.

If you're worried that a CS degree might be too easy, then you need to talk to a university advisor. It's often possible to simply sit down and explain your situation and replace classes with more advanced ones. You will find though you can't skip some of them since they include things you wouldn't touch as a hobby programmer. As a simple example the third class is oftentimes data and file structures which explains run-times and goes through things like hash based data structure implementations. Most languages have them in their standard library so hobby programmers, and to an extent professionals, don't ever implement them, but at the same time don't understand their performance characteristics when they need to. A good CS degree will simply make you a more well rounded programmer by introducing you to algorithms and ideas outside of your direct interests.


I think the hardest thing to teach myself so far has been network and database programming. Ah the wonders of Google...

To be completely honest network programming at my university was just the basics of the OSI model and learning about protocols like DNS and how the Internet and networks in general function. There was no class for actual socket programming. Any class that required that simply assumed everyone knew it or could learn it quickly for the assignment. I don't know of anyone that actually learns proper networking like IOCP and epoll based methods. Most of the time you'll see people learning/using "archaic" APIs or methods.

[size=2]Also I don't trust people that attempt to self teach themselves databases. Too many bad designs. [size=2]Cow book ftw.
I appreciate your insight Sirisian, since you've been down the exact path I've just begun. I have been teaching myself for about two years now and began formal education this past spring to eventually obtain a CS degree. I think they fact that I had been self taught prior to beginning college has been a huge benefit for me to this point, as most of the classwork I am either relatively familiar with or have done many times before.

If you don't mind me asking, what is it that you've been able to do, career wise, since earning your degree?
It's a work-in-progress: Ruin Studios
100 % self-taught from the age of 10 (started with QBASIC on school computers). Eventually did half a BSc. in CS, but only learned more (logical) math, some new functional and query languages and also a bit more FP math. Not much I could not learn on my own, but the languages I would not personally invest much time in, since they are too high-level (and good for beginners, though) for my taste (old-school, preferring low-level C/C++ and ASM). Now I am an almost fully trained electrician and are going to get a MSc. or a Ph.D in CS, both for the sake of the paper but also for a broader perspective on programming than I would develop on my own.

To be completely honest network programming at my university was just the basics of the OSI model and learning about protocols like DNS and how the Internet and networks in general function. There was no class for actual socket programming. Any class that required that simply assumed everyone knew it or could learn it quickly for the assignment. I don't know of anyone that actually learns proper networking like IOCP and epoll based methods. Most of the time you'll see people learning/using "archaic" APIs or methods.


THIS (no better way to say it). Most universities do not teach network programming (at least none did when i went to college) they teach network theory. Most of it is exactly what Sirisian said, just OSI and basic high-level theory. If you're lucky you'll get a prof who will actually teach you network programming... Sadly my peers and I nicknamed our networking class "Story Time with the Professor"... I wish I asked for a refund for that class...

This topic is closed to new replies.

Advertisement