What happens when skills and experience don't match?

In " Interviewing Tips: What Is a Skill-Age Mismatch ," we discussed what an interviewer expects of a developer at different stages, explaining what a skill-and-age mismatch is. So, here comes the question: what to do when technical ability and working years don't match ?


The answer to this heart-wrenching question is actually very simple: find a way to match ability and experience . However, this correct nonsense is meaningless. Here is how to do it:

  • Developer Capability Model

  • Identify your tendencies

  • Find strategies that fit your positioning and practice deliberately

Alright, let's get to the point.

Developer Capability Model

In the article "Interview Strategy: What is the mismatch between technology and age", what we discussed is actually " technical ability ". Technical ability is a " hard skill ", and hard skills are only part of the comprehensive ability of developers!

Hard skills refer to technical skills that are directly related to the job in a professional field. For example, in the field of software development, "using C++ for driver programming" is a hard skill.

Hard skills are very important to the work you do, but they are often limited by the work environment and not easy to transfer, so a certain hard skill is often not something that most people will learn.

In contrast to hard skills, there are some skills that are more widely used and universal, whether you are in life or work, they can help you, such as writing, swimming, negotiating, speaking, feedback, motivation, etc., such skills, we call them These are "soft skills".

In fact, the developer's capabilities include three aspects: hard skills, soft skills and resources .

640?wx_fmt=png&wxfrom=5&wx_lazy=1

The effect of the developer's work is measured by "whether it solves the problem".

Solving problems sometimes relies on technical capabilities. For example, if a user requires a website page to open in less than 1.5 seconds, you must solve it through technical means.

Sometimes, problem solving relies on soft skills such as communication, coordination, presentation, feedback, and writing.

For example, when a customer complains that "the system is difficult to use, it does not meet their requirements, and they refuse to pay", the sales staff will come to the developer and force the developer to make the system better. , The customer is also very satisfied at the time of acceptance, it is impossible to use it.

Therefore, the development can only go to the customer site to observe. Through communication with customers, I found the crux: the novice who uses the system can't find the desired function button for the first time.

After learning about this, the developer organized an on-site training for the customer, and the problem was quickly resolved. Next, the developer wrote a FAQ for the customer, and the customer was very satisfied.

In other cases, the solution of the problem depends on resources. For example, the technical reserves of your team are mainly C++ related technologies. Now you want to develop a website, and there are no personnel who understand website development. What should you do? Self-study, secondment, recruitment, outsourcing, which method to choose?

If you are familiar with the manager of the company in charge of web development, you can borrow someone to say hello; if you know a reliable partner who is willing to work part-time, then the problem can be solved in minutes... These two kinds of problem-solving methods The method relies on "relational resources".

Therefore, we must realize from the heart that the ability of developers is not only technology, and solving problems does not necessarily depend on technology.

Identify your tendencies

Everyone has a tendency to develop their own abilities: some prefer to keep drilling technology and become technical experts; some are willing to communicate and collaborate with different people, and are willing to complete work through others, and also willing to help others to complete their work; Others like to focus on figuring out user preferences and product value...

When the things you do every day are consistent with your inclinations, you are more likely to be invested, easier to do well, and more likely to have a sense of accomplishment and value.

Therefore, we have to find our own inclinations in technology, human interaction, and products.

We can use the method described in the article " Technology or product, which affects your development more " - "feeling the feeling, identifying the type" - to identify our own tendencies.

Review your process of developing a product or doing a project, and find the moments when your positive emotions (happiness, excitement, sense of meaning, sense of achievement, etc.) are more obvious, T1, T2, T3, for each moment, apply "I feel... ..., because..." This sentence pattern is analyzed and the result is recorded.

For example, Zhang Chong's analysis results are:

  • February 26th, 11AM, I was especially happy because I finally figured out how to use MVP in Android projects

  • On the afternoon of March 8th, I felt a sense of accomplishment because I learned to render a video with a TextureView and also animate it

  • 3 月 15 日上午,我感到很兴奋,因为我使用静态内部类 + WeakReference 的方式搞定了一个由 Handler 引起的内存泄露问题

  • ……

观察张翀列出的这些积极情绪时刻,你会发现,他一直在讲技术,他的关注点始终在技术特性和使用技巧上,由此可以看出,他对技术本身更感兴趣。

对产品更感兴趣的小伙伴,ta 的积极情绪记录可能是这样的:

  • 11 月 11 日周六晚上 11 点,我感到特别有成就感,因为我为双 11 写的订单管理模块,帮助 50 多万用户顺利买到心仪的商品。

  • 1 月 16 日下午 3 点,我感到非常兴奋,因为我搞定的影视墙功能,滑动超级流畅还带呼吸灯,酷毙了!

  • 3 月 6 号,我感到很期待,因为我拿到了做博物馆 VR 产品的 Offer ,我太喜欢那些文物啦!

在 ta 的积极情绪时刻清单中,大部分都是和产品关联在一起的。

对人际互动更感兴趣的小伙伴,ta 的积极情绪记录可能是这样的:

  • 1 月 8 日早上 9 点,我感到超有成就感,兼职有点不可思议,因为我撮合了成昆和张无忌这对死对头试验结对编程

  • 2 月 7 日下午 2 点,我感到有点不可思议,我竟然和李鬼聊了 2 个小时还不觉得累

  • 3 月 8 日,我很高兴,因为我采用关键对话的方式,把一个任务分给了之前坚决拒绝接受的小亮

你的感受不会骗人,多多体会你在工作中的感受,慢慢你就会发现自己的倾向。

除了体察感受,还有一个方法,可以帮助你识别自己的倾向:榜样分析

所谓榜样,是指你想要成为并且经过努力也能成为的人。

找找你视为榜样的人,看看你想要它们身上的哪一点:技术能力、人际交互还是产品设计。

弄明白这个,就可以知道你的倾向是什么。

寻找适合你定位的策略,刻意练习

一旦你找到了自己的倾向,接下来的事情,就是:制定提升策略,然后持续执行。


  • 专注技术

比如,你想专注技术,那就先看看自己当下的段位:初级(对很多东西只是简单了解和使用)、中级(熟悉用到的技术,对其原理和思想有一定认知,可以灵活选择和运用)、高级(在某一技术方向上达到可以定制、扩展、优化的程度,在其它相关技术方向上达到中级)。

找到自己的段位后,根据自己的情况,为自己制定一些目标,生成计划,持续行动,定期回顾。很快,你就能获得提升。

我在 GitChat 上有一个达人课——程序员跨越式成长指南,非常详尽的描述了怎样提升技术能力,识别下图中的二维码可以参与:

640?wx_fmt=jpeg


专注技术还有另一种可能:愿意一直做技术,但实际上无法在某个技术上挖得很深。这种情况,可以水平拓宽,掌握各种技术,让自己的广度足够,这样也有一些场景,会能发挥很大作用。


  • 产品

假如你对产品和业务更加感兴趣,可以尝试着去学习:

  • 产品经理的方法论和技术栈

  • 用户需求分析的方法论

  • 所做产品的业务逻辑

当你能够更好的把握业务和产品时,往往能够更好的实现需求、解决问题。因为在大多数公司的大多数产品中,我们关注的都是如何用技术更好的解决问题,而不是技术本身。

打造“业务 + 技术的组合竞争力”,是不愿在技术道路上死磕的开发者的优选策略。


  • 软技能

其实,很多小伙伴做上三五年开发后,会慢慢失去对技术最初的热衷,不再有那么大的自驱力天天精进。

这个时候的倾向,不再是技术,可能会转到人际交互或产品层面,也可能没什么明确倾向。不管如何,此时都可以通过培养“软技能”来弥补自己在技术上的不足。

软技能有很多种,比如沟通、倾听、写作、演讲、反馈、说服、激励、谈判、规划、组织、管理、讲授等等。

硬技能是完成某一类工作必备的基础,软技能可以让你成为更好的员工,可以为你带来更多的机会。

软件架构师的12项修炼》这本书,非常好的对软技能做了分类,并且阐述了如何修炼软技能。

640?wx_fmt=png

The book " Soft Skills: A Survival Guide Beyond Code " lists more soft skills and provides a general training direction. Another book, The Communication Bible for Introverts , provides a very good 4P method that can help us train.

Soft skills are usually not learned in the classroom, but are actively practiced in real work and life scenarios. Therefore, we can completely learn methods and templates from books, role models and other objects, and then practice them in practice, and finally improve our soft skills.


Related Reading:

To improve technology, transform management, optimize your resume, and find a job, you can read my book " Programmer's Growth Lesson ", click to read the original text, and buy it on Jingdong!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324630426&siteId=291194637