What it Takes to be a Software Developer
Patience/Persistence
You’re going to need spirit. You’re going to need to show shrewd resourcefulness and initiative. This stuff is hard. Some people look at it and that’s what they see. Others see a challenge, then they dig deep and put their nose to the grind stone. That’s resolve to get things done. To get the answer to the problem. Being a bull dog who gets a hold of the problem and won’t let it go till you’re done with it. President Kennedy in his speech on Sept 12, 1962 about our mission to the moon said this:
We choose to go to the Moon! We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard; because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one we intend to win, and the others, too.
As a software developer this needs to be your motto. Do it because it requires effort, and in that effort, you will grow and you’ll get better and smarter. The sense of accomplishment when completing a difficult task is worth the challenge and the greater the effort the greater the sense of accomplishment.
Problem Solving
You’re not always going to get everything you need to arrive at a solution. Often you need to frame the problem properly. You’ll often need to gather information and know how to ask the right questions. You’ll encounter unexpected details that will require you to bend your solution around them. You’ll need to be prepared to polish and refinish and adjust and fix constantly. Problem solving needs to be your close companion in your work if you’re going to make it.
Never Stop Learning
About the time you start to get comfortable with some of these tools, architectural patterns and frameworks they are going to change on you. Constantly and consistently. If you’re having a hard time working all day and then spending some extra time in the evening working to learn something new then I’ve got some bad news for you. It never stops. In a recent poll at Stackoverflow a question was asked to over 100,000 software developers if they spent time on their own learning and refining their skills. Over 80% responded that they did so regularly. 80%. Let the sink in. If you’re not prepared to continually learn new things then you’re going to get left behind.
The Money
There is a clear appeal to the idea of software development. It’s called market demand, a reliable career and good pay. Here’s the part the recruiters and teachers might not tell you. It’s hard. Sometimes extremely. Those without grit and gumption need not apply. It’s nice that people see me as financially successful after a 25-year career, but here’s the part they don’t know. I stayed up till 4 am the other night working a 12-hour day to get some code done for a project. I’ve heard people in other careers complain about 80-hour work weeks and 12-hour shifts. I’ve worked an 80-hour shifts more than once to finish a project on a tough deadline. There is a reason software developers get paid good. It’s hard.
All true. The answers to programming are rarely in the back of the book. I use Stack Overflow regularly and maybe 1 time in 10 I can copy and paste the code from someone else's response. Usually I take their concepts and a few others for somebody else and craft the solution for my situation. It is hard. The answers are not always self evident. I do love the rush when it all 'clicks' and a piece of code comes together. There is a reason that Angela Duckworth's book Grit is getting a lot of attention. I would hire someone for 'grit' over a list of skills sets any day.