First of all, you must understand something. As a Software Developer, you will never know enough, you will never be ready for what is coming. This is the type of work that requires you constantly update your knowledge and learn new approaches. Something will always pop up and someone will always know stuff you do not know. This is the life of a Software Developer and this is how it will always be.
-
Test your code thoroughly
We all hate when people come to us with bugs in our code, telling us that the feature we developed is not working properly, that bug fix we deployed is not really a fix or it broke something else. The most basic way to avoid this is to thoroughly test our code. Test again and again before submitting. If you want to avoid people coming to you with complaints or other developers ripping apart your code then you have to be more thorough in your testing and more sure that it works.
-
People will still rip apart your code
No matter what you do, there will always be mistakes in your code. Understand that programming is a combination of love for your code and willingness to hear other people’s critiques on your implementation. Different programmers have different insights to provide and different knowledge. As we said at the top you will never know everything and there will always be people with knowledge that you are lacking. You will need to remove your worth from your code. YOU WILL make mistakes and code reviews are the best way to learn them and software testing is the best way to learn from them. Would you prefer your mistakes going live to the customer, costing money to the company, and then being blamed for it?
-
When you ‘Copy and Paste’ code, understand it
Google is our go-to guide when we are looking for ways to implement something, looking for ways to work with an API, or basically everything. But before copy-pasting code from any website first understand how it works. Better yet do not copy-paste at all. Read the implementation, understand it and then do it yourself. that way you can be sure that it is bug-free, or if it’s not, fix any existing bugs in there. Use that code snippet and all others you find online as building blocks in your career so you can learn, understand and grow from them. Instead of throwing random code snippets in your project that just “work” learn from them, build a career not a house of cards.
-
Code Reviews
As stated above code reviews are important. People will review your code they will find mistakes, they will point ways that your solution could be implemented in a different way, something more efficient, something less error-prone, something more readable. The same goes when you are reviewing other people’s codes. You will see how other people think, how they implement solutions. There is always more than one solution to a problem and it’s always good to learn more. And you will learn a lot from watching others get and give feedback. Yes, some people are jerks when giving feedback, maybe you should give them feedback on their feedback. Innovation and learning come out of exposing your code and being vulnerable to feedback.
If you are in a company where code reviews are not valued pressure your team leader or your boss to enforce them. If they do not share your vision then leave while you still can.
-
Ask Questions
There is a balance between asking too few questions and too many. On one hand, you may take too long to solve a problem and build that feature – on the other hand, you may well piss off those who are senior to you or work close to you. This is tough, my general rule of thumb is to ask if you cannot figure it out within 40 minutes.
In my first job, I think I did not ask enough from the get-go. I did start asking questions after a while but not from the start. I know I would have grown faster if I had. That said when you are interrupting someone who is in the zone, it feels, well, difficult. You will learn the clues on their face over time on when to ask. Of course, my personal view is when my colleagues here at Elinext ask me for help, I will always help. I have this crazy notion that collaboration is fun, yes even face to face! In the end, I find it easier to work in a place where I like the people and they like me.