I’m often asked by people starting out in development, how they can become better developers. Their proposed solution is typically formal education, while my response is almost always to contribute to open source software.  While my opinions regarding formal education in the development space are entirely the topic of another post entirely, there’s a major advantage to open source contributions that can be directly witnessed by anyone. That advantage is criticism.

While chatting with my friend George Stephanis a few days ago, I noticed something: George loves to nitpick people’s code. We’re not just talking about things like major bugs, but rather every slight detail of code quality, organization, and readability. He’s not ashamed of telling someone to fix something. Because of this, George and many others, have dramatically contributed to making me a better developer over the years.

In the last few days, while considering writing this post, I began thinking about those who have criticized my work. At times, I may have even been a bit discouraged by incoming criticism about my code quality, but looking down the road, I see that it has given me habits that I could only gain from that criticism. Without people reviewing my code in pull requests, or submitting issues on GitHub, there are so many things I may not have learned. Essentially, by putting my code out there for the world to see, I have expedited the growth of skills that only practical experience can provide.

When receiving criticism on my code, I’ve learned to always consider each suggestion as an attempt to increase my potential. People don’t spend hours digging through your code with malcontent, they’re doing it with love. Each issue report is done to benefit you, not to harm you; especially if a solution is provided.

I’ve noticed that over the years, I have begun doing the same thing that George and many others have done to me: take the time to go through someone’s project (that they are usually rather fond of), and rip it apart. I will intentionally go through your hours of hard work and pick out everything that I feel is wrong with it. Why? Because I want to make you a better developer just like many others have done for me.

The point of this post is simple: put your code out there for the world to criticize. Without it, you’ll just keep making the same mistakes over and over again, usually because you don’t know any better. Don’t be afraid of issue reports; embrace them. Your future self will thank you.

Hey, man.  Remember when I told you that I have your back, but that’s not unconditional?  Well, I think you’ve hit that point.

You’ve had so many opportunities that many of us could only dream of, and you’ve completely squandered them.  Partying, drugs, and alcohol can be great fun, but not at the expense of everything around you.  I’ve told you several times in the past that there is a time and a place for everything, and you’ve clearly ignored my advice.

Remember that wonderful fiancé you had?  She’s gone now because you decided that partying every night with people who have been doing the same shit for the last 10 years was more important.  Frankly, I don’t blame her in the slightest.  She’s grown up, and working on her career while you would prefer to act like a child.  Relationships are about teamwork, not spite.

What do you think people really think about you?  You try so hard to keep up this appearance of an awesome fun-loving guy, but what happens when everyone moves on?  As you grow up, you’ll realize that everyone else is moving forward while you’re still in the same place.  Remember when I used to joke about the “cool kids” in high school that are still working at the same restaurant that they were 10 years ago?  I’ve finally realized that maybe you’re one of them.

I find it hilarious that you tout yourself as a “business owner” and “entrepreneur”.  You don’t deserve that title; you’re a kid with a hobby.  Have I told you about my other friends?  The real business owners and entrepreneurs?  They bust their asses every day and night to make sure their business succeeds.  They don’t complain about business being slow; they find solutions.  They don’t take days off; their days off are doing market research and brainstorming new ideas.  If you want to be your own boss, that’s cool; but don’t call yourself a “business owner”.  You haven’t earned that privilege.

Don’t even get me started on your parents.  I’ve watched you use and abuse them so many times that I’ve lost track.  I really love how you brag about your parents like it improves your own status.  Your father is intelligent, driven, and a man to admire.  Your mother is kind, generous, one of the sweetest women I have ever met.  You aren’t them.  You take every bit of opportunity they have given you and squandered it.  It’s time to grow the fuck up and be your own man.  Stop trying to live in the shadow of your parents.  One of these days, you’ll only have your name to speak for you, and at the rate you’re going, that name won’t mean shit.

I used to think you were a great guy.  You had so many goals and dreams that I just couldn’t wait to see unfold.  We would sit on my couch together, have a few beers, and chat about our plans for the future.  I really was convinced that you would be something great one day, and I couldn’t wait to see what you became in the future.  Unfortunately, I’m starting to see what you’re becoming and it’s not something I’m fond of in the slightest.

I’ve tried to give you advice based on my own personal experiences.  I’ve tried to keep you on track.  I’ve tried to push you towards something great.  I believed in you.  Remember when I told you not to let a broke welfare kid beat you in life?  Now, you just leave me sitting here looking like a failure because nothing I ever said stuck.

If you want to party all the time and waste the amazing opportunities that have been handed to you, go for it.  Just don’t expect me to be there when you hit rock bottom.  You’re on your own now.

While I’m still rather young in comparison with many of my peers, I felt it appropriate to list many of the lessons I have learned over the years.  If anything, for myself to reflect on later in life.  Well, here goes:

  • Someone, somewhere, thinks you’re the coolest person on the planet.  You might not feel that way all the time, and you may not even know that person, but they look up to you in the highest regard.
  • Never compromise your integrity.  Integrity is important and will dramatically improve your life in the long run.  Your reputation should be one of respect, not notoriety.
  • Always stand up for what you feel is right; even if it is against the grain.  Authority is malleable, and any person can be swayed under the proper circumstances.
  • Think outside the box.  Read things you disagree with and attempt to empathize with the opposition.  If you’re only looking at one side of the canvas, you’ll never know if there’s a beautiful painting on the back.
  • If you don’t evolve, you’ll fall behind.  Work hard every day to improve your skills and develop new ones.  You never know when that hour of seemingly pointless research will change your life.
  • Understand others’ experiences differ from your own.  Try to understand where others come from.  Those who differ from yourself are your biggest assets.
  • Strive for completion in the short game, and perfection in the long game.  Neglecting either is a waste of time.
  • Don’t spend too much time with the same people.  Doing so will only place you in a bubble.
  • Always surround yourself with successful people.  Over time, you will become more like them.
  • Measure success based on personal progression, not on monetary earnings.  Money will come and go, but your personal development is with you for life.
  • Just because you can do something, doesn’t mean you should.  This plays back into the integrity thing.
  • Create new experiences with every chance you get.  Never pass up an opportunity to experience something new.
  • Travel.  Even if it is to a place that isn’t interesting to most.
  • Set high moral and ethical standards for yourself and everyone around you.
  • Talk to everyone.  Sometimes the best conversations are with those who you least expect.
  • Learn from everyone you interact with.  Everyone has something to share.  You never know when a quick conversation with someone in line at Starbucks will change your life down the road.
  • Never be afraid to ask for help.  Everyone around you is a resource.
  • Always provide help when asked.  That help impacts others more than you will ever know.
  • Be a weirdo.  The greatest people in this world were never seen as “normal” until after they changed it.
  • Always own up to your mistakes.  Owning up to a mistake improves how people see you, and enhances self pride.

To be continued…