
On the iOS side, development may seem like a closed club. To work, you definitely need a computer from Apple, one company closely monitors the ecosystem. Contradictions are also sometimes heard from the inside - someone says that the Objective-C language is old and clumsy, and someone that the new Swift language is too raw.
Nevertheless, the 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 studied the profession, how the first interviews were held, why they were refused. And the expert was Andrei Antropov, dean
of the iOS development faculty at GeekBrains.
In 2016, Marat Nurgaliyev from the Astrakhan region came to get a job as a mobile developer in a local television company. This was his first interview. He had just returned from the army, without practice and experience, having forgotten even the theory with which there were problems anyway. The only experience in mobile development at Marat was a thesis on the analysis of information leakage flows through Android applications. At the interview he was asked about study, OOP and other theory, but Marat could not hide the knowledge gaps.
Nevertheless, he was not refused, but given a practical task - to implement the display of the news list using the API in two weeks. Both under iOS, and under Android. “If I had any experience on Android, then there was not even a tool to create the iOS version. The ios development environment is only available on Mac. But two weeks later I returned, showed that I could on Android. With iOS, I had to get out on the go. As a result, they took me. Then I lived in Astrakhan. Any job in IT with a salary of more than twenty suited me. ”
Who are the iOS developers
Mobile developers make applications for any portable device. Smartphones, tablets, smart watches and all other platforms that support Android or iOS. The fundamental basis of mobile development does not differ from the usual one, but because of the specific tools it has been singled out in a separate direction. It uses its own tools, programming languages ​​and frameworks.
“To use 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 must have your Apple ID and nothing else. In Xcode, you can develop applications for anything - a phone, tablet, watch. There is a built-in simulator and editor for everything, ”says Andrei Antropov, Dean of the iOS Development Department at GeekBrains.
“But the development environment can also be put on Windows, if you use Hackintosh. This is a working, but roundabout option - none of the serious developers do this. Beginners are buying 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 more than 30 years.
“Objective-C has a huge code base, so it still requires developers in both languages, depending on the company, its tasks and applications. Applications written many years ago are based on Objective-C. And all new projects are developed by default on Swift. Now Apple does a lot in order to conduct simultaneous development for the 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 it on Swift, for MacOS we used Objective-C. ”
According to Andrey, Swift is a very simple language, friendly for beginners. It is strongly typed, this allows you to intercept 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 completely different. When Swift appeared, there were a lot of bugs in it, the functionality was limited, the syntax was rough. And on Objective-C people had a full hand. He improved for many years, all errors there were corrected. But now, I think Swift is not inferior to Objective-C. Although even Apple still uses both in its projects. Languages ​​are largely interchangeable and mutually complementary. Structures and objects of one language can be turned into objects and structures of 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 trained me, helped in the implementation and setup of the project,” says Marat, “but working on Android and iOS is both 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 the simple Swift syntax. ”
Marat entered the iOS development department at GeekBrains. At first it was very easy, because he knew many things from his work experience. The annual rate is divided into four quarters. According to Andrei, only the base is given in the first one: “The basis of the Swift language, knowledge of basic frameworks, network interaction, data storage, the life cycle of an application, controller, basic architectures, the main libraries that everyone uses, multithreading and concurrency in applications.”
In the second quarter, Objective-C is added. A course on architecture, basic programming patterns. The third quarter is taught the correct way to write 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 dedicated to teamwork, practical assignments and internships.
“The first quarter was easy,” says Marat, “but then the study of programming on Objective-C, the study of design patterns, the principles of Solid, Git-Flow, the architecture of the project, Unit and UI testing applications, setting up custom animation, and then I started It became interesting to study. ”
“Everything at GeekBrains did not start very smoothly for me,” says Boris Pavlov, and his path to iOS development in general was not the most direct. The guy was raised by his grandmother. She was an architect, mathematician and designer and instilled in Boris a love of design, taught to draw by hand and draw. His uncle was a system administrator and interested his nephew with computers.
Boris was an excellent student, but lost interest in studying and left school after nine classes. After college, he went in for cycling, and computers faded into the background. But once Boris received a spinal injury, which did not allow him to continue his sports career.
He began to study C ++ with a teacher at the Irkutsk Institute of Solar-Terrestrial Physics. Then he became interested in game dev and tried to switch to C #. And finally, like Marat, he was bribed by Swift.
“I decided to take a free introductory course at GeekBrains. To be honest, he was very boring, lethargic and incomprehensible, ”Boris recalls,“ the teacher talked about the features of the language, but darted from one topic to another without revealing the essence. When the course ended, I still didn’t understand anything. ”
Therefore, after the introductory course, Boris entered not a one-year course, but a short three-month course, where the very basics of the profession are taught. “There I came across very good teachers, and explained everything quite clearly.”
“We are often criticized, supposedly we have not quite relevant training manuals, there are inaccuracies. But the courses are constantly updated, and teachers always talk about innovations. Of the groups that I lead, many are already employed after the first quarter. Of course, these are usually people with programming experience, ”says Andrey,“ On the other hand, all knowledge cannot be conveyed in one course. Network client interaction in life can not fit ten lectures for two hours. And if you go only to courses and do nothing else, then there will not be enough knowledge. If you practice every day all year, then at this pace only the lazy will not work. Because the demand in the profession is very large. "
You can see the latest vacancies for iOS developers and sign up for new ones.
Job
But neither Marat nor Boris found a job easy.
“Some large companies have long developed iOS applications on Objective-C, and continue to support the old code base. Unfortunately, I do not have a strong argument to force them to use exclusively Swift. Especially those who use the “do not touch what works” rule, ”says Marat,“ little attention is paid to the direction of Objective-C at Geekbrains. It is more of a fact-finding character. But every company I interviewed asked about Objective-C. And since my studies are focused on Swift, like my past work, I received refusals at interviews. ”
“After studying, I alone knew only the most superficial fundamentals with which I could create the simplest application,” says Boris, “Of course, it was not enough for work, but I was happy about that. It was difficult to find work in Irkutsk. More precisely, nothing at all. I decided to search in other cities. By the number of vacancies, the most relevant were Krasnodar, Moscow and St. Petersburg. I decided to go to St. Petersburg - closer to Europe.
But everything turned out not so rosy. They even ask the junior for what he cannot know. I have not found a job yet. I work for “thank you,” gaining 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 not look for work, but internships. If there is very little knowledge, then this is normal when the internship is not paid. Andrei advises to go to junior vacancies in large companies, where the work process has already been established.
“When it comes to understanding 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, he himself pours them into the store, and monetizes it himself. Someone works for a big company with strict rules. Someone earns money in small studios that make software to order, and there they can observe the whole process - from creating a project from scratch to putting it into 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 not on the regional market - the numbers are increasingly approaching each other.
According to the salary calculator "My Circle", the average salary of an iOS developer is a little 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 receive from 100 to 150, and sometimes even up to 200. Signors less than 200 do not. I think their salary is around 200-300. And the Timlids, respectively, for 300. "

Job interviews
“The first interview was on Skype. To my surprise, it was Google, ”Boris recalls,“ then I just moved to St. Petersburg and started looking for work. I got a response to the vacancy iOS developer. Not a junior, not a middle, not a signor - just a developer. I was delighted, began to correspond with the manager. I was asked to complete the technical task: I had to write an application for jokes about Chuck Norris. I wrote it. I was told that everything is cool and scheduled an online interview.
We phoned. A nice girl talked to me. But they didn’t ask any questions about knowing the language - only different logical tasks, for example, “Time 15:15, how many degrees are there between the hour and minute hands?” Or “Pillar 10 meters, the snail creeps up 3 meters during the day, descends 1 meter at night. How many days will she crawl to the top? ”, And a couple more like that.
Then there were very strange questions - for what 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 it, because money is important to it, not products.
When questions about Swift started, my knowledge was enough only for programming patterns and the basics of OOP. We said goodbye, a week later they called me back and said that I was not suitable. Actually, I learned a lot from this: knowledge is needed, a lot of it is needed - both theory and practice. ”
Andrei says that “the first thing everyone asks for during an interview is the controller’s life cycle. They like 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 network requests were implemented. Ask about the basics of REST and JSON. Junior will not ask for specific things and subtleties. At least I'm not asking. ”
Boris, on the other hand, had a different experience: “Even when I asked for internships, performed technical tasks and said that my salary was not important, if only 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 heaped up mainly on the theory. For some reason, they asked questions from the Premier League, which do not concern newcomers. ”
Marat was more fortunate. Now he works in a transport company and one is responsible for the iOS direction, continuing his studies at the faculty. “Since I alone am responsible for iOS, my work is assessed only by the ability to realize the tasks set for me, and not by knowledge of the theory.”
Community
Andrei lives in Nizhny Novgorod and says that even there an excellent community has formed. Once upon a time he was a backend developer in Python, but friends dragged him into mobile development - and now he himself is campaigning for everyone to do it.
“The global community usually communicates via twitter. People keep their blogs, record videos on Youtube, call each other on podcasts. One day I had a question about a presentation where the HQTrivia team lead performed. This is an American quiz played by several million people at the same time. I tweeted him, he answered me, we talked, I thanked. The community is extremely friendly, which is great. ”
Recommended Reading ListBeginner Level:Average level:Advanced level: