Toss me some ideas...

Messages
7,841
Location
U.S.
...regarding computer programs. I joined the Advanced Programming class at my high school so I could fill up my schedule. Our task in this class is simple: work on any program of your desire, but you must record what you do each day of the week. This follows for the entire semester. I plan on using C++ or C#, but I'm open to other suggestions. However, I want to make this clear, I just need ideas on programs you'd find useful. I don't want to program silly games. I was thinking of writing an app for the iPhone/iPod Touch. The idea was to bring CF to more places with easier access (Safari is a pain), but I heard you need a Mac for that.

edit: Oops! I just realized this qualifies as a thread under the programming section. If the mods would be so kind to move it, I'd be very thankful.

self-note: Not everything goes on Social Lounge.
 
iPhone development is all in objective C - I really wouldn't go there. You'll end up wrestling with the language for the first half of the term and wrestling with the horrible APIs for the second - it might look cool on the face of it but developing for that thing ain't fun. It's also barely used as a language any more so from an experience perspective there's far better languages you could be spending your time on.

If you want to develop for a phone I'd recommend going down the android route - you'd need to do it in Java but it's MUCH nicer than iphone stuff. You even get a simulator of the phone on your PC and a nice eclipse plugin to make the whole thing streamlined. Of course it's also all free (bar the physical android phone of course!)

Programming something useful and original these days is hard for a programmer that's been on the job for a couple of decades - there's SO much out there already in terms of freeware chances are that if you think of an idea someone's already done it better than you have. I've thought of a lot of things over the years I thought were original but a quick Google has generally proven otherwise!

That said, it doesn't mean it's a waste of time doing things that have been done in one form or another already, experience is always great and you get to put your own spin on things :) Here's some ideas:

- From previous posts you seem quite strong on the maths front - what about some form of basic physics engine? It's never going to rival commercial ones in a single term, but you could get some pretty cool effects going by the end of it.
- Something I had an idea for ages ago but never got around to was a secure instant messaging program. So it might work similarly to skype, msn and suchlike on the face of it, but you'd send and receive everything in an encrypted format that'd make it very difficult to sniff conversations and file transfers out. Again I'm not sure how far you'd get in a term but you should be able to make a good start.

I could recommend other things but just so I know I'm on the right or the wrong tracks, are the above suggestions what you're looking for? Also, how long have you been programming and honestly how good would you say you were? I can name some people who could knock out full blown 3D physics engines in a term, I can name others who'd probably take that long to write hello world. I'm guessing your somewhere in between, but knowing where would be helpful :)
 
iPhone development is all in objective C - I really wouldn't go there. You'll end up wrestling with the language for the first half of the term and wrestling with the horrible APIs for the second - it might look cool on the face of it but developing for that thing ain't fun. It's also barely used as a language any more so from an experience perspective there's far better languages you could be spending your time on.

If you want to develop for a phone I'd recommend going down the android route - you'd need to do it in Java but it's MUCH nicer than iphone stuff. You even get a simulator of the phone on your PC and a nice eclipse plugin to make the whole thing streamlined. Of course it's also all free (bar the physical android phone of course!)

Programming something useful and original these days is hard for a programmer that's been on the job for a couple of decades - there's SO much out there already in terms of freeware chances are that if you think of an idea someone's already done it better than you have. I've thought of a lot of things over the years I thought were original but a quick Google has generally proven otherwise!

That said, it doesn't mean it's a waste of time doing things that have been done in one form or another already, experience is always great and you get to put your own spin on things :) Here's some ideas:

- From previous posts you seem quite strong on the maths front - what about some form of basic physics engine? It's never going to rival commercial ones in a single term, but you could get some pretty cool effects going by the end of it.
- Something I had an idea for ages ago but never got around to was a secure instant messaging program. So it might work similarly to skype, msn and suchlike on the face of it, but you'd send and receive everything in an encrypted format that'd make it very difficult to sniff conversations and file transfers out. Again I'm not sure how far you'd get in a term but you should be able to make a good start.

I could recommend other things but just so I know I'm on the right or the wrong tracks, are the above suggestions what you're looking for? Also, how long have you been programming and honestly how good would you say you were? I can name some people who could knock out full blown 3D physics engines in a term, I can name others who'd probably take that long to write hello world. I'm guessing your somewhere in between, but knowing where would be helpful :)

Berry have you ever developed for the iPhone?

I'm just asking because you seem so against it telling him to go the android route. I guess for his case going android would make more sense because he has a PC and not a Mac. But for a developer learning Objective C and developing on the largest appstore platform makes more sense. You may hate the platform and API's but there is a huge user base.

BTW the iPhone SDK has a full iPhone simulator that you can virtually run the applications before you put them on the phone.
 
^^ I programmed Visual Basic for my entire freshman year (two terms) and I programmed C++ for my entire sophomore year (two terms also). I haven't programmed in a while, so I don't know how good I still am with each language. I'm pretty good about thinking systematically, so I'm pretty good at programming. However, I'm not good to the point where I can examine someone's code and immediately understand what exactly is going on. I need my own time to read through everything. I'm not very good at programming games and stuff that requires a lot of collision detection and work with certain specific functions, mainly because I may never have learned a concept. I like working with stuff that goes on behind the scenes (functions, classes, types, etc), so your suggestions are great! I appreciate them. If you have spare time to do some fun programming, I wouldn't mind a little project without. We tried something on a very big scale here, but that was rather foolish, especially because it dealt with models and images.

edit: If I were to write a physics engine, I'd need someone to do all the collision detection, etc. I could work on the dynamics simulation and calculating variables.
 
Berry have you ever developed for the iPhone?

I'm just asking because you seem so against it telling him to go the android route. I guess for his case going android would make more sense because he has a PC and not a Mac. But for a developer learning Objective C and developing on the largest appstore platform makes more sense. You may hate the platform and API's but there is a huge user base.

BTW the iPhone SDK has a full iPhone simulator that you can virtually run the applications before you put them on the phone.
I haven't - but I have done a fair bit of research into it which was more than enough to put me off. If you actively want to learn objective c and have a mac then fair enough, iphone development might be something to look at. However, to me it doesn't make much sense learning objective c as a new language as oppose to something like Java - saying you're profieicient in the latter is going to be a MUCH bigger boost to your CV than the former. I also wouldn't be surprised if apple scrapped their objective c base in the future and switched to Java - quite frankly I'm surprised they haven't already.

If you have spare time to do some fun programming, I wouldn't mind a little project without. We tried something on a very big scale here, but that was rather foolish, especially because it dealt with models and images.
Have a look here for a fun project on the side (if you haven't seen it already!) I'll need a few people that can code already for that to get off the ground properly so feel free to join in! That said I probably wouldn't be overly keen on doing a physics engine - that's another project I'm already working on with a couple of other people!

Another idea might be a basic web server - yup there's a million of the things around already but it's good in the sense that you can get a functional, basic one working in a few minutes if you know how. You can then start ramping up the security and adding functionality for the rest of the term (and with the likes of apache setting the standard you won't run out of things to do either!) That one's good in the sense that you'll learn a lot about security, servers and networking in general as well as about programming.

Lastly (and this is something that's a bit different and cool) what about a steganography application? The scope with this is quite wide, but typically speaking you'd give it an image and some text, then it would hide the text in the image (perhaps encrypting it with a password in the process.) It could then do the opposite, decrypting and retrieving the text from a given image. You could expand this to do all sorts of things - hiding other images in images, hiding text in audio as well as images, even hiding audio in images. Again, you should be able to get a functional version of this going pretty quickly after a bit of research, and beyond that you can add what you get time and what you want to add. :)
 
Back
Top Bottom