This content originally appeared on Level Up Coding - Medium and was authored by Mohamed Ibrahim

Lately, we’ve started to discuss various topics related to Android, Clean Architecture, Unit Testing, Rx and more. So feel free to join us at the NerdDroid club at Clubhouse.
The last discussion was about how to stand out from the crowd; Software development is still growing and catching a lot of interest from individuals who’re seeking a flexible and high paid career.
At some point, you’ll hit this peak where you’re not enjoying what you do. You will miss this feeling of writing your first Hello world, learning how to write simple programs.
As we advance in our development career, you will write a couple of apps and learn some patterns that will make you survive; if you’re lucky or have the passion for learning, you will touch SOLID and clean code topics, Design patterns, and other advanced topics.
In addition to that, there are rapid changes in the development stack. Everything is changing; many things are deprecated, even the deprecated annotation itself has been deprecated. Who can imagine!.
So what’s next?
At this point, everyone is doing what you’re doing, you’re trying to catch the running stack changes, but you can’t. You’re already can develop any app with what you have learned.
Here are some essential points We’ve discussed, and we think it could help you be good that they can’t ignore your talent and skills.
Read Documentation
Sorry that we’ve started with the boring stuff, but this is a crucial skill you must develop; many entry and mid-level developers and sometimes the experienced ones skip documentation in favor of Stackoverflow.
Documentation is written to guide you on using code, what you should/shouldn’t do, and what errors this function throws. Yes, it depends on its quality, but it should be your starting point.
And the argument here is so simple: if you have a bug related to some code, not yours, and you are just using it. It is so practical to read what the owner wrote about in the documentation.
Expand your stack
If you’re considering yourself as a software engineer, It’s recommended to touch different stacks and tools. Expanding your stack will give you a broader picture, so don’t tighten yourself with just one technology or a framework. But make sure you have mastered one.
If you’re an Android developer, it’s good to know about Flutter; if you’re a cross-platform developer, it’s good to touch the native world. It increases the communication level with other developers, and You could learn some patterns to use in your original stack.
For example, the declarative UI initiative started with React native. Now you can find it everywhere.
Learn Data structure and Algorithms
If you’re in the development industry, you may not touch so many Data structures or Algorithms. Many of it it’s already implemented in the language or the library, or in the SDK you use. But we can summarize the importance of studying Data structures and Algorithms in two points.
- Understanding the code you use.
- The ability to design and write high performant code.
If you don’t want to achieve those, don’t study them, some of you would suggest adding a third point which is being prepared for interviews. But this is not the case. I think that intention itself could lead you to memorize problems and skim this vital part of our jobs.
Write Clean, Testable code.
The purpose of communicating with a computer is to solve a problem. The purpose of communicating with your peers is to iterate faster, attaining high-quality deliverable products.
You could find the later purpose between the Agile manifesto words, change code with a validation, Is what testing does, debugging code without asking the code owner what this piece of code does is what clean code should accomplish.
If you have the skill to write clean code with tests, you’d be a more valuable developer and will play well with others.
The Product Owner Mindset
We as developers tend to care more about the languages, syntax, tools, and framework than the domain or what businesses want to achieve. And it’s understandable we’re are the tech guys, but finding the right solution depends on the first place of understanding the problem.
If you do not understand the big picture of the business you’re working on, then you could cause some issues that are not related to code by any means. Unfortunately, those issues are most challenging to discover.
So if you really want to stand out, care more about the domain problems you want to solve in your daily work.
Automate things
Some of the simplest tasks we do, take much more time than we think. If it’s repeatable, then automate it. The whole CI/CD depends on that idea. Hence try to find tasks in your daily work that you always do and automate it.
Automating repeated tasks makes you focus on what matters, like writing Unit tests for your code. In this case, you might want to learn a scripting language like Ruby.
Belong to a community or Build one
I think the community is one of the critical factors in any career progress I had. I remember learning MVP, RX, Clean architecture back then just because I was checking r/androiddev regularly.
Being valuable to the community, sharing your findings, contributing to open source is the best that you can do in your free time to advance your development career.
If for example, you’re reading an open-source code and can’t understand it, you’ll find the urge to search for it and learn about it. Asking in Kotlin slack channel, stack overflow, or even Twitter is all that makes learning software development an enjoyable experience.
Learn, develop and share knowledge.
The Soft Skills
It doesn’t matter how smart you are if you can’t communicate well with your team or managers. Sometimes you will find some decisions that are not tech-wise, sometimes you will have situations when there’re PRs conflicts and a slow process.
It’s normal to experience all of that. The fun fact is that it’s part of the job, but the critical thing here is how to deal with the situation with a win-win attitude.
As a start, you have to put the effort to listen and understand others. One of the key insights is to learn about the differences between cultures; how to communicate well with them.
The Culture map book is excellent, to begin with, and You had Mustafa Nagib summarised it for you here.
Keep an eye on your gaps
Some of the mentioned points might not apply to you. Therefore no one knows what you miss more than you. You could be lucky working with a team leader who could guide you to the right track. or in a cooperative environment, And I think any developer has to seek such an environment where he can grow.
But let’s say you’re a lone wolf, or you’re at some point of your career where you don’t have this heavenly development environment, or even like many learners today, you’re not a CS major. Then you have two things to do
- Belong to a community.
- Keep track of your gaps
We’ve talked about the community, But what about your learning or what’s the next thing you should learn, you could find some public roadmaps, for example, this one for Android, and even if you want to learn CS from scratch, you could pick courses from this curriculum from a time to another.
Learn how to learn?
Our job includes a lot of Reading, research, design, making decisions. We could optimize those if we’ve learned how our brain works and retrieve a lot of our learning findings. So what is the best way to learn?
keep an eye on what works for you, some prefer tech talks, some favorite books, some love to discuss with others, it doesn’t matter, we have our differences, so your job is to find the best for you.
Mentioning that, Reading could be an exception because you’ll have to read code, documentation, articles, deep-dive books, all of that requires sufficient reading skill.
In the end, Those points are what we’ve discussed for 3 hours. Sure it could be more than these, if you have a suggestion, you’re welcome to leave it in the comments, and we’ll make sure to pick and discuss them in the incoming rooms.
>> leaving quietly ✌🏻
— — — — — — —
Special thanks to room moderators who helped me to shape this article:
Mina Rezkalla - Ahmed Adel - Amr AlMadah - Ammer - Ahmed Mussa - Ahmed Khalil
How to be so good that they can’t ignore you? The Software Engineering version was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.
This content originally appeared on Level Up Coding - Medium and was authored by Mohamed Ibrahim

Mohamed Ibrahim | Sciencx (2021-10-08T07:28:30+00:00) How to be so good that they can’t ignore you? The Software Engineering version. Retrieved from https://www.scien.cx/2021/10/08/how-to-be-so-good-that-they-cant-ignore-you-the-software-engineering-version/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.