Technology is by far the largest and fastest growing industry today, and with that comes the vast number of opportunities within tech. What may have once been an obscure department - called upon to fix 'computer issues', is now the most essential part of every company. And we don't have to look far to see that, right here on Majra we constantly have new opportunities within tech, as our employers are always on the lookout for fresh talent. We also get a lot of questions from young jobseekers, who are either looking for their first job or are still trying to figure out which way to go. We heard you all and wanted to help answer some of the questions young developers might have. So, we got in touch with Ahmad Yusuf, Development Manager and Technical Consultant, with over 5 years of experience in the field. We asked Ahmed some common questions we have been receiving, and here's what he has to say.
1. What are the most in-demand languages or frameworks that young developers should be learning?
It actually depends on the region and the business requirements. Each project has certain requirements and based on
that we choose what language and framework is needed to deliver the project. Personally, I prefer Laravel as a
framework, which is based on PHP, for develop-ing complex solutions due to its flexibility and you can always find a
plugin or package in-stead of rebuilding the entire functionality. For smaller projects, I recommend WordPress,
be-cause of its community support and ease of use for beginners and non-technical administrators.
Microsoft .NET is also one of the most used frameworks in Bahrain because of Microsoft’s support, which makes it easier to adapt and build platforms for corporates and ministries.On the frontend side, I see Angular growing due to its capabilities and community support al-though it has a learning curve. Also, VueJS usage increased after many platforms including Gitlab, Alibaba and Netflix built their systems with it.
2. What are some of the trends in development that developers should be aware of?
Technology is always evolving, so never settle and depend on what you already learned. There is always more learning and reading to do. For example, cloud computing is now the trend and almost all companies are going towards cloud providers like AWS and Azure, rather than building their own server/data-center. My advice to developers is to consider and adapt to new technologies as fast as possible. Building projects using the latest technologies will give you the advantage and the lead in the market nowadays. Also, learn how to use and build APIs. There are so many APIs that you can build an entire startup with, do not reinvent the wheel.
3. In your experience, what soft skills do you think are crucial for young developers starting off their careers?
believe that development is about solving problems and making our life easier. It is important to observe and
understand what people might need and what can be solved using the latest technologies. We can analyze and find
solutions to simple or even complex problems, however, we must always consider user experience and how easy will
the solution be for our targeted users.
Time management is also a very challenging skill, due to the complexity of the process of de-sign and development. It often gets out of control when a team does not have a project manager who is responsible for estimating and leading the project. As a developer, you will learn how to estimate your work and know how much it will take to finish a task by practicing and also documenting everything so you can reuse them in other projects.
4. Project management is one of the most important aspects of development, what are some of the main takeaways from your experiences in this aspect?
During the past two years, I learned how to handle multiple projects and manage clients' expectations. It is challenging and never gets easy, but its always about balancing and delivering the tasks as agreed upon. Documenting everything and sharing the progress with the client is what I try my best to achieve. Also, the key to a successful project is having a great team that you can depend on and work within a motivating and supportive environment.
5. Could you share some helpful tools or resources that every developer should be using?
I highly recommend Git as a central source control for the entire team. Github and Gitlab are very easy to use and useful during the development process. Also, instead of communicating through WhatsApp or emails, I recommend Slack as a communication channel for development teams. Finally, always research for whatever tool or library before developing it your-self. There are a lot of package repositories for each framework, bower and npm are for web developers, packagist is for PHP, and Pypi is for Python packages.