views:

229

answers:

11

Sorry if a question like this was posted before, i searched but couldnt find anything.

I just finished college and im unemployed however im taking a year out to improve and become confident in my programming. My goal is to have a job by June of next year. I've learnt OOP with Java in college and im just starting to learn PHP with OOP. The plan is to take on a project at the beginning of every month and get it finished by the end of the month so i have something to show a potential employer. For November I have already started a bartering website with PHP and December i will make a video website with Java/JSP and installed on a video streaming server. Now to just fill up Jan-May. Any ideas? What projects did you do to help improve your knowledge? Even if its really difficult, i dont mind failing to get it done - it'll still give me something to talk about at an interview.

Thanks in advance :)

+3  A: 

I built a poker hand history parser webapp that normalized all data into tables allowing arbitrary queries such as how many times I was dealt AK preflop UTG+1 and the percentage that it won when I was against 5 or more players, etc...

The purpose was to be able to store the data in such a way that almost any combination of stats could be conceived and retrieved.

PHP, advanced SQL, OOP, MVC, HTML, JavaScript, CSS, regex, file handling, and more.

Best of all it was fun (for a while).

webbiedave
cool. open-sourced it by chance?
brian_d
+1  A: 

A dice rolling app is a good one to start.

You need to be able to handle x number of dice of y side. EG 2d6 or 10d10. This give you exposure to loops and random numbers.

After you returns the results build a bunch of functions to add the results together, or determine the most common result. This teaches you arrays and loops. foreach() is your friend here.

Zurtri
I think this is a little to over simple for somebody with a degree in CS...
Alex Gosselin
who said he has a CS degree?
Tony Ennis
+4  A: 

Hi Jonny,

I remember feeling the same need myself upon graduating to build-up a portfolio before becoming hirable but my advice is to focus your energy on scoring interviews as the experience you gain there will be much more valuable for finally landing a job:

  1. Through interviews, you learn what employers are looking for. After you get home, make a list of all the questions they asked you and research them
  2. Even if you are able to get some hobby-projects to your name in the next year, you will still be interviewing as a Junior-programmer.
  3. The best experience you will gain in software development is in your first job: on a team, with a mentor, and working from formal requirements with deadlines.

Now, if there are other reasons you want to take a year off before really looking for a job, then that's another matter.

Note: I graduated in 2007, and the market was much more willing to hire programmers out of college and train them. That may be less so today, but some companies still will make this investment (EDIT: in the US at least, I see you are from Ireland so I'm not sure there).

Stephen Swensen
+1  A: 

I am often charged with interviewing potentials for the web firm I work for. Pretty much the best thing I can suggest is to have at least one solidly complete project. If you made a bartering site, then integrate videos into it, if applicable. Put the fancy UI, complex datbase interactions, cache optimization, etc all in one or as close to one as you can. I hate it when people tell me they are masters of php, mysql, html, css and jquery then show me a clearly tutorial based garbage website that does nothing. Or worse, make me sift through several that are all incomplete and incompetent. If you want to show diversity in languages, then follow the same rule for each language. Just make sure your examples shine.

Just my opinion.

Kai Qing
I concur. One well worked out large project is probably worth more than a bunch of small ones.
jay.lee
+2  A: 

www.projecteuler.net It's not the most ideal for promotable job skills, but the problems do test coding and problem solving abilities. You'll probably pick up some nifty tricks and knowledge along the way.

jay.lee
great answer! but it is www.projecteuler.net for anyone looking.
RD
edited, thanks for catching that
jay.lee
Project Euler is fun, but unless the company you are interviewing for is in the business of selling Fibonacci numbers, I personally don't find it very relevant.
Jörg W Mittag
A: 

I'm always bad about thinking up projects to do, I can understand the pain. Try writing a character editor for a game. I wrote one for Diablo 2... drifts off dreaming of glories past...

Whatever project you do, you should do unit testing with it.

Nija
A: 

Talk to technically-oriented head-hunters/placement agencies. They'll tell you what you need to learn in order to get a job. Then, when you have the skills, they can get you working on contract. You'll learn a lot and make some coin.

Also, find an open source project that interests you and participate. You don't have to wait until June.


edit - another idea - don't shy from SQL. Whatever app you choose, make sure to use a standard database such as MySQL. SQL and database design are used pretty much everywhere. Learn reasonable database design practices (eg., 3rd normalized form.)

Tony Ennis
A: 

I always suggest A.I. based games. Like a Tic-Tac-Toe solver, or Rubiks cube solver. It kinda covers a decent amount of each part, as well as developing/finding an algorithm that actually solves it.

Mercfh
A: 

I think this depends on the type of job you would like to get when you start job hunting. I recruit regularly, and I like to see a few things.

  1. you are learning and take an interest outside of college/work. I like to think you will continue to learn in your own time and bring that knowledge to the job
  2. you have relevant experience, even if it's not commercial. So do a project that is relevant to the jobs you will apply for. So, if it is web programming, write a cool web app that you can portfolio in the interview.
  3. you can do over and above what you learnt at college. When asking technical questions in an interview, I hate answers such as 'we didn't do that at uni' or 'i did a little bit in course abc'. I want to see proactivity and enthusiasm over and above just passing you course.

So, that all said, it sounds like you want to do web programming, so build a web app that solves a problem for you. Maybe to budget or keep track of finances, or a DVD/book library system etc. As long as you learn from it and shows creativity, you are on the right track.

Codemwnci
A: 

If you're going to learn a living from programming, look at job offers at your area and check what technologies they use most, this will typically be something like: Spring (or EJB), Hibernate (or JPA), JSF (or Seam or GWT or Struts), etc. Then try to write some application with these things, it can be for example an online shop, a simple search engine, simple blogging system, etc

iirekm
A: 

To become a better programmer try to solve the problems in this site projecteuler.net and also complex puzzles, for a long term better career and to become a satisfied soul before dying ;)

Suresh S