As an ancient saying goes, “Live and learn.” The Internet is one of the most laborious industries, “overtime” for programmers has been “common”, and the Internet technology changes with each passing day, many programmers are tired to cope with, complaining.
So much so that there has long been a widespread misconception that 35 is the end of a programmer’s career.
How to do a good job in the busy work of technical accumulation, build personal core competitiveness, I believe that many programmers are thinking about the problem.
Two aspects of the answer
Learning principle
At all times, following some tried and tested principles is an important factor affecting efficiency, and the right approach is the secret to success.
Another important factor to improve the efficiency of work and study is confusion and a good attitude.
Becoming a good architect is a phased goal for most beginning – and mid-level programmers.
How to Learn In a busy job, perseverance, continuous learning and progress is a difficult task, requires strong perseverance and determination. If the method is not appropriate, it is twice the effort. Fortunately, ancient and modern philosophers have summarized many excellent learning methods. Here are some important principles. Following these methods will be of great benefit to everyone’s work and study.
in
It has been reported that the amount of knowledge accumulated in the past few decades exceeds the sum of the previous thousands of years of human knowledge. Computer science is one of the most rapidly evolving fields of knowledge in modern times, and programmers must accept that their deep knowledge will soon be obsolete. If you want to continue to develop in the computer field and become a good architect, you must constantly learn and master the latest technology. In a word, learning can not have.
The so-called “Rome was not built in a day”, the road to the architect is long and arduous, easily give up, all pay instantly in vain. To be a good architect, you need to be persistent!
Although knowledge changes rapidly, the underlying theories change very slowly. This is the relationship between “Tao” and “image”. Even though there are all things in the world, Tao never changes. For those very basic theoretical knowledge, we need to review frequently, that is, “learn while learning”.
As a developer, it is particularly important to have a learning atmosphere and a communication circle. This is my iOS communication group: 642 363 427. No matter you are small white or big bull, welcome to enter, share BAT, Ali interview questions, interview experience, discuss technology, and exchange learning and growth together!
Pay attention to the practice of the ancients cloud: “the paper come zhongjue shallow, must know this to practice.” The learning field has the so-called 721 model: 70% of personal growth comes from on-the-job practice, 20% from learning from others, and 10% from training. This theory is controversial, but for programmers, prioritizing by practice, learning, and training is roughly fine. Therefore, attaching importance to practice and growing up in practice is the most important learning principle.
There are two kinds of human cognition: perceptual cognition and rational cognition. The two cognitions are mutually irreplaceable. Practice comes largely from emotional learning. Reading books is more like rational learning. Take learning to drive a car for example, it is hard to imagine that anyone can drive a car simply by learning from books.
Book knowledge is mainly evangelism — the description of abstract archetypes, but the description of their concrete application is often vague and the relationship between abstract archetypes is only scratched. Using the same precise language to describe application scenarios and relationships would lose focus and confuse people. So, just reading books to grow is like writing on paper without practice and generalization will only lead to failure.
The right way to learn is to pay attention to practice, make full use of perceptual and cognitive potential, and hone yourself in projects. In practice, deliberate practice on some key movements will also achieve twice the result with half the effort.
Newton said, “If I have seen farther than others, it is because I have stood on the shoulders of giants.” We need to learn from others. Learning from teachers, leaders, colleagues, subordinates, and even rivals is an important way to grow quickly.
Learning from teachers and leaders has been a part of people’s life habits. But it’s also important to learn from colleagues and even rivals who are more like us. Therefore, we should observe more, take its advantages, and abandon its weaknesses. For the team’s younger brothers and subordinates, also want to “do not shame subordinates”.
In addition, it is also important to actively participate in the discussion of specific plans during the project. The participants have a priori perception of the relevant background, and the views and suggestions discussed are also integrated with the speaker’s various knowledge and skills. Therefore, discussion allows participants to have a very comprehensive and three-dimensional understanding of book knowledge. At the same time, discuss with the master, their views will be like a pruner to cut the branches, quickly cut off their own knowledge in the field of doubt.
Attention! Attention!!!!! Attention!! How can iOS developers improve at work?
IOS programmers on the car, learning together speakers, wind and rain in the factory waiting for you! The portal is here: jq.qq.com/?_wv=1027&k…
Focus on summary and output
Programmers can master a lot of details in practice, but even if they master all the details, they will fall into a situation of “learning without thinking” without deeply summarizing and thinking. The “quantitative change” of growth comes from the gradual and in-depth control of details, and the real “qualitative change” comes from a deeper understanding of the “Tao”.
Putting your experience out there and having it tested by others is a high-level summary. This kind of output not only helps others, but also helps oneself. There are many ways to summarize, including organizing sharing, writing technical articles and so on. Of course, “three days to check my body” is also a good way to sum up. In short, a lot of summary, a lot of sharing, nothing!
Answering other people’s questions is also an important means of personal growth. Sometimes, a problem is not quite understood by oneself, but when explaining it to others, it suddenly becomes clear. Therefore, “teach others tirelessly” to benefit others and yourself.
Planning is the key to success; unpredictability is waste. For a long learning career, a good plan is half the battle.
Long-term planning Implementing long-term planning requires perseverance and determination, but getting it right also requires a big vision, a super-sensitive nerve, and a lot of luck hitting the jackpot. For most people, long-term planning is mainly about “setting direction”.
Follow the following principles to reduce the probability of reverse directional errors
Stay away from the sunset industry. Do things that interest you. Do things that add up. See while walking, do not go all the way to black.
Short term planning
Good short-term planning should strike a balance between life, growth, performance and promotion. Most companies have a review cycle — as little as a month, as much as a year. So we might as well take the assessment cycle as a short-term learning planning cycle.
Major goal planning must be challenging and require impossible goals. Overplanning is essentially a greedy algorithm that aims to maximize the target value. Since everything is in flux, use that time to accomplish more learning goals if you can accomplish other goals earlier. In short, the future must be bright, but the road must be bumpy.
Goals do not necessarily share resources and programs do not necessarily conflict with each other.
Life is a marathon, and there’s a lot of confusion along the way. Confusion is like a shackle, holding us back. Confusion is like a deadlock, holding us back. What follows is a summary of some typical puzzles I encounter and see at work. These puzzles have long puzzled the author himself, or colleagues and friends around me. When the confusion is resolved, everyone feels liberated and provides positive energy for the next stage of the journey. Life is like a journey, do not care about the destination, care about, should be the scenery along the way, and the mood at the view. A good mental attitude is the best companion on the technology journey. We hope that we can have a happy mood to feel the long learning journey through this journey.
Never stop learning?
We must admit a cruel reality: human life is limited, but knowledge is infinite. Using limited life to learn infinite knowledge is an impossible task. At the thought of this, some programmers can’t help but feel pessimistic. Sorrow is not necessary if done properly and diligently.
Yet the whole body of human knowledge is expanding all the time. However, for many important engineering subdivisions, the basic theory is not profound. In many important areas of computing, programmers have the ability to get to the heart of the matter in limited time.
In addition, technical learning is a competitive game, although learning is endless, and overtaking most opponents is a victory. Therefore, in the right way of learning, long-term investment will form core competitiveness.
New iOS advanced knowledge system diagram
Click here: File Access
There are no absolutely brilliant technologies, only real masters programmers who are committed to technical achievement, all dream of becoming technical masters one day. But the criteria for being a tech whiz are highly controversial. It’s a time-honored misconception that technical excellence is judged by mastery of a certain skill.
There are several reasons for this misunderstanding. First of all, the more skills you have, the better. People who have many skills are not newbies. Second, before the advent of the Internet, access to information was very expensive. This leads to a skill that can give an individual or even an entire company an advantage. In the Internet era, the emergence of various frameworks and the popularity of open source have rapidly eliminated or reduced the value of many skills and lowered the threshold for learning many technologies. Therefore, at present, acquiring knowledge of a certain skill is only a short-term goal. People who are complacent with certain skills need to remember that pride takes a back seat.
Small as a sparrow is, it has all five organs. If you were the creator, the complexity of designing sparrows and elephants is not significantly different. What seems like a small business requirement requires a very high level of skill and capability in order to achieve perfection. To meet the needs of customers is a challenge, the real master, is to meet the open move.
Can’t grow without projects?
Learning on a project is one of the fastest ways to grow, and many programmers enjoy it. But doing projects all year round, you might be working for an outsourcing company. For a product company, if you are doing projects to the end of the year, either in the initial start-up stage, or a lot of failed projects, it is not a particularly ideal state. Normally, there will be some non-project time between projects. During this time, some students will be confused and grow slowly.
The more projects, the better? The answer is clearly no. Repetitive projects don’t create new growth for programmers. Working on projects without time to learn something new leads to the danger of doing without learning. What really distinguishes programmers is the depth of the project, not the endless work on it. Therefore, in the gap period between projects, programmers should cherish the rare breathing space, in-depth thinking, the project to do deep, do fine.
How to improve project depth? Generally speaking, any project has a goal, and when the project is complete, the goal is basically achieved. But are customers really satisfied? Is the system as usable, reliable, scalable, and maintainable as it can be? The answer to these questions is always no. So, any worthwhile project, you can always dig deep. Digging deep into projects and thinking deeply can also exercise the creativity of programmers. A person who expects to keep working on projects, like a person who focuses on training more swift horses, can’t invent a car. Building creativity isn’t something you do overnight. It takes a lot of thinking. In short, programmers should always feel short of time, because time is the most valuable resource.
Small responsibilities?
Most of the time, the number of systems a programmer works on and the size of the team has a positive correlation with their “status”. However, there is no necessary correlation between the social status and technological growth. The key to improving technical capabilities is project depth and customer pickiness. The more projects you have, the less time you have to invest in a single project and the more superficial it is. In particular, it is necessary to avoid the situation of “neglecting to govern in their own place”. The bigger the team, the more effort it takes to manage it. Being forced to take charge of a large team on the premise that management skills are not mature and technical vision is not high enough may lead to personal fatigue and no achievements of the team. In the end, “one general is incompetent and exhausted”, the effect may be counterproductive.
From the perspective of technology development, technology managers should pay attention to the number of active projects they can control, and strive to improve the influence and technical depth of active projects. Team size should be commensurate with individual management ability, planning ability and demand control ability. When more than one person does a job, each person’s growth is limited. Everyone doing simple repetitive work is not good for technical growth. Team management and project management need to step by step, avoid “pulling out the seedlings to encourage”.
Have to be the boss? There are some programmers whose life ambition is to be the technical boss of the team, and this is certainly a laudable ambition. However, if the team is average in technical ability and growth potential, and you are the most skilled, that is more sad than lucky.
There are a few things that a team of top technologists needs to meet
You need to be the top expert in your field — it’s hard to find anyone better than you!
Secondly, you often have to take on tasks that challenge your own abilities, but at the same time you have a team of smart and capable people. Although you are the most technically competent, your teammates will be able to explore and expand the group’s knowledge in areas that are unfamiliar to you.
Finally, you must be quick to learn and ask questions.
Otherwise, joining a stronger technical team might be a better choice, at least not something to be proud of.
Gay technology must be awesome? The underlying technology and the business application technology are bound to have different concerns.
There are two reasons for the misunderstanding
The basic technology is relatively mature and has a relatively complete system, which gives people a lofty feeling. Business application technologies are relatively less impactful because they are used differently by each team.
The threshold for basic technologies is relatively high, and the minimum requirements for reliability and availability are high. However, high threshold does not mean high technology content. In addition, mature technologies are relatively constrained in innovation. But the most advanced technologies come from active innovation.
In contrast, business technology and basic technology are different. But the real masters focus on problem solving. All skills are just skills.
Some first-time mentor programmers worry that graduates will be too weak, so they plan their assignments in a way that eventually leads them to write their own code. The same thing happens to many programmers who just manage small teams. The end result: they write all the code, leaving their subordinates with nothing to write. Of course, “trying to do everything yourself” sucks, and the result is often poor overall team performance, slow growth of team members, and fatigue.
The ancients said, “No doubt about people, no doubt about people.” The saying is not “one-size-fits-all.”
In ancient times, limited by communication technology, feedback delay was significant, and there was a lot of noise and serious deformation in the process of information transmission.
In this case, making quick decisions based on a small amount of deformation information gathered in a short period of time can easily lead to rash decisions. In a company, this phrase is more appropriate for the selection process, should be: hire no doubt, doubt people do not hire.
Efficiency, efficiency, efficiency It is common to see some students give their performance is 100 points – full score, because in the past period of time too hard, but the final performance is so-so. God rewards those who work hard, but god rewards those who work well. Programmers are trained in data structures, and the time complexity gap between different algorithms is difficult to bridge simply by working longer hours.
To improve work and study efficiency, we need to pay attention to the following points
Focus on efficiency. In many cases, the benefits of extra time are dwarfed by the benefits of increased efficiency.
Have clear results-oriented thinking. Credit and hard work are not the same thing.
Do the right thing, not just do the right thing. It’s a recurring topic, but mistakes are made every day. There are always trade-offs in order to finish a big project in a given time. If there is no focus, even force, easy to get twice the result. If the opposite is true, it is even more deplorable.
The skill itself is not the most important, what is important is the continuous learning.
Recommend a 👇 :
-
2021 The most complete iOS interview questions and the bottom of the video sharing column
-
Full set of iOS Interview tips