December 8, 2019 - 12:34 am
Key to become a good “Software Engineer”
Just writing code is never enough. Anyone with a couple of months practice can do that. Most of us have the misconception that a good Software Engineer means he knows a lot of programming languages. That’s genuinely not the case. Yeah, learning one or two new programming language benefits. But that doesn’t help you become a good Software Engineer.
The software engineering culture is very much intimidating. It’s fun & challenging at the same time. If you love sticking to your laptop and solve interesting problems, then this might be the most passionate job you can look for. I am neither a nerdy engineer or expert on this culture. Today I am going to share what I observed & learned to work as a Junior Software Engineer for last one year. Yeah, folks, it’s been one year already ;). So let’s begin…
The range of skills required to become an excellent software engineer is vast. Like I told already learning to code is not enough. You need to learn a lot of other things too. It might seem a little bit overwhelming, trying to learn new things while adapting with this rapidly growing industry. But hey everything comes with a price.
Be confident about your skills. But don’t be confident that much that you start feeling like you know everything. Once you start feeling that there’s no way you are going to learn something new. Truth be told the field is so vast that there’s no possible way you know everything. You will always have lacks. And without that, how would you know that you need to learn something new. So always have the attitude that you don’t know everything and willing to learn whenever required.
Learn to write clean code
Clean code and easy to understand code is a must. Your code should be easily understandable by the next person who looks over it. None of us likes messed up codes. You can learn writing clean codes by practice, getting ideas from seniors, reading blogs about it. My theory is that “Your code should be more beautiful than your attire” Let me give you some essential points to keep in mind while writing codes.
- Meaningful variable name
- Meaningful function/method name along with function documentation
- Maintain spaces & tabs wherever needed
- Avoid duplicating codes or unnecessary queries
This list goes on and on. It’s better to keep reading articles about it. Different programming languages have different coding structure. Follow those articles based on the programming language you are working.
The practice is the hardest part of learning. And it’s the essential part of your learning curve. You need to practice not once a month or week; you should practice every day. Even great musicians or artists practice their skills on a regular basis.
Learning theory and exploring new ideas is, obviously, essential to improving yourself in any discipline. The most important step, though, is turning those concepts into engrained knowledge and muscle memory. In this way, programming is a lot like learning an instrument.
Until you burn in those core concepts and you will need to continue to learn these throughout your career, you will struggle with the basic components of programming, for example-
- Ways to approach a problem
- How to break it down
- How to test your code and find bugs
- Quickly narrowing down the source of bug
- How to improve performance and maintainability.
- Validate users input.
- Check with conditional statements to avoid errors.
On the surface, this seems like a dumb question, but it isn’t! Practicing an instrument diverges from programming because you can pick up a piece of music and play that same piece over-and-over until you get better. Programming doesn’t work quite the same way, because once you’ve solved a problem, you can, at best, iterate on that solution to improve it.
Don’t ask questions immediately
When you find yourself stuck somewhere, don’t start asking a question immediately. Try to solve that with any possible solution you can come up with. And if that doesn’t help, then start googling stuff or take suggestions from others. Find the solution and try to understand what you did wrong compared with the solution you found.
Don’t hesitate to ask or discuss
Don’t feel embarrassed by asking questions. It may feel little weird but trust me whenever you are stuck on a task for more than 30 minutes you really should ask a question or discuss with others. It will improve two things (1). Improvement with teamwork (2) Also has the ideas on how people approach different solutions for the same problem.
Find something to work on
The best way to learn is to find a problem you want to solve and try to solve it yourself. Maybe you want to automate something or calculate some value regularly.
Keep your eyes open in your own life for things that you would like to work better, or try to improve on something you already use. Then try to research and see if you can solve it. Don’t get caught up in finding a “perfect” solution, instead see how close you can get in a short amount of time.
These little exercises will keep your mind fresh and have the benefit of having no fixed goal so that you can have fun with them.
That’s all for today. Sorry for this looooooong article :p