Things to learn over the summer?

Discussion about everything. New games, 3d math, development tips...
Buck1000
Posts: 93
Joined: Sun Dec 14, 2008 8:02 pm
Location: Seattle, WA

Things to learn over the summer?

Post by Buck1000 »

My summer break started a week and a half ago, and I have no idea what to do. I want to avoid the normal summer-knowledge loss that occurs by the start of the next school year, and I want to learn something new. But I have no idea what :? I was wondering if any of you guys have any ideas as to what some cool things to learn over the summer are. I've wanted to get into learning Advanced Mathematics early, but don't know where to start. I'm going into my Junior year of highschool next year, and have just finished Pre-Calculus, so I'll be talking AP Calculus A/B next year. I've taken a look at international Math Olympiad problems and such, and they're way, way over my head. The thing is, here in America, schools don't teach kids anywhere near as well as European schools, and I want to do something that will put me at a high level next year, but I have no idea where to start.

So, anyone know anything cool to learn/do over summer vacation? It doesn't have to be math specific, just anything would do :) And don't say learn another language! I'm horrible at that :lol:

Thanks!
slavik262
Posts: 753
Joined: Sun Nov 22, 2009 9:25 pm
Location: Wisconsin, USA

Post by slavik262 »

I'm two years older - I just finished my senior year in high school. Have fun with calculus - if you like math it's really cool stuff. I took the AP Calc. BC exam this year.

You want ideas on what you could do?
  • Do some work with shaders. I just started learning them a few months back and you can do some really awesome stuff with them. The possibilities are nearly limitless. The syntax is very similar to C/C++ also, so you don't have to worry much about learning a different language.
  • Make a video game with Irrlicht. It doesn't have to be complex (in fact I'd recommend starting with a simple one). Seeing a whole project to its completion teaches you a lot about programming (mostly that any significant program takes a lot of code, and that you need to be smart in your design and organization so you don't shoot yourself in the foot). Besides, seeing a completed project is a great feeling. Finally, I know you said you don't want to do this, but
  • Learn a different programming language. Doing work with a different language expands how you think about code and makes you think about problems in a different way. Don't get caught up on which languages are "better." People who argue about languages or say stuff like "language x is dead" are mostly idiots. The thing any good developer should realize is that languages are just tools. The more languages you know, the better language you can pick to solve a particular problem. Example: If I'm making a Windows GUI program (one with windows and dialogs), C# is a smart way to go. It and Visual Studio were designed for Rapid Application Development in mind, and it's nicely tooled for that purpose. The .NET framework C# runs on is generally slower than C++, but hey, user applications usually don't run in real time (the user won't care if the program takes 1 more millisecond after he/she clicks a button). If I'm coding for a cheap microprocessor on a robot, I'd be an idiot to use .NET or Java and would probably end up using Assembly or C (because now speed matters). Video games fall in the middle - speed is important, but so is good and simple to understand code. C++ excels here because it has lots of high-level language features while still being very fast. My point in all of this is just to say that different things require different tools; don't get hooked into thinking a language is better than another.
Last edited by slavik262 on Sun Jul 04, 2010 12:37 pm, edited 1 time in total.
d3jake
Posts: 198
Joined: Sat Mar 22, 2008 7:49 pm
Location: United States of America

Post by d3jake »

I agree with slavik's last two points. Giving yourself a project to work on that will keep your mind working will certainly not help. Also, learning additional programming languages will help you increase your understanding of various languages, much like spoken languages.
The Open Descent Foundation is always looking for programmers! http://www.odf-online.org
"I'll find out if what I deleted was vital here shortly..." -d3jake
eye776
Posts: 94
Joined: Sun Dec 28, 2008 11:07 pm

Post by eye776 »

I'm guessing you want to major in CS or another engineering-related discipline after finishing high-school, no?

So since you asked here's a bit advice:
Get your math up to snuff. You don't have to have Olympic-level knowledge, but you should be able to solve jut about any exercise (including those marked as difficult) from various high-school level manuals (not just yours).
If you feel you're not strong enough with maths go over pre-calculus again.

I cannot stress the overall importance of this. I'm studying CS in Europe and it's REALLY, AND I MEAN REALLY HARD to get through without at least decent math skills.

Otherwise, yes you can pick pretty much any suggestion of the above.
Buck1000
Posts: 93
Joined: Sun Dec 14, 2008 8:02 pm
Location: Seattle, WA

Post by Buck1000 »

Haha, lovin the replies :) Sorry for not replying back, been busy the past couple of days.

slavik ->

How was the B/C exam? I took a look at GLSL over the weekend, and will probably start coding some shaders soon. Going to start with some basic color/texture effects. I may use one for explosions in my game, but that may take awhile to get too. And, I am making a game :D Its slowed down a bit recently, as I've lost motivation (been working on it too much), but it should be done with a basic test level soon. I'm excited to write up a Project Announcement thread, as I've been working on it for awhile :)

And when I said the different language thing, I meant spoken. I took my first Spanish class this year, with a Japanese, supersmart teacher, and it was insanely intense. I'm not saying I didn't learn anything (I passed the final comprehension test with an 12 out of 10 (5 extra credit), but it was really boring. Not exactly my cup of tea :)

I've taken a look at assembly before (and use it to code on Atmel AVRs for robots, as you said), but its not exactly the most exciting language in the world. It was interesting though. Learned alot about computers, and it got me into the field of Computer Science. I can code in QBasic, and DarkBasic, and know a tiny bit of Python. I learned C++ first, and although I gave up on it a bunch of times, now its the most powerful language I know.

I'm curious if there are any other awesome technical fields out there, with huge communities, like computer science, programming, electronics, etc... I'm trying too tap into another one :) Shader programming for now looks pretty exciting. Never done it before, so its what I'm looking for =]

d3jake ->

By the way, do you play Descent 3? Saw it in your name :wink:
Yeah, I've been working on my game constantly, but its gotten a bit boring because of that. A few nights ago, I couldn't even fall asleep because I was thinking up ways to handle various features I want to implement, and was literally thinking up code to use. It was ridiculous. Hence the break I've taken :lol:

Has anyone else had that? Where you've been working on something for so long, that when you go to bed you can't stop thinking about it?

eye776 ->

Yeah, CS is what I like the most out of everything else I know. I just took Biology this last school year though, and Genetics/Virology is really cool. I still have 2 years left, so my interests may change, but for now, yes, Computer Science is my goal. And, I've taken a look at other math sources. I have various European Math Olympiad problems, and final Pre-Calc exams from a few other highschools. Pre-Calc sunk in pretty well, except for a few of the last topics we studied, since we kind of hurried through them (Conic sections, Vectors..) I bought a book on it though, and I've been looking through it.

The thing that scares me the most, is that I know almost nothing about Discrete Mathematics, and stuff like that. I haven't been taught almost anything in that field (except sets), and I've noticed that in Europe, a firm grasp Discrete Math is a must. I've been trying to find some tutorials online to study on my own, but its not exactly the most exciting thing in the world. I'm used to heavily algerbraic problems, not things with sets/unions/20 different symbols :)

I want to learn about the "cutting edge" of mathematics. As in, Calculus hasn't always existed, someone created/formed/discovered it (I assume Issac Newton), so there must be some other field of math that is currently being studied. Thats what I wanna read about :) No idea what it is though. :D

And, where are you studying? Do you have any other tips? I'm looking to get into the Polytechnic University in Bucharest, Romania, since I've heard really good things about. I'm from Romania, so language isn't a problem, but as I've said (and as you've said), their entry math experience is ridiculous.
d3jake
Posts: 198
Joined: Sat Mar 22, 2008 7:49 pm
Location: United States of America

Post by d3jake »

Buck1000 wrote:d3jake ->

By the way, do you play Descent 3? Saw it in your name :wink:
Yeah, I've been working on my game constantly, but its gotten a bit boring because of that. A few nights ago, I couldn't even fall asleep because I was thinking up ways to handle various features I want to implement, and was literally thinking up code to use. It was ridiculous. Hence the break I've taken :lol:
Good call. I'm surprised that someone guessed that as Descent 3 and not Doom 3.... My game is a 6DoF FPS, and now that I've hit summer vacation I'm a bit afraid and ashamed if I don't do some work on it... I think it's lead to some nights not getting to sleep until late, but oh well... I know I don't have hardly any time to program during the school semesters.
The Open Descent Foundation is always looking for programmers! http://www.odf-online.org
"I'll find out if what I deleted was vital here shortly..." -d3jake
Buck1000
Posts: 93
Joined: Sun Dec 14, 2008 8:02 pm
Location: Seattle, WA

Post by Buck1000 »

I guessed because I recognized the font in your default pic. And, I just checked out the Open Descent Foundation. Sweet stuff! I'd be interested in helping you guys out once I finish my own project. I used to play D3 all the time, although rarely online. Loved it. I own D2, and I've played D1 before too. D3 was actually the reason I got into game programming in general, after modeling levels for it. I had alot of fun with that =] D3Edit is still by far the easiest modeling tool I know of. I use it for my own projects too - I model my map in it, convert the room file to .3ds, import into Deled, and scale/texture/export to .obj. It works wonderfully =] I'd be willing to model some maps for you guys if you're interested. I love the progress you've made on Flight Back! As I said, I'd love too help =]

And, yeah, I know what you mean about coding during the school year. There's rarely any time.

And, is there a Descent 4 in progress? I remember reading some stories that Interplay (or another company) resurrected the series.
d3jake
Posts: 198
Joined: Sat Mar 22, 2008 7:49 pm
Location: United States of America

Post by d3jake »

Nice. Any sort of new Descent effort will likely need to be not tied to Descent to avoid copyright issues... The ODF is in the middle of writing a Descent-like game. It's our main project, and it's showing a lot of progress, even though it may be delayed due to having few programmers who are all roughly college-age...

We appreciate your offer for help, and it's great to see another person who's versed in Descent among the internet. The main thing that we're approaching that we're looking for help and guidance for would be scripting. None of us have experience programming with scripting languages, and if we could find someone who give us a direction, or at least some good resources or references.

Come to think of it, I think we're at a point where I should throw up a thread in the Project Announcement section asking for assistance. Thankfully one of our team members asked on the Nexuiz forums, and since their project is fully open source, we have access to all of their textures, so we'll be using those on our project. There are a couple projects that have redone Descent1\2 textures (512^2 or 1024^2 resolution) that we have been given permission to use, but I'm afraid that if Interplay gets a bored enough lawyer they may tell us to shut down operations...

Anyhow, if you'd like to help, or at least chime in on what we're doing, you and anyone else is welcome to register on our forums. Though for any further discussion (unless there are no complaints) I think we should take this discussion to PMs...
The Open Descent Foundation is always looking for programmers! http://www.odf-online.org
"I'll find out if what I deleted was vital here shortly..." -d3jake
Buck1000
Posts: 93
Joined: Sun Dec 14, 2008 8:02 pm
Location: Seattle, WA

Post by Buck1000 »

Yeah, watch out for copyright-infringment risks. Are their file formats proprietary? I sent you a PM by the way. I'll register/become active on the forums once my current workload diminishes.
slavik262
Posts: 753
Joined: Sun Nov 22, 2009 9:25 pm
Location: Wisconsin, USA

Post by slavik262 »

Buck1000 wrote:slavik ->

How was the B/C exam? I took a look at GLSL over the weekend, and will probably start coding some shaders soon. Going to start with some basic color/texture effects. I may use one for explosions in my game, but that may take awhile to get too. And, I am making a game :D Its slowed down a bit recently, as I've lost motivation (been working on it too much), but it should be done with a basic test level soon. I'm excited to write up a Project Announcement thread, as I've been working on it for awhile :)

And when I said the different language thing, I meant spoken. I took my first Spanish class this year, with a Japanese, supersmart teacher, and it was insanely intense. I'm not saying I didn't learn anything (I passed the final comprehension test with an 12 out of 10 (5 extra credit), but it was really boring. Not exactly my cup of tea :)

I've taken a look at assembly before (and use it to code on Atmel AVRs for robots, as you said), but its not exactly the most exciting language in the world. It was interesting though. Learned alot about computers, and it got me into the field of Computer Science. I can code in QBasic, and DarkBasic, and know a tiny bit of Python. I learned C++ first, and although I gave up on it a bunch of times, now its the most powerful language I know.

I'm curious if there are any other awesome technical fields out there, with huge communities, like computer science, programming, electronics, etc... I'm trying too tap into another one :) Shader programming for now looks pretty exciting. Never done it before, so its what I'm looking for =]
  • The BC exam went pretty well. I'm pretty sure I got at least a 3, which will get me 10 college credits and get me out of my first two calc classes.
  • Have fun with GLSL! I'm an HLSL person, but you can do the same thing with both of them. You really get ideas of what you can do with shaders once you start using them.
  • Foreign languages are intense. I wish I was better at them so I could be multilingual, but I completely suck at learning other (spoken) languages. I got my minimum requirement to get into college (2 years of Spanish) and stopped. :?
  • Check out C#. It's C++ with some added magic (automatic memory management, for instance). You can make quick Windows apps really fast with it. Java is very similar to C++/C# as well, but I have issues with it (I'll rant about it upon request).
  • It's always fun to be programming with other people in a project. Throughout my high school career I was involved in a program called FIRST Robotics, where high school teams built robots (people-sized, not little ones) that could be coded in C (and later C++). While I have fun coding games, I want to go into embedded programming for a living (coding for embedded processors in stuff from cell phones and GPS to medical imaging machines).
Buck1000
Posts: 93
Joined: Sun Dec 14, 2008 8:02 pm
Location: Seattle, WA

Post by Buck1000 »

Yeah, I'm going to stop after this next year of Spanish. I can always pick it up on my own by watching the Spanish channels on TV :wink:

I'll take a look at some C# tutorials :)

Whats with Java? I haven't used it before, but I've seen examples and such.

You're school had a FIRST team too!?! Haha, its a small world :D
We're (I believe) team 1983, Aviation High School. I'm not a member of the team, but I was last year for a few weeks. It was really boring, because everyone just kind of sat around... (After I quit, I was informed that things really pick up during build season) They weren't coding either, they were using some simple drag and drop scripting system, and they were making the robot from a kit, two things that I hate. The Junior/Senior team was coding in C++, and building it from scratch, so I may join this year because of that.

I think we went as far as National last year, but I wasn't really paying attention. Just in case you saw our team -> They wear white shirts with a small pheonix in a corner (our school's mascot), and standard khakis. The robot itself is decorated with a skunk, which comes from our team name - skunkworks.
Brainsaw
Posts: 1183
Joined: Wed Jan 07, 2004 12:57 pm
Location: Bavaria

Post by Brainsaw »

Buck1000 wrote:Yeah, I'm going to stop after this next year of Spanish. I can always pick it up on my own by watching the Spanish channels on TV :wink:
That's OK. This is the way I good (rather) good in English. In my school the English courses start in the 5th grade, and for the first two years I always sucked. Then we got cable TV and I watched a lot of English stuff, and somehow (without more learning - I was (and still am) lazy) I got better in English - in the year I got Latin which took the former place of English ;). And it really is hard to find Latin TV stations ;)
Buck1000 wrote: I'll take a look at some C# tutorials :)

Whats with Java? I haven't used it before, but I've seen examples and such.
I don't like Java that much, but I have to use it at work. It's too strictly object oriented, and the classes that ship with it are imho way to complicated, so (for my private projects) I'll stick to C++.
Dustbin::Games on the web: https://www.dustbin-online.de/

Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
xDan
Competition winner
Posts: 673
Joined: Thu Mar 30, 2006 1:23 pm
Location: UK
Contact:

Post by xDan »

> Has anyone else had that? Where you've been working on something for so long, that when you go to bed you can't stop thinking about it?

Most nights :S
slavik262
Posts: 753
Joined: Sun Nov 22, 2009 9:25 pm
Location: Wisconsin, USA

Post by slavik262 »

Buck1000 wrote:I'll take a look at some C# tutorials :)
Download Visual C# Express Edition and start making a few Windows Forms apps as well. The drag and drop GUI designer makes it really easy to play around and make programs really fast.
Buck1000 wrote:Whats with Java? I haven't used it before, but I've seen examples and such.
Here's the summed up version of why I don't like Java:

Java was basically designed as a "safer" C++. Safer meaning that Java was supposed to make it harder for the programmer to make language-based errors. Some of the features are nice (like automatic memory management), but Java intentionally removes features to make it more difficult for the programmer to screw up. Among features in C++ but not in Java:
  • Operator overloading (Say you have a vector class - you can't just do vector1 + vector2 to get the resultant vector.)
  • Multiple Inheritance (A class can only be derived from one parent class. Granted, you can implement as many interfaces with a class as you want, but this can still be limiting.)
  • Passing values into a function by reference (Even though Java uses references/pointers to pass values into a function, as soon as you modify the value it is converted to a local copy.)
The funny thing is that you can't stop stupid people from doing stupid things. Java was made to be reasonably idiot-proof, but that's impossible. In the words of one of my favorite quotes,

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."

Leaving out valuable programming tools to make programming "easier" the way Java does is a great way to shoot a good programmer in the foot. I always find it annoying how C++ is criticized for its large feature set - sure it might confuse beginning programmers, but nobody ever said beginning programmers have to use the entire C++ feature set. Instead, it gives more experienced programmers a plethora of tools and trusts them to know what they're doing.
Buck1000 wrote:You're school had a FIRST team too!?! Haha, its a small world :D
We're (I believe) team 1983, Aviation High School. I'm not a member of the team, but I was last year for a few weeks. It was really boring, because everyone just kind of sat around... (After I quit, I was informed that things really pick up during build season) They weren't coding either, they were using some simple drag and drop scripting system, and they were making the robot from a kit, two things that I hate. The Junior/Senior team was coding in C++, and building it from scratch, so I may join this year because of that.

I think we went as far as National last year, but I wasn't really paying attention. Just in case you saw our team -> They wear white shirts with a small pheonix in a corner (our school's mascot), and standard khakis. The robot itself is decorated with a skunk, which comes from our team name - skunkworks.
Join your team! It picks up a lot during build season - just stick with it and you'll see what I mean. As for the drag and drop system, it's called LabVIEW. There's three options for programming the robots - in LabVIEW, in Java, and in C++. LabVIEW is used by lots of teams who either don't have much experience in typed programming languages or by teams who don't have programming mentors well-versed in C++ or Java. A lot of teams have lots of mentors who are mechanical or electrical engineers, many of which have experience with LabVIEW (many corporations use LabVIEW for programming since it's easier to pick up and it's cheaper to teach an electrical engineer how to use it than hire a computer engineer to write code). I'm not knocking LabVIEW - it's a good system and even compiles to nicely optimized binary just like C++. I just prefer the amount of control and creativity given to you by typed programming languages.
sammerize

Post by sammerize »

I like to learn guitar as it is one of my favorite musical instrument. I know how to play it but not very well so i want to learn it perfectly.
Post Reply