Developer Survival Tactics

November 3, 2014

I was recently asked to give a presentation to a class of new Rails developers from a local bootcamp. I really struggled with what to talk about. Web Development today is a wide field and there are a ton of things that one could present to new people in our field. After a lot of debating I settled on a few ‘rules’ that would help out new developers in the field.

These rules, though they are perfect for new developers, are also for the seasoned developer. I’m willing to bet that most successful programmers are doing most, if not all of these already. They are not new or unique. I extracted these rules from various sources. Part of them came from books I’ve read and part of them are distilling down principles that we use at thoughtbot to run a great company.

Get Involved In Open Source

If you’re a Rails developer, your job is made possible by open source so it seems obvious that you should somehow give back. If you’re a new developer, it may seem scary after first to jump into the open source world but never fear, there are places in the community for everyone!

One thing that people new to open source often complain about is lack of documentation. We love to write code but hate writing documentation. As someone who is new to the community, you are perfectly placed to help out! If you run across a README that has an incorrect command, put in a pull request to help out the author. If you figure out why something didn’t work, but you can’t figure out how to fix it, be sure to submit an issue. More importantly: get feedback to the maintainers, somehow, someway. If you have an issue with a library and never speak up, there may be hundreds more out there that are also suffering and the maintainer may never know.

Most open source maintainers are very friendly and love to hear feedback about their libraries, don’t be afraid to speak up!

Open source contributions also look great on a resume! Employers can easily see that you’re willing to help in the community. They will also get a view into how well you can explain your thoughts and opinions.

Constant Learning

Your journey into the depths of programming has only just begun! You will soon come to find out that there are tons of things you need to learn to keep up. One day, Rails will be gone, that is OK because you’ll be prepared way before that happens!

Here are some general guidelines on what you should follow for continuing your learning. These are based on ideas from the Pragmatic Programmer:

Note: your job does not count as practice!

Share What You Learn

As you learn new things, write a blog about them! It may be scary at first to put your thoughts on view but I assure you, there is always someone who will benefit from your insights into these problems.

Think about what you would have liked to read one week ago. What example or explanation of a programming concept could have helped you to move forward? Put that into a blog post!

Even if no one ever reads you blog posts, if you write down what you learn, you will end up referencing your own blog posts in the future.

Another benefit of blogging is that it provides another great way for employers to see what you know. Your potential employer can very quickly see that you understand concepts and you can explain them. Communication is one of the greatest skills a developer can have and blogging helps to sharpen that skill.

Get Feedback (and give some too!)

You will never know if you’re writing bad code if no one else is looking at it. Ask regularly for your code to be reviewed. Ask you boss, your friends, or your coworkers. I even ask for code reviews on my side projects! If you’re trying to be better at a skill, you need input from others.

Giving feedback to others is also a great way to learn. You’ll get to see how others make decisions and techniques they use. If you work at a company that has pull request code reviews I highly encourage you to read and comment on as many as time allows. The more code you see, the quicker your experience level is going to grow.

Work Sustainably

40 hours a week is not where you start, it is where you stop being productive!

Your brain does not function well when you push it to do the same thing over and over. You need to get some rest and do things other than programming. Find a hobby, spend time with your family or just go for a walk!

It is a very strange occurrence but when you allow yourself more time away from the computer, you will find that the time your spend at the computer is actually more productive.

Be Social

The programming community, and the ruby community in particular, is very friendly and inviting. Attend a meetup in your area. Most of them offer beginner topics along with the more advanced topics and most of us can benefit from both! The important thing is to talk to developers and get as much knowledge as possible from a wide variety of people.

Volunteering to help others can also be a great way to learn. Every time I work with a new developer, I learn something. If you’d like to help out and get involved but aren’t sure where, I would recommend checking to see if you have a RailsBridge chapter in your area. It is a great organization and I love helping out there.

Finally

Being a developer is a great career. We get to combine creativity and logic to build amazing products to make people’s live easier and better. We have to continually work at our craft to perfect it but most of us enjoy that part!

Discussion, links, and tweets

I'm a developer at thoughtbot.

Follow me on Twitter. I rarely post anything but it can't hurt to try.