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 have been teaching myself Python as a first language for 2 years now. So far I have done some online courses (NLP, Design of a Computer Program etc.) and solved some puzzles but never worked with big applications.

Yet right now I have the opportunity to do some real work with Python on a project at my university. It's a web app using the Pyramid framework, currently at about 8000 lines. And they are using quite a few tricks that I have never encountered before - stuff like __metaclass__, lots of OO stuff that I have no prior experience with.

Do you believe that I could still do useful work for the project?

And what could I do to prove my worth?

Edit: The developers on the project are at a different university. The job available at my university seems to be a classic code review job: Check the code for security flaws, style, coherence, efficiency etc.

share|improve this question

closed as too localized by Dan Pichelman, Dynamic, Mathew Foscarini, Jimmy Hoffa, GlenH7 Jun 17 '13 at 23:08

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Is this an opportunity to code or to do code-reviews? –  Darius X. Jun 17 '13 at 17:23
    
Is code review work the only work that needs to be done on the project? –  Robert Harvey Jun 17 '13 at 17:23
1  
As long as you're learning. That's all that really matters. –  Mathew Foscarini Jun 17 '13 at 17:48
2  
@MathewFoscarini: Some things are not worth learning. –  Robert Harvey Jun 17 '13 at 17:49
1  
@RobertHarvey We'll have to agree to disagree on that one –  Yannis Rizos Jun 17 '13 at 20:23

4 Answers 4

Do you believe that I could still do useful work for the project?

Yes, but be honest about your level of experience.

Some things you might be able to work on are the work items (bugs, tasks, etc.) that the team classified as "fairly trivial, no rush". This classification is from the viewpoint of someone who is comfortable with the existing codebase, so expect it to be a lot harder for you.

Assisting in code review can also be a learning experience. Don't expect to be a major contributor to the review .

share|improve this answer

Can I perform a code review although I am very inexperienced?

Yes, you could, and should join a code review whenever it is done (and you have free time). Even if you do not contribute, you can learn something new, therefore it is almost always useful.

Do you believe that I could still do useful work for the project?

Since you are new and inexperienced, your contribution is very limited, and I surely hope you got a senior to guide and tutor you. It will take you long to become a master (see Teach Yourself Programming in Ten Years), but don't give up. Over time, your expertise will grow, and you'll become useful.

share|improve this answer

Most of the times no. But you have to answer (at least)the following questions first, just in case you are the exception:

  1. Can you recognize possible security flaws by reading the source code? If yes, can you propose a solution?

  2. Are you aware of a handful of coding best practices and able to catch them up? From freeing memory and not causing memory leaks, applying the correct scope to members to using measure performance without a profiler(and much more of course)

  3. Are you, at least, at an intermediate level on the language the program you are reviewing is written?

  4. Are you experienced enough to review a much more talented colleague who is better than you at all the above?

Of course, there more points to look for...

share|improve this answer
    
1) I might realize if user input is not properly escaped. I know that you don't use eval. And I planned on doing some reading at owasp.com. –  sjakobi Jun 17 '13 at 21:01
    
2) Nope. I really know very little about the structural/design aspects of programs. –  sjakobi Jun 17 '13 at 21:04
    
3) I think so. I use quite a few of the standard libraries, know about generators, begin to grasp decorators... –  sjakobi Jun 17 '13 at 21:06
    
4) I have the code and think that I could help clean it up, make it easier to comprehend. But I am not sure whether they would really need my input to do this. –  sjakobi Jun 17 '13 at 21:07
    
Ok, as said above, it will be a helpful learning experience but dont expect to be a major reviewer. And not to important projects yet –  py_script Jun 18 '13 at 7:25

It don't see why not. Just be respectful and frame things in terms of how you would have done something differently or as a question of whether it might better if... etc. Even when experience levels are matched, code review can be as much an opportunity to learn from the reviewed as it is to learn from the reviewer. It's not usually about sitting in judgment with zero feedback on your opinions (although IMO a good tech lead will slap down pointless Kool Aid that doesn't really bring anything useful to a solution). Sometimes a code review is great just for the stuff you realize is inefficient or pointless as you explain it to another dev.

share|improve this answer

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