Robert Heaton

Software Engineer /
One-track lover / Down a two-way lane

I will give you feedback on your code

08 Nov 2019

Since the summer of 2018 I’ve been offering office hours in which I talk with “advanced beginner” programmers about how to get better at programming. Almost everyone I’ve spoken to has said that one of the biggest challenges they face is that they don’t have anyone to give them feedback on their code.

To solve this problem I’m offering to review and give feedback on your code, for free.

This is partly because I’m a nice person whose PlayStation is broken, but mostly because I’m about to start writing a book. This book is going to be about learning programming, and will be based on my smash hit blog post series, “Programming Projects for Advanced Beginners”. To ensure that the book is the best damn thing ever written about learning programming, I’m going to read as much code that was written by my target audience (i.e. you) as I can. I’m also going to start a weekly programming newsletter called “Programming Feedback for Advanced Beginners”, showcasing the most interesting teachable moments from my real reviews of real code written by real, salt-of-the-earth people such as yourself.

Some people might call this “building a community”, others might call it “content marketing”. I think that they’re both correct and that we’re all going to be winners here.

(SUBSCRIBE to Programming Feedback for Advanced Beginners.)

What feedback will you get?

I’ll suggest specific changes to your code and offer general feedback about what you may want to work on and how. This feedback might be:

  • How to improve the structure of your functions
  • How to improve your use of classes and objects
  • How to make your code more idiomatic and leverage the built-in powers of your language
  • How to make your code shorter and more compact
  • How to generally make your code more readable
  • Spotting subtle bugs

I’ll add your program to my GitHub repo, along with an edited version showing the changes that I would make to it and a big ol’ document describing why. Read the inaugural edition of PFAB for an example of what to expect. I’m happy to either credit you with writing the original code, or to leave out your name entirely so that there is nothing whatsoever that connects your identity to it.

You don’t need to know anything about git or repos in order to send me your code (see below).

What code should you send?

Send me anything, in any language. It could be one of my Programming Projects for Advanced Beginners, or something else entirely. If for some reason I don’t think I can work with the code you send then I’ll fire back a polite and apologetic email, and ask if you have anything else I can take a look at.

If you’re trying to choose between a couple of candidate projects, tend to prefer those that are:

  • 100-1000 lines
  • Command line applications, rather than web apps
  • Whatever you find most interesting, and whatever you would most like to get feedback on

How to send me your code:

Email me at [email protected]. You can either:

  • Include your code as an attachment(s)
  • Put it on GitHub and send me the link (if you haven’t used GitHub before then start here
  • Put it on a text-sharing site like PasteBin and send me the link

In your email or in a comment at the top of your code files, please include the words “This code is made available under the Creative Commons Zero 1.0 License (https://creativecommons.org/publicdomain/zero/1.0)”. This is to make sure that I’m legally allowed to write about your code - see the FAQ for more details. Once I receive your email I’ll reply quickly to say hello and when you can expect a proper reply by.

Don’t delay - apply now. I’m going to reply to submissions in roughly the order I receive them, and it’s only a matter of time before I get a new PlayStation. I’m looking forward to hearing from you.

Furthermore:

  • To receive all future editions of Programming Feedback for Advanced Beginners as soon as they’re published, subscribe by email or follow me on Twitter
  • If you’re not sure whether you’ll be comfortable with me offering a friendly but detailed critique of your code, read the first issue of PFAB to help you decide
  • If you know someone else who might want to take advantage of this offer then please do forward this post to them
  • If you like PFAB then you’ll almost certainly also enjoy my Programming Projects for Advanced Beginners series of semi-guided project ideas

FAQ

Who am I?

I’m a software engineer at Stripe, a Silicon Valley financial technology company. I work on the security team, building tools and systems to detect and respond to cyberattacks.

I blog a lot about programming, security, and a few other topics. I’m particularly interested in helping “advanced beginners” get through the yawning valley of despair that opens up when you realize that you understand the basics of programming but don’t know how to keep getting better or what to do next. My most popular work is my “Programming Projects for Advanced Beginners” series, a collection of semi-guided projects.

Can I guarantee that I will look at your code?

No, since I have no idea what demand for this offer will be. However, so far I’ve been receiving about 1 submission per week, so the odds are extremely good.

What is the Creative Commons Zero License and why do I ask that you add it?

The Creative Commons Zero (CC0) license is a legal statement of how other people are allowed to use your code. Much open source code is distributed under it. The license says something like “this code is public domain and anyone can do anything they want with it. However, they can’t imply that I endorse their actions, and if the code does something terrible then that’s not my problem.”

I’m asking you to add the license to your code as a simple way to make sure that I’m legally allowed to use it in my writing. You might not want to add it if there is anything in your code that you do want to retain copyright over, but for practice projects I don’t believe this should be a concern. If you’re not comfortable doing this then please do let me know why - I’m not a lawyer and could have missed something.

Subscribe to my new work on programming, security, and a few other topics. Published a few times a month.
Follow me on Twitter ➜ RSS ➜

More on Programming Projects for Advanced Beginners