I recently saw a post from an interviewer of a company:
I interviewed a young man with three years of Android development experience, which was the shortest interview time I had ever given anyone. The interview was over in less than ten minutes. The reason was simple: the foundation was so poor that he could not answer many technical questions. So I spent half an hour telling him how to improve himself in the future, recommending books and some resources I care about and then sending him away. After the interview, I had a lot of feelings. I didn’t know how to learn precipitation at the age of 26, and it was really a terrible thing to lose competitiveness prematurely. Advise young technical people not to be lazy to consume their competitiveness in advance!
What is the cause of this problem?
In fact, this situation is actually caused by the working environment of many programmers, relatively comfortable, no pressure, and just many programmers are more content with the status quo, they are used to it. You get used to people having everything ready and you’re just adding, deleting, and checking. But the most important factor is you. After three years or so of working as a programmer, you’ll hear more or less about things other than business, and you’ll have to explore and learn on your own.
Thinking suggestions:
First, expand their scope of knowledge and pattern, learn new technology
In fact, this talks about the whole IT industry, technology is moving too fast. It is a topic of continuous promotion of competitiveness.
Today it’s desktop development, tomorrow it’s Web development.
With a hard grasp of relational databases, no-SQL became mainstream.
With great efforts, I am proficient in Java, C# and other static languages, and find that dynamic languages like GO and Python have become the standard configurations of cloud computing and machine learning. Mobile development was object-C, Java yesterday, Swift, Kotlin today.
Of course, this is not to say that we should keep up with the trend, strangle fashion. There is nothing to be gained from doing that but working yourself to death at your desk. In fact, as long as you choose a direction, deep learning and accumulation, there will be success.
The ideas of composing thoughts and solving problems are interlinked. We should be good at thinking in our study and work and draw inferences by analogy. And keep pace with The Times, update their knowledge base and skills in time to maintain good market competitiveness. After finishing things, think about how to do better, and look at problems on the basis of better requirements.
Broaden your horizons. Don’t just focus on your niche and get bogged down in your role
In fact, this situation is more common in the workplace not only junior programmers, even programmers who have worked for more than five years also have similar problems, not their own things ignored, and the harm is greater.
Corporate projects are often large and comprehensive, and if you only focus on your corner, you will never see the forest for the trees.
I’m sure no boss would mind the programmer taking on a little more responsibility, doing a little more, and ultimately giving the project team a little more output. Since the boss doesn’t mind, you should be bold to jump out of your responsibilities and look at other projects in the company to enrich your industry knowledge.
Don’t shy away from things that are not your responsibility, and try to take on more. Helping others is to improve oneself, teaching and learning is this meaning. Besides, if you help others this time, the next time your project is tight or you encounter technical problems, the recipients will surely reciprocate. In this way, a benign atmosphere of mutual assistance has been formed, and the output of the whole project team has also been improved synchronously.
Generally speaking, the best strategy for a company to promote someone is to ask the candidate to do something that will be needed for a future position. If you do a good job, you get promoted. If the problem is not done well, the problem can be found in advance and the promotion can be postponed. It needs more investigation for a period of time. Such trial and error costs are unquestionably minimal.
Three, communicate more with colleagues, learn from colleagues
Some programmers more introverted or temperament a little high cold, I do not know three people, there must be my teacher. Learn more from colleagues, exchange, to their own future development has benefits without harm. The situation may be improved by mentoring or mentoring, but if the internal factors do not change, the final effect is still not optimistic.
It is normal to encounter some technical difficulties in technical development. Of course, independent thinking is valuable, but corporate projects often have time limits, and solving problems is always the first priority, rather than struggling and searching for solutions alone.
If the time pressure is low, it’s ok to give it some thought. Considering the delivery pressure, it is necessary to actively communicate with colleagues and technical managers to find solutions. In general, active communication is better than going it alone.
Perhaps colleagues or the boss of a word, should be the ancient poem, mountains and rivers doubt no way, another village. At the same time, I established better friendships with my colleagues and left a good impression on my boss that I had a way of doing things.
Four, to the future to have an idea, consider the next three or five years to do what
The author himself made a similar mistake. Five years had passed before he woke up.
The first three years of a programmer’s career are actually a very important period of polishing and planning. If you spend it in confusion, you will surely sigh with regret afterwards, but the water has gone east and there is no reason to return.
A goal without a plan is just a vision.
Both junior and senior programmers should actively talk to their senior or direct boss to see if they have any plans or suggestions they can use.
The biggest taboo in the workplace is passively waiting for fate. The author himself was waiting for my boss to help me plan my future at the beginning of my career.
So your boss won’t take the initiative to help you plan your future, and the most important thing is your own requirements and expectations for yourself.
Five, to consider whether to work for yourself or a company
This is also a great topic that a lot of people don’t figure out, even some programmers who have been working for ten years.
Figure this out, and work motivation will be significantly better. Self-motivated to make work more interesting and meaningful.
The big boss of the domestic famous Internet company once said a word, which is worth thinking deeply.
“I’ll pay you $200,000 a year, or $1 million for five years. If you mess around here, you’ll be the one to suffer. Is five years of your youth worth a million dollars?”
So the sense of ownership of the new workplace must be strengthened, you should continue to improve their ability, continue to strengthen their ability to create value.
For example, if the company is paying you $200,000 a year, you should aim to bring the company much more than that.
You have the ability and the company will reward you accordingly. If the company doesn’t offer you a raise or a promotion, walk away and be happy. High quality talent is always competing for it.
Study suggest
In my spare time, I compiled a note on the core knowledge of Android development, which mainly includes the following parts. You can refer to it when learning:
First, the architect must have Java foundation
3. Concurrent programming 4. Data transfer and serialization 5. The Principle of Java Virtual Machine 6
Interpretation of open source framework
1. Hot repair design; 2. Plug-in framework design; 3. Component framework design; 4
3. 360° all-round performance optimization
1. Design ideas and code quality optimization
2. Program performance optimization
- Optimization of startup speed and execution efficiency
- Layout detection and optimization
- Memory optimization
- Optimize the power consumption
- Network transmission and data storage optimization
- APK size optimization
3. Optimization of development efficiency
- Git, a distributed version control system
- Automated build system Gradle
4. Actual project combat
- startup
- fluency
- The practice of Douyin in APK packet size resource optimization
- Youku responsive layout technology full analysis
- Network optimization
- Mobile Taobao Double 11 performance optimization project revealed
- Autonavi APP full link source code dependency analysis
- Complete the OOM experience sharing
- Wechat Android terminal memory optimization practice
Iv. Android framework Architecture
1. Advanced UI promotion 2. Android kernel components 3
V. NDK Module Development (Audio and Video Series)
1, NDK development of C/C++ introduction 2, JNI module development 3, Linux programming 4, underlying picture processing 5, audio and video development 6, machine learning
Learning about Flutter
Create your first Flutter APP. 4. Get started with the Flutter Dart language system
7. Wechat small program development
Small program overview and introduction 2. Small program UI development 3. API operation 4
The last
For many junior and middle level Android engineers, the only way to improve their skills is to learn and grow. Unstructured learning is slow, slow and helpless. For a long time, pay a huge cost of time and efforts, did not see the due effect, will be discouraged is normal.
So learning must find the most suitable for their own way, there is a way of thinking, or not only a waste of time, more likely to delay the future development together.
The above core knowledge notes are free to share, if necessary, you can read my [Github] download
In addition, I also sorted out the “Android interview real question analysis complete PDF hd +” Android interview knowledge system “learning mind mapping compression package —————— can be my [Github] reading download, finally feel helpful, in need of a friend can point to praise