This article is different because it's a joint product between me and the distinguished geek engineer I know
In general, if we want to check, there are various factors that make the difference
The professional character of an engineer is like the letter T, like the upper part, he must have broad knowledge, and like the trunk, They must have deep knowledge, for example, a professional front-end developer should have at least partial knowledge about DevOps, network, etc. But in JavaScript, they must be completely deep so that he can learn any JavaScript library very easily.
In addition to this, a professional engineer has different personal characteristics from a normal engineer and is generally responsible, disciplined, meticulous, pays attention to details, has a good knowledge of different paths, and chooses the best way when there is a dead end. And most importantly, has good manners and it's easy to communicate with him (you enjoy working with them :))
A professional engineer always increases the quality of their mind and has good habits, a good engineer is not prejudiced does not guard against new ideas and mentalities, accepts criticism, and is always ready to change.
If we want to examine each case in more detail:
1. Experience
Almost 80% of those to whom I asked this question said experience
Some people say that they have five years of work experience, but they don't have much knowledge. In fact, these people repeat one year of experience and knowledge for five years.
I think it is possible to increase the experience by solving problems, and bugs and having continuous information
2. Speed and quality in problem-solving
The more you're exposed to different types of bugs, the better your problem-solving skills will improve, so it's important to constantly put yourself in situations to fix newer bugs—even if it's just for 15-30 minutes a day, but how? Groups or question and answer sites, for example, one is stack overflow
Of course, it is important to find the most correct and logical solution, not to just write something that works.
3. Having continuous and updated information
Update your information from here or Medium and YouTube and wherever you find it. Mastery in learning is an important issue. It should be in such a way that you can use your knowledge whenever needed.
Udemy courses are also great
4. Automation
This one is very attractive to me
Definitely, someone who automates their work is not a normal engineer
You can automate the deployment by creating a multi-stage test, then creating the Docker image, and then deploying.
5.Writing good test
In addition to development, professional engineers also write tests. Why is test writing important at all? Because it identifies security vulnerabilities and helps with scalability, and it identifies problems and defects in the written code so that you can fix them before delivering the software, and it improves the quality of the product.
6. Study and understand algorithm and data structure
Data structures and algorithms are fundamental concepts in programming. As a software engineer, if you want to improve your programming skills, you must spend time understanding and mastering data structures and algorithms (with a lot of emphasis) and it can create new opportunities in your career.
By choosing appropriate data structures and designing efficient algorithms, you can optimize the performance of your programs, write clean and optimized code, find the best solutions, and provide high-quality applications. This gives you the power to become a good developer.
7. Thinking differently and not focusing on the fastest way
Just knowing some languages and writing code is not enough and there is a thin line between coder and engineer. an engineer has a different way of thinking and must analyze well before starting coding. It means that 80% of work is done with good analysis and the difference is in providing solutions.
I hope it was useful for you
Top comments (4)
Hi Reyhaneh, this is so insightful and well articulated. I love the article, it is a guide for a programmer to becoming great.
The amount of copying and pasting in the source code. The more repeated code, the more junior the developer is.
A regular paycheck.
Being a professional programmer literally means you do it as your main paid occupation.