Key to become a good “Software Engineer”

corona image

Coronavirus Impact on eCommerce Industry!

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 humble

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.

Practice

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-

  1. Ways to approach a problem
  2. How to break it down
  3. How to test your code and find bugs
  4. Quickly narrowing down the source of bug
  5. How to improve performance and maintainability.
  6. Validate users input.
  7. 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

Vuex is a library/state management pattern for use with Vue JS. It allows us to create a centralized data store which can be accessed by all components in an app. Therefore this store is known as a “single source of truth”.

Managing the state inside your application is referred to state management. An it can also make sure that the UI of your application is always reflecting by the changes of your app.

However Vuex is very similar to Redux which is used by React JS.

This is a basic illustrated functionality of Vuex:

Why use Vuex?

  1. Components need to share state in many cases.
  2. Vuex provides a single source of truth for data/state
  3. No need to pass events up and props down through multiple components
  4. Global state is “reactive”
Let’s just go to standard Vue JS application and how we set it without using Vuex:

This is just a simple to-do application. However we have got a root component and we got two different components nested within that which are Dashboard and TODO List. Likewise under those we have other two components. Moreover, if we use TODO items data to its’ child component, we have to use props to send the data. Then in Add TODO if we want to add a new TODO, we have to trigger an event to update the TODO list in its parent component. After that, the TODO List component again triggers an event to update the root component. So, you can see this is a long process to follow. For small project this process will be okay. But, if the application is large enough and we have much more data to handle this process, it will be really hard to follow.

If we use Vuex for the same application, it will look like this:

Here, we have one central store which is storing the TODO items. It can be accessed directly from any component. As a result no need to use any props, it can be accessed using most known as “getters”. Even if we want to change the data, for example add a new TODO in “Add TODO” component we just need a mutation to the data. So by doing this all component will get the updated data automatically. As a result we do not have to use any event to do that. You see, it’s very easy once you understand the functionalities of Vuex.

Terms of Vuex

  1. State – data (TODOs, posts, token, etc)
  2. Getters – get pieces’ values from state
  3. Actions – called from components to commit a mutation
  4. Mutations – Mutate the state

Here is a basic code structure of how we can use vuex in a Vue JS app.

If you want to learn more about it or you need any dynamic web application using Vue JS, just get in touch-  https://augnitive.com/

Subscribe to our newsletter