What to Expect If You Want to Become an iOS Developer

What to Expect If You Want to Become an iOS Developer

From the iOS side, development can seem like a closed club. To work, you definitely need an Apple computer, the ecosystem is closely controlled by one company. From within, contradictions are also sometimes heard - someone says that the Objective-C language is old and clumsy, and someone that the new Swift language is too raw.

Nevertheless, developers go into this area and once there, they are satisfied.

This time, Marat Nurgaliev and Boris Pavlov told us about their experience - how they learned the profession, how the first interviews went, why they were refused. And Andrey Antropov, Dean faculty of iOS development at GeekBrains.

In 2016, Marat Nurgaliyev from the Astrakhan region came to work as a mobile developer at a local TV company. This was his first interview. He had just returned from the army, without practice and experience, having forgotten even the theory, which was already a problem. Marat's only experience in mobile development was his thesis on the analysis of information leakage flows through Android applications. At the interview, he was asked about his studies, OOP and other theory, but Marat could not hide the gaps in knowledge.

Nevertheless, he was not refused, but was given a practical task - to implement the display of a list of news using the API in two weeks. Both for iOS and Android. “If I had any experience on Android, then there was not even a tool to create an iOS version. The ios application development environment is only available on Mac. But two weeks later I returned, showed what I could on Android. With iOS, I had to get out on the go. In the end, they took me. Then I lived in Astrakhan. Any job in IT with a salary above twenty was fine with me.

Who are iOS developers

Mobile developers make applications for any portable device. Smartphones, tablets, smartwatches and all other platforms that support Android or iOS. The fundamentals of mobile development do not differ from the usual ones, but due to specific tools, it was singled out as a separate direction. It uses its own tools, programming languages ​​and frameworks.

“To work with iOS, you need a MacBook, because only it has the necessary Xcode development environment. It is free and distributed through the AppStore app store. To install, you need to have your Apple ID and nothing else. In Xcode, you can develop applications for anything - phone, tablet, watch. There is a built-in simulator and editor for everything,” says Andrey Antropov, Dean of the iOS Development Department at GeekBrains.

“But the development environment can also be installed on Windows if you use Hackintosh. This is a working, but roundabout option - none of the serious developers do this. Beginners buy an old Macbook. And experienced ones can usually afford the latest model.”

Languages ​​- Swift or Objective-C

Almost all iOS development is done using the Swift programming language. It appeared five years ago and is now gradually replacing the old Objective-C language that Apple has used in all its applications for over 30 years.

“There is a huge code base on Objective-C, so developers for both languages ​​are still required, depending on the company, on its tasks and applications. Applications written many years ago are based on Objective-C. And all new projects are developed in Swift by default. Now Apple is doing a lot to make simultaneous development for a phone, tablet, watch and MacBook as convenient as possible. The same code can be compiled and run everywhere. This was not the case before. For iOS we developed in Swift, for MacOS we used Objective-C.”

According to Andrey, Swift is a very simple language that is friendly to beginners. It is strongly typed, which allows you to catch many errors at the compilation stage of the project, and incorrect code simply will not work.

“Objective-C is quite an old language - the same age as C++. At the time when it was developed, the requirements for languages ​​were very different. When Swift came out, it was full of bugs, the functionality was limited, and the syntax was rough. And people had a hand full of Objective-C. It has been improved for many years, all the errors there have been corrected. But now, I think Swift is on par with Objective-C. Although even Apple still uses both in their projects. Languages ​​are largely interchangeable and mutually complementary. Structures and objects in one language can be turned into objects and structures in another language. It would be nice to know both options, but for beginners, Objective-C often seems intimidating and incomprehensible.

Training

“At my first job, my boss taught me, helped me implement and set up the project,” says Marat, “But working on Android and iOS at the same time is difficult. It takes time to rebuild, switch from project to project, from language to language. In the end, I decided that I needed to choose one direction and study it. I was bribed by the Xcode interface and Swift's simple syntax."

Marat entered the faculty of iOS development at GeekBrains. The first time was very easy, because he knew many things from work experience. The annual course is divided into four quarters. According to Andrey, only the very basics are given in the first one: “The basis of the Swift language, knowledge of basic frameworks, networking, data storage, application life cycle, controllers, basic architectures, main libraries that everyone uses, multithreading and parallelism in applications.”

Objective-C is added in the second quarter. There is a course on architecture, basic programming patterns. In the third quarter, they teach the correct style of writing code. It tells what a factory is, how to write tests correctly, form projects, what is Git-Flow, Continuous Integration through Fast Lane. The fourth and final quarter is devoted to teamwork, practical assignments and internships.

“The first quarter was easy,” Marat says, “but then I started learning programming in Objective-C, studying design patterns, Solid principles, Git-Flow, project architecture, Unit and UI testing of applications, setting up custom animation - and then I It became interesting to study.

“Things didn’t start out super smoothly for me at GeekBrains,” says Boris Pavlov, and his path to iOS development in general was not the most direct. The boy was raised by his grandmother. She was an architect, mathematician and designer and instilled in Boris a love of design, taught him to draw and draw by hand. His uncle was a sysadmin and got his nephew interested in computers.

Boris was an excellent student, but lost interest in his studies and left school after nine grades. After college, he took up cycling, and computers faded into the background. But once Boris received a spinal injury, which prevented him from continuing his sports career.

He started learning C++ with a teacher at the Irkutsk Institute of Solar-Terrestrial Physics. Then I got interested in game development and tried to switch to C#. And finally, like Marat, he was bribed by the Swift language.

“I decided to take a free introductory course at GeekBrains. To be honest, he was very boring, lethargic and incomprehensible,” recalls Boris, “the teacher talked about the features of the language, but rushed from one topic to another without revealing the essence. When the course ended, I didn’t understand anything.”

Therefore, after the introductory course, Boris did not enter the annual training, but a short three-month course, where they teach the very basics of the profession. “I met very good teachers there, and they explained everything clearly enough.”

“We are often criticized, allegedly our manuals are not quite up-to-date, there are inaccuracies. But courses are constantly updated, and teachers always talk about innovations. Of the groups that I lead, many are employed after the first quarter. Of course, usually these are people with programming experience,” Andrey says, “On the other hand, it is impossible to convey all the knowledge in one course. Network client interaction in life can not fit in ten lectures of two hours each. And if you go only to courses and do nothing else, then knowledge is not enough. If, however, the whole year you study every day, then at such a pace only the lazy will not get settled. Because the demand in the profession is very high.”

What to Expect If You Want to Become an iOS Developer

You can see the most fresh vacancies for iOS developers and subscribe to new ones.

Work

But neither Marat nor Boris found employment so easy.

“Some large companies have long developed iOS applications in Objective-C, and continue to maintain the old codebase. Unfortunately, I don't have a strong argument to force them to use Swift exclusively. Especially those who use the “don't touch what works” rule,” says Marat, “Little attention is paid to the direction of Objective-C in Geekbrains. It is more of an informational nature. But every company I interviewed asked about Objective-C. And since the study is focused on Swift, like my past job, I got rejected at interviews.

“After studying, I knew only the most superficial basics on my own, with the help of which I could create the simplest application,” says Boris, “For work, of course, it was not enough, but I was happy about this too. It was difficult to find work in Irkutsk. More precisely, not at all. I decided to look in other cities. In terms of the number of vacancies, Krasnodar, Moscow and St. Petersburg turned out to be the most relevant. I decided to go to St. Petersburg - closer to Europe.

But everything was not so rosy. Even from a junior they will forgive what he cannot know. I haven't found a job yet. I work for “thank you”, I gain experience. I understand that this is not what I wanted, but I'm interested, and it drives me. I want to get knowledge."

Andrei believes that newcomers should look not for work, but for internships. If there is very little knowledge, then this is normal when the internship is not paid. Andrey advises going to junior vacancies in large companies where the work process has already been established.

“When you understand how the software development process works, it will become much easier to navigate and find further work, depending on your desires. Someone goes into independent development, makes games for himself, uploads them to the store himself, and monetizes them himself. Someone works for a big company with strict rules. Someone earns in small studios that make software to order, and there they can watch the whole process - from creating a project from scratch to putting it in the store.

Salaries

The salary of an iOS developer, like any other, depends on the question “Moscow or Russia”. But due to the specifics of the industry – a lot of remote work, opportunities for relocation and work outside the regional market – the numbers are increasingly approaching each other.

What to Expect If You Want to Become an iOS Developer

According to the My Circle salary calculator, the average salary of an iOS developer is slightly less than 140 000 rubles.

“A junior at a very low level often works for free or for symbolic money - 20-30 thousand rubles. If the junior is purposefully taken to his position, he will receive from 50 to 80 thousand. Middles get from 100 to 150, and sometimes even up to 200. Seniors do not get less than 200. I think their salary is in the region of 200-300. And the team leads, respectively, for 300.

What to Expect If You Want to Become an iOS Developer

Interviews

“The first interview was over Skype. To my surprise, it was Google,” recalls Boris, “then I had just moved to St. Petersburg and started looking for a job. I received an application for an iOS developer position. Not a junior, not a middle, not a senior - just a developer. I was delighted, began to correspond with the manager. I was asked to complete a technical task: I had to write an application for jokes about Chuck Norris. I wrote it. I was told that everything was great and they scheduled an online interview.

We phoned. A nice girl spoke to me. But they didn’t ask any questions about knowledge of the language - only different logical puzzles, for example, “Time is 15:15 how many degrees between the hour and minute hands?” or “A pillar is 10 meters, a snail crawls 3 meters up during the day, descends 1 meter at night. In how many days will she crawl to the top?“, and a couple more like that.

Then there were very strange questions - why I love Apple and how I feel about Tim Cook. I said that it was positive for the company as a whole, but rather negative for him, because money is important to him, not products.

When questions about Swift began, my knowledge was only enough for programming patterns and the basics of OOP. We said goodbye, a week later they called me back and said that I did not fit. Actually, I learned a lot from this: knowledge is needed, a lot of it is needed - both theory and practice.

Andrey says that “the first thing everyone is asked in an interview is the life cycle of the controller. They love to ask some simple programming pattern. Be sure to ask about the experience of using popular libraries. There will definitely be a question about the differences in Swift Value Types from Reference Types, about Automatic Reference Counting and memory management. They may ask how they implemented data storage in applications, and whether they implemented network requests. They will ask about the basics of REST and JSON. The junior will not be asked specific things and subtleties. At least I don't ask."

Boris had a different experience: “Even when I asked for internships, completed technical tasks and said that the salary was not important to me, as long as it was enough to rent an apartment, they still refused me. I read articles, tried to understand what a recruiter needs from a beginner. But they failed mainly on theory. For some reason, they asked questions from the major leagues that do not concern newcomers.

Marat was more fortunate. Now he works in a transport company and is the only one responsible for the iOS direction, continuing his studies at the faculty. “Since I alone am responsible for iOS, my work is evaluated only by the ability to implement the tasks assigned to me, and not by knowledge of the theory.”

Community

Andrei lives in Nizhny Novgorod and says that even there a great community has formed. Once upon a time, he was a Python backend developer, but his friends dragged him into mobile development - and now he himself is campaigning for everyone to do it.

“The global community usually communicates through twitter. People keep their blogs, record videos on Youtube, invite each other to podcasts. Once I had a question about a presentation where the HQTrivia team leader spoke. This is an American quiz game played by several million people at the same time. I wrote to him on Twitter, he answered me, we talked, I thanked him. The community is extremely friendly, which is great."

Recommended reading listBeginner level:

Average level:

Advanced level:

Source: habr.com

Add a comment