After interviews with several companies, they ended up in the achilles (shanghai coordinates) and worked in areas of great personal interest. The result is certainly fortunate for those entering two and a half years of non-college education。
I am grateful to the interviewer for giving me this opportunity, because not everyone will recognize your efforts, and life is not justified。
The specific companies and interview questions are not shared here, as it is not felt to be very meaningful。
The next interview will be dedicated to a set of interviews that i think can be used to interview senior ios. Link: an ios interview topic
The main sharing of this article is how the writer prepared the interview at this stage. Everyone may have their own learning methods, which are less efficient, but it is hoped that they will be useful for all。
Get ready for the interview
The preparation of interviews is conducted from three main points:
Tools used
Two of the most frequently used tools were used in the preparation of interviews:
1. Notes
The processing of notes is the process of understanding, and repeated chewing of their own notes can help in understanding。
2. Wonderful list
The list is a tool for freeing the brain, because it is used to think, not to remember. Throw in what needs to be thought and get the brain out of it
One of the great advantages of both tools is to cross-platform: both support (mac, windows, android, ios) systems, and synchronized functionality does well. So they can be updated at any time when the computer is not convenient, especially when there is a good idea to write it down on the phone。
Organization of interviews
As far as possible, the author has searched all the ios interviews on the internet, with difficulties ranging from low to high and, of course, some articles on a particular knowledge point. These questions were then grouped into several themes, which were included in the notes:
Preparation of algorithms
Finally, there are algorithms: because there is no foundation for algorithms, and because time is tight, the author has prepared only arrays, chains, fork tree-based algorithms, the language of which is c++. The sources of these topics are mainly the topics of swordfinger and leetcode, which were studied for about a month。

The author placed the master algorithm on my github library (with the answers, and it's all right): seecome-algorithm-qastion-solution. Most of the algorithms in this library are those of mobile-end interviews that are more commonly tested。
At present, both are based on the c++ language, and interested students welcome the answers to java and swift。
Related books
There are also books that can be used to prepare interviews:
" project-c advanced programming " : a presentation on memory management, bottom of block, knowledge on gcd. The same author wrote three articles summarizing the book:
Network
Design mode
Data structure and algorithm
In general, if time is running out, it is suggested to begin with some of the "sets" on algorithm interviews in swordfinger. Then we're going straight to the subject, and we're going to find some regular algorithms。
Knowledge of computer systems:
Time management
A good time management strategy can better help the plan land. Here's the time management strategy of the writer from two points:
What do you do every day
While the time available to prepare interviews was limited by the time of the job, there was a more fixed percentage of the time allocated daily to different types of knowledge points:
There is also a need to allocate time to organize the knowledge points: the three knowledge points above actually need to be collated and absorbed over and over again, trying to express themselves in their own words, and the amount of time required is not significant, but it is useful。
Nothing
In this area of time management, one of the views that i personally share is that it is more important than knowing what to do and first knowing what not to do. Because human energy is limited, it is only 24 hours a day, and when something is important, other things have to compromise。
In preparation for the interview, the author gave up a lot in the first half of the year:

The gym card is about to expire, but not once. Class, family reunions have been declined. No game of "eating chicken" and no cinema。
To be honest, i did not go to the gym until after i got the extra, i met my classmates and my old friends, but i did. They all say they understand, so i'm glad。
It was not difficult to find a job, but it was very difficult to find a job that was currently best suited to itself, and it was to be hoped that there would be some trade-offs, a plan and a way to put it into practice。
After a brief account of the interview experience at this stage and the methodology used to prepare the interview, the following is a brief description of some of the ideas that the author would like to share with some of his colleagues. As these include interviews with others and interviews with themselves during the first half of the year, they are shared here. There may be some subjectivity in some places。
Some of the ideas we're trying to say about some of our colleagues, "the industry is down."
This statement is heard once or twice a month. Many friends were interviewing in the first half of the year, probably because some of them weren't very well. And the first half of the year, i've been recruiting companies for advanced ios development, and one feeling is hard. Although it has been three or four years, there is little knowledge of design models, data structure, ios bottom-level knowledge, and the open source library has only seen sdwebimage (perhaps just an online resolution) and, in short, failed to meet the personal requirements of the writer for an advanced ios development。
But on the other hand, i've heard a lot of people go to very good companies, like today's headlines, bat, and so on, and have higher ratings。
So, personally, it is not the industry that seems to me to be depressed, but rather that many developers do not maintain a state of continuous learning, simply repeating a year of experience for many years, which ultimately leads to the emergence of capabilities below the threshold of age。
The author believes that, as a software developer, he will continue to break through. For the front-end developers, it is also good to learn as much as possible about commonity that goes beyond the ui level, such as data structure and algorithms, network protocols, design models, and some good open-source banks (no fewer than 10 people were interviewed in the first half of the year asking which open-source banks do not speak of sdwebimage). Here are some of the source-defunct blogs written by the author:
"it's hard to get an interview because i have a bad education."
These words are heard more by colleagues who are more familiar with me and who feel that their interview opportunities are limited to academic qualifications。
But there are many places on the résumé that can be attracted: high-quality blogs, high-quality github codes, good project experience, in-depth technology sharing, etc。
I have a personal favorite:
Alter what is changeable, and appropriate what is immutable
It means change can change, reception can't change. Since academic qualifications are difficult to change, accept them, do not complain, do not take them as an excuse, and concentrate on what can change:
Blogs: it's easy to build a blog on your own now, with an off-the-sheno framework, and learning costs are low, if you have some technology to introduce here. Github: this is not an introduction. If you have a good-use component, you can put it on it, keep it up to date, and reflect personal growth. It would be better to participate in large open source projects. Project experience: it may also be out of personal control, but can you do something about it? Technology sharing: if you look at a new technology, can you share it with colleagues? You can exercise yourself。
The author's personal value is one or two points: from these two points it can be seen whether the person's quest for technology is shared, whether he is interested in sharing it, and whether he has better expression and thought. As there are more objective effects, 3,4 points are not relatively personal。
The author has seen a survey: the higher the level of education, the better the graduates, the better the developers tend to produce more on github and blogs. This is a matter for reflection, but it also points to the fact that less advanced developers of academic and graduate schools focus on github and blogs。

“(big company) interviews to build rockets and work screws.”
This sentence has also been heard many times, and most of those who can hear it say it with some negative sentiment。
This recruiting strategy of large companies is justified by the fact that, given the size of the company, the wealth of resources, it is either building rockets or preparing them, it must be recruiting those who already have the capability to build them, or those who are better equipped to build them. And when the buildings are flat, isn't everyone talking about plans? Everyone has responsibilities, and which general does not begin with soldiers
So we should be right about this:
"i've never met this part of the job, so i don't know."
In the first half of the year, companies were also recruited, and this is what i often hear when i'm an interviewer, asking, for example, “what is the reflection practice of ios?” in such cases, the interviewer usually did not use himself as an excuse for not being able to do so。
In fact, the two knowledge points above do not seem to the author to be too directly related to performing the corresponding business (the author himself did not do the actual project)。
So whatever language is taught, if it can be explored from a number of common knowledge points, it can contribute to a better understanding of the language itself, as well as to its operational capacity:
For example, if you just need a collection, and in the future you just have to judge whether the elements are in it or not, you just need to use nssset; but if you don't know that nsset exists, you may only use nsaray, knowing that arrays are much slower to search than hashi's watch。
So the worst thing to do with science is to know that you don't know: it's good to get in touch and explore。
"i'm not in class, so i don't have data structure and algorithms."
The interviewer found that not many people in non-skill groups want to study data structures and algorithms. Because whenever a writer asks for some knowledge about data structure and algorithms, he hears the excuse that he is not a student。
The author believes that if we want to go a long way on the program, this piece will certainly not go around. There is a formula:
Program = data structure + algorithm
A good procedure is often inseparable from both. This means that if a good program is to be written, a reasonable data structure and algorithm (at least the right data structure) must be chosen。
By way of example, you are now required to preserve some names with a pool and to provide an interface to judge whether the person's name is in this pool. So if you do this, you'll use arrays, dictionaries, or set
If you do not understand the advantages of set, you will probably use arrays (judgmented by returning index). But the time complexity of array queries is o(n), far less than set's o(1), so this explains how much use of appropriate data structures can help performance。
The author is also not of school origin, but after learning data structure and algorithms, he has found himself able to improve his ability to design and understand the code. The authors, as described above, have only 30 to leetcode questions and some of the underlying data structures. So i'd like to see you in non-professional classes planning your own studies. In addition, there are students from non-scientific classes who, precisely because they are of the same origin, have not taken the initiative to improve their knowledge after working, so that non-scientific students are more willing to plan for themselves and to fill this gap as quickly as possible。




