Recently, because I am learning some new things, the Android things have not been updated much. Taking advantage of some spare time, simply talk about Technical Learning, which can be regarded as a summary and experience of my work in the past few years.
Below are some basic points to know about technical learning skills and technical learning resources that can help you to grow and make you concentrate.
I hope this article can give some help to fellow programmers who are in school, or who have just stepped into work for a while. After all, I myself have been stagnant, overwhelmed, and confused.
Rules of English Language to learn a programing language!
Honestly, there is nothing more cost-effective to learn than English. Relying on other people’s translations, or machine translation is not the way to go. The author himself is proficient in Japanese and English for the time being, but in the early days, when I directly read those books in English, I still felt a headache (thank you HKUST for torturing me). If you are familiar with it, you will feel that it is not difficult, and it is even easier to understand than many translations.
If you go to GitHub, you will find that many developers in India still lack English, especially since some descriptions and readmes are directly in Chinese. You can turn it over by machine even if your English is bad. It is the computer community after all, and English is the lingua franca. It is also very rude to go to the repositories of some foreign developers to raise issues or reply in Hindi.
If I had to speak a language that would help technology a lot, it would have to be English. With English, you can truly learn independently.
How Google Help to Learn and grow in the technical field.
Before asking Xiaobai, have you Googled it? If I were to see a developer searching Yahoo at every turn, I would presumably arbitrarily think he was very good. In fact, Google is our best teacher. As long as we can correctly grasp the keywords of the question, there are almost no answers that we can’t find. Most of them will be on StackOverflow, and others will be scattered on GitHub, blogs, and other places.
If the knowledge you are looking for is really unpopular, such as some in-depth usage of react native, video so castration on android, etc., then I am afraid you can only find friends who do this or do your own research. There is some kind of developers in India that may be willing to share their knowledge on my blog.
As for scientific Internet access, there are too many technologies related to this topic. Please find your own method, whether it is VPN or SS, it is very simple, and the relative input and output are very cost-effective for programmers. I really don’t want to spend money to use AWS’s free cloud server to take SS.
Deliberate Practice: Achieve Mastery in Anything
Seeing is useless. For example, read an article about the principle of Hybrid App, maybe it is well written, but in fact, even after reading it, let me write one myself, or talk about how to make a version of our application, a common solution for Android/iOS, and finally hesitantly said I don’t know why. In the end, it is necessary to practice and make some Hybrid pages to truly master it, and to be able to clearly explain the principles and application scenarios.
Writing about soldiers is essentially superficial.
Be wary of Manual Labor
When your work becomes manual labor, and you can’t gain new experience and knowledge from it, you need to be alert to what is going on.
Think too little in Technical Field
For the content to be done, it is still in the stage of completion, not for a better solution, to think more about the implementation details, such as using a certain API, will you take a closer look at how it is done. Maybe you know Handler and Looper, then do you know everything about the main thread, the life cycle of the four major components, and the touch events of various Views that are all message-driven and processed in the main looper?
Duplication of work
When Focus is on one piece for too long, it will inevitably encounter this kind of bottleneck. At this time, you can see if it can be done in another piece, such as caching, hybrid, startup optimization, video, etc. There are many fields that can be done, but I really find that I am not interested in this, and I can do the back-end or the front-end instead. If it is due to personal considerations, such as the firm not allowing the change or the income is much lower, If it is due to personal reasons, such as the company does not allow the change or the salary may be much lower, it is okay to squeeze time to do it in the side project, but it is just a matter of the heart.
I have interviewed some programmers who have been working on Android for 5-6 years, but most of them are really far inferior to some excellent developers with 2-3 years of experience. When you ask about design, you don’t understand design, and when you ask about popular open-source projects, the answer is “I seem to have heard of it.” I don’t want the developers I know to be like this in the future. But if you always repeat the work, it is inevitable that 1 year of work experience like this will be repeated for 5 years.
When doing extra learning, more attention should be paid to different areas, rather than learning Python, go to learn Go next month, think about the differences in languages, try to do some projects by yourself, and train full-stack engineers on the foundation. When I was still in college, I learned C, C++, Java, Python, Ruby, PHP, HTML, Perl, SQL/Redis/HBase, etc., but I didn’t understand each one deeply enough. Now I think about that time is doing it wrong.
You should have your own expertise, but you should also be able to think about the problem from a global perspective. A back-end boss who does not understand the front-end will lead to the front end being too heavy and inflexible. Anyway, as long as the modules here are clear, a front-end that does not understand the front-end will be fine. The boss will also ask the people below not to complain, just do it.
This happens in some settings where project managers are under pressure and the supervisor is somewhat inept. In order to explain the above, the project manager said to the engineer, “Can this progress be reduced further?” The boss knew this situation, but he opened one eye and closed the other. It’s better to leave this company.
A qualified leader, or what should a mentor do? At least from my point of view, although he needs to be responsible for the project for the company, and for the developers in the team, what he should do is observe and guide, see those team cancers clearly, and create a team atmosphere, rather than just push and urge progress and express yourself.
Records and summaries
What is blogging for?
At least for me, what I wrote is more of a summary and explanation of myself. If I can write it down, it will at least demonstrate that I am confident that I truly understand it in this manner and have not attempted to fool anybody. In addition, it can be regarded as a kind of growth footprint for the time being. Occasionally, I will go to read the notes.
Sharing is also one of the goals. I hope everyone can make progress with each other, so as to promote development.
Whether it’s writing a blog or writing some notes, bit by bit is also a sort of self-organization.
Figure out what exactly you want.
Do all or drill? Want to be a background with super concurrency? Want to get someone else's system? Want to make accurate and effective recommendation algorithms? Or do you want to make a product that others can actually use?
It is precisely because I want the latter that I became an Android developer (why did not choose iOS, it is probably the openness of Android that attracted me). And now, because I found what I lacked (I am familiar with the front end, most of the things are just Manual work for me, and I’d like to take on a full project but can’t), I took up Node. js again, and it appears to be ES6, thinking about design and product challenges.
I hope everyone can think clearly about what they want to do and what they want to be. able to learn independently. After all, the master brings in the door, and the practice depends on the individual. I don’t want chicken soup. Everyone walks well. I hope to be side by side in the future and say “Nice to meet you” to each other.