Developers have asked recently how can they quickly be successful as a software engineer, gain more customers or release the next killer app. Well I am here to let you know that there is not a shortcut to success in the software business. Real success comes with a lot of hard work and a lot of patience. Since I have been in this business for over 20 years, I thought I would share time stories and tips.
I totally understand their comments; they have spent years learning software engineering which can include going to college and racking up a lot of student debt. After training is done with they want to make a big splash, make lots of money and even support their family. I have been there. My biggest motivation to become a software engineer was to support my family, otherwise I would have spent my effort becoming a guitarist in a rock band!
Sure, some people get lucky and become famous or millionaires. You hear about them but you do not hear about teams of developers working their asses off sometimes for years to even make a ripple in the software waters or even get noticed. My early success was a lot of hard work and a bit of luck. The work part was working three jobs (none of them software related) and going to school at night. I spent every minute I could learning to be a software engineer. My luck came in two parts. The first was one of my first programmer positions at a company with one of the best teams of developers I have ever worked with. I learned so much from them and since it was a startup. I learned how to wear many hats at that company that make my skills very useful. I still use those skills today!
The second bit of luck was the second program I ever wrote, on my own, got reviewed by PC Magazine! It was a good review too. Orders for this app went from about 10 a month to 10 a day for a while. It was so much work that I had to enlist my family to help. My kids, toddlers at the time, would copy the floppy disks for me. My wife sent all the flyers out to people that wanted more information about my app. I put the labels on the floppy disks and mailed them off to customers. Sure, I made a little money off the app and a few that followed, but that is not why this story is important. What is important is what I learned. I learned as a beginner, the whole process on releasing software. Coming up with an idea and design, coded it, released it, marketed it and even learned how to deal with customers. Today, I still draw from that experience. This app, like most apps I write on my own was initially for me. Then if I think there are others that can use it, then I release it.
Here are some tips that I hope you will find useful to help you in your journey.
- Absorb as much knowledge as you can by going to local user groups, local conferences, reading books, going to classes and a subscription to an online training site like Pluralsight.com. I recommend going to every user group meeting near you, even if you might not be interested in the subject. Just listening to sessions will help you know how all the pieces fit when creating apps.
- Find a great company and team to work with. This will do wonders for your continued learning, especially if you are a beginner. Make sure that the company encourages learning by sending you to conferences, pay for classes at a local collage or for online training. If you are a beginner make sure they will have a mentor for you in your team.
- Learn by creating projects at home. Once you land a job, most of your learning will be at home. So, pick a technology that you want to learn and come up with a project you can write and write it. That is what I did as a beginner and still do to this day. No matter what level of software engineer you are, you should always be writing apps at home. One great thing about this is that you can use these applications during job interviews. This is even more important for beginners! I write more about this in my book “Rock Your Technical Interview”.
- Ask Questions! Someone once told me that “There are no dumb questions, only people too dumb to ask.” This is so true. You will not learn very well if you do not ask questions. This includes work, school and conferences. As a teacher and a speaker, I am always make time to answer questions.
Since technology changes every day, as long as you are a software engineer, you will to have to keep doing these four steps. These steps have worked for me and I am sure it will work for you too. Just make sure to keep in mind that you will learn a lot more by taking the stairs instead of the elevator.
If you have any suggestions that you would like to share, please make a comment below.