Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
To Be a Programmer.
#1
Before I go any further, I know there is no set route to be successful, I'm just looking for suggestions. Oh, and when I talk programming, I mean C++ specifically :o.

Okay so. It's always been my dream to make video games, and as of late, a game programmer. But I'll save the story for my grandkids. I looked into schools such as DigiPen and FullSail. I requested information. I did research. I looked into the areas, and even looked at prices for housing (I live in New Jersey, DigiPen and FullSail are in Washington state and Florida, respectively). Then I realized... what if I don't wanna do this? What if I pay all this money on tuition, and make all these plans to move out and what not, and I just can't handle the work load? (DigiPen is the Harvard of video-game related schools, while FullSail gives you a four-year Bachelor's degree in nearly two.)

So I thought to myself. How about I start slow? I'm not gonna risk it and jump in the deep end of the pool first, and hope to God I can swim. No no, that's stupid. I'll get a broader, well-rounded education, one that's close to home. I decided I'd major in Computer Science. With a better understanding of programming languages and concepts, theory, computer achitecture, as well as classes in other subjects as well, PLUS the benefit of being able to stay home to save money on well, everything, the latter looked like ice-cold lemonade next to warm milk on a hot summer day.

Now, my sister's husband, or my brother-in-law, is studying to be an Oracle DBA, or database administrator. These guys work in the programming language 'SQL'. He's into what I wanna do, and he's trying to help me be successful, which is cool, I like the advice. Today he was telling me how when he worked in the IT department at the company Merril Lynch (dono hao2spel, 2lazy2googel), there was this kid in the cubicle next to him, about 22 years of age. He was a sophomore in college, and he was making ~$80k/year working with Oracle. The point of the story, however, was not that Oracle pays amazingly well at entry-level positions. This kid's father gave him the oppurtunity to learn all these things, with help and on his own, from when he was my age. About 16. The point of the story was that if I really wanted to get into programming in C++ and all that fun stuff, and be successful in the field, a college degree in computer science alone won't cut the cake. I'd have to teach myself, or at least get used to what I'm about to get myself into, from now. Like, right now. Which is brings me to the point of why I made this thread.

What can I do, at this point in time (I'm going on to my senior year of high school in September), to get myself ahead of the game? I mean, it's a given to rent/buy some C++ books, study them, do some free-lance programming myself, etc. But what else can I do to gain experience, specifically in programming games? Is it possible to get into MapleStory's source code and see how it's constructed? Should I start small, or go big? Are there any books some of you might recommend? Websites with free tutorials? Anything to get my feet wet?

I know that's a lot of questions, but I'm kinda lost in the dark as to where to begin with all this. I've taken classes in Visual BASIC last year, so I have at least a single iota of experience in programming something. I love programming, and looking at code that may scare others away catches my attention. I even think about things in code sometimes, LOL.

But where the hell do I start...? :x
Reply
#2
Well, let me tell you how I'm doing it, and perhaps you can learn some stuff from me.

Everything started for me last year in April. I wanted to figure out what was in the WZ files. When I googled for it, I found the topic over at Xentax forums. After using the unpacker there, I was fascinated to find the fourth job skills in there. Now, no one had written about it, but eventually I decided I wanted to do it.

The community response was incredible after I started writing about it. I felt good about what I was doing. Soon afterwards, I began rewriting the unpacker, little by little, until gradually I've practically rewritten the whole damn thing. I learned a lot about programming constructs and optimization. Eventually, I took the program from taking 2 full hours to unpack 600MB of WZ files down to just 25 minutes on almost 1 GB of WZ files.

During the better portion of last year, I dreamed, slept, and lived by those WZ files. I breathed its very essence. I knew them inside and out. My popularity grew. I cracked the new encryption methods. I became utterly fascinated by the new doors that opened up for me as I acquired new skills and got better at unpacking. I wrote new scripts to aide me in displaying the information. I did everything I could to get information from the WZ files to the forums, including detailed diagrams (still use them from time to time).

The whole point of this is that you have to love something so deeply as to make you want to get up and work with it all day. As of right now, I spend the better portion of every day working with WZ files, encryptions, and administering this website. It's my life right now. I'm having a blast.

So here are some things you should be able to take from my story here.

The question isn't, "Where to start?" It's, "Where to end?" It's obvious you want to do something with programming. You've already researched Digipen and Full Sail, and while I wouldn't exactly recommend those schools I'd say that the general application of "programming" right now is a good place to start since you want to finish as a programmer.

Read, read, read, read, read! Read everything you can. Learn why "using namespace std;" is in almost every program. Learn about basic programming constructs. Don't just lock yourself into C++. Learn why other languages are better at certain things (Why should I program something in Java rather than C++?). Learn what natural advantages some programming languages have (like Java's portability and C's breakneck speed). Love what you're doing. Never stop programming. Think about programming every moment of the day. Wake up to program. Love it. Breathe it.

Grab it by the horns, and by God's will never stop running.
Reply
#3
Wow, Fiel, that was really inspiring. Did you have prior knowledge of unpacking, or did it really ALL start one year ago?

 Spoiler
Reply
#4
It all started last April. I'm a proud geek too.

If Lambda had never written that unpacker, this forum would not exist today. Funny how that works.
Reply
#5
All of that? In one year?

Sheesh, now I'm really motivated XD
Reply
#6
I've always been told by my brother-in-law to start now, and not to wait any longer. He's also told me exactly what Fiel is telling me. To live, breathe, and love programming. I guess I just haven't let that all set in yet. I was convincing myself that my college education would be enough. Then I realized, literally as of today, I had to really apply myself. If this is going to be my life's work, then I have to get to know it better and fall in love with it.

And that's why I came here to ask for advice as to where to start. Seeing how you guys got into all this stuff, by yourselves, I guess I just have to find my own path into the wonderful world of code. Tongue

Thanks for the advice Flowsion on just making it a hobby, and Fiel about not restricting myself to just C++, and just plain getting out there and doing it. I appreciate the tips and inspiration. xd
Reply
#7
I started out with a relatively simple mouse driven language (StarEdit triggers for ums), nearly a decade ago now I look at a calendar... got a good feel for working with what's available (it's relatively limited language, particularly variable-wise), then tried a few scripting languages and now I mostly use Java.


I think it's important to figure out what scale of project you're comfortable working with, it's easy to get out of hand and end up accomplishing nothing because you don't know where to start. OOP helps me with that, but really it depends what you want to do and figuring out how to do it.
Reply
#8
Yeah. I also want to be a Programmer too, and decided to learn Visual C++. My dream is to make things for others, for my family, which needs it a lot. This dream became when the Private Servers were out, i saw the coding of C++, and i thought, "With this knowledge, i can reach even to make games!". Now, i will plan to learn C++ by the end of my school (8 July), so i will have 2 Months and 3 Weeks to learn it. I live in Venezuela, so that's the period. I want too to learn another things, I'm new to programming. Like i don't know what other Program Languages i should learn too. Maybe Java, or Visual Basic or C#. I don't know anything about them. =o. My dad knows about Visual Basic and a little bit of C++. So he told me lots of things, i felt so inspired with that. I wish i can even work and help to other people. That's my dream.
Reply
#9
VictorGS Wrote:Yeah. I also want to be a Programmer too, and decided to learn Visual C++. My dream is to make things for others, for my family, which needs it a lot. This dream became when the Private Servers were out, i saw the coding of C++, and i thought, "With this knowledge, i can reach even to make games!". Now, i will plan to learn C++ by the end of my school (8 July), so i will have 2 Months and 3 Weeks to learn it. I live in Venezuela, so that's the period. I want too to learn another things, I'm new to programming. Like i don't know what other Program Languages i should learn too. Maybe Java, or Visual Basic or C#. I don't know anything about them. =o. My dad knows about Visual Basic and a little bit of C++. So he told me lots of things, i felt so inspired with that. I wish i can even work and help to other people. That's my dream.

If I know something about C++, I know that 2-3months is barely enough to learn it. Tongue By learning C++, you also learn alot about C and C#, and BASIC isn't exactly the most valuable language to learn. I'd say get experience with Java, too.
Reply
#10
You're on the right track. I think you made the right decision about getting a general computer science education. Learning on your own is a must if you want to get ahead. Yeah, you'll learn in school, but there's so much practical stuff that isn't taught.

Here's what I think you should do now:
- Read a *good* programming book. C++ is one possibility, but don't disregard other languages. This is important: make sure it's a good book, none of that "learn to program in 3 days" garbage. There are a lot of bad books out there. Sorry, I can't recommend a good introductory C++ book to you since I learned it from bookless classes and random bits online. But reviews on Amazon are a pretty good indication and almost everything published by O'Reilly is good. If you're willing to learn something other than C++, I recommend Learning Python. A scripting language like Python will make it easier for you to get your hands dirty and write programs that do useful things.

Continue reading. Read a few books on your own each year and you'll be in great shape.

- Use what you've learned. This one's a little tricky. But basically, if you find something you can program a solution for, do it. Looking at other people's code could be helpful too. You could look at some open-source games. In particular, an open-source private server. At this point, they might be a little overwhelming to you, that's ok.

It's not a race. Programming is a life-long thing. Don't worry if you're not programming games as soon as you'd like.
Reply
#11
I've wanted to be a game programmer for a long time now. Luckily, my high school offers a computer programming course. We were taught Visual Basic the first year, C++ in the command prompt the second year, and C++ in DirectX the third. I have gotten a very good understanding of how programming languages work, but we weren't really taught much code. As of now I can only make a simple sprite move across the screen in a full screen DirectX window. I can somewhat animate the sprite, but it is very glitchy with the code I know.

Anyway, after taking a class for three years and only being able to animate a sprite, I realized that I need to actually look into programming for myself and not rely on a class to teach me everything, and that's what I suggest you do. Sure a college level class would probably be of much better quality then some mere high school course, but you still need to look into it yourself. Try to find a good C++ book and give it a read. If you don't like to read books, then try to find some good tutorials online. Most will probably be poorly written or something, but I am sure there are some good ones out there.

As Spaz said, though, don't rush to learn everything, because you won't be able to. Doing so would probably greatly overwhelm you.
Reply
#12
If I had to recommend any place for you to start, it would be this:

- Learn how binary numbers work, binary addition and multiplication
- Understand how the memory and CPU work together. Learn the basics about CPU registers and briefly the purpose of each.
- Understand hexadecimal notation and why it came about
- Learn how to write a "Hello, world!" program
- Although you probably learned this in VB, learn about basic programming constructs: if-statements, else-statements, for loops, do-while loops, while loops, print statements
- Learn about variable declaration, arrays, and pointers
- Learn bitwise operators (&, |, ^) and learn the unique properties of each

If you can get this far. You are well on the road to become a good programmer.
Reply
#13
Fiel Wrote:- Learn how to write a "Hello, world!" program

I LOL'D. Hello, world!! \o/

But uh, thanks everybody for the advice. Really, it helps. I borrowed a book on C++ from my brother-in-law and I plan on getting into that maybe starting tomorrow. After a week or so with that I'll see where I can go from there, whether it be rewriting open-source code, coding my own practical programs, etc.

This thread is made of inspiration/motivation/win.
Reply
#14
Starting with a C++ book is a great idea. An important thing to remember, in my opinion, is that programming isn't really about writing code; it's about solving logical problems. Puzzles, if you will. Once you get that, and get used to figuring out solutions to these puzzles systematically, the programming language itself becomes a mere tool to accomplish the bigger task. Learning a programming language in itself is no real challenge -- it's kind of like learning basic arithmetic before you learn algebra. Learning to design software that provides a solution to some problem, on the other hand, is. Welcome to the wold of software engineering. Smile

I should also say that you're absolutely right about this being the time for you to get into these things. Programming can get extremely tedious and boring at times, even for people who are generally interested in computers. If you get into a comp sci or software eng program program without first acquiring "love" for it, chances are that you'll hate it -- and if that happens, then you probably won't be successful at it, either. But if you start now, get into it, and stick with it, you're going to pwn n00bz hardcore by the time you get out of school and are looking for a job!
Reply
#15
I only know Basic, Visual Basic, Java (eww) and very limited C++.

I made a Final Fantasy simulation in VB for a project in 10th grade. Came out pretty well, considering my lack of experience.

I dont know how to make it a .exe though :/ o well
Reply
#16
The program I'm in now covers 4 different languages in full depth: C++/C, C#, Java, and Visual Basic. While it's not required, most people generally take the advanced counterpart to those classes.

Outside of those basic programming classes (I'm doing my major in Software Engineering and my minor in Language Study/Linguistics, btw), there's a variety of other classes such as UNIX/LINUX basic & advanced, some introductory courses to object-oriented programming, Data Structures, Introduction to Assembly, Database (Theory) which deals mainly with MSQL/MySQL usage, and then just a bunch of smaller basic-level courses for things like XML scripting, .NET framework, ASP.NET, etc.
They even have random-ish courses such as an introduction to the API (which to me should be required), and a course that uses hacking to teach security. I really don't know much about that one, I might enroll next semester.

Anyway, there wasn't really a point so far, but it is this: Take a look at this, a good long look at that list. Are those things you are truly interested in? If so, might there be something else that you might be interested in, or perhaps other schools besides Full Sail (btw, I have a friend at Full Sail, she says it's great if you plan on going into graphics over programming) or DigiPen? There's a lot of schools that offer Comp. Sci. degrees and are cheaper than both of those, being that they're private they run a bit higher.

Just remember to do your research, visit schools, and keep your options open. That's the most important thing if you haven't chosen a school yet.

This is my school here. (Er, already accepted, transfer student). Although normal students go for a 3-semester plan, I will come home in the summers and take my courses online for the summer semester, as well as take some classes at the UNCC campus here. You might have seen the school if you've been doing research on schools. I'd say it's better than Full Sail if you're looking for Software Engineering/Comp. Sci. Then, there's public schools like Tennessee Tech. that give you the same degree for cheaper, and are credited even more than these private schools. This is what I meant by keeping your options open and making educated decisions.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)