coding question...

Strictly for discussing ZSNES development and for submitting code. You can also join us on IRC at irc.libera.chat in #zsnes.
Please, no requests here.

Moderator: ZSNES Mods

Post Reply
WyteShadow
Rookie
Posts: 11
Joined: Mon Sep 12, 2005 6:22 am

coding question...

Post by WyteShadow »

hi, im interested in going to college and learning how to be a programmer like many of you on these forums, but i have one question...what did ya'll go to school for? how did you learn to code? and which coding language are you guys using?

any help would be much aprreciated
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Re: coding question...

Post by Nach »

WyteShadow wrote:what did ya'll go to school for?
Law, History, General Science, Math, Computer Science.
WyteShadow wrote: how did you learn to code?
By being forced to.
WyteShadow wrote: and which coding language are you guys using?
C/C++, x86 Assembly.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
WyteShadow
Rookie
Posts: 11
Joined: Mon Sep 12, 2005 6:22 am

Post by WyteShadow »

thanks. so where did you go to school?
mastershake1
Rookie
Posts: 19
Joined: Mon Sep 04, 2006 4:03 pm

Post by mastershake1 »

Just a suggestion from a self-taught coder (who doesn't have much time to do it anymore): pay attention in your math classes. Yes, it seems boring, it may seem like there's not much of a point to it, but math knowledge is tremendously important to coding. Do your homework and don't cheat by pulling the answers from the back of the book. I taught myself basic coding when I was young, but slept through most of my math classes when I was in school. When I later took programming courses I could kind of figure out what I was doing, but couldn't explain why, and a lot of things that came pretty easy to other people required guesswork on my part.

If you're dedicated and have some time, and you learn fundamental programming stuff (data structures, analysis, sorting, etc) picking up new programming languages doesn't take much effort. But you need to walk before you learn to run.
Jipcy
Veteran
Posts: 768
Joined: Thu Feb 03, 2005 8:18 pm
Contact:

Post by Jipcy »

WyteShadow wrote:thanks. so where did you go to school?
More importantly, where do you live?

Are you rich and you could go to school anywhere? What grade are you in? Have you applied to college yet?

If you're in the US, I highly recommend starting at a community (junior) college and moving up to a four-year (university) after that. It's a hell of a lot cheaper.

Depending on the amount of spare time you have, you can probably learn a lot by yourself.

Are there specific types of programs or things you want to accomplish with your programming? Or do you specifically want to work on emulators?
[url=http://zsnes-docs.sf.net]Official ZSNES Docs[/url] | [url=http://zsnes-docs.sf.net/nsrt]NSRT Guide[/url] | [url=http://endoftransmission.net/phpBB3/viewtopic.php?t=394]Using a Wiimote w/ emulators[/url]
WyteShadow
Rookie
Posts: 11
Joined: Mon Sep 12, 2005 6:22 am

Post by WyteShadow »

thank you all for all the advice youve given me...

first off, i was always good at math. when i was in 8th grade they gave me high school math classes and i had to walk across the street at 4 period to go to math class , so doing math wont be a problem.

and to jipscy, i'm origanlly from georgia but i just moved to colorado 6 months ago. I graduated high school in '06 plus I just signed up for the airforce and im going to bootcamp on may 8th, so all my college will be paid for 100% by the military.

and programming wise, i'd like to work on zsnes and zbattle and emulators and stuff like that. I just picked up a couple books on c/c++ and visual basic....but im on a ppc mac so i cant use visual basic....can you suggest any c/c++ editor/complier/assembler program for mac that i can use to mess around with?

oh and one more question...which language did most of you start off with? basic/visualBasic? or did ya'll just go striaght to c/c++
Nightcrawler
Romhacking God
Posts: 922
Joined: Wed Jul 28, 2004 11:27 pm
Contact:

Post by Nightcrawler »

Yeah. Math is pretty important when it comes to programming. I still remember sitting through many boring math classes not quite understanding how math pretty much rules the universe. Physics is math and that dictates how our universe works. Math happens to be how a computer works too. Binary math, but math nonetheless.

I learned BASIC on a Tandy Color Computer 2(TRS-80) in the 80's. I didn't learn any real programming until much later though. I struggled through an intro C class in highschool not getting anything. It wasn't until I had a course on microprocessors that everything clicked. By the way, I went to school for electronic engineering.

Anyway, after that course, everything became clear. After that, I learned all sorts of languages.

Now I use them professionally. I know and work with several assembly languages x86, 8051, PIC16C5X, MC68HC908JL3, MC68HC908GP32, and several others.

Beyond assembly, I use C/C++, C#, PHP, Visual Basic and know a host of different APIs and simple scripting languages.

My advice is to learn some sort of low level assembly language. It will give you a full understanding of what's going on in high level languages.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
whicker
Trooper
Posts: 479
Joined: Sat Nov 27, 2004 4:33 am

Post by whicker »

I learned to "code" on a TI-99/4a in TI-BASIC at the age of 6. Really BASIC isn't the mind-rot that some elite assholes tend to perpetuate. If I had, say, perl back then, I would have used it. Now with that out of the way... ahem... One more rant about math class:

Highschool math taught me next to nothing about what I need to know about programming EXCEPT that it sometimes forced me to be creative while the teacher was droning on, in that I was programming in the TI-83 or TI-86 calculator's own proprietary language, and then in Z80-assembly. And no, I didn't create a fricken quadratic solver. I hated math for the sake of math. Why was I solving for x, why was there such a big push on simplifying equations? Computers can solve and graph clunky equations just as easily as the elegant ones. Use computers as a tool!

One of the functions I hated the most was arctangent. Why can't math functions, like programming, have more than one input variable? Equation solving with sines and cosines just plain sucked for me, because they work subtly differently in programming and formal math.

From the other end of things, I was always interested in electronics as a hobby. Sometimes I wish a job interviewer would rattle off a 7400 series TTL chip quiz. (What chip is the 7476, and why is it unique?). I could ace that. Having an understanding of (mostly digital) electronics helps hugely in programming, because they are one and the same. This AND this, this OR this, multiplex, demultiplex (data select), toggle. Understanding how an adder made of digital gates works fills in any gaps of why the hell signed integers use 2's compliment for negative numbers.

I brought the two together in the later years of highschool by making a Motorola 68K single board computer. This was of course before the TI-89's. This was just as datasheets started getting onto the internet in .pdf files. (Before you had to get the pinouts from phone-book sized books).

By making my own SBC, it required me to understand everything about how a computer works. How to set up interrupts, where and how to map RAM and ROM, what peripherals to pick, how to generate reset, how to connect a watchdog timer. Also, I had to learn how the hell to actually program the thing and procure the tools I needed: UV-EPROM burner, assembler, linker, etc.

I don't know if using a PC other than as a tool to write programs on is going to help much in learning the basics. Everything is made to be too complicated in writing on the PC for the PC. Handling windows and button presses in vb or c# to create an app that adds 2+2 is too complicated to start out with. It's all too magical. Likewise, console apps and fighting cin or cout (or printf) to make colorful, formatted, alligned tables is counterproductive. Console output is for quick and dirty listing, GUI's are for fancy tables.

What I'm getting at is to get into programming, get your feet wet with any sort of language and don't try to be too ambitious. If you like it, then start learning about the low-level stuff. It will make you a better programmer. Then go back to the high-level stuff and dealing with crap like the API and object model of the language of your choice.

For the love of all that is holy, don't go to a 4-year college just to be a programmer (unless you really really want to program, then go for a game and simulation degree, but this will actually serve to narrow your job prospects). Learn to program on your own time. Use programming in your college coursework as a TOOL, not as the only object of study. College costs too much money, so be general and get your value from it.

Another cool area of study is Digital Signal Processing. It's a mature field of study, with tons of applied math, and it does absolutely require programming understanding.
WyteShadow
Rookie
Posts: 11
Joined: Mon Sep 12, 2005 6:22 am

Post by WyteShadow »

wow! thank you all for all the advice. i will definitly use it =)
Post Reply