Interview With Alexey Pelykh – How To Be a Mobile App Developer Without a Degree in Computer Science

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.

In his interview with LoudProgrammer, Alexey Pelykh who is

explains how you can actually make your way to an exceptional mobile app developer without a background in computer science.

1. In brief could you please tell us a little bit about what you do at Brainbean Apps and why you do it?

In short we do mobile app development using native approach to make iOS and Android applications.

Why native?

Exclusive Bonus: Click here to download my book on How to Become a $50/Hour Software Developer in 7 Simple Steps and jump-start your software career today.

Because the cross platform or hybrid applications approach using HTML5 and JavaScript, for example Phonegap and related technology stacks, is not yet that production ready.

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

  1. providing a business analysis and then
  2. pre actual development stuff,
  3. do the design and then always
  4. move into the implementation part of the application or project.

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.

2. There are already many mobile application developers out there but with varying capabilities. What do you consider to be a GREAT mobile app developer?

What defines a really awesome mobile app developer as a person?

This person should first of all

  • be patient and
  • specific to details.

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

  • attention to details,
  • understanding of basic design stuff and
  • just to be able to communicate with the designer to the lowest level possible.

3. In this technology era where learning resources are available online through blogs and video courses, people can pretty much learn mobile app development without attending classes at a university. Do you think a background in computer science is necessary in order to be a great mobile developer?

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.

4. Do you have a particular platform that you particularly recommend where you can refer somebody to go and have their algorithm skills honed up?

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.

5. As an experienced mobile developer with 10+ years of experience, what are some of the tools that you find indispensable to a mobile app developer?

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.

6. When learning to code from the internet there is a lot of information overload. Ranging from free to paid courses. YouTube videos and blogs with information that sometimes conflict with one another. How do you solve information overwhelm when learning to code from the internet?

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.

7. What is still the biggest challenge you are facing as a mobile app developer up to now?

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

  • their project managers
  • their customers overseas
  • their team mates.

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.

8. When starting out as a junior mobile developer you are going to encounter ‘seniors’ who are solely interested in scrutinizing your sloppy code. What’s your best advice for handling criticism from other developers?

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.

9. A number of developers could already be curious about working with you at Brainbean Apps. What is a work day like for an iOS developer at Brainbean Apps?

Since we do outsourcing development the usual schedule for the work day looks like: morning stand up when you

  1. share what you’ve done,
  2. what you are going to do and
  3. what help you may need.

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.

  • Do those tasks
  • Talk to the PM
  • Talk to the QA
  • Have lunch
  • Go home and repeat the same!

10. Which project management tools do you particularly use since you have mentioned Jira, Trello among others?

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.

11. Most developers are touted as workaholics who would rather sit at their desks till they get it done. As a person, how do you balance your work life and family life?

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.

So it’s:

leave your work in the office.

That’s my advice here.

12. What’s you last word of advice to aspiring mobile app developers out there?

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.

13. How can we find you and get in touch with you?

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.

Stay tuned for more of interesting and informative interviews from influencers in the up coming episodes at LoudProgrammer.

Found this interview useful?

Please share.

What are your thoughts on mobile application development?

Please leave your thoughts in comments section below.

Exclusive Bonus: Click here to download my book on How to Become a $50/Hour Software Developer in 7 Simple Steps and jump-start your software career today.

About the Author Geoffrey Barnes

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.

follow me on: