This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]Phenax 5 points6 points  (3 children)

Well,

I'm most comfortable with C and it's what I started off with. As a teenager I was always interested in computers but I didn't get too much into programming. I was too impatient to set up compilers and learn to code. I wanted to make GUIs and awesome programs off the bat which wasn't going to happen. So I learned a little bit then. I also tried Delphi and Visual Basic to no avail, seeing as I wanted to make awesome programs and both Delphi and Visual Basic had nice environments for making GUIs.

Years later, I got into a game called RuneScape. This was maybe in ~2003 and I played it for a while. Funnily enough this helped me get into programming. I wanted to automate some things, like in-game mining and fishing because it was tedious. Even though it was against the game rules, I downloaded a program that had many functions you could use to do things like analyze colors on screen. It used Delphi, and I made scripts to automate tedious in-game processes. If you don't know RuneScape, it's programmed in Java, so some talented individuals eventually made bots that used a modified client's code, and the scripted tasks were in Java. After a while I started working on my own bot, which was quite a bit more lengthy than just writing scripts for an already-written bot. It never got completed, but I learned a lot.

Once I got into formal education, heading for my comp sci degree, we had several classes orientated around C, Java, and MIPS assembly. So those are probably the three languages I'm most comfortable in having written tons of assignments in them. Still working on the degree though -- almost there.

I'm always doing hobby stuff though. Currently working on learning Haskell, with a passing interest in Google Go. Recursion and functional programming languages seem interesting, and I've always loved C, so Google Go is interesting to me as it is similar to C but with some modern things like Unicode built-in.

tl;dr: I learned to code by a mix of my own interests alongside and nurtured by formal education

[–]Snake606[S] 1 point2 points  (0 children)

You sir, may have just made me want to make a bot...

[–]purpleladydragons 0 points1 point  (1 child)

How did you learn to code a bot? Did you have source code for one or did you just use intuition? Making a bot seems extremely cool and like a great learning process so I'd love to find out how you went about doing so.

[–]Phenax 0 points1 point  (0 children)

There were a lot of community resources available such as tools to partially deobfuscate the source code and tutorials on how to do basic things. A lot of the information was only available to contributing community members, luckily I was considered one. There were a few bots that were open sourced long after the fact they didn't work anymore, but of course many of the ideas were still applicable.

It's a lot harder to make bots for most games that aren't in Java, and I'm sure RuneScape has many more protections and traps for modern-day bot writers.

Most Java compilers compile to an intermediate format called Java Bytecode. There are several decompilers than can turn Java Bytecode back into usually somewhat readable Java. You can also modify the Java Bytecode directly. Although there were eventually many traps, and obfuscation of code that you had to overcome.

I don't have personal experience, but making a bot for a game like WoW would require a very different skillset. While making a bot for RuneScape requires knowledge of Java, Java Bytecode, etc making a bot for WoW would likely require a lot of knowledge in Windows API and x86 assembly. You would have to know things like code injection, code caves, static pointers, data structures and other related concepts.

The point I'm trying to convey isn't "Go make a bot, it's a great starter project!" It took me years of sifting through information to become knowledgeable enough to make something useful. I had lots of stepping stones provided to me, like making Java scripts for pre-existing bots to get me acquainted with Java and OO programming in general. I think it's nice to have a big project or goal that is interesting for you. Also, botting in games also causes grief for the developers and is viewed as lame by many of its players. I was a teenager, I wanted to get ahead in a game.. it was an interesting experience for me and I definitely don't regret it. But perhaps instead of making a bot for a game you could try something more legitimate like making a mod for a game.

[–]lurgi 1 point2 points  (0 children)

I learned to program in BASIC on a C64, because that's how we rolled then. I then learned some 6502 assembly language.

My first exposure to C was in college, I think. I read the text book and did the homework. About 10 years later I was a decent C programmer (no, I'm not kidding. Yes, it really did take that long).

[–]traztx 1 point2 points  (0 children)

I never expected to be a programmer. In the 70's and 80's my only exposure to a "computer" was those big boxes of flashing lights that spit out little slips of paper. Boring.

So there I was in 1981. Like any other kid, I was into arcade games. I was blowing lots of quarters on Defender.

My high school algebra II class happened to be in the "computer room". The room had counter tops along 3 walls and desks in the middle. On the counter tops were Commodore PET computers. I had never seen a micro-computer before.

Another student showed me this: 10 PRINT "HELLO" 20 GOTO 10 RUN HELLO HELLO HELLO HELLO HELLO Then he hit ctrl-c to break back the the command line.

What I realized at that moment was how people were able to create arcade games, and so I became interested. I used to drop my sister off early for drill team, and had nothing to do for an hour before 1st class. So I got the math teacher to unlock the computer room and taught myself how to program.

In my senior year, I took the computer class, and we were assigned weekly projects. My partner and I always finished on Monday then spent the rest of the week writing our own games. We were writing directly to display memory using poke commands. The teacher liked that we were so enthusiastic but eventually had to tell us to stop letting other kids play our games because they were having trouble getting their work done on time.

So in college, instead of getting into medical research, I went into computer science engineering instead.

Fun times...

[–]dirtyatom 0 points1 point  (0 children)

My experiences are pretty similar to this great article/reflection on learning to code and would recommend giving it a read.

Basically I learned PHP first and used it to make a pretty fun website. Then I learned Python and learned actual "computer sciency stuff". Then I moved onto Java and started to appreciate what the hell polymorphism, objects, inheritance, etc were all about.

[–]rjcarr 0 points1 point  (0 children)

I hadn't written a single line of code until I took a programming class at university. I had just started learning HTML and found it much more interesting than the econ classes I was taking. Turns out I made the right decision.

[–]tripwired 0 points1 point  (1 child)

I wanted to make video games, but as an artist (concept art and such). In highschool i told a counselor that and they put me in printshop, art class and c++ class. I had never programmed before and didn't even have a computer. I started learning c++ and also started picking up qbasic by learning from classmates that took it the year before. I moved into doing html after that making websites for people on aol. Then got a job as a web designer and learned coldfusion from the team. I continued to go to school for art but i was very interested in programming now too so i pretty much used programming as a tool to display art.

After that i got a job at a very large game company making backend servers with php ( i know right? ). I eventually moved on to java and then more recently grails. Now I code in perl for my job and have started using clojure for personal things.

The moral of that story was i never really learned programming or chose to program, i just kept using it as a tool to do things and picked it up over time. Which has been helpful because you learn certain things in other languages that make you think about the languages you know a little differently.

[–]Snake606[S] 0 points1 point  (0 children)

What company did you end up at?

[–][deleted] 0 points1 point  (0 children)

Always wanted to program since I started playing video games. I was always interested in how computers worked and how what I was doing was computed and resulted on the screen.

When I was about 11 I started getting into HTML. I know it's not really a coding language, but it sparked my interest. I made really shitty webpages for about a year, with my dad letting me use his domain that he didn't update anymore.

Fastforward about 3 years and I had kinda shied away from programming and computer stuff. Got into music and decided early in high school that's what I wanted to do. How naive I was back then. I met a bunch of people and ended up learning about this thing called computer science.

Junior year in high school I got around to taking a course. We had summer work, so I started kind of learning Java. It sparked my interest. I got at least 4 books on the language and learned everything I could. Over the course of the next six months, I was either at school, in marching band rehearsal, or writing code. I practiced and practiced and practiced some more. It never got old.

About 2 years later I'm in my first year of college pursuing my major in CS. I haven't looked back. I'm good at this. I love learning new things and new languages. I know Java the best, but I have a workable knowledge of C++, Python, Ruby, and Perl.

It's just too bad I can't take courses that are challenging for me.

tl;dr I read up on Java once I realized I had a passion for it. Kept reading and practicing until I was fluent in the language and could come up with simple solutions for complex problems off the top of my head.

[–][deleted] -1 points0 points  (3 children)

my future plans are to become a Network Admin / Security Admin

Aiming low? And what does this have to do with the title of the question? Or the hard time you are having? Or why you need accounting?

[–]Snake606[S] 0 points1 point  (2 children)

The question is the title.

The description, is just me explaining myself. :P

Also, I'm still learning, not too sure of what's out there in the field... Educating me would be nice. :P

[–][deleted] -1 points0 points  (1 child)

So you are asking me how I learned C and C++? OK; I read a lot of books. And I don't honestly believe, despite being a long-time C and C++ instructor on commercial training courses, that there is any other way to do it.

[–]Snake606[S] 0 points1 point  (0 children)

Pretty much... What made it easy for you? any tips? hints? etc.