Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a recent graduate so I understand a lot of the theory, object-oriented languages, and various data structures. I am competent in languages such as C++, Java, PHP, just to name the ones I'm strong at. Since graduation I bite the bullet and accepted a job outside of my field for now. So obviously I don't want to lose my edge and want to stay current.

Most of my programming has been for academic reasons and a 3-month web programming (back-end) internship. I really want to program something to use my skills I've learned. I always hear program a game is great practice. However one problem with the Internet is it's robust volume of information and find myself reading one site then jumping to another & on & on. Where would you suggest is a good foothold to begin? It's always harder to start from scratch and that is where I am. I figure start with some 2D game and go from there, but then comes the question of which SDK to use, if any. I'm currently using Linux but I wouldn't mind developing in Windows either. I'm always thinking maybe I should try to develop a simple app for an Android phone as well. As you can tell I'm all over and just need a little direction.

Any advice/website is greatly appreciated!

share|improve this question
1  
questio probably more suited to programmers stack site –  Mitch Wheat May 29 '11 at 2:12
add comment

migrated from stackoverflow.com May 29 '11 at 2:45

This question came from our site for professional and enthusiast programmers.

3 Answers

I'm no college graduate (I'm actually going in the Fall) but I've been programming for years now. As it were, I'm self taught and thus I've done a lot of practice programming (and still do). My best advice for what to do is to pick something you're interested in.

Now I will admit game programming takes a lot of time and coding but its not necessarily the best thing. If you are trying to become a game developer than I retract the prior sentence, it is the best.

A really interesting thing to do is to write your own compiler and/or programming language. It doesn't have to be the next C++/Java/Python etc. but you should be able to write fully working programs with it. It will teach you a lot about what makes things spin and is damn fun to do.

If you're an assembly nut another fun project is writing an OS which like the compiler/language teaches you a lot more about what makes things spin for the computer itself which is priceless knowledge to me.

Basically the key things to remember are:

  1. Choose something you're interested - You won't get much out of it if you truly hate it
  2. Don't go overboard - That is don't think you're going to make Halo (Remember major projects have lots of developers and lots of time spent)
  3. Experiment - Don't just figure out how to do something, but why it works the way it does
share|improve this answer
    
I am taking in the current answers so far and it does help. I do want to create something simple such as...for an example Pong. I've never really dealt with moving objects on screen before or object collision, let alone a GUI. I've always operated with web programming and console programming only for C++/Java. That is one of my interests, curious to understand how that works. Not trying to be a game developer just want to understand moving objects, collisions, and use GNU/Windows API. –  Chris May 30 '11 at 3:30
    
@Chris Don't get me wrong, it is a good experience to program games. I was just more gearing my answer towards practicality and overall knowledge. YMMV here I guess. –  Glenn Nelson May 30 '11 at 3:33
add comment

Instead of---or in addition to---picking some big monolithic project to undertake, consider what tasks in your own life you could make simpler by writing little programs, whether it's in your non-CS job or your hobbies.

In my spare time, I'm a photographer, so I've written several little scripts to manage my work. Some of them accomplish roughly the same ends as GUI programs or web front-ends, but my little scripts are better suited to my needs.

I frequently visit a website that doesn't provide a certain kind of backward link... solving that problem for myself involved learning enough javascript to write a greasemonkey script for that page, writing a little local web servlet, fetching and parsing HTML, designing a little local SQL database, and a few other things to tie the pieces together.

share|improve this answer
    
I've always considered writing something to help with my current job. I guess it really comes down to if I want a GUI program or a web-site. Actually it could be interesting constructing both since it would require the use of various languages too. –  Chris May 30 '11 at 3:34
add comment

For C++ or Java project, I think it would help you a great deal to write applications like a Mail reader (with GUI) or a Network monitoring program (network management system). Not only you will have the chance to learn about protocols but help you put your programming skills into practice and build practical and useful apps.

An ERP or CRM project for Java/J2EE would be interesting too.

For PHP or even Java project, what I can think of is creating a simple web application framework like a stripped-down version Joomla, CakePHP, Drupal, etc. You will have the opportunity to learn and discover popular design patterns like MVC, front controller, etc.

share|improve this answer
    
Your comments hit a little closer to home in what I'm looking for. I know we can program anything but interested in constructing something that would be beneficial in learning and hone my programming skill. As a student usually solve problems within a piece of the overall program. Another thing is starting from scratch –  Chris May 30 '11 at 3:38
    
Another thing is starting from scratch is difficult on where to begin and get started. I'll definitely just simple look into just creating a GUI possible with (GNU || Windows API) and hoping take it from there. I'm also a little intrigued about the web app framework too. Soo much I want to try! =) –  Chris May 30 '11 at 3:57
    
Ha, I know your feelings. One step at a time. Just pick what really pique your interest, do you picture yourself mainly as a system programmer or application developer, 3 years from now? both are equally challenging and rewarding. I think you can start with a good open source or commercial app first, play around with it, then find a smaller/simpler open source one and start from there (learn the code, modify it, add features you like, and so on). –  UUlum May 31 '11 at 3:46
    
As I picture myself a few years from now I would mainly be an application developer. I'll might purse that mail reader with GUI you mentioned, I really am curious just using GUI and using network protocols as well. Maybe before I dive in on that I'll go play around with the code of smaller/simpler open source one and modify it. Thanks for the tip! –  Chris May 31 '11 at 4:57
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.