Mobile application development is a booming field, with plenty of job opportunities and interesting projects at both small and medium sized businesses and large enterprises.
But how do you go from tech support or a complete newbie to a mobile app developer?
That’s a question most frequently asked by many who desire to one day be a master of the art.
While most organizations seeking mobile-focused developers are looking at relevant, practical experience, many will also put emphasis on hiring candidates with a strong foundation in computer science.
explains how you can actually make your way to an exceptional mobile app developer without a background in computer science.
In short we do mobile app development using native approach to make iOS and Android applications.
In other words when you or your customers want to have really smooth animations and to use the very top notch features of the operating system you should go native.
Or use real cross platform development, for example Xamarin or native, yet try to avoid HTML5 hybrid development in this case.
How we usually approach development depends on the stage at which our future customer comes to us.
Sometimes they just have a bare concept or idea and we help our customers to develop this idea by
In other cases we have to rescue the projects already built when previous teams or partners have failed and the customer is frustrated and they need help immediately.
In 3 out of 4 cases these types of clients have a really strict deadline, or they have a product launch or an exhibition or they need to make a presentation for their investors.
Then in the very last moment they realize that their current or previous team has failed them. So they need to fix things really really fast just to save the situation and handle the delay before the next milestone.
So usually we do the emergency fixing to help our customers pass through this critical situation and after that we start more solid review on what was done wrong and how to fix that in the most efficient way to get the customer’s project back on track.
What defines a really awesome mobile app developer as a person?
This person should first of all
In other words there are those types of people that when you speak with them you feel like their mind is somewhere else.
It’s really hard to Teach such a person to be a great developer besides being a mobile developer.
A great mobile developer should also pay a lot of attention to your implementation.
In other words mobile development is usually everything about the user interface.
And a great mobile developer should be able to communicate with your UI designer in the most efficient way possible. So it’s not going to work just to write code. Your code must create a really great user experience to the end user.
So it boils down to
It’s not a must have for everybody yet in most cases you should first learn how to develop, prior to becoming a mobile developer.
You should still know the basic algorithms.
How to sort arrays and all of that stuff.
So prior to becoming a mobile developer that person should take a few lectures or courses.
There are plenty of them regarding basic programming skills: how to calculate algorithm complexity to avoid common mistakes that are accredited usually to poorly skilled mobile developers.
There are a lot of both free and paid courses online that are pretty good in helping you nail the basics in algorithm stuff. I have really used a few of them and they should really just be enough for a person who is hardworking.
In other words if you want to learn this stuff and you have the attitude for that then you don’t have to spend 4 or 6 years gaining a degree in computer science to learn that.
If you already have a degree in computer science, that would make your career a bit easier if you studied well.
Most of the time I recommend the use of Coursera.
We use those resources to enhance the knowledge of those who come to our company as trainees or junior developers.
They want to become developers but they lack some knowledge so we give them the materials or courses from there as resources for study.
First of all, if you want to be efficient, the most important tool is Google.
You must have the experience and knowledge of how to find information.
Being a developer is not about how much documentation you can remember but, it’s about how fast you are able to find the information you don’t know yet.
The second tool you must have is more or less about a properly running computer.
Whether it’s Windows based or Linux based or Mac it doesn’t really matter. You should be able to comfortable use it with an integrated development environment for Xcode or the Android Studio without severe speed loss of the computer itself.
So if you feel that you are embarrassed by the slow speed of your computer. For example you type faster than the computer can show what you just typed, then you should replace your machine.
You should also take sometime to learn the hotkeys when you are developing in Xcode or Android Studio or Sublime.
You should use your keyboard as much as possible since the time you spend when you move your hand from your keyboard to your mouse is significant, i.e. when switching between windows or for selecting texts you should use the keyboard.
I would recommend to avoid using multiple resources at the same time unless the person can categorize or filter this information by himself or herself.
It’s better to stick to one online course when you are learning.
Then pick up several books, maybe purchase them online or in paper.
Unless you understand the basics, you should avoid the use of multiple resources at the same time especially user contributed resources such as blogs or stack overflow since the information and answers in there are not always proper advises to follow, even if they work.
Regarding what books to read, it’s very easy to find a proper book when you just try to find for example Android or Java Development on Amazon.
Sort the search results by popularity or ranking.
On the first page there would be the most proper books you should take a look at or at least consider reading.
Usually the learning curve for any technology is through an online course or book and a few months of practice.
As a developer, and after all these years, I still find that the most challenging is the communication part.
Most people or developers meet this challenge or issue time after time when they speak to
That’s the main source of all issues. Miscommunication.
The solution is to ensure that you are always on the same page with the person you are talking to.
That you have understood everything.
Using the same terms and you are on the same page.
Since, often making assumptions and not telling the other person that you’ve made that assumption will lead to misunderstanding and unhappy faces both sides.
It’s not that often.
Really professional senior developers still remember the time when they made the same mistakes.
First thing to remember is that everybody was a junior developer someday before.
Even senior developers, middle developers, team leaders… it doesn’t matter.
They all started as junior developers some years ago. That’s the first thing to keep in your mind.
Just be prepared. It doesn’t matter how professional the senior developer is, it just depends on what person this senior developer is. There are good persons and bad persons… that’s all! Just be prepared.
It’s really hard to give any advice in this situation since everything depends on the environment.
In some cases you can share these situations or the fact that a senior developer is basically bullying you to, for example, his team leader or project manager. And that should be handled somehow.
Yet in some companies your senior developer can also be the project manager or the team leader and their is no effective way of controlling this bad person.
In that case if you really feel that this criticism is killing your ego… change the job!
It’s better to first try to overcome this ego-killing criticism.
There a lot of people that would criticize your work, especially non technical people.
So if you cannot handle criticism of technical people, you’ll have a real struggle in handling criticism from non technical people. Especially when you are trying to protect what you think is great and others see no business value in what you’ve done.
So start leaning how to protect your opinion or your ego without quitting all the time.
Since we do outsourcing development the usual schedule for the work day looks like: morning stand up when you
In other words you should be able to communicate to others that you are having troubles or issues as soon as possible.
That’s better than trying to sit at your own work desk and trying to solve things on your own.
It’s better to ask for help and share.
Then as usually you open your Jira or Trello or any other task tracker and see what you’ve got on the task list for today.
Internally we use Jira.
We are most comfortable with that yet the actual selection depends on the requirements of our customers.
For example if our customer is used to using Trello all the time or Asana or whatever else then we’ll just have to use that system so it’s… we are flexible.
We also use Slack internally.
Regarding communication with customers it really depends. Usually it’s over Skype or Slack – our internal or their team’s Slack.
It really depends.
That really depends on what type of person I am.
For example I would name myself a workaholic.
That was always the case when I was a junior developer, middle level developer and senior developer. I always liked to work since my work originated from my hobby.
So I always wanted to create something when I had some spare time. And that doesn’t actually do anything good for the time spent with family or something like that.
Yet since I am aware of this bad influence I try to force my employees to avoid thinking about work when they are out of office.
leave your work in the office.
That’s my advice here.
I think the ultimate hint I may share is to always take care of your customer’s success.
In other words, try to create a win-win situation for both sides whether you are a regular developer or a project manager.
Everybody must be happy.
Only in that case will everybody benefit from the collaboration or working together.
I guess everybody can easily find me online through our website www.Brainbeanapps.com.
You can also find me on Skype as Alexey.pelykh.
My email address is Alexey@brainbeanapps.com.
So you wont find it really difficult to locate me on the web.
We’ve come to the end of the interview.
Found this interview useful?
What are your thoughts on mobile application development?
Please leave your thoughts in comments section below.
Geoffrey is an experienced software developer and open source evangelist. When not coding he writes and talks about current technology trends, small business tips and developer productivity hacks. He is no coffee addict.
Top 15 Best Web Development Courses on Udemy in 2018
Top 21 Best Skillshare Classes for Development in 2018
How to Become Efficient With a 5 Step Web Development Life Cycle
Top 10 Best Coursera Courses on Web Development
How to Become a Professional Android Developer in 6 Simple Steps
Interview with Rob Percival – How To Land Your First Junior Developer Job