As part of my more than ten years of work experience in different software development roles in a variety of companies of different size and structure in Turkey, Afghanistan, England and Canada, I’ve developed insights that may be of value for those thinking about entering a career in this field, or who want to excel further in this area, which I share below. Some of these principles that are also covered in the book: The Passionate Programmer, by Chad Fowler, which I highly recommend.
Software industry is a huge and ever growing industry and as such it’s impossible to be expert in everything. Thus, you should give some thought to choosing where you want to focus. It’s generally recommended to be a specialist in one thing and a generalist in a few others. You can’t be a specialist in everything. For example: are you going to be a frontend developer, a backend developer, a mobile application developer, or something else? Choose to work on what you love, and then excel in it.
Additionally, the software industry is growing so fast that almost every day there is a new framework, tool or library developed that could prove to be useful to you. Thus, it’s good practice to have strong computer science core knowledge combined with a continuous learning mindset in order to keep on top of the pace of change in this industry.
In an exponentially growing industry like software, it’s very important to learn the fundamentals and how things work, to not find yourself perpetually copy pasting codes from Github or StackOverFlow (these are two of the most used websites by software developers). If you are thinking of doing software development as a career, you should learn to fish, AKA to code.
Additionally, make self-development a habit. Read books, join online courses, watch videos. It can be challenging to spend yet more hours in front of the computer for self-development, on top of your work hours developing code, so consider getting up and out, joining coding workshops in the community or software sessions offered in your area. Chances are you’ll learn something new, and get to socialize and build your professional network.
Always set high standards for yourself. As a software developer and in a network the likes of the Internet, you are in a flat structure. In that moment that you sit in front of your computer, connected to the Internet, you have the same opportunities and facilities as someone does in Europe or the US. Recognize this power, and you’ll quickly manifest the potential you to be excellent. Most of us are content to go with the flow. It takes active effort to fight the mindset of ‘good enough,’ and to strive for more. Work every day to force a remarkable career and you’ll soon find this leads to a remarkable life.
But it’s not glamorous. It takes adherence to those well worn paths: be disciplined in your work ethic, be on time, fulfil your promises, and get organized. This self-discipline is the start to remarkability.
Write a blog post, deliver a session in your local developers community, upload an instructional video to Youtube, volunteer to teach coding, become a mentor to someone entering the field or to a young person thinking about it. Do one or more of these as time allows. Do it for good, to contribute back to the community and help others. You will never regret helping out, never.
Speaking as someone who has worked in what may seem like polar opposite countries (and in fact, geographically, are), I discovered that software development and the way most companies work are remarkably similar everywhere. The stress, anxiety, and risk of burnout when you don’t know what you are doing, or the consequences lacking discipline or failing to pick up new skills are the same anywhere. And so is the joy and sense of satisfaction when you work hard, conquer a new skill, and get your deliverable in on time. It’s a career that is somewhat universal, whether you are sitting in a teahouse in Shar-e-naw in downtown Kabul or at the library in central London or in a Starbucks in Seattle. Indeed, since people in this industry rely so heavily on the Internet, you are constantly connected to a community that transgresses borders, tapping into the knowledge and experience of people in vastly different places. This can only be a boon to those setting out in their careers in once isolated countries like Afghanistan.