12

I've been learning C#/.NET 4.0 for about 2/3 months, it's my first serious programming language (I've looked at PHP, HTML, CSS, JavaScript, and VBA before but never massively in depth) and I'm starting to become a bit stuck:

  • I have hit a ceiling with my learning due to lack of a 'big' project...
  • Lack of working on complex projects is giving me doubts in my abilities...

2 weeks ago I had an interview for a Junior Programmer job, and managed to answer most of the questions that were answered of me, but I still didn't get the job due to lack of practical experience, I'm unsure of what to do!

As I said before, I wouldn't mine contributing to an Open Source project, but I don't know where to start, I presume the 'big' projects only want good coders :(

Is there any form of online programming test that will show me how 'good' (or 'bad') I am at the moment? :)

Thanks for any help.

6 Answers 6

8

I would ask you what you're interested in (hobbies, etc..) and then see what larger projects you can come up with that are related to that. Also you could check out Project Euler if you're just looking for exercises, but I think that projects you're personally interested in are better.

6
  • This is the problem, I think I'm not entirely sure where my preferred area is in coding. Generally though, I like cars/bikes, and TV shows/Movies but a lot of the projects revolving around these have already been done. I'm scared of trying something massively complex as well, The most complicated thing I've done is a Human/Monster thing in XNA where the Humans run away and the Monsters run towards, but that's about it! Commented Jan 24, 2011 at 21:05
  • 4
    Who cares if it's been done? When you're learning, it's perfectly OK to re-invent the wheel. I have been slowly building a photo gallery program with database to store tags and all kinds of other metadata about the photos. Sure it's been done but I wanted to brush up on my C# and it sounded like a fun project. It's not done (it may never be) and now I'm thinking of rebuilding the UI to teach myself WPF. It's purely a learning project and if I ever finish and release something I'll be amazed! But I've learnt a lot!! Commented Jan 24, 2011 at 21:15
  • 1
    @toleero: The human/monster in XNA sounds kinda fun. Next thing, add weapons? It will require major re-working but it will be worth it. Or maybe start with different kinds of monsters such as fast/slow, weak/strong, big/small... Commented Jan 24, 2011 at 21:17
  • 1
    @toleero: It's actually a very good starting project, there are many, many directions you can go in. ;) Commented Jan 24, 2011 at 21:26
  • 1
    @Frustrated, @toleero: Exactly. I have a couple projects that I am always thinking of new features to add. What happens is: You add a little feature, and think of 5 more. As you keep adding them, your ideas get better, because your skills in implementing them get better and you are thinking beyond how to implement them. In a year or two you will look back and think how simple your first projects were! Keep in mind that you can only see how far you've come when you get there.
    – Michael K
    Commented Jan 24, 2011 at 21:28
2

The entire point of open source is that the source is open, and you are free to do almost anything you want with it, well other than claim its your own, and distribute it without the source.

Find a project that you like and use, but you think there could be some improvements to it.

Get the latest stable branch, download it.

Make the changes that you think would be good for the project.

Show some people in the community your progress and your improvements.

If they like it they may include it in the main branch.

If they don't like it, but you think it is really good. Fork the project, set up your own page with your source, make sure to read their license so you get everything correct.

1

The only test that has any worth is shipping a useful, usable and robust piece of software. Anything else is trivia.

I would suggest that you visit CodePlex to see quite a lot of open source projects that use C# and .NET. Something there will catch your interest as a program or library that you would actually use. Try it out and note things that you would change to make it better.

You don't actually have to worry about being accepted on to the development team, as you can just pull the codebase and make your own changes to it. If you think that you have come up with something really valuable, then approach the dev team.

2
  • My PM would argue that a deadline supersedes usefulness/durability any day of the week, heh. Commented Jan 24, 2011 at 21:17
  • @Brad -- I hear that same thing every Tuesday at 2 p.m. Commented Jan 24, 2011 at 21:24
1

Is there any form of online programming test that will show me how 'good' (or 'bad') I am at the moment?

That results of such tests are largely irrelevant. What matters is that you can accomplish things in the language in question. Which you obviously can't yet.

Here is my suggestion. You're definitely reading a book on C#. Most good books have a practical example which you're doing through the book elaborating on it and making it complexer with the chapter advance. Understand that example then program a small simple thing for yourself paying attention to the best practices suggested. After it's done you get some confidence in your abilities and will also have something to show off.

Get started with doing things.

1
  • Thanks, I've done a few things (Some WinForms Apps, an XNA sandbox game, and I'm writing a Google Stock Tracker in WPF) but I'm finding it hard to stick with a project... Commented Jan 24, 2011 at 21:22
1

Is there any form of online programming test that will show me how 'good' (or 'bad') I am at the moment? :)

No test will be able to show you that (even if there are managers / HR personnel firmly believing the opposite ;-). It only shows in real life, working on real projects, over a longer time period.

As I said before, I wouldn't mine contributing to an Open Source project, but I don't know where to start, I presume the 'big' projects only want good coders :(

I believe you can start making small contributions to many open source projects. At least I believe that testing, reporting bugs, documentation contribution are surely welcome as many developers don't like these :-) And this way gradually you can build up reputation and start contributing code: first bug fixes, then bigger changes.

2 weeks ago I had an interview for a Junior Programmer job, and managed to answer most of the questions that were answered of me, but I still didn't get the job due to lack of practical experience

Don't give up, this has happened to most of us at some point. Keep learning, practicing and applying for junior jobs and sooner or later you will get one. One thing you can and IMHO should do after interviews is to collect feedback. If you filled in a written test, don't just ask for your score, but also ask for the actual result sheet to see the errors you have made and learn from them. Analyse the interview process too and find where you gave suboptimal answers, missed a beat etc. Next time you can make it better with additional preparation.

1
  • Thanks, I'll have a look, I'm finding it really hard to find a project to commit to though! Commented Jan 24, 2011 at 21:05
0

Dont be ever scared of Programming, the best programmers are those who have made the Biggest blunders. Stupid mistakes, complex bugs , they all contribute in making you a better coder.

Good Luck !!

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