What I Wish I knew

Shaun D
Fear and Coding
Published in
7 min readDec 6, 2014

--

I, Coder.

This is a republished post from a deleted blog.

I’m a massive Adam Savage fan. It’s not just Mythbusters, it’s almost everything that he does that I’m inspired by. He’s certainly one of the top 10 most influential people that I hold in high regard. He’s a maker, a storyteller, a high functioning hoarder and someone who loves pop culture. When he speaks, he speaks from the heart and always about the things that he loves with such passion, that it leaves me hooked

There’s a big maker movement going on at the moment in our world, it can’t really be ignored. Etsy, Kickstarter, Thingyverse and a bunch of other platforms have enabled makers to turn their hobbies and passions into small business and have their projects reach hundreds. I’ve always seen common traits in the maker movement and the programming community, we seem to share a lot of similar traits and our paths tend to cross a lot.

So, with that, I have decided to riff off of Adam’s 10 commandments of making speech that he gave at this years Makerfaire and make a list of things that I wish I could go back in time and tell myself as a younger, thinner programmer. I’ve outright stolen some of his ideas, but tried to make them a little more relevant for programming, but I also think they can be relevant to almost any profession.

Make something, anything.

“How should I get started with X”.

Just do it. If you want to get started with Python, build something with it. JavaScript? Build something. It might seem hard at first, it might seem impossible, but I promise that there is no better exercise that trying. We live in a time where people write detailed tutorials, step by step instructions and getting started guides every single day for different things and these are published on a platform that we can access at almost any time day and night. Screencasts, conference talks and podcasts are available mostly for free. You can see new code on github on a daily basis, you can see they achieved something and you can learn from that. The access to source code, to articles and tutorials is only growing and the things you can learn just from having internet access is nothing short of incredible.

If you can’t think of something to make, ask someone, Check out the barrage of ideas on /r/SomebodyMakeThis or find a problem that needs to be solved in your workplace. Seriously, making anything at all is better than sitting around and doing nothing.

Make stuff that improves your life

There is nothing more satisfying than surrounding yourself with things you have made. Make your own todo list, twitter-bot, something that can improve your workflow or life. There might be something out there that does 80% of what you want it to do — grab it, rip it apart and learn how it works, you can then begin putting it back together and start adding the other 20% you need to make it the thing you want.

Don’t wait

Do it now. Begin. You can forever be saying to yourself ‘Let’s put it off till tomorrow’, ‘Let’s wait until tomorrow’ and there will come a point to which you say ‘How many more tomorrows have I got?’. Tomorrows eventually stack up and just become a pile of Yesterdays.

Use a project to learn a skill

I love reading and listening to people talk about programming, but the way I learn best is by just digging in. If you want to learn backbone.js, then find the right project to use it. You might feel that you don’t know if its the right tool for the job, but that comes with experience. I will hold back on using something new until I think I have the right project to use it on. I find that I just learn something at a level of detail that no book can dive into when I have a deadline fast approaching.

Use the ‘Make something’ attitude to test drive languages, frameworks and utilities and never be afraid to step out of your comfort zone.

Make a list of all the things you want to learn and anytime you see a resource for learning that thing, add it to the list. On a quiet Saturday night or Sunday morning, pick something from that list, learn a bit and make something. I can’t tell you how many times I’ve gotten up early on a Sunday for the early morning F1 races, everyone in the home still asleep, and just started hacking away at something for a couple of hours. No commitment to the project (yet) just having fun with code.

ASK.

Ask for help. We are so lucky that we now live in an age where we are at most a single tweet, stack overflow question or IRC chat away from getting help with something. Ask your co-workers for help, people at meet-ups and conferences. If you’re stuck with using a tool that somebody else built, find out a way to contact them and ask for help. There are very few things more satisfying than helping someone, extending their knowledge and then sitting back and watching them do some great things with that knowledge now at hand. Don’t wait to ask because you think you’re going to feel like an idiot for not knowing, ask now.

Ask for feedback. Meetups are a great place to unveil a project you’ve been working on and you can get almost immediate feedback. Reddit has several programming subreddits that have people consistently positing their projects and asking for feedback. Ask the people you work with and respect the opinions of. Ask friends and family. Feedback, however critical, is always of value.

Share your methods and knowledge, don’t make it a secret

Only you have a monopoly on being you.

If you think that your technique or the little utility you’ve made is the thing thats makes you special, you’re an idiot, because it’s not. It’s the things that you do with that knowledge and skill that make it special. Im not saying that you have to give your code away for free, I’m not saying that you can’t sell an app, but you can share anything you learnt or did to make that app or You might be able to share a utility or framework that you made to help out.

You likely learnt some of the things you know from someone sharing with you, so try to pay it forward where you can.

Discouragement and failure are intrinsic to the process

Things are going to break. Something won’t work and it’s all going to be your fault.

One of the hardest things that you will have to deal with as a programmer is the fact that you’re going to be wrong, a lot.

Sometimes your going to fuck everything up. Sometimes you’re not going how to fix it or how long it might take to fix and you’ll have multitudes people telling you that it has to be done today, tomorrow or ASAP. Come to terms with the feelings of not being good enough, don’t try to hide from it. We all know that we learn from our mistakes and sometimes the best way to learn from them is to share them with others. How, Why and When did it all go so wrong?

You will usually have to work under pressure and time will always be a factor of that pressure. The mistakes that are always worse are the ones made under pressure and it always takes twice as long to go back and fix them. You need to learn where your tipping points are and understand the signs that begin to appear right before you’re about to go over the edge and where things are going to go wrong.

Share your failures with others. Telling stories is part of what makes us human and we can use those stories to help prevent from failing the same way twice.

“Failure is a bruise, not a tattoo.”

Measure carefully

“The difference between knowing what tools to use is everything that separates the craftsman from the novice”

Anyone who takes enough time can make it perfect. Time is usually the only limiting factor even if you have no skill, you can slowly work through everything and figure it all out. Tools, technique and knowledge will reduce that time.

Talent is something you have naturally, Skill is something that is built after you’ve put in the hours.

Make things for other people

Just like making something for yourself, making things for other people is just as satisfying. It doesn’t have to be thousands of other people, it might be just a few, but knowing that those few people use the thing you made, is an awesome feeling. Make something as a gift or just a kind gesture. Make something to make someone smile and laugh. Make a tool that people can use or learn from. Its gratifying and when you are trying to think of something to make, consider this as an option.

Don’t be a dick

Not a week goes by where something doesn’t appear in my general reading stream where someone is being a dick. Its either someone has been a dick and people are one a rant, or someone has disagreed with something someone else has done and then a group have people have banded together to socially execute that person, and it usually ends up with someone loosing their job.

I try to stick to Wheaton’s Law . I can’t say that I haven’t occasionally been a dick on Social media, hell, I once got a firm verbal spanking at a job when I tweeted that a clients developer had 288 occurrences of !important in a single CSS file. Sure, it was bad and I was venting because I had to now work around this, but I was being kind of a dick about it.

Also when you’re at conferences, try not to be a dick, to anyone.

Be excellent to each other. And … party on dudes!

--

--

Shaun D
Fear and Coding

💻 Freelance creative tech. 🚀 Rocket Man.🥋BJJ White Belt Noob.