Are you a good developer and seeking to become a better one?
So you are already a good developer, and you perform good at your work. But you started feeling that you need to be a better developer and improve in your career.
Let me tell you something, having realized this need, you have just started your journey to the mountain of great developers.
Being just a good developer should never be enough for you, you always need to be a better developer, and by a better developer, I mean a great developer.
You need to be that person who has a plethora of knowledge about their field of expertise, who can make the correct technical decisions and think in an architectural way, who can write less code and have the least possible bugs in the code, who can write code once and it will work fine on all environments with different scenarios, not that guy who keeps saying ‘… but it works on my machine‘, a person who can support and help other colleagues with troubleshooting and fixing errors, and guiding them through the best development methodologies.
To be realistic, no one can become a better or a great developer overnight, this requires a huge amount of continuous and unflinching determination, consistency and hard-work.
The key element in here is dedication; That’s it, you need to be dedicated to reach your final destination, as the road to success is filled with blocks, obstacles, bumps and many other impediments.
If you really need to stand out from the crowd of good or even better developers, you need to work for it and never give up achieving your ultimate goal. And believe me, it will consequently pay off in an amazing way in your career, your financial situation as well as on the personal level.
In this article, I want to share with you 9 bulletproof ways to become a better developer.
1. Read and Watch Tons of Tutorials Consistently
You can never become a better developer if you do not learn and educate yourself and it should be in a consistent manner.
What you’ve learned in university was only the basics and the fundamentals of software development. That’s not enough, the field of software development is rapidly evolving and you need to keep your knowledge updated and in sync with the latest changes on languages, frameworks, tools and other stuff. That’s it; the more you learn, the more knowledge you have and the better you will become in software development.
Let’s take a real example to clarify this point; Let’s say you have a task that requires to develop a sign up web form where the details will be saved into a mysql database and then send a verification email to the user with a link to verify his account.
Now at first glimpse, this task requires you to know different development frameworks and tools. If you do not know HTML, some JavaScript (to do client-side validation), CSS (to style the sign up form), some server-side scripting language, like PHP or ASP.NET to validate and store the sign up form details and then generate an email and send it the user’s provided email address, then how would you be able to develop such feature?
You might simply say “…well, I will simply Google ‘how to build a sign up form’ and get numerous of stackoverflow and other blogs and tutorials where I can easily copy/paste“.
Ok, well, let me tell you something, this might do the required task, and it might solve your problem (to some level). But is it going to make you a good developer? No, I say it will make you a good copy-paster! and believe me you will face big troubles in your career and self-development if you stay a good copy-paster.
So it is up to you if you want to remain a good copy-paster or become a great developer.
Stackoverflow is there to help people solve specific issues or errors and tutorial sites or blogs are there to help people learn and get educated on some topics, these are not there to provide you with full solutions to all your problems.
You will need to learn the involved languages and frameworks you are using, to build the knowledge base and be able to build advanced and complicated features (you will not have a copy-paste solutions for more advanced or complicated features, I can assure you that nobody from stackoverflow or any other community websites will give you copy-paste solutions for free!)
My point here is that you need to learn to be a better developer. You need to read and watch tutorials and try them by yourself, this way you can amplify your knowledge and get the hands-on experience while trying those tutorials.
W3Schools is one of the oldest yet still up-to-date tutorials website for web development. In my opinion, it is the best way to start learning web development.
TutorialsPoint is another example of a great software development educational website with hundreds of written and watchable tutorials.
You can also watch videos on YouTube. There are tons of software development educational videos there. Just search for whatever topic you are interested in, and you will get thousands of videos.
Bottom-line, the internet is full of educational resources including articles, ebooks, books that you can order, tutorials and articles, simply Google whatever topic you want to learn and there you go.
2. Understand the Requirements Very Well Before Coding
Remember in the past at school time, when they used to say “understanding the question is half the answer”?
They were absolutely right and the same saying applies in our discussion, understanding the requirement with all its details and acceptance criteria (assuming that the requirement has already been properly clarified) is half the way to develop it, and from it, you can tell what changes exactly should be done.
This way, you can effectively break down the requirement into smaller development task(s) and do the needed changes within the optimal effort needed.
If you jump in quickly in developing the requirement without properly reading or understanding it, and then suddenly discover that you have missed an important part, you will end up half-way and this will delay you and the delivery of that requirement.
Always make a full understanding of the requirement that you are working on, never work on something you don’t understand or you don’t have a clear idea of what to do. If you are working as part of a scrum team, make sure to properly understand the story at sprint planning, and in case this story is not well defined or cannot be measured due to its lack of details, then just discuss with product owner and other team to block it and put it back to the product’s backlog.
The same thing should apply if you are freelancing for a client, just make sure that you gather the full details of a feature before you start working on it.
3. Help Others
If a colleague is having a hard time writing some code, solving a problem or debugging an error, just make sure to ask them if they need some help. If they agree to let you in, let them clearly explain what’s happening so that you can understand and identify the problem and accordingly be able to help them.
The exposure to others’ problems expands your knowledge and improves your skills of troubleshooting and solving problems. The more you get involved in helping others in solving their troubles, the more you will be experienced and the better you will become when you face a similar situation.
By the time, this will increase your credibility among your peers, which will make you the one whom they will always seek whenever they are in trouble. This will definitely boost your position and reputation at work.
Even if you couldn’t help fix the problem, still your trial to help them means a lot. Always make sure to offer your sincere help to your peers or colleagues.
There are numerous people on Stackoverflow who have technical problems every minute. Whenever you can, just check those people’s questions and if you know the solution, just answer them with adequate explanation, or comment to get more details, otherwise skip to another question.
You will reap the benefits of good and correct answers with stackoverflow points which build up for an amazing reputation for yourself on the largest online programmers community (this will definitely boost your overall reputation when applying for jobs).
4. Subscribe to Newsletters and RSS Feeds
If you want to become a better developer, you will have to keep up-to-date with the latest development trends and updates on frameworks, tools and all other technical stuff.
Make sure to subscribe to your several blogs or websites that provide updated content of software development topics. You don’t have to fully read every single blog article in the newsletter, but make sure to at least read the headlines of the topics, and dive deeper in the articles that touch your fields of interest.
Another nice way to subscribe to website updates is through RSS Feeds. RSS by the definition according to Wikipedia:
RSS (Rich Site Summary; originally RDF Site Summary; often called Really Simple Syndication) uses a family of standard web feed formats[2] to publish frequently updated information: blog entries, news headlines, audio, video. An RSS document (called “feed”, “web feed”,[3] or “channel”) includes full or summarized text, and metadata, like publishing date and author’s name.
Many websites provide RSS feeds to keep up-to-date with their latest content. Keep an eye on the RSS icon, it will have an enclosed .rss or .xml link, you can use this link on an RSS feed reader or aggregator to keep connected to that website’s updates. Here you can find the top 7 Free Online RSS readers.
5. Attend Conferences / Workshops / Technical Sessions
You should always make some time to attend a conference, a workshop or some technical sessions. You will always learn something new from those expert people who spend a huge amount of time and effort preparing and conducting those sessions and doing workshops.
Also this will definitely get you introduced to new people with whom you might share many interests in common, which will therefore imply having discussions and exchange your thoughts and ideas. This will open up many opportunities of growing your network with professional peers and thus introduce you to gates of fortunes.
Always watch around for upcoming events either within your local community or online.
You can visit Software Development Conferences website, which provides you with an updated list of upcoming software engineering events worldwide. It covers different topics in software engineering. Just pick whatever event you might be interested in and book your seat.
Once you attend a conference or a session, make sure to stay focused, don’t waste time and have a writing pad or a notebook ready to log key information you grasp from those speakers. It is important to get the most of such events, since they are time-boxed and condensed with loads of information being discussed.
6. Start Blogging
Why not share your development knowledge and experience with your other fellow peers? You don’t have to be a professional media journalist or an expert technical writer to write some article or a tutorial, just share anything that can help people solve their issues or help them learn something new.
Writing articles, tutorials, step-by-step guides or maybe doing video sessions can all make up for your blog, you decide in which format you present your knowledge.
This way you can help people in sharing your knowledge, it will make you a well-known expert in your field of expertise, as well as it can make some good profit on the long term when you incorporate ads.
By the time your blog becomes popular, having lots of visitors, you will be entitled to follow-up with them either through emails or reply to their comments and inquiries.
WordPress is the best way to start your blog. You don’t have to care about anything other than writing your amazing articles.
You know what? Since you are on your way to becoming a better developer, why not you try blogging on WordPress.org software?
The main difference between WordPress.org and WordPress.com, is that the former gives you the ability to install and customize your blog, and gives you the freedom to host it wherever you want. In the latter, you just write your articles and WordPress.com takes care of everything else.
There are many other differences, but this is outside the scope of this article. What I want to say is that trying wordpress.org expands your knowledge because it will teach you new skills of installing the blog, applying whatever plugins you like, maintaining it and letting you find the hosting platform you like.
7. Never be Ashamed to Ask for Help
Whether it is a help from your colleagues, your boss, or online it doesn’t matter, what matters is that whenever you are in the middle of a problem that you’ve already spent time reading articles and trying stuff and the problem is still there, then you will need to ask somebody to get help.
Always remember that when you ask for help, you need to make sure that your question is self-descriptive, it should have all the needed details, if it’s related to a bug, then you need to clearly mention the steps to regenerate it, and on which device or browser this issue appears, as well as the full stack-trace.
You might think that because you are asking others, it will not make you a good developer. But I will definitely tell you no. This never means that you are not good developer, on the contrary, it makes you a better developer, as it teaches you the art of asking questions and properly explaining the situation, and eventually once you find the solution, it will expand your knowledge which will enable you to tackle similar problems in the future, either for yourself or when helping others.
8. Do Freelance Work
Another way that will surely benefit your overall development experience is freelancing.
In freelancing work, you will have a direct contact with your client, this means you will not just be the developer, you will also be the business analyst, so you will take the part of gathering the software requirements and researching the tools and frameworks to do the work, also this will teach you some new skills in communications like negotiating the pay rate and managing the expectations of your client. You will need to manage your time and have a proper time estimation of the needed work.
You might do some freelancing work for yourself, like a self-initiative project, in this case you are your own boss, even so just make sure to put some goals, plan your work and estimate the requirements of your project, and then work your way to achieve these goals according to your plan. This way, you can learn how to manage your own project and learn new stuff.
9. Plan for Your Self-development
This might be the most important point in this article, to be able to become a better developer you need to plan for it properly.
You need to have a good plan with a proper schedule and milestones to achieve.
To simplify this for you, I will provide you a simple guide to prepare a good plan for your self-development:
- Evaluate your current situation, ask yourself few important questions and provide clear answers to them: What is my job description? What are the project(s) that am working on? And what are the languages, frameworks, tools I am working with? Write down the questions and answers. This is the main entry point for your development plan. You always need an entry to point to begin your self-development, and what you currently do is the optimal way to start.
- Based on those questions and answers, you will be able to visualize your current situation. From here, you can ask yourself the next question: Am I happy with what I do currently? There might be completely two different answers for this, you are either happy with your work which is good to proceed with your self-development plan. Or, you might need a change in your career path?
If the answer is yes, then you need to ask yourself: Why do I need this career change? and Where do you feel you can do better in? The point in these questions is that you need to know where do you find yourself you can progress the best, you don’t want to end up working on something that you don’t like, or even hate. This way, you will just gain an empty experience, without the adequate knowledge which will lead that you will not improve and even deplete your knowledge. In simple words, know what do you want and what makes you happy and progressive.
- Once you properly identify your needs, you should write down what topics or important subjects you feel you need to learn more about and set some rough estimations of when you should finish learning these topics. You need to be realistic in your estimations and take into considerations your busy work and life schedule. Let’s say you can give yourself 12 hours per calendar week. with an hour per day and 6 hours on the weekend.
I know many of us have a very busy life with tight schedules, but I think this plan can fit pretty well in most cases. The important thing to keep in mind is that the time which you are assigning for your self-development should not have interruptions, you need to make sure you are fully dedicated within this time to maximize the benefit you will gain.
This means, no socializing, no fantasizing, no distracting music. Just full focus on learning, and learning here includes all different ways mentioned in this article (reading and watching tutorials, attending sessions, blogging, freelancing, etc.).
- Use tools to help you manage and ease the process of tracking and organizing your plan. Trello is one of the best tools to achieve this.
Conclusion
If you want to become a better developer, you need to do many things to achieve this goal, there is a no magical potion or a wand to transform you instantly into a better developer. You need to plan for it, learn a lot, ask whenever is needed, help others, write articles and tutorials, attend many sessions, freelance, and stay dedicated and focused on your goals. This path can lead you to become a better developer.
So are you going to start with your self-development program and become a better developer?